/* ============================================================
   Halle Eavelyn, iteration 10: NAVY, CREAM, HER GOLD
   Group stylesheet for the show wing: /media-kit/, /books/, /interview/
   Navy #17135C, cream #FBFAF5, and the gold from her own site
   (#ED941C). Engraved like a
   certificate, warmed like a temple wall. No drop shadows anywhere;
   depth comes from borders, surface shifts, and the night bands.
   ============================================================ */

/* her own handwriting face, self-hosted from her site's asset set */
@font-face {
  font-family: "Amsterdam One";
  src: url("/assets/fonts/amsterdamone.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Forever Soulmates";
  src: url("/assets/fonts/foreversoulmates.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root{
  --cream:#FBFAF5;
  --alabaster:#FBFAF5;
  --wash:#F4F1E7;
  --night:#17135C;
  --night-2:#17135C;
  --violet:#17135C;
  --peri-deep:#17135C;
  --ink:#17135C;
  --body-c:#17135C;
  --muted:#6B675C;
  --gold:#ED941C;
  --gold-light:#ED941C;
  --gold-ink:#98651D;
  --gold-ink-2:#98651D; /* AA on wash (5.31:1) */
  --gold-rule:rgba(237, 148, 28, .5);
  --hairline:rgba(23, 19, 92, .16);
  --hairline-d:rgba(251, 250, 245, .18);
  --font-display:"Cormorant Infant", Georgia, serif;
  --font-body:"Source Serif 4", Georgia, serif;
  --font-ui:"Archivo", -apple-system, "Segoe UI", sans-serif;
  --font-script:"Amsterdam One", "Forever Soulmates", cursive;
  --peri:#17135C;
  --wrap:1160px;
  --ease:cubic-bezier(.22,.61,.36,1);
  /* navy banding: concentric gold rings at 5.5% opacity,
     bleeding off the corners of night bands only */
  --bands:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='880'%20height='880'%3E%3Cg%20fill='none'%20stroke='%23ED941C'%20stroke-opacity='.055'%20stroke-width='1.2'%3E%3Ccircle%20cx='440'%20cy='440'%20r='52'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='66'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='96'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='128'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='142'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='184'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='222'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='238'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='284'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='322'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='338'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='392'/%3E%3Ccircle%20cx='440'%20cy='440'%20r='430'/%3E%3C/g%3E%3C/svg%3E");
}

/* darker violet and gold ink on the wash band so small text
   holds AA (verified 4.82:1 and 5.31:1) */
.band-trav{ --muted:#6B675C; --gold-ink:var(--gold-ink-2); }
.band-trav .kicker{ color:var(--gold-ink-2); }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; background:var(--cream); }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.72;
  color:var(--body-c);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img{ max-width:100%; height:auto; display:block; }
[id]{ scroll-margin-top:88px; }
p{ margin:0 0 1em; }
ul,ol{ margin:0; padding:0; list-style:none; }
a{ color:var(--peri-deep); }
:focus-visible{ outline:3px solid var(--peri-deep); outline-offset:3px; }
.night :focus-visible{ outline-color:var(--gold-light); }
.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(1.15rem,4vw,2rem); }
.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; }

.skip-link{
  position:absolute; left:1rem; top:-4rem; z-index:100;
  background:var(--night); color:var(--gold-light);
  font-family:var(--font-ui); font-size:.78rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; text-decoration:none;
  padding:.8rem 1.2rem; border-radius:0 0 2px 2px;
  transition:top .2s ease;
}
.skip-link:focus{ top:0; }

/* ---------- shared voice ---------- */
.kicker{
  font-family:var(--font-ui);
  font-size:.72rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-ink);
  display:flex; align-items:center; gap:.75rem;
  margin:0 0 1.1rem;
}
.kicker::before{ content:""; width:26px; height:1px; background:var(--gold-ink); flex:none; }
.night .kicker{ color:var(--gold-light); }
.ceremony .kicker{ justify-content:center; }
.ceremony .kicker::after{ content:""; width:26px; height:1px; background:var(--gold-ink); flex:none; }

h1,h2,h3{ font-family:var(--font-display); color:var(--ink); margin:0 0 .5em; }
/* accent words: Forever Soulmates, the handwriting face from Halle's own
   site (her request 2), never a rewrite of the words themselves */
.accent-i,.script{
  font-family:var(--font-script);
  font-style:normal; font-weight:400;
  font-size:1.15em; line-height:1.4;
  display:inline-block;
  padding:.06em .14em .2em .06em; word-spacing:.1em;
  color:var(--peri-deep);
}
.night .accent-i,.night .script{ color:var(--gold-light); }

.btn{
  display:inline-block;
  font-family:var(--font-ui); font-size:.78rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  text-decoration:none; text-align:center;
  padding:1rem 1.9rem;
  border-radius:2px;
  border:1px solid transparent;
  background:none; cursor:pointer;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.btn-gold{ background:var(--gold); color:var(--night); }
.btn-gold:hover{ background:#C97815; }
.btn-ghost{ border-color:rgba(23, 19, 92, .45); color:var(--violet); }
.btn-ghost:hover{ border-color:var(--violet); background:rgba(23, 19, 92, .05); }
.btn-ghost-light{ border-color:rgba(237, 148, 28, .55); color:var(--gold-light); }
.btn-ghost-light:hover{ border-color:var(--gold-light); background:rgba(237, 148, 28, .08); }
.btn-sm{ padding:.7rem 1.25rem; }
.btn-lg{ padding:1.15rem 2.4rem; }
.btn-block{ display:block; width:100%; }

.cta-link{
  font-family:var(--font-ui); font-size:.76rem; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase;
  color:var(--gold-ink); text-decoration:none;
  border-bottom:1px solid var(--gold-rule);
  padding-bottom:.3rem;
  transition:color .2s ease, border-color .2s ease;
}
.cta-link:hover{ color:var(--violet); border-color:var(--violet); }
.night .cta-link{ color:var(--gold-light); }
.night .cta-link:hover{ color:#FBFAF5; border-color:#FBFAF5; }

/* the ledger rule: double hairline between light sections,
   the certificate and banknote cue */
.rule-double{
  height:5px; border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline);
  max-width:var(--wrap); margin:0 auto;
}

/* gold lozenge, worn like a jewel */
.lz{ color:var(--gold-ink); font-size:.55em; vertical-align:.22em; }
.dot{
  display:inline-block; width:5px; height:5px; flex:none;
  background:var(--gold-ink); transform:rotate(45deg);
  margin:0 .35rem; vertical-align:middle;
}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:var(--cream);
  border-bottom:1px solid var(--hairline);
  transition:border-color .25s ease;
}
.site-header.scrolled{ border-bottom-color:rgba(23, 19, 92, .32); }
.header-in{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding-block:1.05rem;
}
.wordmark{
  font-family:var(--font-display);
  font-weight:500; font-size:1.02rem;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; white-space:nowrap;
}
.wordmark span{ color:var(--gold-ink); }
.nav{ display:flex; align-items:center; gap:1.7rem; margin-left:auto; }
.nav a{
  font-family:var(--font-ui); font-size:.72rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--body-c); text-decoration:none;
  padding-bottom:.25rem; border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.nav a:hover{ color:var(--violet); border-color:var(--gold-ink); }
.nav a[aria-current="page"]{ color:var(--violet); border-bottom-color:var(--gold-ink); }
.nav .nav-more{ display:none; }
.header-actions{ display:flex; align-items:center; gap:.7rem; flex:none; }
.hq-s{ display:none; }
.nav-toggle{
  display:none;
  width:42px; height:42px; padding:0;
  align-items:center; justify-content:center;
  background:none; border:1px solid var(--hairline); border-radius:2px;
  color:var(--ink); cursor:pointer;
}

/* ---------- page hero (light) ---------- */
.page-hero{ padding-block:clamp(3.2rem,6.5vw,5.5rem) clamp(3rem,6vw,5rem); }
.page-title{
  font-size:clamp(2.35rem,4.8vw,3.7rem);
  font-weight:500; line-height:1.08; letter-spacing:-0.01em;
  max-width:22ch;
  margin:0 0 1.2rem;
}
.page-hero-sub{ max-width:38rem; font-size:1.1rem; margin-bottom:1.1em; }
.page-hero-sub strong{ color:var(--ink); font-weight:600; }
.page-hero-ctas{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.9rem; }

/* ---------- night bands ---------- */
.night{
  background-color:var(--night);
  background-image:var(--bands), var(--bands), linear-gradient(180deg, var(--night-2), var(--night) 40%);
  background-repeat:no-repeat, no-repeat, no-repeat;
  background-position:-300px -340px, calc(100% + 320px) calc(100% + 340px), 0 0;
  background-size:880px 880px, 880px 880px, cover;
  color:#FBFAF5;
}
.night h1,.night h2,.night h3{ color:#FBFAF5; }
.night p{ color:#DDD9CC; }
.band{ padding-block:clamp(4rem,8vw,6.75rem); }
.ceremony{ text-align:center; }

/* ---------- sections ---------- */
.section{ padding-block:clamp(4rem,8vw,6.5rem); }
.sec-head{ max-width:46rem; margin-bottom:clamp(2.2rem,4.6vw,3.4rem); }
.sec-head h2{ font-size:clamp(1.95rem,3.6vw,2.85rem); font-weight:500; line-height:1.12; }
.sec-sub{ font-size:1.05rem; color:var(--body-c); margin:0; }

.label{
  font-family:var(--font-ui); font-size:.68rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
}
.night .label, .night p.label{ color:#C9C4B4; }

/* ============================================================
   WEALTHIER / MEDIA KIT
   ============================================================ */

/* ---------- episode zero: the trailer plate ---------- */
.zero-grid{
  display:grid; grid-template-columns:.9fr 1.1fr;
  gap:clamp(2.5rem,5vw,4.5rem); align-items:center;
}
.plate{
  background:var(--night-2);
  border:1px solid var(--hairline-d);
  border-radius:2px;
  padding:14px;
}
.plate-in{
  position:relative;
  aspect-ratio:16/10;
  border:1px solid rgba(237, 148, 28, .55);
  border-radius:1px;
  display:grid; place-items:center;
}
.plate-disc{
  position:relative;
  width:76px; height:76px; border-radius:999px;
  border:1px solid var(--gold-light);
  display:grid; place-items:center;
  color:var(--gold-light);
}
.plate-disc::before{
  content:""; position:absolute; inset:-14px;
  border:1px solid var(--hairline-d); border-radius:999px;
}
.plate-disc svg{ width:24px; height:24px; margin-left:3px; }
.plate-label{ text-align:center; margin:1rem 0 .2rem; }
.zero-body h2{ font-size:clamp(1.85rem,3.4vw,2.6rem); font-weight:500; line-height:1.14; }
.zero-p{ max-width:33rem; }
.zero-fact{ margin:1.6rem 0 0; }
.zero-cta{ margin-top:2rem; }

/* ---------- the seasons: a ruled register ---------- */
.szn-list{
  border-top:1px solid var(--gold-ink);
  border-bottom:1px solid var(--hairline);
}
.szn-row{
  display:grid;
  grid-template-columns:4.2rem 13rem minmax(0,1fr);
  gap:1.4rem 2.2rem;
  padding:1.7rem 0 1.8rem;
  border-top:1px solid var(--hairline);
}
.szn-row:first-child{ border-top:0; }
.szn-num{
  font-family:var(--font-display); font-weight:500;
  font-size:2.1rem; line-height:1; color:var(--gold-ink);
}
.szn-num::after{
  content:""; display:block; width:22px; height:1px;
  background:var(--gold-rule); margin-top:.8rem;
}
.szn-mark{ display:flex; flex-direction:column; align-items:flex-start; gap:.6rem; padding-top:.3rem; }
.chip{
  font-family:var(--font-ui); font-size:.62rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
  border:1px solid var(--hairline); border-radius:2px;
  padding:.28rem .6rem;
}
.chip-live{
  background:var(--violet); border-color:var(--violet);
  color:var(--gold-light);
}
.szn-stage{ font-size:1.28rem; font-weight:600; margin:0 0 .35em; }
.szn-pillar{ font-size:.98rem; margin:0; max-width:40rem; }

/* ---------- the conversation (wash band) ---------- */
.band-trav{ background:var(--wash); }
.talk-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(2rem,4vw,3.5rem);
}
.talk-item{
  display:flex; gap:.9rem; align-items:baseline;
  border-top:1px solid rgba(23, 19, 92, .2);
  padding:1.15rem 0 1.05rem;
}
.talk-item .lz{ font-size:.6rem; flex:none; }
.talk-item p{ margin:0; font-size:1rem; }
.talk-item strong{ color:var(--ink); font-weight:600; }

/* ---------- the stats: a colonnade of proof ---------- */
.stat-grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--hairline); border-top:2px solid var(--gold-ink);
  background:var(--alabaster);
}
.stat-cell{
  margin:0; padding:1.9rem 1.5rem 2rem;
  border-left:1px solid var(--hairline);
  display:flex; flex-direction:column; gap:.55rem;
}
.stat-cell:first-child{ border-left:0; }
.stat-val{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(1.7rem,2.4vw,2.3rem); line-height:1.1;
  color:var(--gold-ink); letter-spacing:.01em;
}
.stat-label{
  font-family:var(--font-ui); font-size:.68rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}

/* ---------- featured in: the certificate grid ---------- */
.press-grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid var(--hairline); border-top:2px solid var(--gold-ink);
  background:var(--alabaster);
}
.press-grid li{
  display:flex; align-items:center; justify-content:center;
  min-height:104px; padding:1.4rem 1rem;
  border-left:1px solid var(--hairline);
  border-top:1px solid var(--hairline);
}
.press-grid li:nth-child(3n+1){ border-left:0; }
.press-grid li:nth-child(-n+3){ border-top:0; }
/* her real press logos, trimmed and optically normalized: stacked marks
   run taller, wide wordmarks shorter, so every mark carries the same
   visual weight. Full color, as the networks print them (her request 5,
   applied to the pressroom grid as well as the home row). */
.press-logo{
  display:block; width:auto; height:calc(var(--h) * 1px);
}
.pl-nbc{ --h:50; }
.pl-abc{ --h:47.5; }
.pl-gma{ --h:45; }
.pl-fortune{ --h:40; }
.pl-fox{ --h:35; }
.pl-cw{ --h:35; }
.pl-time{ --h:32.5; }
.pl-guardian{ --h:27.5; }
.pl-usatoday{ --h:27.5; }
.press-sub{ margin:2.4rem 0 .2rem; }
.feat-list{ border-top:1px solid var(--hairline); margin-top:.8rem; }
.feat-list li{
  display:flex; align-items:center; flex-wrap:wrap; gap:.15rem .35rem;
  padding:.85rem 0;
  border-bottom:1px solid var(--hairline);
  font-size:.98rem;
}
.feat-list strong{ color:var(--ink); font-weight:600; }

/* ---------- cards: alabaster, hairline, gold rule on hover ---------- */
.lux-card{
  position:relative;
  background:var(--alabaster);
  border:1px solid var(--hairline);
  border-radius:2px;
  transition:border-color .25s ease;
}
.lux-card::before{
  content:""; position:absolute; top:-1px; left:-1px; height:2px; width:0;
  background:var(--gold);
  transition:width .4s var(--ease);
}
.lux-card:hover{ border-color:rgba(23, 19, 92, .34); }
.lux-card:hover::before{ width:calc(100% + 2px); }

/* ---------- podcasts ---------- */
.pod-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; }
.pod-card{ padding:2.1rem 1.9rem; }
.pod-glyph{
  display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; border:1px solid var(--gold-rule); border-radius:2px;
  color:var(--peri-deep); margin-bottom:1.3rem;
}
.pod-glyph svg{ width:22px; height:22px; }
.pod-kicker{
  font-family:var(--font-ui); font-size:.66rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold-ink);
  margin:0 0 .5rem;
}
.pod-card h3{ font-size:1.22rem; font-weight:600; margin-bottom:.35em; }
.pod-ep{ font-size:.95rem; color:var(--muted); margin:0; }

/* ---------- bios ---------- */
.bio-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; }
.bio-card{ padding:2.1rem 1.9rem; display:flex; flex-direction:column; }
.bio-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
  margin-bottom:1.1rem; padding-bottom:1.1rem;
  border-bottom:1px solid var(--hairline);
}
.bio-kicker{
  font-family:var(--font-ui); font-size:.66rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold-ink);
  margin:0 0 .4rem;
}
.bio-head h3{ font-size:1.22rem; font-weight:600; margin:0; }
.copy-btn{
  display:inline-flex; align-items:center; gap:.45rem; flex:none;
  font-family:var(--font-ui); font-size:.68rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--violet);
  background:none; border:1px solid rgba(23, 19, 92, .45); border-radius:2px;
  padding:.5rem .85rem; cursor:pointer;
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}
.copy-btn:hover{ border-color:var(--violet); background:rgba(23, 19, 92, .05); }
.copy-btn svg{ width:14px; height:14px; }
.copy-btn.copied{ color:var(--peri-deep); border-color:var(--peri-deep); }
.bio-text{ margin:0; font-size:.99rem; }

/* ---------- headshots and downloads ---------- */
.shot-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; }
.shot-card{ margin:0; }
.shot-photo{ position:relative; }
.shot-photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; object-position:50% 18%; }
/* rectangular photos carry a 1px keyline inset, hairline green on light */
.shot-photo::after{
  content:""; position:absolute; inset:11px;
  border:1px solid rgba(253, 255, 247, .55);
  pointer-events:none;
}
.shot-meta{
  display:flex; align-items:center; flex-wrap:wrap; gap:.3rem 1.1rem;
  padding:1.15rem 1.4rem 1.25rem;
  border-top:1px solid var(--hairline);
}
.shot-name{
  font-family:var(--font-ui); font-size:.74rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink);
}
.shot-file{
  font-family:var(--font-ui); font-size:.68rem; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.dl-link{
  margin-left:auto;
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--font-ui); font-size:.7rem; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase;
  color:var(--gold-ink); text-decoration:none;
  border-bottom:1px solid var(--gold-rule); padding-bottom:.2rem;
  transition:color .2s ease, border-color .2s ease;
}
.dl-link:hover{ color:var(--violet); border-color:var(--violet); }
.dl-link svg{ width:13px; height:13px; }

/* ============================================================
   BOOKS
   ============================================================ */

.flagship-grid{
  display:grid; grid-template-columns:.94fr 1.06fr;
  gap:clamp(2.5rem,5vw,4.5rem); align-items:center;
}
.flagship-art{
  position:relative;
  background:var(--night-2);
  border:1px solid var(--hairline-d); border-radius:2px;
  padding:clamp(1.6rem,3.4vw,2.8rem);
}
.flagship-art::after{
  content:""; position:absolute; inset:11px;
  border:1px solid rgba(237, 148, 28, .5); border-radius:1px;
  pointer-events:none;
}
.flagship-body h2{
  font-size:clamp(2rem,3.8vw,2.95rem); font-weight:500; line-height:1.1;
}
.flagship-sub{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:1.2rem; color:var(--gold-light);
  margin:-.4rem 0 1.3rem;
}
.badges{
  display:flex; flex-wrap:wrap; gap:.6rem;
  margin:0 0 1.5rem;
}
.badges li{
  font-family:var(--font-ui); font-size:.64rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-light);
  border:1px solid rgba(237, 148, 28, .45); border-radius:2px;
  padding:.34rem .7rem;
}
.flagship-body .desc{ max-width:32rem; }
.flagship-ctas{ margin-top:1.9rem; }

/* the shelf */
.shelf-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.4rem; }
.book-card{ padding:1.9rem 1.7rem 2rem; display:flex; flex-direction:column; align-items:flex-start; }
.book-cover{
  align-self:stretch;
  background:var(--wash);
  border:1px solid var(--hairline); border-radius:2px;
  height:236px;
  display:flex; align-items:center; justify-content:center;
  padding:1.1rem;
  margin-bottom:1.5rem;
}
.book-cover > img{ max-height:100%; width:auto; }
.book-card h3{ font-size:1.3rem; font-weight:600; margin-bottom:.2em; }
.book-tag{
  font-family:var(--font-ui); font-size:.66rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold-ink);
  margin:0 0 .9rem;
}
.book-desc{ font-size:.97rem; flex:1; }
.book-quote{ color:var(--ink); }

/* Red Goddess Rising: the real Amazon cover art sits on top (.rg-real); if it
   ever fails to load, the composite built from her Egypt photography stays
   underneath as the fallback, re-dressed in the navy identity */
.rg-cover{
  position:relative;
  height:100%;
  aspect-ratio:600/956;
  border-radius:2px;
  overflow:hidden;
}
.rg-cover img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
}
.rg-cover .rg-real{ z-index:3; }
.rg-cover::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(185deg, rgba(20, 5, 102, .16), rgba(20, 5, 102, .86) 80%);
}
.rg-text{
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; justify-content:flex-end; align-items:center;
  text-align:center; padding:.9rem .7rem;
}
.rg-text::before{
  content:""; position:absolute; inset:7px;
  border:1px solid rgba(237, 148, 28, .5); border-radius:1px;
  pointer-events:none;
}
.rg-script{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  color:var(--gold-light);
  font-size:1.18rem; line-height:1.3; padding:0 .1em .15em;
}
.rg-title{
  font-family:var(--font-ui); color:#FBFAF5;
  font-weight:700; font-size:.78rem;
  letter-spacing:.3em; text-transform:uppercase;
}
.rg-author{
  margin:.55rem 0 .25rem;
  font-family:var(--font-ui); font-size:.5rem; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase;
  color:rgba(253, 255, 247, .85);
}

/* ============================================================
   INTERVIEW / BE A GUEST
   ============================================================ */

.iv-grid{
  display:grid; grid-template-columns:1.02fr .98fr;
  gap:clamp(2.5rem,5vw,4.5rem); align-items:start;
}
.form-card{
  background:var(--alabaster);
  border:1px solid var(--hairline); border-top:2px solid var(--gold-ink);
  border-radius:2px;
  padding:clamp(1.8rem,3.4vw,2.6rem);
}
.form-card-head h2{ font-size:clamp(1.6rem,2.6vw,2.05rem); font-weight:500; margin-bottom:.25em; }
.form-card-head p{ color:var(--muted); font-size:.98rem; margin-bottom:1.9rem; }
.field{ margin-bottom:1.5rem; }
.field label{
  display:block;
  font-family:var(--font-ui); font-size:.7rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
  margin-bottom:.45rem;
}
.field .opt{ color:var(--muted); font-weight:500; letter-spacing:.08em; text-transform:none; }
.field input,
.field select,
.field textarea{
  display:block; width:100%;
  font-family:var(--font-body); font-size:1rem; color:var(--ink);
  background:transparent;
  border:0; border-bottom:1px solid rgba(23, 19, 92, .38);
  border-radius:0;
  padding:.55rem 1px .6rem;
  transition:border-color .2s ease;
}
.field textarea{ resize:vertical; min-height:96px; line-height:1.6; }
.field input:focus,
.field select:focus,
.field textarea:focus{ border-bottom-color:var(--peri-deep); }
.form-card .btn{ margin-top:.4rem; }

.form-success{
  background:var(--alabaster);
  border:1px solid var(--hairline); border-top:2px solid var(--gold-ink);
  border-radius:2px;
  padding:clamp(2.2rem,4vw,3rem);
  text-align:center;
}
.form-success:focus{ outline:none; }
.form-success-glyph{
  display:inline-flex; align-items:center; justify-content:center;
  width:52px; height:52px;
  border:1px solid var(--gold-rule); border-radius:999px;
  color:var(--peri-deep); margin-bottom:1.1rem;
}
.form-success h3{ font-size:1.5rem; font-weight:500; margin-bottom:.4em; }
.form-success p{ margin:0 0 .6em; }
.form-success .form-demo-note{
  font-family:var(--font-ui); font-size:.7rem; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
  margin:1.4rem 0 0;
}

.iv-why h2{ font-size:clamp(1.85rem,3.2vw,2.5rem); font-weight:500; line-height:1.14; }
.iv-points{ margin-top:1.9rem; border-top:1px solid var(--hairline); }
.iv-points li{
  padding:1.15rem 0 1.2rem;
  border-bottom:1px solid var(--hairline);
  font-size:1rem;
}
.iv-points strong{ color:var(--ink); font-weight:600; }

/* ============================================================
   FINAL CTA CEREMONY + FOOTER
   ============================================================ */

.final-title{
  font-size:clamp(2rem,4vw,3rem); font-weight:500; line-height:1.16;
  max-width:24ch; margin-inline:auto;
}
.final-sub{ max-width:34rem; margin:.4rem auto 0; }
.final-cta{ margin-top:2.1rem; }
.final-meta{
  font-family:var(--font-ui); font-size:.7rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  margin:2.4rem 0 0;
}
.night .final-meta{ color:#C9C4B4; }
.night .final-meta a{ color:var(--gold-light); text-decoration:none; border-bottom:1px solid var(--gold-rule); padding-bottom:.15rem; }
.night .final-meta a:hover{ color:#FBFAF5; border-color:#FBFAF5; }

.site-footer{ background:var(--cream); }
.footer-in{
  padding-block:2.8rem 2.4rem;
  display:flex; flex-direction:column; align-items:center; gap:1.3rem;
  text-align:center;
}
.footer-nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:.9rem 1.6rem; }
.footer-nav a{
  font-family:var(--font-ui); font-size:.68rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--body-c); text-decoration:none;
  padding-bottom:.2rem; border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.footer-nav a:hover{ color:var(--violet); border-color:var(--gold-ink); }
.footer-nav a[aria-current="page"]{ color:var(--violet); border-bottom-color:var(--gold-ink); }
.footer-copy{
  font-family:var(--font-ui); font-size:.68rem; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); margin:0; max-width:46rem;
}

/* ============================================================
   MOTION: visible by default, choreographed when .anim is present
   ============================================================ */

/* hero entrance: the hidden state lives only inside the keyframe
   (backwards fill covers the stagger delay), never in static CSS,
   so any static render shows the hero */
.hi{ opacity:1; }
.anim .hi{
  --hi-from:translateY(20px);
  animation:heroIn .9s var(--ease) var(--d, 0s) backwards;
}
@keyframes heroIn{
  from{ opacity:0; transform:var(--hi-from, translateY(20px)); }
}

/* scroll reveal: app.js adds .rv-in; a pure-CSS failsafe fades
   everything in after 3s even if the script never runs */
.rv{ opacity:0; animation:rvFail .5s ease 3s forwards; }
.rv-up{ --rv-from:translateY(26px); }
.rv-fade{ --rv-from:none; }
.rv-scale{ --rv-from:scale(.96); }
.rv-in{
  opacity:1;
  animation:rvIn .8s var(--ease) var(--rvd, 0s) backwards;
}
@keyframes rvIn{
  from{ opacity:0; transform:var(--rv-from, none); }
}
@keyframes rvFail{ to{ opacity:1; } }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    transition-delay:0s !important;
  }
  .hi,.anim .hi{ opacity:1; transform:none; animation:none; }
  .rv,.rv-in{ opacity:1; transform:none; animation:none; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width:980px){
  .zero-grid,.flagship-grid,.iv-grid{ grid-template-columns:1fr; }
  .zero-media{ order:2; }
  .flagship-art{ order:2; max-width:520px; }
  .shelf-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .szn-row{ grid-template-columns:3.4rem minmax(0,1fr); }
  .szn-mark{ grid-column:2; flex-direction:row; align-items:center; flex-wrap:wrap; gap:.5rem .8rem; padding-top:.15rem; }
  .szn-body{ grid-column:2; }
  .szn-row{ row-gap:.9rem; }
}

@media (max-width:760px){
  .nav{
    position:absolute; top:100%; left:0; right:0;
    display:none; flex-direction:column; align-items:stretch; gap:0;
    background:var(--alabaster);
    border-bottom:1px solid var(--hairline);
    padding:.4rem 1.15rem 1rem;
    margin:0;
  }
  .nav.open{ display:flex; }
  .nav a{ padding:.85rem 0; font-size:.8rem; border-bottom:1px solid var(--hairline); }
  .nav a:last-child{ border-bottom-color:transparent; }
  .nav a[aria-current="page"]{ border-bottom-color:var(--gold-ink); }
  .nav .nav-more{ display:block; }
  .nav-toggle{ display:inline-flex; }
  .wordmark{ font-size:.9rem; letter-spacing:.16em; }
  .hq-l{ display:none; }
  .hq-s{ display:inline; }
  .header-quiz{ padding:.62rem .95rem; }

  .pod-grid,.bio-grid,.shot-grid{ grid-template-columns:1fr; }
  .stat-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat-cell{ border-top:1px solid var(--hairline); }
  .stat-cell:nth-child(-n+2){ border-top:0; }
  .stat-cell:nth-child(odd){ border-left:0; }
  .stat-cell:nth-child(even){ border-left:1px solid var(--hairline); }
  .talk-grid{ grid-template-columns:1fr; }
  .shelf-grid{ grid-template-columns:1fr; }
  .bio-head{ flex-wrap:wrap; }
}

@media (max-width:480px){
  .press-grid li{ min-height:84px; padding:1rem .5rem; }
  .press-logo{ height:calc(var(--h) * .68px); }
  .szn-row{ grid-template-columns:minmax(0,1fr); }
  .szn-num{ grid-column:1; }
  .szn-mark,.szn-body{ grid-column:1; }
  .shot-meta{ padding:1rem 1.1rem 1.1rem; }
  .dl-link{ margin-left:0; }
  .page-hero-ctas .btn{ flex:1 1 auto; }
}

/* ============================================================
   PRINT
   ============================================================ */
@media print{
  .skip-link,.nav,.nav-toggle,.header-actions{ display:none !important; }
  .site-header{ position:static; }
  .hi,.rv,.rv-in{ opacity:1 !important; transform:none !important; animation:none !important; }
  .night{ background:#fff !important; color:#111; }
  .night h1,.night h2,.night h3{ color:#111; }
  .night p{ color:#222; }
  .night .kicker,.night .accent-i{ color:#98651D; }
  .night .label,.night p.label,.night .final-meta{ color:#444; }
  .btn{ border:1px solid #333; color:#111; background:none; }
  a{ color:#111; }
}

/* the Sphinx frame: keep Halle inside the 4/3 crop */
.shot-photo img[src*="sphinx"]{ object-position:50% 58%; }

/* the media & speaking page: keynote register + capture form reuse */
.keynote{ margin:0 0 2.6rem; padding-top:1.6rem; border-top:1px solid var(--gold-rule); }
.keynote:last-child{ margin-bottom:0; }
.keynote h3{ font-size:1.7rem; margin-bottom:.7rem; }
.gift-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2.5rem,5.5vw,5rem); align-items:start; }
@media (max-width:980px){ .gift-grid{ grid-template-columns:1fr; } }
.gift-form{ background:var(--alabaster); border:1px solid var(--hairline); border-top:2px solid var(--gold-ink); padding:clamp(1.6rem,3.5vw,2.4rem); }
.form-card-head{ margin-bottom:1.5rem; }
.form-card-head h3{ font-size:1.5rem; margin-bottom:.35rem; }
.form-card-head p{ color:var(--muted); font-size:.94rem; margin:0; }
.field{ margin-bottom:1.35rem; text-align:left; }
.field label{ display:block; font-family:var(--font-ui); font-size:.7rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--body-c); margin-bottom:.35rem; }
.field input{ width:100%; font:inherit; color:var(--ink); background:transparent; border:0; border-bottom:1px solid rgba(23,19,92,.42); border-radius:0; padding:.5rem .1rem .55rem; }
.field input:focus{ outline:none; border-bottom:2px solid var(--peri-deep); padding-bottom:calc(.55rem - 1px); }
.form-fine{ font-size:.85rem; color:var(--muted); margin:1rem 0 0; }
.form-success{ background:var(--alabaster); border:1px solid var(--hairline); border-top:2px solid var(--gold-ink); padding:2rem 1.8rem; text-align:left; }
.form-success-glyph{ display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border:1px solid var(--gold-rule); border-radius:2px; color:var(--peri-deep); margin-bottom:1rem; }
.form-success h3{ font-size:1.5rem; margin-bottom:.4rem; }
.form-success .form-demo-note{ font-size:.85rem; color:var(--muted); margin:.9rem 0 0; }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
