:root {
  color-scheme: dark;
  --ink: #f3ecdc;
  --muted: #a8aaa2;
  --teal: #6ed9cc;
  --brass: #d6a955;
  --night: #07100f;
  --panel: #0d1716;
  --line: rgba(183, 221, 211, 0.16);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--night);
  color: var(--ink);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--night); }
a { color: inherit; }
button { font: inherit; }

.skip-link {
  position: fixed; z-index: 20; top: .75rem; left: .75rem; padding: .7rem 1rem;
  color: #07100f; background: var(--teal); transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

.site-header {
  position: absolute; z-index: 5; inset: 0 0 auto; display: flex; align-items: center;
  justify-content: space-between; min-height: 5rem; padding: 0 5vw;
  border-bottom: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(4,9,9,.9), transparent);
}
.wordmark { font-size: .74rem; font-weight: 900; letter-spacing: .15em; text-decoration: none; text-transform: uppercase; }
.wordmark span { color: var(--teal); }
.site-header nav { display: flex; gap: 1.5rem; }
.site-header nav a, .text-link {
  font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-decoration: none; text-transform: uppercase;
}
.site-header nav a { color: #d7d8d0; }
.site-header a:hover, .site-header a:focus-visible, .text-link:hover, .text-link:focus-visible { color: var(--teal); }

.hero {
  position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(18rem,.8fr) minmax(28rem,1.2fr);
  align-items: end; min-height: min(58rem, 100svh); padding: clamp(8rem,15vh,11rem) 5vw clamp(4rem,8vh,6rem);
  overflow: hidden; background: #08110f;
}
.hero::before {
  position: absolute; z-index: -2; inset: 0; content: "";
  background: linear-gradient(90deg, rgba(5,12,11,.98) 0%, rgba(5,12,11,.81) 42%, rgba(5,12,11,.28) 100%),
    linear-gradient(0deg, #07100f, transparent 40%), url("media/serythos-citadel-kai-hero.png") center/cover;
  filter: saturate(.7); transform: scale(1.02);
}
.hero::after { position: absolute; z-index: -1; inset: 0; content: ""; background: repeating-linear-gradient(0deg, transparent 0 3px, rgba(255,255,255,.018) 4px); }
.hero-copy { position: relative; z-index: 2; max-width: 43rem; }
.eyebrow { margin: 0 0 1rem; color: var(--teal); font-size: .66rem; font-weight: 900; letter-spacing: .19em; text-transform: uppercase; }
h1, h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.055em; }
h1 { max-width: 9ch; font-size: clamp(4rem,8vw,8rem); line-height: .85; }
h2 { font-size: clamp(3rem,6vw,6rem); line-height: .91; }
.hero-lead { max-width: 35rem; margin: 1.7rem 0; color: #d4d0c4; font-size: clamp(1rem,1.5vw,1.2rem); line-height: 1.65; }

.atelier { position: relative; height: min(60vh, 37rem); min-height: 25rem; }
.hero-shirt {
  --shirt: #222624; position: absolute; display: grid; place-items: center; width: 19rem; height: 24rem;
  color: #f0e8d6; background: linear-gradient(100deg, rgba(255,255,255,.07), transparent 35%), var(--shirt);
  clip-path: polygon(26% 0, 40% 7%, 60% 7%, 74% 0, 100% 15%, 87% 37%, 77% 31%, 77% 100%, 23% 100%, 23% 31%, 13% 37%, 0 15%);
  filter: drop-shadow(0 1.8rem 1.4rem rgba(0,0,0,.55)); transform-origin: 50% 100%;
}
.hero-shirt::before { position: absolute; top: 0; width: 5.2rem; height: 3.2rem; border: 2px solid rgba(255,255,255,.18); border-radius: 0 0 50% 50%; content: ""; }
.hero-shirt span { max-width: 9rem; margin-top: -1rem; font-size: .85rem; font-weight: 900; letter-spacing: .1em; line-height: 1.15; text-align: center; }
.hero-shirt--left { bottom: 1rem; left: 2%; --shirt: #d6cbb8; color: #14302d; transform: rotate(-8deg) scale(.78); }
.hero-shirt--center { z-index: 2; bottom: 0; left: 34%; --shirt: #111514; transform: scale(1.03); }
.hero-shirt--right { bottom: 1rem; right: -2%; --shirt: #3a3c37; transform: rotate(8deg) scale(.82); }

.status-line { display: grid; grid-template-columns: repeat(4,1fr); border-block: 1px solid var(--line); }
.status-line div { min-height: 7.5rem; padding: 1.5rem 3vw; border-right: 1px solid var(--line); }
.status-line div:first-child { padding-left: 5vw; }
.status-line span { display: block; margin-bottom: .55rem; color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.status-line strong { font-family: Georgia, serif; font-size: 1.65rem; font-weight: 500; }

.review-intro, .source-note, .release-path { display: grid; grid-template-columns: minmax(15rem,.85fr) minmax(20rem,1.15fr); gap: clamp(3rem,8vw,8rem); padding: clamp(5rem,10vw,9rem) 5vw; }
.review-intro__copy { max-width: 46rem; color: #c9c7bd; font-size: 1rem; line-height: 1.7; }
.truth-note { padding: 1.1rem 1.25rem; border-left: 2px solid var(--brass); background: rgba(214,169,85,.07); }
.truth-note strong { color: var(--brass); }
.mira-note { display: flex; align-items: center; gap: 1rem; margin: 2rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.mira-note img { width: 4.5rem; height: 4.5rem; object-fit: contain; border: 1px solid var(--line); border-radius: 50%; background: #111b19; }
.mira-note figcaption { display: grid; gap: .25rem; }
.mira-note figcaption strong { color: var(--ink); font-family: Georgia, serif; font-size: 1.2rem; }
.mira-note figcaption span { color: var(--teal); font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.polish-review { padding: 0 5vw clamp(6rem,11vw,10rem); }
.polish-review__heading { display: grid; grid-template-columns: minmax(16rem,.75fr) minmax(20rem,1.25fr); gap: 1.5rem clamp(3rem,8vw,8rem); align-items: end; margin-bottom: 2rem; }
.polish-review__heading .eyebrow { grid-column: 1/-1; }
.polish-review__heading > p:not(.eyebrow) { margin: 0; color: #c9c7bd; line-height: 1.7; }
.polish-review__heading .truth-note { grid-column: 1/-1; }
.polish-board-grid { display: grid; gap: 1px; background: var(--line); }
.polish-board { margin: 0; background: var(--panel); }
.polish-board img { display: block; width: 100%; height: auto; }
.polish-board figcaption { display: grid; grid-template-columns: auto 1fr minmax(10rem,auto) auto; align-items: center; gap: 1rem; padding: 1.15rem 1.3rem; border-top: 1px solid var(--line); }
.polish-board figcaption span { color: var(--teal); font-size: .64rem; font-weight: 900; letter-spacing: .13em; }
.polish-board figcaption strong { font-family: Georgia, serif; font-size: 1.2rem; font-weight: 500; }
.polish-board figcaption small { color: var(--muted); font-size: .72rem; }
.decision-badge { padding: .45rem .65rem; border: 1px solid var(--brass); border-radius: 2rem; color: var(--brass); font-size: .58rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.decision-badge--approved { color: var(--teal); border-color: var(--teal); background: rgba(110,217,204,.08); }
.decision-badge--changes { color: #f3b66b; border-color: #a96f34; background: rgba(169,111,52,.12); }
.production-prep { padding: 0 5vw clamp(6rem,11vw,10rem); }
.production-prep__heading { display: grid; grid-template-columns: minmax(16rem,.75fr) minmax(20rem,1.25fr); gap: 1.5rem clamp(3rem,8vw,8rem); align-items: end; margin-bottom: 2rem; }
.production-prep__heading .eyebrow, .production-prep__heading .truth-note { grid-column: 1/-1; }
.production-prep__heading > p:not(.eyebrow) { margin: 0; color: #c9c7bd; line-height: 1.7; }
.production-prep__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--line); }
.production-prep__card { display: flex; flex-direction: column; margin: 0; min-width: 0; background: var(--panel); }
.production-prep__card img { display: block; width: 100%; aspect-ratio: 2/3; object-fit: cover; background: #ebe7dc; }
.production-prep__card figcaption { display: grid; grid-template-columns: auto 1fr; gap: .55rem 1rem; padding: 1.15rem 1.3rem; border-top: 1px solid var(--line); }
.production-prep__card figcaption span { color: var(--teal); font-size: .64rem; font-weight: 900; letter-spacing: .13em; }
.production-prep__card figcaption strong { font-family: Georgia,serif; font-size: 1.05rem; font-weight: 500; }
.production-prep__card figcaption small { grid-column: 1/-1; color: var(--muted); font-size: .72rem; }

.production-candidates { padding: 0 5vw clamp(6rem,11vw,10rem); }
.production-candidates__heading { display: grid; grid-template-columns: minmax(16rem,.75fr) minmax(20rem,1.25fr); gap: clamp(3rem,8vw,8rem); align-items: end; margin-bottom: 2rem; }
.production-candidates__heading > div:last-child { color: #c9c7bd; line-height: 1.7; }
.production-candidates__heading > div:last-child > p:first-child { margin-top: 0; }
.production-candidates__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line); }
.production-candidate { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(16rem,.85fr); min-width: 0; margin: 0; background: var(--panel); }
.production-candidate__art { display: grid; place-items: center; min-height: 42rem; padding: clamp(1rem,3vw,3rem); overflow: hidden; }
.production-candidate--dark .production-candidate__art { background: radial-gradient(circle at 50% 38%, #252c29, #0b0f0e 70%); }
.production-candidate--natural .production-candidate__art { background: radial-gradient(circle at 50% 38%, #f1e4c8, #c8b995 78%); }
.production-candidate__art img { display: block; width: 100%; max-height: 46rem; object-fit: contain; filter: drop-shadow(0 1.4rem 1.2rem rgba(0,0,0,.32)); transition: transform .35s ease; }
.production-candidate:hover .production-candidate__art img { transform: scale(1.018); }
.production-candidate figcaption { display: flex; align-items: flex-start; flex-direction: column; padding: clamp(1.5rem,3vw,2.4rem); border-left: 1px solid var(--line); }
.production-candidate figcaption > span { color: var(--teal); font-size: .62rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.production-candidate figcaption > strong { margin: 1.2rem 0 .85rem; font-family: Georgia,serif; font-size: clamp(1.65rem,2.4vw,2.6rem); font-weight: 500; line-height: 1; }
.production-candidate figcaption > p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.production-candidate dl { width: 100%; margin: auto 0 1.5rem; padding-top: 2rem; }
.production-candidate dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-top: 1px solid var(--line); }
.production-candidate dt { color: var(--muted); font-size: .64rem; letter-spacing: .07em; text-transform: uppercase; }
.production-candidate dd { margin: 0; color: var(--ink); font-size: .72rem; text-align: right; }

.collection { padding: 0 5vw clamp(6rem,11vw,10rem); }
.collection-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-block: 1px solid var(--line); }
.collection-toolbar p { margin: 0; color: var(--muted); font-size: .66rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.filter { padding: .65rem .9rem; border: 1px solid var(--line); border-radius: 2rem; color: #b9bdb5; background: transparent; font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.filter:hover, .filter:focus-visible, .filter.is-active { color: #07100f; border-color: var(--teal); background: var(--teal); }

.candidate-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin-top: 1px; background: var(--line); }
.candidate-card { min-width: 0; background: var(--night); opacity: 0; transform: translateY(1rem); transition: opacity .5s ease, transform .5s ease; }
.candidate-card.is-visible { opacity: 1; transform: none; }
.candidate-card[hidden] { display: none; }
.mockup { position: relative; display: grid; place-items: center; min-height: 31rem; overflow: hidden; background: radial-gradient(circle at 50% 38%, #23322e, #0d1715 58%, #09110f); }
.mockup::after { position: absolute; inset: auto 0 0; height: 30%; content: ""; background: linear-gradient(transparent, rgba(0,0,0,.42)); }
.shirt {
  --shirt-color: #161918; --print: #eee5d2; position: relative; display: grid; place-items: center; width: 72%; aspect-ratio: .78;
  color: var(--print); background: linear-gradient(100deg, rgba(255,255,255,.08), transparent 36%), var(--shirt-color);
  clip-path: polygon(26% 0, 40% 7%, 60% 7%, 74% 0, 100% 15%, 87% 37%, 77% 31%, 77% 100%, 23% 100%, 23% 31%, 13% 37%, 0 15%);
  filter: drop-shadow(0 1.8rem 1rem rgba(0,0,0,.5)); transition: background .2s ease, color .2s ease;
}
.shirt::before { position: absolute; z-index: 2; top: 0; width: 27%; height: 13%; border: 2px solid rgba(255,255,255,.13); border-radius: 0 0 50% 50%; content: ""; }
.shirt[data-color="charcoal"] { --shirt-color: #383a36; }
.shirt[data-color="natural"] { --shirt-color: #d7ccba; --print: #173330; }
.shirt-design { position: relative; display: grid; place-items: center; width: 49%; margin-top: -8%; text-align: center; }
.shirt-design strong { position: relative; z-index: 2; white-space: pre-line; font-size: clamp(.58rem,1vw,.9rem); font-weight: 950; letter-spacing: .06em; line-height: 1.04; }
.family-agents .shirt-design::before { width: 84%; aspect-ratio: 1; border: 2px solid currentColor; content: ""; transform: rotate(45deg); opacity: .4; }
.family-agents .shirt-design strong { position: absolute; padding: .4rem 0; background: var(--shirt-color); }
.family-oracle .shirt-design::before { position: absolute; width: 130%; aspect-ratio: 1; border: 2px solid currentColor; border-radius: 50%; content: ""; opacity: .5; }
.family-oracle .shirt-design::after { position: absolute; width: 145%; height: 38%; border-block: 1px solid currentColor; content: ""; transform: rotate(-12deg); opacity: .5; }
.family-guilds .shirt-design { grid-template-columns: repeat(3,1fr); gap: .3rem; }
.family-guilds .shirt-design::before { grid-column: 1/-1; width: 100%; height: 3.2rem; content: "✦  ◇  ⊙\A △  ⌁  ✣"; white-space: pre; font-size: 1.1rem; line-height: 1.55; letter-spacing: .35rem; opacity: .55; }
.family-guilds .shirt-design strong { grid-column: 1/-1; }

.candidate-copy { padding: 1.5rem 1.5rem 1.8rem; border-top: 1px solid var(--line); }
.candidate-index { display: flex; align-items: center; justify-content: space-between; color: var(--teal); font-size: .62rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.candidate-copy h3 { min-height: 3.1em; margin: 1rem 0 .7rem; font-family: Georgia, serif; font-size: 1.55rem; font-weight: 500; line-height: 1.03; }
.candidate-copy > p { min-height: 4.4em; margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.card-controls { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: 1.3rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.card-controls > span { color: var(--brass); font-size: .58rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.swatches { display: flex; gap: .4rem; }
.swatch { width: 1.45rem; height: 1.45rem; padding: 0; border: 2px solid var(--night); border-radius: 50%; box-shadow: 0 0 0 1px var(--line); cursor: pointer; }
.swatch[data-color="black"] { background: #151817; }
.swatch[data-color="charcoal"] { background: #454742; }
.swatch[data-color="natural"] { background: #d7ccba; }
.swatch[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--teal); }

.source-note { border-block: 1px solid var(--line); background: var(--panel); }
.source-note__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; color: #c4c6bd; line-height: 1.75; }
.source-note__grid p { margin: 0; }
.release-path ol { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--line); }
.release-path li { min-height: 13rem; padding: 1.5rem; background: var(--night); }
.release-path li > span { display: block; margin-bottom: 2.5rem; color: var(--teal); font-size: .66rem; font-weight: 900; letter-spacing: .12em; }
.release-path strong { font-family: Georgia, serif; font-size: 1.35rem; font-weight: 500; }
.release-path li p { color: var(--muted); font-size: .84rem; line-height: 1.5; }
.closing { padding: clamp(6rem,12vw,11rem) 5vw; text-align: center; background: radial-gradient(circle at center, rgba(63,124,115,.16), transparent 45rem); }
.closing h2 { margin-inline: auto; }
.closing .text-link { display: inline-block; margin-top: 2rem; }
footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 2rem 5vw; border-top: 1px solid var(--line); color: var(--muted); font-size: .62rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
footer a { color: var(--teal); }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .atelier { height: 29rem; margin-top: 2rem; }
  .candidate-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-intro, .source-note, .release-path { grid-template-columns: 1fr; }
  .polish-review__heading { grid-template-columns: 1fr; }
  .polish-review__heading .eyebrow, .polish-review__heading .truth-note { grid-column: auto; }
  .production-prep__heading { grid-template-columns: 1fr; }
  .production-prep__heading .eyebrow, .production-prep__heading .truth-note { grid-column: auto; }
  .production-prep__grid { grid-template-columns: 1fr; }
  .production-candidates__heading, .production-candidates__grid { grid-template-columns: 1fr; }
  .production-candidate { grid-template-columns: minmax(0,1.15fr) minmax(15rem,.85fr); }
}

@media (max-width: 620px) {
  .site-header { position: relative; min-height: auto; align-items: flex-start; padding-block: 1rem; background: #07100f; }
  .wordmark span { display: block; margin-top: .3rem; }
  .site-header nav { gap: .7rem; flex-direction: column; align-items: flex-end; }
  .hero { padding-top: 4rem; }
  h1 { font-size: clamp(3.5rem,17vw,5.2rem); }
  .atelier { height: 22rem; min-height: 0; margin-inline: -8vw; }
  .hero-shirt { width: 13rem; height: 17rem; }
  .hero-shirt--left { left: -4%; }
  .hero-shirt--center { left: 29%; }
  .hero-shirt--right { right: -5%; }
  .hero-shirt span { max-width: 7rem; font-size: .62rem; }
  .status-line { grid-template-columns: repeat(2,1fr); }
  .status-line div { min-height: 6rem; padding: 1.1rem 5vw; border-bottom: 1px solid var(--line); }
  .collection-toolbar { align-items: flex-start; flex-direction: column; }
  .filters { justify-content: flex-start; }
  .candidate-grid { grid-template-columns: 1fr; }
  .polish-board figcaption { grid-template-columns: auto 1fr auto; }
  .polish-board figcaption small { grid-column: 1/-1; grid-row: 2; }
  .mockup { min-height: 28rem; }
  .production-candidate { grid-template-columns: 1fr; }
  .production-candidate__art { min-height: 32rem; }
  .production-candidate figcaption { min-height: 28rem; border-top: 1px solid var(--line); border-left: 0; }
  .source-note__grid, .release-path ol { grid-template-columns: 1fr; }
  footer { align-items: flex-start; flex-direction: column; }
}

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