

:root {
  --ivory: #f3f0e8;
  --paper: #fbfaf6;
  --ink: #171612;
  --espresso: #24211b;
  --olive: #676851;
  --hairline: #c9c3b5;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Baskerville,
    "Times New Roman", serif;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  text-rendering: optimizeLegibility;
}

body:has(.cart-drawer) {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input {
  color: inherit;
  font: inherit;
}

button,
summary,
a {
  -webkit-tap-highlight-color: transparent;
}

img {
  display: block;
  max-width: 100%;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-header {
  position: relative;
  z-index: 20;
  background: var(--paper);
}

.announcement {
  min-height: 31px;
  padding: 0 38px;
  border-bottom: 1px solid var(--hairline);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  font-size: 9px;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.announcement > :last-child {
  text-align: right;
}

.main-nav {
  min-height: 88px;
  padding: 0 38px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  border-bottom: 1px solid rgba(201, 195, 181, 0.55);
}

.nav-group {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.2vw, 38px);
  font-size: 10px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.nav-group-right {
  justify-content: flex-end;
}

.nav-group a,
.text-button,
.mobile-menu a,
.mobile-menu button {
  position: relative;
}

.nav-group a::after,
.text-button::after {
  position: absolute;
  content: "";
  left: 0;
  right: 100%;
  bottom: -6px;
  height: 1px;
  background: currentColor;
  transition: right 220ms ease;
}

.nav-group a:hover::after,
.nav-group a:focus-visible::after,
.text-button:hover::after,
.text-button:focus-visible::after {
  right: 0;
}

.text-button {
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  letter-spacing: inherit;
  text-transform: inherit;
}

.brand {
  width: clamp(180px, 18vw, 272px);
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.brand img {
  width: 100%;
  max-height: 54px;
  object-fit: contain;
}

.mobile-menu {
  display: none;
}

.hero {
  position: relative;
  min-height: calc(100svh - 119px);
  overflow: hidden;
  background: #d9d6d1;
  isolation: isolate;
}

.hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 55%;
  z-index: -2;
}

.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(16, 15, 13, 0.02) 40%,
    rgba(16, 15, 13, 0.52) 100%
  );
  z-index: -1;
}

.hero-caption {
  position: absolute;
  left: clamp(24px, 4vw, 62px);
  bottom: clamp(28px, 4vw, 58px);
  color: #fff;
}

.eyebrow {
  margin: 0 0 16px;
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.hero-caption h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(46px, 7vw, 104px);
  font-weight: 400;
  line-height: 0.92;
  letter-spacing: -0.045em;
}

.hero-caption a {
  display: inline-block;
  margin-top: 25px;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero-edition {
  position: absolute;
  right: clamp(24px, 4vw, 62px);
  bottom: clamp(28px, 4vw, 58px);
  margin: 0;
  color: #fff;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

.manifesto {
  padding: clamp(88px, 11vw, 176px) clamp(24px, 4vw, 62px);
  display: grid;
  grid-template-columns: 0.48fr 1.5fr 0.72fr;
  gap: 48px;
  align-items: start;
  border-bottom: 1px solid var(--hairline);
}

.section-index {
  margin: 6px 0 0;
  color: var(--olive);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.manifesto h2,
.section-heading h2,
.studio h2,
.journal h2,
.private-access h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(45px, 6vw, 88px);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.045em;
}

.manifesto-copy {
  max-width: 390px;
}

.manifesto-copy > p,
.studio-copy > p:not(.section-index),
.journal-copy > p:not(.eyebrow) {
  margin: 0;
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.62;
}

.arrow-link {
  display: inline-flex;
  gap: 34px;
  margin-top: 36px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--ink);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.arrow-link span {
  transition: transform 220ms ease;
}

.arrow-link:hover span,
.arrow-link:focus-visible span {
  transform: translate(3px, -3px);
}

.current-release {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(380px, 0.82fr);
  min-height: 900px;
  background: var(--paper);
}

.release-artwork {
  padding: clamp(54px, 7vw, 112px);
  background: #dedbd2;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.paper-mat {
  padding: clamp(22px, 3vw, 48px);
  background: #f7f5f0;
  box-shadow: 0 26px 58px rgba(36, 33, 27, 0.12);
}

.paper-mat img {
  width: 100%;
  aspect-ratio: 1.49 / 1;
  object-fit: cover;
}

.artwork-caption {
  max-width: 470px;
  margin: 20px 0 0;
  color: #5d5a52;
  font-size: 9px;
  line-height: 1.5;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.release-details {
  padding: clamp(60px, 7vw, 112px) clamp(38px, 6vw, 96px);
  align-self: center;
}

.release-details h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(54px, 6vw, 92px);
  font-weight: 400;
  line-height: 0.96;
  letter-spacing: -0.05em;
}

.release-subtitle {
  max-width: 430px;
  margin: 25px 0 0;
  font-family: var(--serif);
  font-size: 17px;
  font-style: italic;
  line-height: 1.5;
}

.release-rule {
  height: 1px;
  margin: 42px 0 14px;
  background: var(--hairline);
}

.detail-row {
  padding: 13px 0;
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  border-bottom: 1px solid rgba(201, 195, 181, 0.58);
  font-size: 10px;
  letter-spacing: 0.07em;
}

.detail-row span:first-child {
  color: var(--olive);
  text-transform: uppercase;
}

.size-picker {
  margin: 38px 0 0;
  padding: 0;
  border: 0;
}

.size-picker legend {
  margin-bottom: 13px;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.size-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.size-options button {
  min-height: 73px;
  padding: 13px 8px;
  border: 1px solid var(--hairline);
  border-right: 0;
  background: transparent;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-size: 10px;
}

.size-options button:last-child {
  border-right: 1px solid var(--hairline);
}

.size-options button small {
  color: var(--olive);
  font-size: 8px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.size-options button.is-selected {
  background: var(--espresso);
  color: var(--paper);
}

.size-options button.is-selected small {
  color: #cac6bc;
}

.purchase-row {
  margin-top: 16px;
  display: grid;
  grid-template-columns: 0.42fr 1fr;
  align-items: stretch;
  background: var(--espresso);
  color: var(--paper);
}

.purchase-row > span {
  padding: 19px 23px;
  display: flex;
  align-items: center;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  font-family: var(--serif);
  font-size: 24px;
}

.purchase-row button {
  padding: 0 23px;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.purchase-row button span {
  font-size: 18px;
  transition: transform 220ms ease;
}

.purchase-row button:hover span,
.purchase-row button:focus-visible span {
  transform: translateX(5px);
}

.shipping-note {
  margin: 13px 0 0;
  color: var(--olive);
  font-size: 8px;
  letter-spacing: 0.08em;
}

.editions {
  padding: clamp(90px, 10vw, 160px) clamp(24px, 4vw, 62px);
}

.section-heading {
  display: grid;
  grid-template-columns: 0.48fr 1.25fr 0.72fr;
  gap: 48px;
  align-items: end;
  margin-bottom: 68px;
}

.section-heading h2 {
  font-size: clamp(48px, 5.5vw, 80px);
}

.section-heading > p:last-child {
  max-width: 320px;
  margin: 0;
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.55;
}

.edition-grid {
  display: grid;
  grid-template-columns: 1.18fr 0.82fr 1fr;
  gap: 17px;
}

.edition-card:nth-child(2) {
  margin-top: 88px;
}

.edition-image {
  min-height: clamp(380px, 48vw, 690px);
  padding: clamp(25px, 3vw, 50px);
  background: #d8d3c8;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.edition-card:nth-child(2) .edition-image {
  min-height: clamp(360px, 40vw, 570px);
  background: #b9ad99;
}

.edition-card:nth-child(3) .edition-image {
  background: #6a685f;
}

.print-only,
.frame-shell {
  width: 87%;
  padding: 18px;
  background: #f7f5f0;
  box-shadow: 0 24px 40px rgba(23, 22, 18, 0.13);
}

.frame-shell {
  border: 13px solid #9b7650;
  padding: 15px;
  background: #eeeae0;
  box-shadow: 0 28px 48px rgba(23, 22, 18, 0.18);
}

.edition-card:nth-child(3) .frame-shell {
  border-color: #171612;
}

.edition-image img {
  width: 100%;
  aspect-ratio: 0.78 / 1;
  object-fit: cover;
}

.edition-crop-left img {
  object-position: 14% 53%;
}

.edition-crop-center img {
  object-position: 50% 53%;
}

.edition-crop-right img {
  object-position: 86% 53%;
}

.edition-meta {
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  border-top: 1px solid var(--hairline);
}

.edition-meta h3 {
  margin: 0 0 7px;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 400;
}

.edition-meta p,
.edition-meta > span {
  margin: 0;
  color: var(--olive);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.studio {
  display: grid;
  grid-template-columns: 0.88fr 1.12fr;
  min-height: 860px;
  background: var(--espresso);
  color: var(--paper);
}

.studio-copy {
  padding: clamp(80px, 9vw, 150px) clamp(40px, 7vw, 112px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.studio .section-index {
  color: #aaa69b;
  margin-bottom: 52px;
}

.studio h2 {
  font-size: clamp(54px, 6.5vw, 96px);
}

.studio-copy > p:not(.section-index) {
  max-width: 490px;
  margin-top: 45px;
  color: #d6d2c8;
}

.studio .arrow-link {
  align-self: flex-start;
  border-color: currentColor;
}

.studio-visual {
  position: relative;
  padding: clamp(56px, 8vw, 130px);
  background: #8a887e;
  display: flex;
  align-items: center;
  justify-content: center;
}

.studio-frame {
  padding: 25px;
  border: 15px solid #1a1916;
  background: #eeece5;
  box-shadow: 0 36px 70px rgba(0, 0, 0, 0.28);
  transform: rotate(-1.2deg);
}

.studio-frame img {
  width: 100%;
}

.studio-visual > span {
  position: absolute;
  right: 22px;
  bottom: 32px;
  color: #eeece5;
  font-size: 8px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

.journal {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  background: var(--paper);
}

.journal-image {
  min-height: 760px;
  overflow: hidden;
}

.journal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 23% 52%;
  filter: contrast(1.04);
}

.journal-copy {
  padding: clamp(72px, 9vw, 145px) clamp(40px, 7vw, 112px);
  align-self: center;
}

.journal h2 {
  font-size: clamp(54px, 6vw, 88px);
}

.journal-copy > p:not(.eyebrow) {
  max-width: 480px;
  margin-top: 36px;
}

.private-access {
  padding: clamp(90px, 12vw, 190px) 24px;
  text-align: center;
  border-top: 1px solid var(--hairline);
}

.private-access h2 {
  font-size: clamp(54px, 7vw, 106px);
}

.private-access > p:not(.eyebrow):not(.joined-message) {
  max-width: 540px;
  margin: 30px auto 0;
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.55;
}

.private-access form {
  width: min(590px, 100%);
  margin: 45px auto 0;
  display: grid;
  grid-template-columns: 1fr auto;
  border-bottom: 1px solid var(--ink);
}

.private-access input {
  min-width: 0;
  padding: 17px 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-family: var(--serif);
  font-size: 20px;
}

.private-access button {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.joined-message {
  margin: 45px 0 0;
  font-family: var(--serif);
  font-size: 22px;
  font-style: italic;
}

footer {
  padding: clamp(70px, 8vw, 124px) clamp(24px, 4vw, 62px) 30px;
  background: #11110f;
  color: var(--paper);
  display: grid;
  grid-template-columns: 1.4fr 0.6fr;
  gap: 90px;
}

.footer-brand img {
  width: min(610px, 92%);
}

.footer-links {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 44px;
}

.footer-links div {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-links p {
  margin: 0 0 10px;
  color: #8f8c83;
  font-size: 8px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.footer-links a {
  font-family: var(--serif);
  font-size: 16px;
}

.footer-bottom {
  grid-column: 1 / -1;
  margin-top: 70px;
  padding-top: 20px;
  border-top: 1px solid #383732;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  color: #918e85;
  font-size: 8px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.footer-bottom a {
  text-align: right;
}

.cart-scrim {
  position: fixed;
  inset: 0;
  z-index: 40;
  border: 0;
  background: rgba(17, 17, 15, 0.56);
  cursor: default;
}

.cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  width: min(470px, 94vw);
  padding: 35px;
  background: var(--paper);
  display: flex;
  flex-direction: column;
  box-shadow: -20px 0 60px rgba(0, 0, 0, 0.16);
  animation: drawer-in 240ms ease both;
}

.cart-header {
  padding-bottom: 23px;
  border-bottom: 1px solid var(--hairline);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cart-header h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: 34px;
  font-weight: 400;
}

.cart-header button {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.cart-item {
  padding: 28px 0;
  display: grid;
  grid-template-columns: 124px 1fr;
  gap: 22px;
  border-bottom: 1px solid var(--hairline);
}

.cart-item img {
  width: 124px;
  height: 154px;
  object-fit: cover;
  object-position: center;
}

.cart-item h3 {
  margin: 4px 0 9px;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 400;
}

.cart-item p {
  margin: 0 0 20px;
  color: var(--olive);
  font-size: 9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cart-item strong {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
}

.empty-bag {
  margin: 45px 0;
  font-family: var(--serif);
  font-size: 20px;
}

.cart-footer {
  margin-top: auto;
}

.cart-footer p {
  color: var(--olive);
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.5;
}

.cart-footer a {
  min-height: 60px;
  margin-top: 18px;
  padding: 0 22px;
  background: var(--espresso);
  color: var(--paper);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

@keyframes drawer-in {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}

@media (max-width: 1020px) {
  .nav-group {
    display: none;
  }

  .main-nav {
    grid-template-columns: 1fr auto 1fr;
  }

  .brand {
    grid-column: 2;
  }

  .mobile-menu {
    grid-column: 3;
    display: block;
    justify-self: end;
    position: relative;
  }

  .mobile-menu summary {
    cursor: pointer;
    list-style: none;
    font-size: 9px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
  }

  .mobile-menu summary::-webkit-details-marker {
    display: none;
  }

  .mobile-menu-panel {
    position: absolute;
    top: 36px;
    right: 0;
    width: 220px;
    padding: 25px;
    background: var(--paper);
    border: 1px solid var(--hairline);
    display: flex;
    flex-direction: column;
    gap: 18px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
  }

  .mobile-menu-panel a,
  .mobile-menu-panel button {
    border: 0;
    padding: 0;
    background: transparent;
    text-align: left;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .manifesto,
  .section-heading {
    grid-template-columns: 0.38fr 1.25fr;
  }

  .manifesto-copy,
  .section-heading > p:last-child {
    grid-column: 2;
  }

  .current-release {
    grid-template-columns: 1fr;
  }

  .edition-grid {
    grid-template-columns: 1fr 1fr;
  }

  .edition-card:nth-child(2) {
    margin-top: 60px;
  }

  .edition-card:nth-child(3) {
    grid-column: 1 / -1;
    width: 57%;
    margin: 0 auto;
  }

  .studio,
  .journal {
    grid-template-columns: 1fr;
  }

  .studio-visual,
  .journal-image {
    min-height: 620px;
  }

  .journal-image {
    order: 2;
  }

  footer {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .announcement {
    padding: 0 16px;
    grid-template-columns: 1fr auto;
  }

  .announcement-message {
    display: none;
  }

  .main-nav {
    min-height: 78px;
    padding: 0 16px;
  }

  .brand {
    width: 166px;
    height: 45px;
  }

  .hero {
    min-height: calc(100svh - 109px);
  }

  .hero-image {
    object-position: 50% 52%;
  }

  .hero-edition {
    display: none;
  }

  .hero-caption h1 {
    font-size: 50px;
  }

  .manifesto,
  .section-heading {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .manifesto-copy,
  .section-heading > p:last-child {
    grid-column: 1;
  }

  .manifesto h2 {
    font-size: 45px;
  }

  .release-artwork {
    padding: 55px 24px;
  }

  .release-details {
    padding: 72px 24px;
  }

  .size-options {
    grid-template-columns: 1fr;
  }

  .size-options button,
  .size-options button:last-child {
    border-right: 1px solid var(--hairline);
    border-bottom: 0;
  }

  .size-options button:last-child {
    border-bottom: 1px solid var(--hairline);
  }

  .editions {
    padding-top: 92px;
  }

  .section-heading {
    margin-bottom: 50px;
  }

  .edition-grid {
    grid-template-columns: 1fr;
    gap: 58px;
  }

  .edition-card:nth-child(2),
  .edition-card:nth-child(3) {
    width: 100%;
    margin: 0;
    grid-column: auto;
  }

  .edition-image,
  .edition-card:nth-child(2) .edition-image {
    min-height: 500px;
  }

  .studio-copy,
  .journal-copy {
    padding: 88px 24px;
  }

  .studio-visual,
  .journal-image {
    min-height: 470px;
  }

  .private-access form {
    grid-template-columns: 1fr;
    border: 0;
  }

  .private-access input {
    border-bottom: 1px solid var(--ink);
    text-align: center;
  }

  .private-access button {
    min-height: 54px;
    margin-top: 14px;
    background: var(--espresso);
    color: var(--paper);
  }

  footer {
    gap: 64px;
  }

  .footer-brand img {
    width: 100%;
  }

  .footer-links {
    gap: 24px;
  }

  .footer-bottom {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .footer-bottom a {
    text-align: left;
  }

  .cart-drawer {
    padding: 26px 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* Live collection and Shopify checkout */
.shop-section { padding: clamp(72px, 8vw, 130px) clamp(24px, 4vw, 62px); background: var(--paper); scroll-margin-top: 25px; }
.shop-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px 32px; }
.shop-art { aspect-ratio: 1.25; background: #e7e2d8; display: flex; align-items: center; justify-content: center; padding: 24px; }
.shop-art img { width: 100%; height: 100%; object-fit: contain; }
.shop-art.shop-art-room { padding: 0; }
.shop-art.shop-art-room img { object-fit: contain; }
.product-gallery { margin-top: 12px; }
.product-gallery-views { display: flex; gap: 8px; }
.product-gallery-views button { padding: 9px 16px; border: 1px solid #b7b2a8; background: transparent; color: inherit; font: inherit; font-size: 13px; cursor: pointer; }
.product-gallery-views button[aria-pressed="true"] { background: #292a26; color: #fff; border-color: #292a26; }
.product-gallery-views button:focus-visible { outline: 2px solid #292a26; outline-offset: 3px; }
.room-scale-note { font-size: 12px; line-height: 1.5; color: #65645e; margin: 10px 0 0; }
.shop-card h3 { font: 36px var(--serif); margin: 25px 0 14px; }
.shop-description { font: 15px/1.65 var(--serif); max-height: 7em; overflow: auto; margin-bottom: 24px; }
.shop-card label { display: block; font-size: 11px; letter-spacing: .06em; }
.shop-card select { display: block; width: 100%; max-width: 100%; margin-top: 10px; padding: 15px 10px; background: transparent; border: 1px solid var(--hairline); font: 13px var(--sans); color: var(--ink); }
.shop-card .purchase-row { margin-top: 20px; }
button:disabled { opacity: .5; cursor: not-allowed; }
.shop-notice { padding: 35px; border: 1px solid var(--hairline); font: 18px/1.5 var(--serif); }
.shop-notice button, .shop-more { margin-top: 22px; border: 1px solid var(--ink); padding: 15px 24px; background: transparent; cursor: pointer; font: 11px var(--sans); text-transform: uppercase; letter-spacing: .1em; }
.shop-checkout-note { margin-top: 48px; color: var(--olive); font-size: 12px; }
.bag-lines { overflow-y: auto; flex: 1; min-height: 0; }
.bag-lines .cart-item { margin-bottom: 25px; }
.bag-quantity { display: flex; align-items: center; gap: 14px; margin-top: 18px; font-size: 13px; }
.bag-quantity button { border: 1px solid var(--hairline); background: transparent; min-width: 30px; min-height: 32px; cursor: pointer; }
.bag-quantity .bag-remove { border: 0; text-decoration: underline; font-size: 11px; }
.bag-subtotal { display: flex; justify-content: space-between; margin-bottom: 20px; }
.cart-footer { flex-shrink: 0; }
@media (max-width: 700px) { .shop-grid { grid-template-columns: 1fr; gap: 55px; } .shop-card h3 { font-size: 30px; } }
.product-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.product-options label { min-width: 0; }
@media (max-width: 480px) { .product-options { grid-template-columns: 1fr; gap: 16px; } }

dialog { width: min(560px, 94vw); max-height: 90vh; overflow: auto; border: 1px solid var(--hairline); padding: 32px; background: var(--paper); color: var(--ink); } dialog::backdrop { background: #171612aa; } #close-bag { float:right; background:transparent; border:0; cursor:pointer; padding:10px; } .bag-entry { border-bottom: 1px solid var(--hairline); padding:16px 0; } #live-products { margin-top:35px; } #catalog-status { font-size:13px; line-height:1.7; } [hidden] { display:none!important; } @media(max-width:700px) { .nav-group-right { display:flex; } }
#room-dialog { width: min(740px, 94vw); }
.room-close { float: right; border: 0; background: transparent; cursor: pointer; padding: 10px; }
#room-view { clear: both; margin-bottom: 18px; }
#room-view > img { width: 100%; max-height: 58vh; object-fit: contain; }
#room-options { display: block; width: 100%; padding: 10px; margin-top: 8px; }
.room-wall { position: relative; aspect-ratio: 16 / 10; display: grid; place-items: center; overflow: hidden; background: linear-gradient(120deg,#f0ebe1,#d9cdbb); padding-bottom: 11%; }
.room-wall::after { content: ''; position: absolute; left: 8%; right: 8%; bottom: 8%; height: 4%; background: #987956; box-shadow: 0 12px 18px #4e392c45; }
.room-print { z-index: 1; max-height: 90%; border: clamp(2px, .75vw, 7px) solid var(--frame-color); box-shadow: 4px 6px 13px #38291e55; background: #f9f5ed; }
.room-print img { width: 100%; height: 100%; object-fit: contain; }
.room-wall {
  isolation: isolate;
  background: radial-gradient(ellipse at 16% 5%, #fffaf0b8, transparent 62%), linear-gradient(110deg, #eae3d4, #c9baa5);
  padding-bottom: 18%;
}
.room-wall[data-palette="stone"] {
  background: radial-gradient(ellipse at 17% 7%, #f6f2e9cc, transparent 65%), linear-gradient(125deg, #dedbd3, #a9aba4);
}
.room-wall::after {
  inset: auto 0 0;
  width: 100%;
  height: 12%;
  background: linear-gradient(#b7a591, #d3c1a8);
  box-shadow: inset 0 3px 7px #47392840;
  z-index: -1;
}
.room-console {
  position: absolute;
  inset: auto 14% 6%;
  height: 15%;
  border-top: clamp(4px, 1vw, 9px) solid #65503d;
  border-left: 4px solid #65503d;
  border-right: 4px solid #65503d;
  background: linear-gradient(92deg, #6c5039, #9b7855 40%, #6f543e) top / 100% 58% no-repeat;
}
.room-print { border: 0; box-shadow: 3px 7px 13px #372b2355; }
.room-print[data-framed="true"] {
  border: clamp(2px, .85vw, 8px) solid var(--frame-color);
  box-shadow: inset 0 0 0 1px #0003, 4px 8px 16px #372b2366;
}
.room-controls label { display: block; font-size: 13px; } .room-controls select { display: block; width: 100%; padding: 10px; margin-top: 8px; }
/* Editorial storefront */
:root {
  --ivory: #f4f1ea;
  --paper: #fbfaf6;
  --ink: #24221f;
  --hairline: #d9d3c8;
  --serif: Baskerville, "Iowan Old Style", Georgia, serif;
  --page-gutter: clamp(18px, 5vw, 82px);
  --section-space: clamp(64px, 10vw, 148px);
  --motion: 220ms ease;
}
.skip-link { position:absolute; z-index:30; top:10px; left:10px; padding:12px; background:var(--paper); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
:where(a,button,summary,select):focus-visible { outline:2px solid #796746; outline-offset:4px; }
.site-header { position:sticky; top:0; }
.announcement { display:block; text-align:center; background:#26241f; color:#fff; padding:10px 15px; }
.gallery-nav { min-height:77px; padding:0 var(--page-gutter); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; }
.gallery-nav .brand { grid-column:2; grid-row:1; width:clamp(155px,17vw,240px); }
.gallery-nav button { grid-column:3; grid-row:1; justify-self:end; min-height:44px; }
.gallery-links { grid-column:1; grid-row:1; display:flex; gap:clamp(12px,2vw,36px); }
.gallery-links a,.gallery-nav button,.editorial-footer-links a { font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.gallery-links a { display:flex; align-items:center; min-height:44px; white-space:nowrap; }
.gallery-links a:hover,.studio-note a:hover,.editorial-footer-links a:hover { text-decoration:underline; text-underline-offset:5px; }
.hero { min-height:clamp(490px,82svh,920px); }
.hero-image { object-position:center 56%; }
.hero-caption { left:var(--page-gutter); bottom:clamp(28px,6vw,84px); }
.hero-caption h1 { font-size:clamp(56px,9vw,150px); }
.hero-caption a,.gallery-action {
  display:inline-block; padding:14px 20px; border:1px solid transparent; background:var(--paper);
  color:var(--ink); font:11px var(--sans); letter-spacing:.12em; text-transform:uppercase;
  cursor:pointer; transition:background var(--motion), color var(--motion);
}
.hero-caption a:hover { background:var(--ink); color:var(--paper); }
#current-release,#framing,#studio { scroll-margin-top:144px; }
.shop-section { padding:var(--section-space) var(--page-gutter); }
.gallery-intro { display:grid; grid-template-columns:1.55fr 1fr; align-items:end; gap:36px; margin-bottom:34px; padding-bottom:30px; border-bottom:1px solid var(--hairline); }
.gallery-intro h2,.framing-feature h2,.studio-note h2 { margin:10px 0 0; font:normal clamp(42px,6vw,88px)/1.02 var(--serif); letter-spacing:-.045em; }
.gallery-intro > p { max-width:330px; justify-self:end; margin:0; line-height:1.65; color:#59564d; }
#live-products { grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(32px,5vw,74px) clamp(14px,2.4vw,38px); }
#live-products .shop-art { aspect-ratio:4/5; padding:clamp(8px,1.6vw,26px); background:#eee9df; overflow:hidden; }
#live-products .shop-art img { transition:transform var(--motion); }
@media(hover:hover) { #live-products .shop-card:hover .shop-art img { transform:scale(1.025); } }
#live-products h3 { font-size:clamp(22px,2.6vw,34px); margin:17px 0 7px; }
.print-details { margin-top:17px; border-top:1px solid var(--hairline); }
.print-details summary { padding:13px 0; cursor:pointer; font-size:12px; min-height:44px; }
.print-details .shop-more { margin:0 0 14px; }
.framing-feature { display:grid; grid-template-columns:1.24fr 1fr; align-items:stretch; background:#eae4d8; }
.framing-feature img { width:100%; height:100%; min-height:360px; max-height:700px; object-fit:cover; }
.framing-feature > div { align-self:center; padding:clamp(30px,6.5vw,104px); }
.framing-feature p,.studio-note p { line-height:1.7; }
.gallery-action { background:var(--ink); color:var(--paper); }
.gallery-action:hover { background:#524a3c; }
.studio-note { padding:var(--section-space) var(--page-gutter); text-align:center; }
.studio-note h2 { max-width:900px; margin-inline:auto; }
.studio-note a { display:inline-block; margin-top:14px; border-bottom:1px solid currentColor; padding-bottom:5px; }
.editorial-footer-links { display:flex; flex-wrap:wrap; gap:24px; margin-block:26px; }
@media(max-width:760px) {
  .gallery-nav { grid-template-columns:1fr auto; gap:4px; padding:8px var(--page-gutter); }
  .gallery-nav .brand { grid-column:1; }
  .gallery-nav button { grid-column:2; }
  .gallery-links { grid-column:1/-1; grid-row:2; justify-content:center; border-top:1px solid var(--hairline); }
  .hero { min-height:65svh; }
  .hero-image { object-position:center; }
  .gallery-intro { grid-template-columns:1fr; gap:16px; }
  .gallery-intro > p { justify-self:start; }
  #live-products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 14px; }
  #live-products .product-options { grid-template-columns:1fr; }
  .framing-feature { grid-template-columns:1fr; }
  .framing-feature img { min-height:0; aspect-ratio:4/3; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  #live-products .shop-art img,.gallery-action,.hero-caption a { transition:none; }
}
.room-wall {
  display: block;
  padding: 0;
  aspect-ratio: 3 / 2;
  background: #eae3d4 url("art/room-linen.png") center / cover no-repeat;
}
.room-wall[data-palette="stone"] {
  background: #dedbd3 url("art/room-stone.png") center / cover no-repeat;
}
.room-wall::after { content: none; }
.room-print {
  position: absolute;
  left: 50%;
  top: 35%;
  transform: translate(-50%, -50%);
  max-height: 60%;
  box-shadow: 4px 7px 12px #201a134d;
}
.room-print[data-framed="true"] {
  border-width: clamp(2px, .65vw, 7px);
  border-style: ridge;
}
.room-print img { display:block; }


/* Homepage editorial features */
.hero-caption h1 { margin-bottom:24px; }
.home-section { padding:var(--section-space) var(--page-gutter); }
.home-section h2,.featured-print h2 { font:normal clamp(39px,6vw,84px)/1.02 var(--serif); letter-spacing:-.045em; margin:12px 0 28px; }
.collection-previews,.arrival-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,3vw,48px); }
.collection-preview,.arrival-print { display:block; min-width:0; }
.collection-preview img,.arrival-print img { display:block; width:100%; object-fit:contain; background:#ebe5da; transition:filter var(--motion); }
.collection-preview img { aspect-ratio:4/3; }
.collection-preview span,.arrival-print span { display:block; margin-top:14px; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.collection-preview strong,.arrival-print strong { display:block; margin-top:8px; font:normal clamp(22px,3vw,37px)/1.12 var(--serif); }
.featured-print { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; background:#24221f; color:#f8f5ed; }
.featured-print img { width:100%; height:100%; min-height:360px; object-fit:cover; }
.featured-print > div { padding:clamp(30px,6vw,96px); }
.featured-print p { line-height:1.7; }
.featured-print .gallery-action { background:#f8f5ed; color:#24221f; margin-top:10px; }
.arrival-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.arrival-print img { aspect-ratio:4/5; }
#featured-print { scroll-margin-top:144px; }
@media(hover:hover) { .collection-preview:hover img,.arrival-print:hover img { filter:brightness(.93); } }
@media(max-width:760px) {
  .featured-print { grid-template-columns:1fr; }
  .featured-print img { min-height:0; aspect-ratio:4/3; }
  .arrival-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:420px) { .collection-previews { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .collection-preview img,.arrival-print img { transition:none; } }
#live-products .shop-card { scroll-margin-top:144px; }
/* Artwork and collection pages */
[hidden] { display:none!important; }
#catalog-page { padding:32px var(--page-gutter) var(--section-space); min-height:65vh; }
.breadcrumb { display:inline-block; font-size:12px; letter-spacing:.04em; margin:10px 0 32px; }
#catalog-page h1 { font:normal clamp(40px,5vw,76px)/1.06 var(--serif); letter-spacing:-.035em; margin:16px 0 24px; }
.artwork-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr); gap:clamp(28px,5vw,90px); align-items:start; }
.artwork-large { display:flex; align-items:center; justify-content:center; border:0; padding:clamp(16px,3vw,48px); background:#eeeae2; width:100%; min-height:480px; cursor:zoom-in; }
.artwork-large img { display:block; width:100%; max-height:78vh; object-fit:contain; }
.artwork-info { padding:16px 0; }
.artwork-info h1 { margin-bottom:10px!important; }
.photographer { color:#686257; font-size:14px; }
.artwork-price { font-size:24px; margin:28px 0 8px; }
.availability { font-size:12px; color:#5b6356; }
.artwork-options { display:grid; gap:18px; margin:26px 0; }
.artwork-options label { display:grid; gap:10px; font-size:12px; letter-spacing:.05em; }
.artwork-options select,.catalog-filters select,.catalog-filters input { width:100%; min-width:0; border:1px solid #c9c3b7; background:transparent; color:inherit; padding:15px 12px; font:inherit; border-radius:0; }
.artwork-buy,.room-page-button { display:block; width:100%; padding:19px; font:inherit; cursor:pointer; }
.artwork-buy { background:#262622; color:#fff; border:1px solid #262622; }
.room-page-button { background:transparent; border:1px solid #bfb9ad; margin-top:12px; }
button:disabled { opacity:.5; cursor:not-allowed; }
.purchase-note,.image-hint { font-size:12px; color:#736d63; line-height:1.6; }
.artwork-thumbnails { display:flex; gap:10px; overflow-x:auto; padding:10px 0 20px; }
.artwork-thumbnails button { flex:0 0 68px; border:1px solid #d6d0c5; background:#eeeae2; cursor:pointer; padding:4px; }
.artwork-thumbnails img { width:100%; height:72px; object-fit:contain; }
.artwork-disclosure { border-top:1px solid #d2ccc0; padding:20px 0; }
.artwork-disclosure summary { cursor:pointer; font-size:14px; }
.artwork-disclosure p { font-size:14px; line-height:1.85; white-space:pre-line; }
.artwork-disclosure a { font-size:13px; text-decoration:underline; }
.artwork-lifestyle { margin:100px auto 0; max-width:1100px; }
.artwork-lifestyle h2 { font:normal clamp(32px,4vw,58px)/1.1 var(--serif); }
.artwork-lifestyle > img { display:block; width:100%; }
.artwork-lifestyle > p:last-child { color:#736d63; font-size:12px; }
.collection-banner { display:grid; grid-template-columns:1.25fr 1fr; background:#ece8df; }
.collection-banner > img { width:100%; height:100%; max-height:560px; object-fit:contain; padding:24px; }
.collection-banner > div:not(.missing-image) { padding:clamp(24px,4vw,70px); align-self:center; }
.collection-banner p { line-height:1.8; max-width:40em; }
.collection-nav { display:flex; flex-wrap:wrap; gap:12px 28px; padding:32px 0; border-bottom:1px solid #d2ccc0; }
.collection-nav a { font-size:14px; padding-bottom:6px; }
.collection-nav [aria-current] { border-bottom:1px solid; }
.catalog-filters { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr auto; gap:12px; padding:26px 0 6px; font-size:13px; }
.filter-reset { border:0; background:transparent; text-decoration:underline; cursor:pointer; }
.catalog-count { font-size:12px; color:#736d63; margin:18px 0 32px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:52px 24px; }
.catalog-tile { display:block; min-width:0; }
.catalog-tile > img,.catalog-tile > .missing-image { width:100%; aspect-ratio:4/5; object-fit:contain; padding:clamp(14px,2vw,32px); background:#eeeae2; transition:filter .25s; }
.catalog-tile h3 { font:normal clamp(22px,2.4vw,34px)/1.15 var(--serif); margin:18px 0 8px; }
.catalog-tile p { font-size:13px; margin:7px 0; }
.catalog-tile .tile-artist { color:#736d63; font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.collection-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:60px 28px; margin-top:45px; }
.collection-directory img { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; padding:24px; background:#eeeae2; }
.collection-directory h2 { font:normal 36px/1.1 var(--serif); margin:20px 0 8px; }
.collection-directory p,.collection-lead { color:#736d63; }
.missing-image { display:flex; align-items:center; justify-content:center; color:#736d63; font-size:13px; }
#zoom-dialog { width:94vw; max-width:1600px; height:92vh; max-height:92vh; padding:24px; background:#f6f2e9; border:0; }
#zoom-dialog form { position:sticky; top:0; z-index:1; text-align:right; }
#zoom-dialog button { padding:12px 20px; border:1px solid #ccc; background:#f6f2e9; cursor:pointer; }
.zoom-canvas { overflow:auto; height:calc(100% - 100px); }
#zoom-image { display:block; width:auto; max-width:none; height:auto; min-width:100%; }
@media(hover:hover) { .catalog-tile:hover > img { filter:brightness(.95); } .artwork-buy:hover { background:#46463c; } }
@media(max-width:900px) { .artwork-layout { grid-template-columns:1.1fr 1fr; gap:28px; } .catalog-filters { grid-template-columns:1fr 1fr; } .catalog-filters input { grid-column:1/-1; } }
@media(max-width:640px) { .artwork-layout,.collection-banner { grid-template-columns:1fr; } .artwork-large { min-height:280px; } .artwork-large img { max-height:65vh; } .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 14px; } .catalog-tile > img { padding:12px; } .artwork-info { padding-top:0; } .collection-directory { grid-template-columns:1fr; } .artwork-lifestyle { margin-top:50px; } #catalog-page { padding-top:12px; } .collection-banner > img { max-height:360px; } .gallery-links { gap:12px; } .gallery-links a { font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .catalog-tile > img { transition:none; } }
/* Mobile storefront corrections: keep gallery content inside its grid track. */
.artwork-layout > *, .collection-banner > *, .artwork-options > *, .catalog-filters > * { min-width:0; }
.artwork-thumbnails { max-width:100%; overscroll-behavior-inline:contain; }
.artwork-large { min-width:0; max-width:100%; }
.artwork-large img { min-width:0; max-width:100%; }
.artwork-options select,.room-controls select { font-size:16px; min-height:48px; }
.bag-quantity { flex-wrap:wrap; }
.bag-quantity button { min-width:44px; min-height:44px; padding:8px 12px; font:inherit; }
#bag h3,#bag p { overflow-wrap:anywhere; }
#bag #checkout { display:block; text-align:center; white-space:normal; padding:16px; line-height:1.5; }
#close-bag,.room-close,#zoom-dialog button { min-height:44px; min-width:44px; }
#bag,#room-dialog { overscroll-behavior:contain; max-height:90dvh; }
body:has(dialog[open]) { overflow:hidden; }
@media(max-width:640px) {
  .artwork-layout,.collection-banner { grid-template-columns:minmax(0,1fr); }
  .artwork-large { min-height:0; padding:16px; }
  .artwork-large img { height:auto; max-height:60svh; }
  .artwork-info h1 { font-size:clamp(34px,10vw,48px)!important; overflow-wrap:anywhere; }
  .artwork-thumbnails button { flex-basis:62px; }
  .artwork-thumbnails img { height:62px; }
  .artwork-buy,.room-page-button { min-height:52px; font-size:16px; }
  .artwork-disclosure summary { min-height:44px; padding:10px 0; }
  #bag,#room-dialog { width:calc(100% - 24px); max-width:calc(100% - 24px); padding:20px; margin:auto; }
  #bag h2,#room-title { font-size:30px; clear:both; overflow-wrap:anywhere; }
  .room-controls { grid-template-columns:minmax(0,1fr); }
  .room-controls label,.room-controls select { min-width:0; max-width:100%; }
  #room-view { min-width:0; }
  #zoom-dialog { width:calc(100% - 16px); max-width:calc(100% - 16px); padding:14px; height:90dvh; max-height:90dvh; }
  .catalog-filters select,.catalog-filters input { font-size:16px; min-height:48px; }
  .gallery-links { flex-wrap:wrap; column-gap:14px; row-gap:0; }
  .collection-nav a,.filter-reset { min-height:44px; display:inline-flex; align-items:center; }
}
