@font-face {
  font-family: "Libre Bodoni";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/libre-bodoni-regular-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Libre Bodoni";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/libre-bodoni-regular-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Libre Bodoni";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/libre-bodoni-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Libre Bodoni";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/libre-bodoni-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --ivory: #F7F3EC;
  --warm-white: #FFFDFC;
  --sand: #E7DDD0;
  --champagne: #D7BC78;
  --antique-gold: #AE8843;
  --taupe: #807165;
  --espresso: #241E1A;
  --ink: #181513;
  --line-gold: rgba(174, 136, 67, 0.34);
  --line-dark: rgba(36, 30, 26, 0.16);
  --font-display: "Libre Bodoni", Georgia, serif;
  --font-body: Aptos, "Segoe UI", Helvetica, Arial, sans-serif;
  --shell: min(91vw, 1400px);
  --section-space: clamp(7.5rem, 10.5vw, 10rem);
  --ease: cubic-bezier(.22, .7, .2, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: auto;
  scroll-padding-top: 7rem;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--ivory);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

body.menu-open {
  overflow: hidden;
}

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

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

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

button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 2px solid var(--antique-gold);
  outline-offset: 4px;
}

::selection {
  color: var(--warm-white);
  background: var(--antique-gold);
}

.shell {
  width: var(--shell);
  margin-inline: auto;
}

.section {
  position: relative;
  padding-block: var(--section-space);
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: .75rem;
  left: .75rem;
  padding: .75rem 1rem;
  color: var(--warm-white);
  background: var(--ink);
  transform: translateY(-160%);
  transition: transform .2s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  border: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.eyebrow {
  margin: 0 0 1.35rem;
  color: var(--antique-gold);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .2em;
  line-height: 1.4;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  text-wrap: pretty;
}

h1,
h2,
h3 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: .98;
  text-wrap: balance;
}

h1 {
  max-width: 13ch;
  font-size: clamp(3.25rem, 5.8vw, 6.4rem);
}

h2 {
  font-size: clamp(3rem, 5vw, 5.8rem);
}

h3 {
  font-size: clamp(2.25rem, 3.3vw, 3.85rem);
}

.button {
  display: inline-flex;
  min-height: 3.7rem;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.6rem;
  border: 1px solid var(--antique-gold);
  border-radius: 0;
  color: var(--warm-white);
  background: var(--espresso);
  font-size: .74rem;
  font-weight: 650;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .25s var(--ease);
}

.button-small {
  min-height: 2.85rem;
  padding: .8rem 1.15rem;
  font-size: .68rem;
}

.button:hover {
  color: var(--ink);
  background: var(--champagne);
}

.button:active {
  transform: translateY(1px);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  padding-block: .65rem;
  border-bottom: 1px solid var(--line-gold);
  font-size: .76rem;
  font-weight: 650;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: border-color .2s ease, color .2s ease;
}

.text-link span {
  color: var(--antique-gold);
  font-size: 1rem;
}

.text-link:hover {
  color: var(--antique-gold);
  border-color: var(--antique-gold);
}

/* Header */

.site-header {
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  border-bottom: 1px solid transparent;
  transition: background-color .35s ease, border-color .35s ease, box-shadow .35s ease;
}

.site-header.is-scrolled {
  border-color: rgba(174, 136, 67, .15);
  background: rgba(255, 253, 252, .92);
  box-shadow: 0 10px 32px rgba(36, 30, 26, .05);
  backdrop-filter: blur(14px);
}

.header-inner {
  display: grid;
  min-height: 6rem;
  grid-template-columns: minmax(11rem, 1fr) auto minmax(11rem, 1fr);
  align-items: center;
  gap: 2rem;
}

.brand-link {
  display: block;
  width: 15rem;
}

.brand-link img {
  width: 100%;
  height: auto;
}

.site-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.4rem, 2.6vw, 2.8rem);
}

.site-nav a,
.footer-nav a {
  position: relative;
  font-size: .71rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.site-nav a::after {
  position: absolute;
  right: 0;
  bottom: -.55rem;
  left: 0;
  height: 1px;
  background: var(--antique-gold);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s var(--ease);
}

.site-nav a:hover::after,
.site-nav a:focus-visible::after,
.site-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.header-cta {
  justify-self: end;
}

.menu-toggle {
  display: none;
}

/* Hero */

.hero {
  position: relative;
  min-height: min(62rem, 100svh);
  padding: clamp(8.5rem, 13vh, 10rem) 0 clamp(5.5rem, 9vh, 7.5rem);
  background:
    radial-gradient(circle at 74% 18%, rgba(215, 188, 120, .13), transparent 26rem),
    linear-gradient(90deg, var(--warm-white) 0 62%, var(--ivory) 62%);
  overflow: hidden;
}

.hero-grid {
  display: grid;
  min-height: calc(min(62rem, 100svh) - 16rem);
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: clamp(1rem, 2vw, 2rem);
}

.hero-copy {
  position: relative;
  z-index: 2;
  grid-column: 1 / span 6;
  padding: 2rem 0 1rem;
}

.hero-copy::before {
  position: absolute;
  top: -1.5rem;
  left: -.75rem;
  width: 5.5rem;
  height: 1px;
  background: var(--champagne);
  content: "";
}

.hero-lead {
  max-width: 38rem;
  margin: 2.25rem 0 0;
  color: #524942;
  font-size: clamp(1.06rem, 1.25vw, 1.25rem);
  line-height: 1.72;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin-top: 2.3rem;
}

.hero-index {
  display: flex;
  max-width: 35rem;
  justify-content: space-between;
  margin-top: 4rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line-dark);
  color: var(--taupe);
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.hero-visual {
  position: relative;
  z-index: 1;
  grid-column: 8 / -1;
  padding: 0 0 2.5rem 1.5rem;
}

.hero-visual::before {
  position: absolute;
  z-index: -1;
  top: -2rem;
  right: -4rem;
  width: 64%;
  aspect-ratio: 1;
  border: 1px solid var(--line-gold);
  border-radius: 50%;
  content: "";
}

.hero-visual::after {
  position: absolute;
  z-index: 3;
  right: -1.4rem;
  bottom: 6rem;
  width: 5rem;
  height: 5rem;
  border: 1px solid rgba(174, 136, 67, .55);
  content: "";
  transform: rotate(45deg);
}

.hero-contours {
  position: absolute;
  z-index: 0;
  top: 10%;
  right: -6rem;
  width: min(53vw, 48rem);
  color: var(--antique-gold);
  opacity: .25;
  pointer-events: none;
}

.hero-contours path {
  stroke: currentColor;
  stroke-width: .8;
}

.visual-caption {
  display: flex;
  justify-content: space-between;
  margin: 1rem 0 0;
  color: var(--taupe);
  font-size: .67rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.visual-caption span {
  color: var(--antique-gold);
}

.scroll-cue {
  position: absolute;
  bottom: 2rem;
  left: max(4.5vw, calc((100vw - 1400px) / 2));
  display: flex;
  align-items: center;
  gap: .8rem;
  color: var(--taupe);
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.scroll-cue i {
  position: relative;
  display: block;
  width: 4.5rem;
  height: 1px;
  background: var(--line-gold);
}

.scroll-cue i::after {
  position: absolute;
  top: -2px;
  right: 0;
  width: 5px;
  height: 5px;
  border-right: 1px solid var(--antique-gold);
  border-bottom: 1px solid var(--antique-gold);
  content: "";
  transform: rotate(-45deg);
}

/* Art-directed media slots */

.art-slot {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(174, 136, 67, .3);
  background-color: var(--sand);
}

.art-slot::before {
  position: absolute;
  z-index: 5;
  inset: 0;
  background:
    repeating-radial-gradient(circle at 40% 30%, transparent 0 2px, rgba(36, 30, 26, .016) 2px 3px),
    linear-gradient(118deg, rgba(255,255,255,.27), transparent 34% 70%, rgba(255,255,255,.2));
  content: "";
  mix-blend-mode: soft-light;
  pointer-events: none;
}

.art-slot::after {
  position: absolute;
  z-index: 6;
  inset: .65rem;
  border: 1px solid rgba(255, 253, 252, .48);
  content: "";
  pointer-events: none;
}

/* Real-image frame system */

.media-frame {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(174, 136, 67, .3);
  background: var(--sand);
}

.media-frame::before {
  position: absolute;
  z-index: 3;
  inset: 0;
  background:
    repeating-radial-gradient(circle at 40% 30%, transparent 0 2px, rgba(36, 30, 26, .016) 2px 3px),
    linear-gradient(118deg, rgba(255,255,255,.22), transparent 34% 70%, rgba(255,255,255,.14));
  content: "";
  mix-blend-mode: soft-light;
  pointer-events: none;
}

.media-frame::after {
  position: absolute;
  z-index: 4;
  inset: .65rem;
  border: 1px solid rgba(255, 253, 252, .5);
  content: "";
  pointer-events: none;
}

.media-frame picture,
.media-frame img {
  width: 100%;
  height: 100%;
}

.media-frame picture {
  display: block;
}

.media-frame img {
  display: block;
  object-fit: cover;
}

.media-glint {
  position: absolute;
  z-index: 5;
  top: -35%;
  bottom: -35%;
  left: -55%;
  width: 18%;
  background: linear-gradient(90deg, transparent, rgba(255, 253, 252, .35), transparent);
  opacity: 0;
  transform: translateX(0) rotate(17deg);
  pointer-events: none;
}

.media-frame-hero {
  aspect-ratio: 4 / 5;
}

.art-slot-hero {
  aspect-ratio: 4 / 5;
  background:
    radial-gradient(ellipse at 80% 26%, rgba(255,255,255,.7), transparent 24%),
    linear-gradient(145deg, #d7c9ba, #f0e8df 47%, #bda899);
}

.resin-layer {
  position: absolute;
  border: 1px solid rgba(174, 136, 67, .62);
  filter: drop-shadow(0 18px 28px rgba(36, 30, 26, .08));
}

.resin-layer-a {
  inset: 5% -21% 11% 18%;
  border-radius: 52% 48% 34% 66% / 39% 36% 64% 61%;
  background: linear-gradient(140deg, rgba(255,255,255,.8), rgba(233,217,202,.23) 42%, rgba(124,102,87,.28));
  transform: rotate(-9deg);
}

.resin-layer-b {
  inset: 17% 6% 2% -22%;
  border-radius: 41% 59% 67% 33% / 54% 60% 40% 46%;
  background: linear-gradient(118deg, rgba(85,69,59,.62), rgba(174,136,67,.23) 38%, rgba(255,255,255,.5) 72%);
  transform: rotate(13deg);
}

.resin-layer-c {
  inset: 26% 17% 25% 19%;
  border: 2px solid rgba(255,255,255,.62);
  border-radius: 62% 38% 54% 46% / 39% 62% 38% 61%;
  background: radial-gradient(circle at 70% 35%, rgba(255,255,255,.78), rgba(215,188,120,.26) 37%, rgba(74,61,52,.48) 78%);
  box-shadow: 0 0 0 7px rgba(174,136,67,.13), inset 0 0 30px rgba(255,255,255,.26);
}

/* Intro */

.editorial-intro {
  background: var(--warm-white);
}

.intro-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: 2rem;
}

.intro-marker {
  grid-column: 1;
  align-self: start;
  padding-top: .55rem;
  color: #7c5e27;
  font-size: .62rem;
  letter-spacing: .16em;
}

.intro-grid h2 {
  grid-column: 2 / span 5;
  font-size: clamp(4.2rem, 7vw, 8.2rem);
}

.intro-grid h2 em {
  color: var(--antique-gold);
  font-weight: inherit;
}

.intro-copy {
  grid-column: 8 / span 4;
  padding-bottom: .85rem;
}

.intro-copy p {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.15vw, 2.15rem);
  line-height: 1.4;
}

.fine-rule {
  display: block;
  width: 100%;
  height: 1px;
  margin-top: 2.2rem;
  background: linear-gradient(90deg, var(--antique-gold), transparent);
}

/* Sections */

.section-heading {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: 2rem;
  margin-bottom: clamp(4rem, 7vw, 7rem);
}

.section-heading > div {
  grid-column: 1 / span 8;
}

.section-heading h2 {
  max-width: 11ch;
}

.section-aside {
  grid-column: 10 / -1;
  margin: 0 0 .6rem;
  color: #5f534a;
  font-size: .92rem;
  line-height: 1.7;
}

/* Collections */

.collections {
  background:
    linear-gradient(90deg, transparent calc(50% - .5px), rgba(174,136,67,.08) 50%, transparent calc(50% + .5px)),
    var(--ivory);
}

.collection-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(4.5rem, 8vw, 8rem) clamp(1rem, 2.4vw, 2.5rem);
}

.collection-item {
  min-width: 0;
}

.collection-item-large {
  grid-column: 1 / span 7;
}

.collection-item-tall {
  grid-column: 9 / -1;
  margin-top: 7rem;
}

.collection-item-wide {
  grid-column: 2 / span 5;
}

.collection-item-square {
  grid-column: 8 / span 5;
  margin-top: -1.5rem;
}

.collection-item-large .art-slot {
  aspect-ratio: 4 / 3;
}

.collection-item-large .media-frame {
  aspect-ratio: 4 / 3;
}

.collection-item-tall .art-slot {
  aspect-ratio: 3 / 4;
}

.collection-item-tall .media-frame {
  aspect-ratio: 3 / 4;
}

.collection-item-wide .art-slot {
  aspect-ratio: 16 / 10;
}

.collection-item-wide .media-frame {
  aspect-ratio: 16 / 10;
}

.collection-item-square .art-slot {
  aspect-ratio: 1;
}

.collection-item-square .media-frame {
  aspect-ratio: 1;
}

.collection-copy {
  display: grid;
  grid-template-columns: 2.8rem 1fr;
  gap: 1rem;
  margin-top: 1.7rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--line-gold);
}

.collection-number {
  padding-top: .5rem;
  color: var(--antique-gold);
  font-size: .64rem;
  letter-spacing: .12em;
}

.collection-copy h3 {
  margin-bottom: .8rem;
}

.collection-copy p {
  max-width: 30rem;
  margin: 0;
  color: #62574f;
  font-size: .93rem;
  line-height: 1.72;
}

/* Material */

.section-dark {
  color: var(--warm-white);
  background: var(--espresso);
}

.material {
  min-height: 58rem;
  overflow: hidden;
}

.material-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
}

.material-copy {
  grid-column: 1 / span 6;
}

.material-copy h2 {
  max-width: 10ch;
}

.material-copy > p:not(.eyebrow) {
  max-width: 35rem;
  margin: 2.2rem 0 0;
  color: rgba(255,253,252,.7);
  font-size: 1.05rem;
  line-height: 1.8;
}

.material-key {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 2.3rem;
  margin-top: 3rem;
  color: rgba(255,253,252,.62);
  font-size: .64rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.material-key span {
  display: flex;
  align-items: center;
  gap: .6rem;
}

.material-key i {
  display: block;
  width: 1.7rem;
  height: 1px;
  background: var(--champagne);
}

.material-visual {
  position: relative;
  grid-column: 8 / -1;
  padding: 2rem 2.5rem 0 0;
}

.media-frame-material {
  aspect-ratio: 4 / 5;
  border-color: rgba(215,188,120,.35);
  background: #191512;
}

.media-frame-material::after,
.media-frame-dark::after {
  border-color: rgba(215,188,120,.3);
}

.material-note {
  position: absolute;
  right: -3.2rem;
  bottom: 45%;
  color: rgba(255,253,252,.5);
  font-size: .59rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  transform: rotate(90deg);
}

.material-lines {
  position: absolute;
  z-index: 1;
  inset: 0;
  color: var(--champagne);
  opacity: .16;
  pointer-events: none;
}

.material-lines svg {
  width: 100%;
  height: 100%;
}

.material-lines path {
  stroke: currentColor;
  stroke-width: .8;
}

/* Gallery */

.gallery {
  background: var(--warm-white);
}

.gallery-heading h2 {
  max-width: 12ch;
}

.gallery-count {
  grid-column: 10 / -1;
  margin-bottom: .75rem;
  color: var(--taupe);
  font-size: .64rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: auto;
  gap: clamp(2.3rem, 4.5vw, 5rem) clamp(1rem, 2vw, 2rem);
  align-items: start;
}

.gallery-item {
  margin: 0;
}

.gallery-item figcaption {
  margin-top: .8rem;
  color: var(--taupe);
  font-size: .62rem;
  letter-spacing: .13em;
  line-height: 1.5;
  text-transform: uppercase;
}

.gallery-one { grid-column: 1 / span 5; }
.gallery-two { grid-column: 7 / span 3; margin-top: 6rem; }
.gallery-three { grid-column: 10 / -1; margin-top: 1.5rem; }
.gallery-four { grid-column: 1 / span 7; margin-top: 1rem; }
.gallery-five { grid-column: 9 / -1; margin-top: -4rem; }
.gallery-six { grid-column: 3 / span 7; }

.gallery-one .art-slot,
.gallery-five .art-slot { aspect-ratio: 3 / 4; }
.gallery-two .art-slot { aspect-ratio: 1; }
.gallery-three .art-slot { aspect-ratio: 4 / 3; }
.gallery-four .art-slot { aspect-ratio: 16 / 10; }
.gallery-six .art-slot { aspect-ratio: 3 / 2; }

.gallery-one .media-frame,
.gallery-five .media-frame { aspect-ratio: 3 / 4; }
.gallery-two .media-frame { aspect-ratio: 1; }
.gallery-three .media-frame { aspect-ratio: 4 / 3; }
.gallery-four .media-frame { aspect-ratio: 16 / 10; }
.gallery-six .media-frame { aspect-ratio: 3 / 2; }

@media (min-width: 1051px) {
  .collections {
    padding-top: clamp(5.5rem, 6vw, 6rem);
  }

  .collections .section-heading {
    margin-bottom: 2rem;
  }

  .collections .section-heading h2 {
    max-width: 12.5ch;
  }

  .collections .section-aside {
    margin-bottom: 2rem;
  }

  .gallery-grid {
    grid-template-columns: repeat(15, minmax(0, 1fr));
    column-gap: 1.25rem;
  }

  .gallery-one { grid-column: 1 / span 6; }
  .gallery-two { grid-column: 8 / span 4; }
  .gallery-three { grid-column: 12 / -1; }
  .gallery-four { grid-column: 1 / span 9; }
  .gallery-five { grid-column: 11 / -1; }
  .gallery-six { grid-column: 3 / span 9; }
}

/* Commission */

.commission {
  overflow: hidden;
  border-block: 1px solid var(--line-gold);
  background: var(--sand);
}

.commission-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
}

.commission-grid > .eyebrow {
  grid-column: 1 / span 2;
  align-self: start;
}

.commission-grid > div {
  grid-column: 3 / span 7;
}

.commission-grid h2 {
  max-width: 12ch;
}

.commission-grid > div p {
  max-width: 42rem;
  margin: 2rem 0 0;
  color: #5b5048;
  font-size: 1rem;
  line-height: 1.8;
}

.round-link {
  grid-column: 11 / -1;
  display: flex;
  aspect-ratio: 1;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  border: 1px solid var(--antique-gold);
  border-radius: 50%;
  color: var(--espresso);
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.4vw, 1.35rem);
  line-height: 1.15;
  text-align: center;
  transition: color .35s ease, background-color .35s ease, transform .35s var(--ease);
}

.round-link span {
  max-width: 8rem;
}

.round-link i {
  position: absolute;
  align-self: flex-end;
  margin-bottom: .5rem;
  color: var(--antique-gold);
  font-family: var(--font-body);
  font-size: .8rem;
  font-style: normal;
}

.round-link:hover {
  color: var(--warm-white);
  background: var(--espresso);
  transform: rotate(-2deg);
}

.commission-contour {
  position: absolute;
  right: 9%;
  bottom: -65%;
  width: 42rem;
  aspect-ratio: 1;
  border: 1px solid rgba(174,136,67,.25);
  border-radius: 54% 46% 61% 39%;
  transform: rotate(24deg);
}

.commission-contour::before,
.commission-contour::after {
  position: absolute;
  border: 1px solid rgba(174,136,67,.18);
  border-radius: inherit;
  content: "";
}

.commission-contour::before { inset: 2rem; }
.commission-contour::after { inset: 4rem; }

/* About */

.about {
  background: var(--ivory);
}

.about-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
}

.about-visual {
  position: relative;
  grid-column: 1 / span 6;
  padding: 0 2.5rem 2.5rem 0;
}

.about-visual::before {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 64%;
  height: 52%;
  border-right: 1px solid var(--line-gold);
  border-bottom: 1px solid var(--line-gold);
  content: "";
}

.about-visual .media-frame {
  aspect-ratio: 4 / 3;
}

.about-figure {
  position: absolute;
  right: .2rem;
  bottom: .2rem;
  color: var(--antique-gold);
  font-size: .62rem;
  letter-spacing: .17em;
}

.about-copy {
  grid-column: 8 / span 5;
}

.about-copy h2 {
  max-width: 9ch;
}

.about-copy > p:not(.eyebrow) {
  max-width: 36rem;
  margin: 2.2rem 0 0;
  color: #5b5048;
  line-height: 1.82;
}

.about-logo {
  display: block;
  width: min(15rem, 72%);
  height: auto;
  margin-top: 2.4rem;
  opacity: .76;
}

.about-cta {
  margin-top: 1.5rem;
}

/* FAQ */

.faq {
  border-top: 1px solid var(--line-gold);
  background: var(--warm-white);
}

.faq-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: 2rem;
}

.faq-heading {
  position: sticky;
  top: 9rem;
  grid-column: 1 / span 5;
}

.faq-heading h2 {
  max-width: 9ch;
}

.faq-list {
  grid-column: 7 / -1;
  border-top: 1px solid var(--line-gold);
}

.faq-list details {
  border-bottom: 1px solid var(--line-gold);
}

.faq-list summary {
  position: relative;
  padding: 1.7rem 3.5rem 1.7rem 0;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2vw, 1.95rem);
  line-height: 1.2;
  cursor: pointer;
  list-style: none;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::before,
.faq-list summary::after {
  position: absolute;
  top: 50%;
  right: .3rem;
  width: 1.25rem;
  height: 1px;
  background: var(--antique-gold);
  content: "";
  transition: transform .25s var(--ease);
}

.faq-list summary::after {
  transform: rotate(90deg);
}

.faq-list details[open] summary::after {
  transform: rotate(0);
}

.faq-list summary:focus-visible {
  outline-offset: -2px;
}

.faq-list details p {
  max-width: 43rem;
  margin: 0 0 1.8rem;
  padding: .6rem 2.5rem 0 0;
  color: #5b5048;
  line-height: 1.78;
}

/* Artist profile */

.profile-hero {
  position: relative;
  min-height: min(60rem, 100svh);
  padding: clamp(9rem, 14vh, 11rem) 0 clamp(5rem, 9vh, 8rem);
  background:
    radial-gradient(circle at 72% 24%, rgba(215, 188, 120, .14), transparent 26rem),
    linear-gradient(90deg, var(--warm-white) 0 56%, var(--ivory) 56%);
  overflow: hidden;
}

.profile-hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: calc(min(60rem, 100svh) - 18rem);
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
}

.profile-hero-copy {
  grid-column: 1 / span 6;
}

.profile-hero-copy h1 {
  max-width: 10ch;
}

.profile-hero-copy blockquote {
  max-width: 35rem;
  margin: 3rem 0 0;
  padding: 1.5rem 0 0 2.2rem;
  border-top: 1px solid var(--line-gold);
  color: #554a42;
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.25vw, 2.2rem);
  line-height: 1.45;
}

.profile-hero-media {
  grid-column: 8 / -1;
  padding: 0 2.3rem 2.3rem 0;
}

.profile-hero-media .media-frame {
  aspect-ratio: 1;
}

.profile-caption {
  margin: 1rem 0 0;
  color: var(--taupe);
  font-size: .63rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.profile-contours {
  position: absolute;
  z-index: 0;
  top: 9%;
  right: -7rem;
  width: min(54vw, 48rem);
  color: var(--antique-gold);
  opacity: .2;
  pointer-events: none;
}

.profile-contours path {
  stroke: currentColor;
  stroke-width: .8;
}

.profile-story {
  background: var(--warm-white);
}

.profile-story-alt {
  background: var(--ivory);
}

.profile-story-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: 2rem;
}

.profile-story-heading {
  grid-column: 1 / span 4;
}

.profile-story-heading h2 {
  max-width: 8ch;
  font-size: clamp(2.9rem, 4.4vw, 5.2rem);
}

.profile-index {
  margin: 0 0 1.4rem;
  color: var(--antique-gold);
  font-size: .64rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.profile-prose {
  grid-column: 6 / span 6;
  max-width: 70ch;
}

.profile-prose p {
  margin: 0;
  color: #4f453f;
  font-size: clamp(1.02rem, 1.25vw, 1.16rem);
  line-height: 1.88;
}

.profile-prose p + p {
  margin-top: 1.45rem;
}

.profile-media-break {
  position: relative;
  padding-block: var(--section-space);
  overflow: hidden;
}

.profile-media-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: 2rem;
}

.profile-media-copy {
  grid-column: 1 / span 6;
}

.profile-media-statement {
  max-width: 12ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 4.4vw, 5.2rem);
  line-height: 1.1;
}

.profile-media-visual {
  grid-column: 8 / span 4;
  padding-right: 1.8rem;
}

.profile-media-visual .media-frame {
  aspect-ratio: 2 / 3;
}

.media-frame-dark {
  border-color: rgba(215,188,120,.35);
  background: #171311;
}

.profile-gratitude {
  border-block: 1px solid var(--line-gold);
  background: var(--sand);
}

.profile-gratitude-inner {
  max-width: 67rem;
  text-align: center;
}

.profile-gratitude-inner h2 {
  max-width: 12ch;
  margin-inline: auto;
}

.profile-gratitude-inner > p:last-child {
  max-width: 70ch;
  margin: 2.5rem auto 0;
  color: #4f453f;
  font-size: 1.05rem;
  line-height: 1.85;
}

.profile-closing {
  text-align: center;
}

.profile-closing-inner {
  max-width: 71rem;
}

.profile-closing h2 {
  max-width: 12ch;
  margin-inline: auto;
}

.profile-closing h2 + p {
  max-width: 70ch;
  margin: 2.5rem auto 0;
  color: rgba(255,253,252,.72);
  font-size: 1.05rem;
  line-height: 1.85;
}

.profile-signature {
  margin: 2.5rem 0 0;
  color: var(--champagne);
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.5vw, 3.5rem);
  font-style: italic;
}

.profile-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  margin-top: 3.2rem;
}

.button-light {
  color: var(--ink);
  background: var(--champagne);
}

.button-light:hover {
  color: var(--warm-white);
  background: transparent;
}

.text-link-light {
  color: var(--warm-white);
}

/* Contact */

.contact {
  color: var(--warm-white);
  background:
    radial-gradient(circle at 4% 95%, rgba(215,188,120,.16), transparent 25rem),
    var(--ink);
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: 2rem;
}

.contact-intro {
  position: sticky;
  top: 9rem;
  grid-column: 1 / span 5;
}

.contact-intro h2 {
  max-width: none;
  font-size: clamp(3rem, 4.8vw, 5.5rem);
  line-height: .95;
}

.contact-title-line {
  display: block;
  white-space: nowrap;
}

.contact-intro > p:not(.eyebrow) {
  max-width: 32rem;
  margin: 2rem 0 0;
  color: rgba(255,253,252,.74);
  line-height: 1.8;
}

.contact-note {
  max-width: 29rem;
  margin-top: 3.5rem;
  padding: 1.4rem 0 0 3rem;
  border-top: 1px solid rgba(215,188,120,.3);
}

.contact-note span {
  color: var(--champagne);
  font-size: .64rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.contact-note p {
  margin: .55rem 0 0;
  color: rgba(255,253,252,.61);
  font-size: .83rem;
  line-height: 1.65;
}

.contact-details {
  display: grid;
  gap: 1.25rem;
}

.contact-details div + div {
  padding-top: 1.15rem;
  border-top: 1px solid rgba(215,188,120,.18);
}

.contact-details a,
.contact-details p {
  display: block;
  margin: .45rem 0 0;
  color: rgba(255,253,252,.8);
  font-size: .9rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.contact-details a {
  text-decoration: underline;
  text-decoration-color: rgba(215,188,120,.45);
  text-underline-offset: .25em;
}

.contact-form {
  grid-column: 7 / -1;
  padding: clamp(2rem, 4vw, 4rem);
  border: 1px solid rgba(215,188,120,.28);
  background: linear-gradient(145deg, rgba(255,253,252,.055), rgba(255,253,252,.025));
  box-shadow: inset 0 1px rgba(255,253,252,.035);
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.field {
  margin-bottom: 2rem;
}

.field label {
  display: block;
  margin-bottom: .55rem;
  color: rgba(255,253,252,.84);
  font-size: .67rem;
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.field label span {
  color: rgba(255,253,252,.5);
}

.field input,
.field select,
.field textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(255,253,252,.25);
  border-radius: 0;
  color: var(--warm-white);
  background: transparent;
  outline: 0;
  transition: border-color .2s ease, background-color .2s ease;
}

.field input,
.field select {
  min-height: 3rem;
}

.field textarea {
  min-height: 8rem;
  padding-block: .75rem;
  resize: vertical;
}

.field select {
  appearance: none;
  padding-right: 2rem;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--champagne) 50%),
    linear-gradient(135deg, var(--champagne) 50%, transparent 50%);
  background-position: calc(100% - 12px) 50%, calc(100% - 7px) 50%;
  background-repeat: no-repeat;
  background-size: 5px 5px;
}

.field select option {
  color: var(--ink);
  background: var(--warm-white);
}

.field input:hover,
.field select:hover,
.field textarea:hover,
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--champagne);
}

.field input:focus-visible,
.field select:focus-visible,
.field textarea:focus-visible {
  outline: 1px solid var(--champagne);
  outline-offset: 4px;
}

.form-actions {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 1.5rem;
  margin-top: .5rem;
}

.privacy-acknowledgement {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: .8rem;
  margin: -.15rem 0 2rem;
}

.privacy-acknowledgement input {
  width: 1.1rem;
  height: 1.1rem;
  margin: .2rem 0 0;
  accent-color: var(--champagne);
}

.privacy-acknowledgement label {
  color: rgba(255,253,252,.76);
  font-size: .82rem;
  line-height: 1.6;
}

.privacy-acknowledgement a {
  color: var(--champagne);
  text-decoration: underline;
  text-underline-offset: .2em;
}

.form-status {
  margin: 0;
  color: var(--champagne);
  font-size: .78rem;
  line-height: 1.55;
}

/* Footer */

.site-footer {
  border-top: 1px solid rgba(215,188,120,.14);
  color: rgba(255,253,252,.72);
  background: var(--espresso);
}

.footer-grid {
  padding-block: 3rem 1.25rem;
}

.footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(28rem, 1fr);
  align-items: end;
  gap: 3rem;
}

.brand-link-footer {
  width: 17rem;
}

.footer-brand p {
  margin: 1.3rem 0 0;
  color: rgba(255,253,252,.58);
  font-size: .73rem;
  letter-spacing: .08em;
}

.footer-business {
  margin-top: 1.35rem;
  color: rgba(255,253,252,.5);
  font-size: .69rem;
  font-style: normal;
  letter-spacing: .035em;
  line-height: 1.75;
}

.footer-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.7rem;
}

.footer-navigation {
  display: grid;
  justify-items: end;
  gap: 1.3rem;
  padding-bottom: .15rem;
}

.footer-nav-legal {
  gap: 1.4rem;
}

.footer-nav-legal a,
.footer-nav-legal button {
  color: rgba(255,253,252,.46);
  font-size: .66rem;
}

.footer-nav a,
.footer-nav button {
  color: rgba(255,253,252,.68);
  transition: color .2s ease;
}

.footer-nav button {
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: .71rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
}

.footer-nav a:hover,
.footer-nav button:hover {
  color: var(--champagne);
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 2.15rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(215,188,120,.17);
}

.copyright {
  margin: 0;
  color: rgba(255,253,252,.48);
  font-size: .64rem;
  letter-spacing: .08em;
}

.footer-credit {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-left: auto;
}

.footer-credit span {
  color: rgba(255,253,252,.52);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.footer-credit img {
  width: 2.68rem;
  height: auto;
}

/* Privacy notice */

.privacy-notice {
  position: fixed;
  z-index: 300;
  right: clamp(1rem, 2.5vw, 2.5rem);
  bottom: clamp(1rem, 2.5vw, 2.5rem);
  display: grid;
  width: min(43rem, calc(100vw - 2rem));
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 1.75rem;
  padding: 1.4rem;
  border: 1px solid rgba(215,188,120,.34);
  color: var(--warm-white);
  background: rgba(36,30,26,.98);
  box-shadow: 0 1.5rem 4rem rgba(24,21,19,.2);
}

.privacy-notice[hidden] {
  display: none;
}

.privacy-notice h2 {
  font-size: 1.65rem;
}

.privacy-notice p {
  max-width: 45rem;
  margin: .65rem 0 0;
  color: rgba(255,253,252,.72);
  font-size: .82rem;
  line-height: 1.65;
}

.privacy-notice-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.privacy-notice .text-link {
  color: var(--warm-white);
  white-space: nowrap;
}

/* Legal and utility routes */

.legal-main,
.utility-main {
  min-height: 80svh;
  padding-top: 6rem;
}

.legal-hero {
  padding: clamp(6rem, 10vw, 9rem) 0 clamp(4rem, 7vw, 6rem);
  background:
    radial-gradient(circle at 78% 30%, rgba(215,188,120,.2), transparent 26rem),
    var(--warm-white);
}

.legal-hero h1 {
  max-width: 15ch;
}

.legal-hero-inner > p:last-child {
  max-width: 45rem;
  margin: 2rem 0 0;
  color: #62574f;
  font-size: 1.05rem;
  line-height: 1.8;
}

.legal-layout {
  display: grid;
  grid-template-columns: minmax(14rem, 1fr) minmax(0, 2.5fr);
  gap: clamp(3rem, 7vw, 8rem);
  padding-block: clamp(4.5rem, 8vw, 8rem);
}

.legal-toc {
  position: sticky;
  top: 8rem;
  align-self: start;
  padding: 1.5rem;
  border: 1px solid var(--line-dark);
  background: rgba(255,253,252,.58);
}

.legal-toc ol {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding-left: 1.25rem;
  color: #62574f;
  font-size: .76rem;
  line-height: 1.5;
}

.legal-toc a:hover {
  color: var(--antique-gold);
}

.legal-content {
  max-width: 52rem;
}

.legal-content section {
  scroll-margin-top: 8rem;
  padding-bottom: 3.2rem;
  border-bottom: 1px solid var(--line-dark);
}

.legal-content section + section,
.legal-update {
  padding-top: 3.2rem;
}

.legal-content h2,
.legal-update h2 {
  font-size: clamp(2rem, 3vw, 3rem);
}

.legal-content p,
.legal-update p {
  margin: 1.2rem 0 0;
  color: #554b45;
  line-height: 1.85;
}

.legal-content a {
  color: #7b5a21;
  text-decoration: underline;
  text-underline-offset: .2em;
}

.utility-main {
  display: grid;
  align-items: center;
  padding-block: clamp(7rem, 12vw, 11rem);
  background:
    radial-gradient(circle at 72% 32%, rgba(215,188,120,.16), transparent 26rem),
    var(--ivory);
}

.utility-card {
  display: grid;
  width: min(90vw, 1180px);
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 7rem);
  margin: auto;
}

.utility-art {
  aspect-ratio: 1 / 1;
  border: 1px solid rgba(174,136,67,.3);
  padding: .85rem;
  background: var(--warm-white);
}

.utility-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.utility-copy h1 {
  max-width: 12ch;
}

.utility-copy > p:not(.eyebrow) {
  max-width: 38rem;
  margin: 2rem 0 0;
  color: #62574f;
  line-height: 1.8;
}

.utility-actions {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-top: 2.5rem;
}

/* Motion enhancement */

@media (prefers-reduced-motion: no-preference) {
  html.has-js {
    scroll-behavior: smooth;
  }

  .has-js .hero-copy {
    animation: none;
  }

  .has-js [data-hero-step] {
    animation: hero-step-in .64s both var(--ease);
  }

  .has-js [data-hero-step]:nth-child(1) { animation-delay: .08s; }
  .has-js [data-hero-step]:nth-child(2) { animation-delay: .2s; }
  .has-js [data-hero-step]:nth-child(3) { animation-delay: .38s; }
  .has-js [data-hero-step]:nth-child(4) { animation-delay: .56s; }
  .has-js [data-hero-step]:nth-child(5) { animation-delay: .74s; }

  .has-js .profile-hero-copy {
    animation: hero-copy-in .9s .1s both var(--ease);
  }

  .has-js .hero-visual {
    animation: hero-visual-in 1.05s .2s both var(--ease);
  }

  .has-js .profile-hero-media {
    animation: hero-visual-in 1.05s .2s both var(--ease);
  }

  .has-js .hero-contours,
  .has-js .profile-contours {
    animation: contour-in 1.4s .35s both var(--ease);
  }

  .has-js .glint-periodic .media-glint {
    animation: media-glint-loop 10s 1.2s infinite ease-in-out;
  }

  .has-js .glint-on-load .media-glint {
    animation: media-glint-once 1.25s .75s both ease-out;
  }

  .has-js.reveal-ready [data-reveal] {
    opacity: 0;
    transform: translateY(2.5rem);
    transition: opacity .65s ease, transform .8s var(--ease);
  }

  .has-js.reveal-ready [data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  .has-js .is-visible .glint-on-reveal .media-glint,
  .has-js .glint-on-reveal.is-visible .media-glint {
    animation: media-glint-once 1.25s .22s both ease-out;
  }
}

@keyframes hero-step-in {
  from {
    opacity: 0;
    transform: translateY(1.15rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes hero-copy-in {
  from { opacity: 0; transform: translateY(1.8rem); }
}

@keyframes hero-visual-in {
  from { opacity: 0; transform: translateY(2.5rem) scale(.985); }
}

@keyframes contour-in {
  from { opacity: 0; transform: translateX(3rem); }
}

@keyframes resin-float-a {
  to { transform: rotate(-5deg) translate3d(1.2%, -1.4%, 0); }
}

@keyframes resin-float-b {
  to { transform: rotate(9deg) translate3d(-1%, 1.2%, 0); }
}

@keyframes media-glint-loop {
  0%, 38% { transform: translateX(0) rotate(17deg); opacity: 0; }
  49% { opacity: .34; }
  64%, 100% { transform: translateX(860%) rotate(17deg); opacity: 0; }
}

@keyframes media-glint-once {
  0% { transform: translateX(0) rotate(17deg); opacity: 0; }
  32% { opacity: .28; }
  100% { transform: translateX(860%) rotate(17deg); opacity: 0; }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .collection-item .media-frame,
  .gallery-item .media-frame,
  .about-visual .media-frame,
  .profile-hero-media .media-frame,
  .profile-media-visual .media-frame {
    transition: transform .7s var(--ease), border-color .4s ease;
  }

  .collection-item:hover .media-frame,
  .gallery-item:hover .media-frame,
  .about-visual:hover .media-frame,
  .profile-hero-media:hover .media-frame,
  .profile-media-visual:hover .media-frame {
    border-color: rgba(174,136,67,.6);
    transform: translateY(-.35rem);
  }

  .media-frame:hover .media-glint {
    animation: media-glint-once 1.15s both ease-out;
  }
}

/* Responsive */

@media (max-width: 1050px) {
  :root {
    --shell: min(92vw, 1400px);
    --section-space: clamp(6rem, 11vw, 8rem);
  }

  .header-inner {
    grid-template-columns: 1fr auto auto;
    gap: 1.4rem;
  }

  .site-nav {
    gap: 1.25rem;
  }

  .header-cta {
    display: none;
  }

  .hero {
    min-height: auto;
    padding-top: 9rem;
  }

  .hero-grid {
    min-height: auto;
  }

  .hero-copy {
    grid-column: 1 / span 6;
  }

  .hero-visual {
    grid-column: 7 / -1;
  }

  .intro-grid h2 {
    grid-column: 2 / span 6;
  }

  .intro-copy {
    grid-column: 9 / -1;
  }

  .material-copy {
    grid-column: 1 / span 6;
  }

  .material-visual {
    grid-column: 7 / -1;
  }

  .round-link {
    grid-column: 10 / -1;
  }

  .commission-grid > div {
    grid-column: 3 / span 7;
  }

  .contact-form {
    grid-column: 6 / -1;
  }

  .profile-hero-copy {
    grid-column: 1 / span 6;
  }

  .profile-hero-media {
    grid-column: 7 / -1;
  }
}

@media (max-width: 800px) {
  html {
    scroll-padding-top: 5.5rem;
  }

  body.menu-open::after {
    position: fixed;
    z-index: 80;
    inset: 0;
    background: rgba(24,21,19,.28);
    content: "";
  }

  .header-inner {
    min-height: 5.15rem;
    grid-template-columns: 1fr auto;
  }

  .brand-link {
    width: 11.5rem;
  }

  .brand-link-footer {
    width: 15.5rem;
  }

  .menu-toggle {
    position: relative;
    z-index: 102;
    display: none;
    align-items: center;
    gap: .75rem;
    padding: .6rem 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .has-js .menu-toggle {
    display: flex;
  }

  .menu-toggle-label {
    font-size: .65rem;
    font-weight: 650;
    letter-spacing: .14em;
    text-transform: uppercase;
  }

  .menu-toggle-lines {
    display: grid;
    width: 1.6rem;
    gap: .35rem;
  }

  .menu-toggle-lines i {
    display: block;
    width: 100%;
    height: 1px;
    background: var(--ink);
    transition: transform .25s ease;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle-lines i:first-child {
    transform: translateY(3px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle-lines i:last-child {
    transform: translateY(-3px) rotate(-45deg);
  }

  .menu-toggle[aria-expanded="true"] {
    position: fixed;
    top: 1.55rem;
    right: 1.25rem;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .site-nav {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 1rem 1.4rem;
    padding-bottom: 1rem;
  }

  .has-js .site-nav {
    position: fixed;
    z-index: 101;
    top: 0;
    right: 0;
    display: flex;
    width: min(88vw, 27rem);
    height: 100dvh;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 1.6rem;
    padding: 6rem 2.5rem 3rem;
    background: var(--warm-white);
    box-shadow: -20px 0 50px rgba(36,30,26,.12);
    visibility: hidden;
    transform: translateX(105%);
    transition: visibility 0s linear .35s, transform .35s var(--ease);
  }

  .has-js .site-nav.is-open {
    visibility: visible;
    transform: translateX(0);
    transition-delay: 0s;
  }

  .has-js .site-nav a {
    font-family: var(--font-display);
    font-size: clamp(2rem, 8vw, 3.1rem);
    font-weight: 400;
    letter-spacing: -.02em;
    line-height: 1;
    text-transform: none;
  }

  .hero {
    min-height: auto;
    padding: 8.75rem 0 5.5rem;
    background:
      radial-gradient(circle at 70% 47%, rgba(215,188,120,.12), transparent 24rem),
      var(--warm-white);
  }

  .hero-grid {
    display: flex;
    flex-direction: column;
    gap: 4rem;
  }

  .hero-copy,
  .hero-visual {
    width: 100%;
  }

  .hero-copy {
    padding-top: 0;
  }

  h1 {
    max-width: 12ch;
    font-size: clamp(3.4rem, 10.5vw, 5.4rem);
  }

  .hero-lead {
    max-width: 42rem;
  }

  .hero-index {
    margin-top: 3rem;
  }

  .hero-visual {
    width: min(82vw, 32rem);
    align-self: flex-end;
    padding-left: 0;
  }

  .hero-contours {
    top: 47%;
    right: -13rem;
    width: 42rem;
  }

  .scroll-cue {
    display: none;
  }

  .intro-grid {
    grid-template-columns: 3rem 1fr;
  }

  .intro-marker {
    grid-column: 1;
  }

  .intro-grid h2 {
    grid-column: 2;
    font-size: clamp(4rem, 13vw, 7rem);
  }

  .intro-copy {
    grid-column: 2;
    margin-top: 1rem;
  }

  .section-heading {
    display: block;
  }

  .section-aside,
  .gallery-count {
    display: block;
    max-width: 29rem;
    margin: 2rem 0 0;
  }

  .collection-grid {
    gap: 5.5rem 1.5rem;
  }

  .collection-item-large { grid-column: 1 / span 7; }
  .collection-item-tall { grid-column: 8 / -1; margin-top: 5rem; }
  .collection-item-wide { grid-column: 1 / span 6; }
  .collection-item-square { grid-column: 7 / -1; margin-top: 2rem; }

  .material {
    min-height: 0;
  }

  .material-grid {
    display: flex;
    flex-direction: column;
    gap: 4rem;
  }

  .material-copy,
  .material-visual {
    width: 100%;
  }

  .material-copy h2 {
    max-width: 12ch;
  }

  .material-visual {
    width: min(78vw, 32rem);
    align-self: flex-end;
  }

  .gallery-one { grid-column: 1 / span 7; }
  .gallery-two { grid-column: 8 / -1; margin-top: 5rem; }
  .gallery-three { grid-column: 2 / span 5; margin-top: 0; }
  .gallery-four { grid-column: 6 / -1; margin-top: 4rem; }
  .gallery-five { grid-column: 1 / span 5; margin-top: 0; }
  .gallery-six { grid-column: 6 / -1; margin-top: 5rem; }

  .commission-grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .commission-grid > .eyebrow {
    grid-column: 1 / span 2;
  }

  .commission-grid > div {
    grid-column: 3 / -1;
  }

  .round-link {
    grid-column: 6 / -1;
    width: min(14rem, 100%);
    margin-top: 2rem;
  }

  .about-grid {
    display: flex;
    flex-direction: column-reverse;
    gap: 4.5rem;
  }

  .about-visual,
  .about-copy {
    width: 100%;
  }

  .about-visual {
    width: min(88vw, 42rem);
    align-self: flex-start;
  }

  .about-copy h2 {
    max-width: 12ch;
  }

  .faq-grid {
    display: block;
  }

  .faq-heading {
    position: static;
    max-width: 38rem;
    margin-bottom: 4rem;
  }

  .faq-heading h2 {
    max-width: 11ch;
  }

  .profile-hero {
    min-height: auto;
    padding: 8.75rem 0 5.5rem;
  }

  .profile-hero-grid {
    display: flex;
    min-height: auto;
    flex-direction: column;
    gap: 4rem;
  }

  .profile-hero-copy,
  .profile-hero-media {
    width: 100%;
  }

  .profile-hero-media {
    width: min(82vw, 36rem);
    align-self: flex-end;
  }

  .profile-contours {
    top: 42%;
    right: -14rem;
    width: 43rem;
  }

  .profile-story-grid {
    display: block;
  }

  .profile-story-heading {
    max-width: 38rem;
  }

  .profile-prose {
    max-width: 70ch;
    margin-top: 3rem;
  }

  .profile-media-grid {
    display: flex;
    flex-direction: column;
    gap: 4rem;
  }

  .profile-media-copy,
  .profile-media-visual {
    width: 100%;
  }

  .profile-media-visual {
    width: min(75vw, 30rem);
    align-self: flex-end;
  }

  .contact-grid {
    display: block;
  }

  .contact-intro {
    position: static;
    max-width: 42rem;
  }

  .contact-form {
    margin-top: 4rem;
  }

  .legal-layout {
    display: block;
  }

  .legal-toc {
    position: static;
    margin-bottom: 4rem;
  }

  .utility-card {
    grid-template-columns: 1fr;
  }

  .utility-art {
    width: min(72vw, 29rem);
  }

  .privacy-notice {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

@media (max-width: 560px) {
  :root {
    --shell: calc(100vw - 2.5rem);
    --section-space: clamp(4.8rem, 20vw, 6rem);
  }

  .site-header.is-scrolled {
    backdrop-filter: blur(10px);
  }

  .brand-link {
    width: 11.5rem;
  }

  .brand-link-footer {
    width: 13.5rem;
  }

  .hero {
    padding-top: 7.8rem;
  }

  h1 {
    font-size: clamp(3.05rem, 14.2vw, 4.35rem);
  }

  h2 {
    font-size: clamp(2.7rem, 12vw, 4rem);
  }

  h3 {
    font-size: 2.65rem;
  }

  .hero-lead {
    margin-top: 1.65rem;
    font-size: 1rem;
    line-height: 1.68;
  }

  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 1.1rem;
    margin-top: 1.8rem;
  }

  .hero-index {
    align-items: flex-start;
    flex-direction: column;
    gap: .5rem;
    margin-top: 2.5rem;
  }

  .hero-visual {
    width: calc(100% - 1.65rem);
    padding-bottom: 2rem;
  }

  .hero-visual::after {
    right: -.6rem;
    bottom: 5.5rem;
    width: 3.3rem;
    height: 3.3rem;
  }

  .visual-caption {
    max-width: 85%;
    flex-direction: column;
    gap: .35rem;
  }

  .intro-grid {
    display: block;
  }

  .intro-marker {
    margin-bottom: 1.5rem;
  }

  .intro-grid h2 {
    font-size: clamp(4.1rem, 19vw, 5.5rem);
  }

  .intro-copy {
    margin-top: 3rem;
  }

  .intro-copy p {
    font-size: 1.45rem;
  }

  .section-heading {
    margin-bottom: 3.7rem;
  }

  .section-heading h2 {
    max-width: 11ch;
  }

  .collections {
    background: var(--ivory);
  }

  .collection-grid {
    display: flex;
    flex-direction: column;
    gap: 4.7rem;
  }

  .collection-item {
    margin-top: 0;
  }

  .collection-item-tall {
    width: 86%;
    align-self: flex-end;
  }

  .collection-item-wide {
    width: 94%;
  }

  .collection-item-square {
    width: 88%;
    align-self: flex-end;
  }

  .collection-copy {
    grid-template-columns: 2rem 1fr;
  }

  .collection-copy p {
    font-size: .89rem;
  }

  .material-grid {
    gap: 3.2rem;
  }

  .material-copy > p:not(.eyebrow) {
    font-size: .97rem;
  }

  .material-visual {
    width: calc(100% - 1.5rem);
    padding: 0 1.25rem 0 0;
  }

  .material-note {
    right: -3.6rem;
  }

  .gallery-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 3.2rem .85rem;
  }

  .gallery-one { grid-column: 1 / span 5; }
  .gallery-two { grid-column: 3 / -1; margin-top: 0; }
  .gallery-three { grid-column: 1 / span 4; }
  .gallery-four { grid-column: 1 / -1; margin-top: 0; }
  .gallery-five { grid-column: 2 / span 5; }
  .gallery-six { grid-column: 1 / -1; margin-top: 0; }

  .commission-grid {
    display: block;
  }

  .commission-grid > div {
    margin-top: 1.5rem;
  }

  .round-link {
    width: 12.5rem;
    margin: 3rem 0 0 auto;
  }

  .about-grid {
    gap: 3.5rem;
  }

  .about-visual {
    width: 100%;
    padding: 0 1.5rem 1.5rem 0;
  }

  .about-logo {
    width: min(14rem, 68%);
  }

  .faq-heading {
    margin-bottom: 3.2rem;
  }

  .faq-list summary {
    padding: 1.45rem 3rem 1.45rem 0;
    font-size: 1.42rem;
  }

  .faq-list details p {
    padding-right: .5rem;
    font-size: .95rem;
  }

  .profile-hero {
    padding-top: 7.8rem;
  }

  .profile-hero-copy blockquote {
    margin-top: 2.2rem;
    padding-left: 1.35rem;
  }

  .profile-hero-media {
    width: calc(100% - 1.5rem);
    padding: 0 1.2rem 1.2rem 0;
  }

  .profile-prose {
    margin-top: 2.4rem;
  }

  .profile-prose p,
  .profile-gratitude-inner > p:last-child,
  .profile-closing h2 + p {
    font-size: .98rem;
    line-height: 1.78;
  }

  .profile-media-visual {
    width: calc(100% - 3rem);
    padding-right: 1rem;
  }

  .profile-actions {
    align-items: stretch;
    flex-direction: column;
    gap: 1.2rem;
  }

  .profile-actions .button {
    width: 100%;
  }

  .profile-actions .text-link {
    align-self: center;
  }

  .contact-intro h2 {
    max-width: none;
    font-size: clamp(2.55rem, 11.5vw, 3.4rem);
    line-height: .96;
  }

  .contact-note {
    padding-left: 1.5rem;
  }

  .contact-form {
    margin-top: 3rem;
    padding: 2rem 1.25rem;
  }

  .form-row {
    display: block;
  }

  .form-actions {
    grid-template-columns: 1fr;
  }

  .form-actions .button {
    width: 100%;
  }

  .footer-grid {
    padding-block: 2.75rem 1.2rem;
  }

  .footer-top {
    display: block;
  }

  .footer-navigation {
    justify-items: start;
    gap: 1.15rem;
    margin-top: 2.4rem;
  }

  .footer-nav {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 1rem 1.4rem;
  }

  .footer-nav-legal {
    gap: .9rem 1.25rem;
  }

  .footer-bottom {
    flex-wrap: wrap;
    gap: 1rem 2rem;
    margin-top: 2rem;
    padding-top: 1rem;
  }

  .footer-credit img {
    width: 2.5rem;
  }

  .privacy-notice {
    right: .75rem;
    bottom: .75rem;
    width: calc(100vw - 1.5rem);
    gap: 1.1rem;
    padding: 1.1rem;
  }

  .privacy-notice-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .privacy-notice-actions .button,
  .privacy-notice-actions .text-link {
    width: 100%;
    justify-content: center;
  }

  .legal-hero {
    padding-top: 5rem;
  }

  .legal-toc {
    padding: 1.25rem;
  }

  .legal-content section,
  .legal-update {
    padding-block: 2.5rem;
  }

  .legal-content section:first-child {
    padding-top: 0;
  }

  .utility-main {
    padding-top: 8rem;
  }

  .utility-art {
    width: 88%;
    justify-self: end;
  }

  .utility-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .utility-actions .button {
    width: 100%;
  }

  .utility-actions .text-link {
    align-self: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }

  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Branded 404 */

.error-page {
  display: grid;
  width: min(90vw, 1240px);
  min-height: 100svh;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  gap: clamp(2rem, 6vw, 7rem);
  margin: auto;
  padding-block: 4rem;
}

.error-panel h1 {
  max-width: 11ch;
  font-size: clamp(3.2rem, 6vw, 6rem);
}

.error-panel > p:not(.eyebrow) {
  max-width: 34rem;
  margin: 2rem 0;
  color: #62574f;
  line-height: 1.8;
}

.error-panel .brand-link {
  margin-bottom: 4rem;
}

.error-art {
  width: min(100%, 31rem);
  justify-self: end;
}

@media (max-width: 760px) {
  .error-page {
    grid-template-columns: 1fr;
    padding-top: 7rem;
  }

  .error-art {
    width: min(90%, 25rem);
    justify-self: end;
  }

  .error-panel .brand-link {
    margin-bottom: 3rem;
  }
}
