:root{
  --ink:#160410;
  --plum:#3a0e33;
  --orange:#f94500;
  --pink:#fea7ec;
  --magenta:#cb1d86;
  --cream:#fbf6f3;
  --blush:#f5e3f0;
  --lilac:#efe4ee;
  --display:'Anton', 'Archivo', sans-serif;
  --mono:'IBM Plex Mono', monospace;
  --sans:'Archivo', -apple-system, sans-serif;
  --hand:'Caveat', cursive;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{ max-width:1240px; margin:0 auto; padding:0 20px; }
@media (min-width:900px){ .wrap{ padding:0 40px; } }
::selection{ background:var(--orange); color:var(--cream); }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible{
  outline:3px solid var(--orange); outline-offset:2px;
}
.skip-link{
  position:absolute; left:12px; top:-60px; z-index:1000;
  background:var(--cream); color:var(--ink); padding:12px 18px;
  font-family:var(--mono); font-size:12px; text-transform:uppercase;
  border:2px solid var(--ink); transition:top .2s ease;
}
.skip-link:focus{ top:12px; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
  /* The marquee is a purely decorative brand element (scrolling text), not a
     motion trigger — keep it running even for visitors who prefer reduced
     motion, instead of letting the blanket rule above freeze it. This was the
     "marquee doesn't run on mobile" bug: most iPhones ship with Reduce Motion
     on, which silently killed the animation via the rule above. */
  .marquee .track{ animation-duration:26s !important; animation-iteration-count:infinite !important; }
}

/* grain overlay, everywhere */
.grain{
  pointer-events:none; position:fixed; inset:0; z-index:200; opacity:0.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- HEADER ---------- */
header.site{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:16px 20px;
  display:flex; align-items:center; justify-content:space-between;
  transition:background .3s ease, border-color .3s ease;
  border-bottom:2px solid transparent;
}
@media (min-width:900px){ header.site{ padding:20px 40px; } }
header.site.solid{ background:var(--cream); border-color:var(--ink); }
.logo-mark{ font-family:var(--display); font-size:22px; letter-spacing:0.02em; color:var(--cream); transition:color .3s ease; }
header.site.solid .logo-mark{ color:var(--ink); }
.logo-mark .star{ color:var(--orange); }
.nav-links{ display:none; gap:26px; list-style:none; margin:0; padding:0; }
.nav-links a{ font-family:var(--mono); font-size:12.5px; text-transform:uppercase; color:var(--cream); transition:color .3s ease; }
header.site.solid .nav-links a{ color:var(--ink); }
.nav-links a:hover{ color:var(--orange) !important; }
@media (min-width:760px){ .nav-links{ display:flex; } }
.nav-toggle{
  background:none; border:none; cursor:pointer; padding:4px;
  /* Fix: this button has no `position`, so it's painted in normal document
     flow — BELOW any positioned sibling (like the fixed, full-screen mobile
     menu overlay below), regardless of DOM order. That's why the menu
     couldn't be closed: the open overlay sat on top of the hamburger button
     and silently ate every click meant for it. Promoting the button into its
     own stacking context puts it back on top. */
  position:relative; z-index:2;
}
.nav-toggle span{ display:block; width:22px; height:3px; background:var(--cream); margin:5px 0; transition:background .3s ease; }
header.site.solid .nav-toggle span{ background:var(--ink); }
@media (min-width:760px){ .nav-toggle{ display:none; } }
.nav-links.mobile-open{
  display:flex; position:fixed; left:0; right:0; top:0;
  flex-direction:column; gap:0;
  background:var(--ink);
  padding-top:80px;
}
.nav-links.mobile-open a{ padding:20px 24px; border-top:2px solid rgba(255,255,255,0.1); color:var(--cream) !important; font-size:18px; }

/* subpages (no dark hero underneath) — keep the header permanently in its
   "solid" cream state instead of the transparent-over-hero start state */
body.subpage header.site{ background:var(--cream); border-bottom-color:var(--ink); }
body.subpage .logo-mark{ color:var(--ink); }
body.subpage .nav-links a{ color:var(--ink); }
body.subpage .nav-toggle span{ background:var(--ink); }
.subpage-hero{
  padding:150px 0 60px;
  background:var(--ink); color:var(--cream);
}
@media (min-width:900px){ .subpage-hero{ padding:190px 0 70px; } }
.subpage-hero .back-link{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:12px; text-transform:uppercase; color:var(--pink);
  margin-bottom:26px;
}
.subpage-hero .back-link:hover{ color:var(--orange); }
.subpage-hero .eyebrow{ color:var(--pink); }
.subpage-hero .lede{ color:var(--blush); }
.subpage-hero h1.title{
  font-family:var(--display); text-transform:uppercase; color:var(--cream);
  font-size:clamp(38px,8.6vw,88px); line-height:0.92; margin:0 0 22px; max-width:15ch;
}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  background:var(--ink);
  padding-bottom:28px;
}
@media (min-width:900px){ .hero{ padding-bottom:44px; } }
.hero video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(1.2) contrast(1.05);
  opacity:0.75;
}
.hero::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(22,4,16,0.25) 0%, rgba(22,4,16,0.35) 45%, rgba(22,4,16,0.96) 100%);
}
.hero-content{
  position:relative;
  z-index:2;
  padding:120px 16px 0;
  width:100%;
}
@media (min-width:900px){ .hero-content{ padding:150px 40px 0; } }
.hero h1{
  margin:0;
  font-family:var(--display);
  text-transform:uppercase;
  color:var(--cream);
  font-size:clamp(52px,15vw,190px);
  line-height:0.82;
  letter-spacing:-0.01em;
}
.hero h1 .hl{ color:var(--orange); -webkit-text-stroke:0; }
.hero h1 .strike{ position:relative; display:inline-block; color:var(--cream); }
.hero h1 .strike::after{
  content:""; position:absolute; left:-2%; right:-2%; top:46%; height:0.08em;
  background:var(--pink); transform:rotate(-2deg);
}
.hero h1 .group2{ display:block; margin-top:0.2em; }
.hero-row{
  position:relative; z-index:2;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:24px;
  padding:20px 16px 40px;
  border-top:2px solid rgba(255,255,255,0.25);
  margin-top:22px;
}
@media (min-width:900px){ .hero-row{ padding:24px 40px 56px; } }
.hero-cta{ display:flex; gap:12px; flex-wrap:wrap; }
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:16px 26px;
  font-family:var(--mono);
  font-weight:600; font-size:12.5px; letter-spacing:0.04em; text-transform:uppercase;
  border:2px solid var(--cream);
  cursor:pointer;
  transition:transform .15s ease, background .2s ease, color .2s ease;
}
.btn:hover{ transform:translate(-2px,-2px); }
.btn-fill{ background:var(--pink); color:var(--ink); border-color:var(--pink); }
.btn-fill:hover{ background:var(--cream); border-color:var(--cream); color:var(--ink); }
.btn-ghost{ background:transparent; color:var(--cream); }
.btn-ghost:hover{ background:var(--cream); color:var(--ink); }

/* ---------- MARQUEE ---------- */
.marquee{
  background:var(--cream); color:var(--ink);
  overflow:hidden; white-space:nowrap;
  border-top:2px solid var(--ink); border-bottom:2px solid var(--ink);
  padding:12px 0;
  margin-top:8px;
}
.marquee .track{ display:inline-block; animation:scroll-left 26s linear infinite; }
.marquee span{ font-family:var(--display); font-size:clamp(16px,3vw,26px); text-transform:uppercase; padding:0 22px; letter-spacing:0.01em; }
.marquee span.x{ color:var(--orange); -webkit-text-stroke:0; }
@keyframes scroll-left{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------- BIG STATEMENT ---------- */
.statement{
  padding:90px 0 100px;
  text-align:center;
  background:var(--cream);
}
.statement .words{
  font-family:var(--display);
  text-transform:uppercase;
  font-size:clamp(30px,7.4vw,78px);
  line-height:1.02;
  margin:0;
  max-width:17ch;
  margin-inline:auto;
}
.statement .words span{
  display:inline;
  opacity:0.12;
  transition:opacity .5s ease;
}
.statement .words span.in{ opacity:1; }
.statement .words .accent{ color:var(--orange); }
.statement .tag{ font-family:var(--mono); font-size:12px; text-transform:uppercase; color:var(--magenta); margin-top:24px; display:block; letter-spacing:0.06em; }

/* ---------- METHOD TIMELINE (7 steps from the book) ---------- */
.lenses{ position:relative; background:var(--ink); color:var(--cream); }
.lenses .eyebrow{ color:var(--pink); }
.lenses .lede{ color:var(--blush); }

/* desktop: organic flowing line */
.flow-wrap{ position:relative; margin-top:64px; display:none; }
@media (min-width:860px){
  .flow-wrap{ display:block; aspect-ratio:1000/2050; }
}
.flow-wrap svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.flow-dot{
  position:absolute; width:12px; height:12px; border-radius:50%;
  background:var(--pink); transform:translate(-50%,-50%);
  box-shadow:0 0 0 6px var(--ink); z-index:3;
}
.flow-label{ position:absolute; z-index:3; max-width:300px; opacity:0; transform:translateY(12px); transition:opacity .5s ease, transform .5s ease; }
.flow-label.in{ opacity:1; transform:translateY(0); }
.flow-label.right{ text-align:right; }
.flow-label.center{ text-align:center; }
.flow-label .fnum{ font-family:var(--sans); font-style:italic; font-weight:700; color:var(--pink); font-size:16px; display:block; margin-bottom:6px; }
.flow-label h4{ font-family:var(--sans); font-weight:800; font-size:16px; margin:0 0 8px; letter-spacing:0.01em; }
.flow-label p{ font-size:13px; line-height:1.6; color:var(--blush); margin:0; }
.flow-label .note{ font-family:var(--hand); color:var(--pink); font-size:19px; display:block; margin-top:8px; transform:rotate(-2deg); }

/* mobile: simple stacked list */
.flow-mobile{ position:relative; margin-top:48px; }
@media (min-width:860px){ .flow-mobile{ display:none; } }
.fm-step{ position:relative; padding:0 0 40px 32px; border-left:2px solid var(--pink); }
.fm-step:last-child{ padding-bottom:0; }
.fm-step::before{
  content:""; position:absolute; left:-7px; top:2px; width:12px; height:12px;
  border-radius:50%; background:var(--pink); box-shadow:0 0 0 6px var(--ink);
}
.fm-step .fnum{ font-family:var(--sans); font-style:italic; font-weight:700; color:var(--pink); font-size:15px; }
.fm-step h4{ font-family:var(--sans); font-weight:800; font-size:17px; margin:6px 0 8px; }
.fm-step p{ font-size:14px; line-height:1.6; color:var(--blush); margin:0; }
.fm-step .note{ font-family:var(--hand); color:var(--pink); font-size:19px; display:block; margin-top:8px; transform:rotate(-2deg); }

/* ---------- FULL-BLEED INTERSTITIAL ---------- */
.interstitial{
  position:relative;
  min-height:70vh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:var(--ink);
}
.interstitial img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(0.4) contrast(1.1);
  opacity:0.55;
}
.interstitial::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(22,4,16,0.5), rgba(22,4,16,0.85));
}
.interstitial .star-mark{
  position:absolute; z-index:2; top:10%; right:8%;
  font-family:var(--display); font-size:clamp(40px,7vw,90px); color:var(--orange);
  transform:rotate(12deg);
}
.interstitial blockquote{
  position:relative; z-index:2;
  margin:0; padding:0 24px;
  text-align:center;
  font-family:var(--display);
  text-transform:uppercase;
  font-size:clamp(28px,6vw,64px);
  line-height:1.05;
  color:var(--cream);
  max-width:17ch;
}
.interstitial .cite{
  position:relative; z-index:2;
  display:block;
  font-family:var(--mono);
  font-size:12px;
  text-transform:uppercase;
  color:var(--pink);
  margin-top:26px;
  text-align:center;
}

/* ---------- SECTION SHELL ---------- */
section{ padding:80px 0; }
@media (min-width:900px){ section{ padding:130px 0; } }
.eyebrow{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:12px; text-transform:uppercase; color:var(--magenta);
  margin-bottom:18px; font-weight:600;
}
.star{ color:var(--orange); }
h2.title{
  font-family:var(--display); text-transform:uppercase;
  font-size:clamp(38px,8.6vw,88px);
  line-height:0.92;
  margin:0 0 22px;
  max-width:15ch;
}
.lede{ font-size:17px; line-height:1.7; max-width:58ch; font-weight:500; }

/* ---------- CREDIBILITY (sources subpage) ---------- */
#credibility{ background:var(--ink); color:var(--cream); }
#credibility .eyebrow{ color:var(--pink); }
#credibility .lede{ color:var(--blush); }
.sources-list{
  display:grid; grid-template-columns:1fr; gap:0;
  margin-top:48px; border-top:2px solid rgba(255,255,255,0.2);
}
@media (min-width:800px){ .sources-list{ grid-template-columns:1fr 1fr; } }
.source-item{
  display:flex; gap:16px; padding:22px 0;
  border-bottom:2px solid rgba(255,255,255,0.2);
}
@media (min-width:800px){ .source-item:nth-child(odd){ padding-right:32px; border-right:2px solid rgba(255,255,255,0.2); } .source-item:nth-child(even){ padding-left:32px; } }
.source-item .n{ font-family:var(--display); font-size:22px; color:var(--orange); flex-shrink:0; width:34px; }
.source-item h4{ margin:0 0 4px; font-family:var(--sans); font-weight:800; font-size:14.5px; text-transform:uppercase; letter-spacing:0.01em; }
.source-item p{ margin:0; font-size:13.5px; line-height:1.55; color:var(--blush); }
.cred-byline{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:36px;
}
.cred-byline span{ font-family:var(--mono); font-size:11px; text-transform:uppercase; border:2px solid var(--cream); padding:7px 14px; }

/* ---------- PRINCIPLES (why-it-works subpage) ---------- */
.principles{ display:grid; grid-template-columns:1fr; gap:2px; margin-top:48px; background:var(--ink); border:2px solid var(--ink); position:relative; }
@media (min-width:700px){ .principles{ grid-template-columns:1fr 1fr; } }
.pcard{ padding:34px; position:relative; }
.pcard .tag-num{ font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.04em; opacity:0.75; }
.pcard h3{ font-family:var(--display); text-transform:uppercase; font-size:26px; margin:18px 0 12px; line-height:1.02; }
.pcard p{ font-size:14.5px; line-height:1.65; margin:0; font-weight:500; }
.pcard.p1{ background:var(--ink); color:var(--cream); }
.pcard.p2{ background:var(--cream); color:var(--ink); }
.pcard.p3{ background:var(--ink); color:var(--cream); }
.pcard.p4{ background:var(--cream); color:var(--ink); }
.pcard .note{
  font-family:var(--hand); color:var(--magenta); font-size:20px; line-height:1;
  position:absolute; bottom:18px; right:22px; transform:rotate(-3deg);
}

/* ---------- BOOK ---------- */
.book-block{ display:grid; grid-template-columns:1fr; gap:36px; margin-top:48px; }
@media (min-width:860px){ .book-block{ grid-template-columns:1fr 1fr; align-items:center; } }
.book-photo{ position:relative; border:3px solid var(--ink); overflow:hidden; aspect-ratio:2/3; transform:rotate(1deg); background:var(--ink); display:flex; align-items:center; justify-content:center; }
.book-photo img{ width:100%; height:100%; object-fit:contain; }
.book-photo .tag{
  position:absolute; bottom:16px; left:16px;
  font-family:var(--mono); font-size:11px; text-transform:uppercase; color:var(--ink);
  background:var(--cream); border:2px solid var(--ink); padding:6px 12px;
}
.quote-block{ border-left:6px solid var(--orange); padding-left:22px; margin:0 0 26px; }
.quote-block p{ font-family:var(--display); text-transform:uppercase; font-size:clamp(20px,2.8vw,30px); line-height:1.15; margin:0; }
.book-copy p.body{ font-size:16.5px; line-height:1.75; margin:0 0 22px; max-width:58ch; font-weight:500; }
.book-list{ list-style:none; padding:0; margin:0 0 28px; }
.book-list li{ font-size:14.5px; padding:10px 0; border-top:2px solid var(--ink); font-weight:700; font-family:var(--mono); text-transform:uppercase; }
.book-list li:first-child{ border-top:none; }
.cta-row{ display:flex; gap:14px; flex-wrap:wrap; }
.btn-dark{ background:var(--ink); color:var(--cream); border:2px solid var(--ink); }
.btn-dark:hover{ background:var(--orange); border-color:var(--orange); color:var(--ink); }
.btn-outline{ background:transparent; color:var(--ink); border:2px solid var(--ink); }
.btn-outline:hover{ background:var(--ink); color:var(--cream); }

/* ---------- JOIN ---------- */
.join-panel{
  border:3px solid var(--ink); padding:36px 22px;
  background:var(--ink); color:var(--cream); text-align:center;
}
@media (min-width:700px){ .join-panel{ padding:70px; } }
.join-panel h2{ color:var(--cream); }
.join-panel .eyebrow{ color:var(--pink); }
.join-panel .lede{ color:var(--blush); margin:0 auto 34px; }
form.join-form{ max-width:460px; margin:0 auto; display:flex; flex-direction:column; gap:14px; text-align:left; }
.field-row{ display:flex; gap:12px; flex-wrap:wrap; }
.field-row .field{ flex:1; min-width:140px; }
.field label{ display:block; font-family:var(--mono); font-size:11px; text-transform:uppercase; margin-bottom:6px; color:var(--blush); }
.field input[type=text], .field input[type=email]{
  width:100%; padding:14px; background:var(--cream);
  border:2px solid var(--cream);
  font-family:var(--sans); font-weight:700; font-size:14.5px; color:var(--ink);
}
.field input:focus{ outline:3px solid var(--orange); }
.checkbox-row{ display:flex; align-items:flex-start; gap:10px; margin:4px 0; }
.checkbox-row label{ font-family:var(--sans); font-size:13px; color:var(--blush); font-weight:400; }
.join-form button{
  padding:18px; border:2px solid var(--cream);
  background:var(--pink); color:var(--ink);
  font-family:var(--display); text-transform:uppercase; font-size:15px;
  cursor:pointer; margin-top:8px; letter-spacing:0.02em;
}
.join-form button:hover{ background:var(--cream); }
.form-note{ font-family:var(--mono); font-size:11px; color:var(--blush); margin-top:18px; text-align:center; text-transform:uppercase; }

/* ---------- ABOUT ---------- */
.about-block{ display:grid; grid-template-columns:1fr; gap:36px; margin-top:40px; }
@media (min-width:860px){ .about-block{ grid-template-columns:340px 1fr; align-items:start; } }
.about-photo{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5;
  border:3px solid var(--ink);
  transform:rotate(-1.5deg);
}
.about-photo img{ width:100%; height:100%; object-fit:cover; }
.about-photo .tag{
  position:absolute; bottom:14px; left:14px;
  font-family:var(--mono); font-size:10.5px; text-transform:uppercase; color:var(--ink);
  background:var(--cream); border:2px solid var(--ink); padding:6px 12px;
}
.about-big{
  font-family:var(--display); text-transform:uppercase;
  font-size:clamp(26px,4.2vw,42px);
  line-height:1.12;
  max-width:19ch;
  margin:0 0 28px;
}
.about-big .accent{ color:var(--orange); }
.about-copy p{ font-size:16.5px; line-height:1.75; margin:0 0 16px; max-width:58ch; font-weight:500; }
.id-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.id-tags span{ font-family:var(--mono); font-size:11px; text-transform:uppercase; border:2px solid var(--ink); padding:7px 14px; }

/* ---------- COOKIE BANNER ---------- */
.cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:500;
  max-width:520px; margin:0 auto;
  background:var(--ink); color:var(--cream);
  border:2px solid var(--cream); padding:20px 22px;
  display:flex; flex-direction:column; gap:14px;
}
.cookie-banner[hidden]{ display:none; }
.cookie-banner p{ font-size:13px; line-height:1.55; margin:0; color:var(--blush); }
.cookie-banner .row{ display:flex; gap:10px; flex-wrap:wrap; }
.cookie-banner button{
  font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.03em;
  padding:10px 16px; cursor:pointer; border:2px solid var(--cream);
}
.cookie-accept{ background:var(--pink); color:var(--ink); }
.cookie-decline{ background:transparent; color:var(--cream); }

/* ---------- LEGAL MODAL ---------- */
.legal-modal{
  position:fixed; inset:0; z-index:600; background:rgba(22,4,16,0.72);
  display:flex; align-items:flex-start; justify-content:center;
  padding:40px 16px; overflow-y:auto;
}
.legal-modal[hidden]{ display:none; }
.legal-panel{
  background:var(--cream); color:var(--ink); border:2px solid var(--ink);
  max-width:640px; width:100%; padding:36px 28px; position:relative;
}
.legal-panel h3{ font-family:var(--display); text-transform:uppercase; font-size:28px; margin:0 0 16px; }
.legal-panel h4{ font-family:var(--sans); font-weight:800; font-size:15px; margin:22px 0 8px; }
.legal-panel p, .legal-panel li{ font-size:14px; line-height:1.65; margin:0 0 10px; }
.legal-panel .close-legal{
  position:absolute; top:18px; right:18px; background:none; border:none; cursor:pointer;
  font-family:var(--display); font-size:22px; line-height:1; color:var(--ink);
}
.legal-panel .note{ font-family:var(--mono); font-size:11px; text-transform:uppercase; color:var(--magenta); margin-top:20px; display:block; }

.legal-content{ max-width:640px; }
.legal-content h4{ font-family:var(--sans); font-weight:800; font-size:16px; margin:32px 0 8px; }
.legal-content h4:first-child{ margin-top:0; }
.legal-content p{ font-size:15px; line-height:1.65; margin:0 0 10px; }
.legal-content .note{ font-family:var(--mono); font-size:11px; text-transform:uppercase; color:var(--magenta); margin-top:28px; display:block; }

/* ---------- EXCERPT MODAL ---------- */
.excerpt-panel{
  background:var(--ink); color:var(--cream); border:2px solid var(--cream);
  max-width:680px; width:100%; padding:40px 30px; position:relative;
}
@media (min-width:700px){ .excerpt-panel{ padding:52px 56px; } }
.excerpt-panel .close-legal{ color:var(--cream); }
.excerpt-eyebrow{ font-family:var(--mono); font-size:11px; text-transform:uppercase; color:var(--pink); letter-spacing:0.06em; margin-bottom:6px; display:block; }
.excerpt-panel h3{ font-family:var(--display); text-transform:uppercase; font-size:clamp(26px,5vw,38px); line-height:1.05; margin:0 0 8px; }
.excerpt-kicker{ font-family:var(--sans); font-style:italic; font-weight:700; color:var(--pink); font-size:15px; margin:0 0 28px; }
.excerpt-body h4{ font-family:var(--sans); font-weight:800; font-size:15px; text-transform:uppercase; letter-spacing:0.01em; color:var(--pink); margin:26px 0 10px; }
.excerpt-body h4:first-child{ margin-top:0; }
.excerpt-body p{ font-size:15px; line-height:1.75; color:var(--blush); margin:0 0 14px; font-weight:500; }
.excerpt-more{
  margin-top:30px; padding-top:24px; border-top:2px solid rgba(255,255,255,0.2);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px;
}
.excerpt-more span{ font-family:var(--mono); font-size:11px; text-transform:uppercase; color:var(--blush); letter-spacing:0.03em; }

/* ---------- FOOTER ---------- */
footer.site{ border-top:2px solid var(--ink); padding:38px 0; background:var(--cream); }
.footer-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-family:var(--mono); font-size:12px; text-transform:uppercase; }
.footer-links{ display:flex; gap:16px; flex-wrap:wrap; }
.footer-links button, .footer-links a{ background:none; border:none; padding:0; font:inherit; text-transform:uppercase; cursor:pointer; text-decoration:underline; color:var(--ink); }
