/* ============================================================
   OPTION C — "Signal"
   Bright, high-contrast, graphic. Fraunces at display optical size
   for headlines ONLY — never body copy, which is what made the last
   attempt read as a document. General Sans carries all prose.
   One full-bleed magenta band so the accent lands once, hard.
   ============================================================ */

:root{
  --s-bright: #FFFFFF;
  --s-base:   #FCFBF9;
  --s-alt:    #F4F2EE;
  --s-deep:   #E9E5DF;

  --ink:      #141316;
  --ink-2:    #4A474F;
  --ink-3:    #6E6A73;

  --acc:      #EC3B8B;
  --acc-text: #C9166B;   /* 4.98:1 on this surface */
  --acc-deep: #A81155;
  --on-acc:   #FFFFFF;

  --line:     color-mix(in oklch, var(--ink) 10%, transparent);
  --line-2:   color-mix(in oklch, var(--ink) 6%, transparent);
  --line-3:   color-mix(in oklch, var(--ink) 18%, transparent);

  --disp: 'Fraunces', Georgia, serif;
  --sans: 'General Sans', system-ui, -apple-system, sans-serif;

  --t-caption: .75rem;
  --t-small:   clamp(.8125rem, .2vw + .78rem, .875rem);
  --t-body:    clamp(1rem, .25vw + .95rem, 1.0625rem);
  --t-lede:    clamp(1.1875rem, .7vw + 1rem, 1.375rem);
  --t-h4:      clamp(1.0625rem, .35vw + 1rem, 1.1875rem);
  --t-h3:      clamp(1.3125rem, 1vw + 1.05rem, 1.625rem);
  --t-h2:      clamp(1.875rem, 3.8vw + .7rem, 2.75rem);
  --t-h1:      clamp(2.625rem, 7.6vw + .5rem, 5rem);

  --m-prose: 35ch;
  --m-lede:  34ch;
  --m-sub:   34ch;
  --m-disp:  15ch;

  --gap-section: clamp(80px, 14vw, 144px);
  --pad-x: max(clamp(20px, 5vw, 48px), env(safe-area-inset-left, 0px));
  --container: 1064px;
  --r-sm: 6px; --r-md: 12px; --r-lg: 20px; --r-full: 999px;

  --sh-media: 0 4px 12px color-mix(in oklch, var(--ink) 11%, transparent);
  --sh-md: 0 0 0 1px color-mix(in oklch, var(--ink) 9%, transparent),
           0 2px 4px color-mix(in oklch, var(--ink) 4%, transparent),
           0 6px 12px color-mix(in oklch, var(--ink) 5%, transparent);
  --sh-lg: 0 0 0 1px color-mix(in oklch, var(--ink) 10%, transparent),
           0 2px 4px color-mix(in oklch, var(--ink) 3%, transparent),
           0 10px 16px color-mix(in oklch, var(--ink) 5%, transparent),
           0 36px 56px color-mix(in oklch, var(--ink) 4%, transparent);
  --sh-acc: 0 8px 22px color-mix(in srgb, var(--acc) 26%, transparent);

  --e-out: cubic-bezier(.16,1,.3,1);
  --e-io:  cubic-bezier(.4,0,.2,1);
  --d-fast: .15s; --d-mid: .2s; --d-slow: .3s;
}
@media (min-width:600px){:root{--m-prose:45ch}}
@media (min-width:800px){:root{--m-prose:62ch}}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;
  scrollbar-color:var(--line-3) transparent;scrollbar-width:thin}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  padding-bottom:116px;
  background:var(--s-base);color:var(--ink);
  font-family:var(--sans);font-size:var(--t-body);line-height:1.62;
  overflow-x:clip;hyphens:auto;hyphenate-limit-chars:8 4 4;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.amount,.proofrow b{hyphens:manual}
img{display:block;max-width:100%;height:auto}
a{color:var(--acc-text);text-underline-offset:2px}
::selection{background:var(--acc);color:#fff}
:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 35%,transparent),0 0 0 1px var(--acc)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--pad-x);top:8px;background:var(--s-bright);padding:10px 14px;border-radius:var(--r-md);z-index:60}

/* Fraunces only ever appears at display optical size, never in prose */
h1,h2,h3{font-family:var(--disp);line-height:1.02;font-weight:600;
  font-variation-settings:'opsz' 120,'SOFT' 40,'WONK' 0}
h1{font-size:var(--t-h1);letter-spacing:-.036em;max-width:var(--m-disp);text-wrap:balance}
h2{font-size:var(--t-h2);letter-spacing:-.028em;line-height:1.06;max-width:24ch;text-wrap:balance}
h3{font-size:var(--t-h3);letter-spacing:-.018em;line-height:1.18;
  font-variation-settings:'opsz' 60,'SOFT' 30,'WONK' 0}
.lede{font-size:var(--t-lede);line-height:1.5;color:var(--ink-2);max-width:var(--m-lede)}
p{max-width:var(--m-prose)}
.micro{font-size:var(--t-caption);color:var(--ink-3);line-height:1.5;max-width:44ch}
.d-only{display:none}
@media (min-width:700px){.d-only{display:block}.m-only{display:none}}

main{max-width:var(--container);margin-inline:auto;padding-inline:var(--pad-x)}
section{padding-block:calc(var(--gap-section)/2);position:relative}
section+section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--line) 12%,var(--line) 88%,transparent)}
.eyebrow{font-size:var(--t-small);font-weight:500;color:var(--ink-3);
  display:flex;align-items:center;gap:8px;margin-bottom:10px}
.eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--acc);flex:none}
.shead{margin-bottom:clamp(24px,3vw,40px)}
.shead .lede{margin-top:12px}
.count{font-size:var(--t-small);color:var(--ink-3);margin-top:10px;font-variant-numeric:tabular-nums}

.nav{max-width:var(--container);margin-inline:auto;
  padding:18px var(--pad-x);display:flex;align-items:center;gap:clamp(12px,3vw,32px)}
.brand{font-family:var(--sans);font-weight:600;font-size:1rem;letter-spacing:-.02em;
  color:var(--ink);text-decoration:none;margin-right:auto}
.brand span{color:var(--acc-text)}
.navlinks{display:none;gap:24px}
.navlinks a{color:var(--ink-2);text-decoration:none;font-size:var(--t-small);font-weight:500}
@media (hover:hover) and (pointer:fine){.navlinks a:hover{color:var(--ink)}}
@media (min-width:860px){.navlinks{display:flex}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:56px;padding:0 28px;border-radius:var(--r-sm);
  background:var(--ink);color:#fff;
  font-family:var(--sans);font-weight:600;font-size:1rem;letter-spacing:-.008em;
  text-decoration:none;
  transition:transform var(--d-mid) var(--e-out),background var(--d-mid) var(--e-out)}
@media (hover:hover) and (pointer:fine){.btn:hover{background:var(--acc-text);transform:translateY(-2px)}}
.btn:active{transform:translateY(0)}
.btn-sm{min-height:44px;padding:0 18px;font-size:var(--t-small)}
.btn-lg{min-height:58px;padding:0 32px}
.btn-block{width:100%}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:56px;
  padding:0 22px;border-radius:var(--r-sm);background:transparent;
  border:1.5px solid var(--ink);color:var(--ink);
  font-family:var(--sans);font-weight:600;font-size:1rem;text-decoration:none;
  transition:background var(--d-fast) var(--e-io),color var(--d-fast) var(--e-io)}
@media (hover:hover) and (pointer:fine){.btn-ghost:hover{background:var(--ink);color:#fff}}
.ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center}
.midcta{display:flex;justify-content:center;margin-top:clamp(28px,4vw,44px)}
.final{text-align:center}
.final h2,.final .lede{margin-inline:auto}
.final .micro{margin-inline:auto;text-align:center}

.tagchip{display:inline-flex;align-items:center;gap:9px;font-size:var(--t-small);
  color:var(--ink-2);font-weight:500;background:var(--s-bright);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:7px 14px;max-width:none}
.dot{width:7px;height:7px;border-radius:50%;background:var(--acc);flex:none}

.hero{display:grid;gap:clamp(30px,4vw,56px);grid-template-columns:minmax(0,1fr);
  grid-template-areas:"copy" "card";padding-top:clamp(20px,3vw,40px)}
.hero-copy{grid-area:copy;display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:20px}
.hero-copy h1{max-width:var(--m-disp)}
.hero-copy .lede{max-width:var(--m-sub)}
.hero-copy .micro{margin-inline:auto;text-align:center}
/* the course card, moved up out of the old pricing section */
.card{grid-area:card;background:var(--ink);color:#fff;border-radius:var(--r-sm);
  padding:clamp(24px,3vw,32px);align-self:start}
@media (min-width:920px){
  .hero{grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"copy card";
    align-items:center;gap:clamp(40px,5vw,72px)}

}

/* the numbers get a rule above them — a spec row, not stat tiles */
.proofrow{list-style:none;display:flex;flex-wrap:wrap;gap:8px 32px;justify-content:center;
  padding-top:18px;border-top:1px solid var(--line-3);width:100%;max-width:var(--m-lede)}

.proofrow li{display:flex;align-items:baseline;gap:7px}
.proofrow b{font-family:var(--disp);font-weight:600;font-size:var(--t-h4);
  font-variation-settings:'opsz' 40;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.proofrow span{font-size:var(--t-small);color:var(--ink-3)}

/* spec bar: one solid tinted band, full-bleed, uniform items.
   Six short strings spread across a 1064px table read as empty space;
   a filled band with dot separators reads as a deliberate spec sheet. */
.specs-sec{width:100vw;margin-left:-50vw;margin-right:-50vw;left:50%;right:50%;
  position:relative;background:var(--s-alt);padding-block:clamp(20px,2.6vw,28px)}
.specs-sec::before{display:none}
.specs{list-style:none;max-width:var(--container);margin-inline:auto;
  padding-inline:var(--pad-x);
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:10px clamp(14px,2vw,26px)}
.specs li{display:flex;align-items:center;gap:10px;
  font-size:var(--t-small);color:var(--ink-2);white-space:nowrap;hyphens:manual}
.specs li::before{content:'';width:5px;height:5px;border-radius:50%;
  background:var(--acc);flex:none;opacity:.85}
@media (max-width:620px){
  .specs{justify-content:flex-start;gap:8px 18px}
  .specs li{white-space:normal}
}

.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;
  scroll-padding-inline:2px;padding:4px 2px 14px;scrollbar-width:none;
  --fl:0px;--fr:0px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--fl),#000 calc(100% - var(--fr)),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 var(--fl),#000 calc(100% - var(--fr)),transparent 100%)}
.rail::-webkit-scrollbar{display:none}
.rail.more-left{--fl:48px}
.rail.more-right{--fr:48px}
.plate{flex:0 0 auto;width:min(220px,68vw);scroll-snap-align:center}
.plate a{display:block;position:relative;border-radius:var(--r-sm);overflow:hidden;
  background:var(--s-deep);box-shadow:var(--sh-media)}
.plate img{width:100%;aspect-ratio:400/523;object-fit:cover;object-position:top;
  filter:saturate(var(--grade,.95)) contrast(1.05);
  -webkit-mask-image:linear-gradient(#000 76%,#0000);
  mask-image:linear-gradient(#000 76%,#0000)}
.plate .play{position:absolute;right:10px;top:10px;width:34px;height:34px;border-radius:50%;
  background:color-mix(in srgb,var(--s-bright) 90%,transparent);display:grid;place-items:center}
.plate .play svg{width:14px;height:14px;fill:var(--ink)}
.plate figcaption{margin-top:10px;display:flex;flex-direction:column;gap:2px}
.plate .pt{font-size:var(--t-small);font-weight:500;line-height:1.35}
.plate .pv{font-size:var(--t-caption);color:var(--ink-3);font-variant-numeric:tabular-nums}
.railnote{margin-top:18px;font-size:var(--t-lede);color:var(--ink-2);max-width:var(--m-prose)}
.railnote b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.ttbio{margin-top:8px;font-size:var(--t-small);color:var(--ink-3)}

/* problem — the live site's card anatomy: centred header, three white cards,
   emoji in a 52px rounded tile, a 3px accent bar that appears on hover */
.phead{text-align:center;max-width:700px;margin:0 auto clamp(36px,5vw,60px)}
.phead .eyebrow{justify-content:center;max-width:none}
.phead h2,.phead .lede{margin-inline:auto}
.phead .lede{margin-top:16px}
.pgrid{display:grid;gap:24px;grid-template-columns:minmax(0,1fr);max-width:500px;margin-inline:auto}
@media (min-width:760px){.pgrid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}}
.pcard{background:#fff;border-radius:12px;padding:36px 30px;border:1px solid rgba(0,0,0,.05);
  position:relative;overflow:hidden;transition:transform .3s var(--e-out),box-shadow .3s var(--e-out)}
.pcard::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--acc);
  opacity:0;transition:opacity .3s var(--e-out)}
@media (hover:hover) and (pointer:fine){
  .pcard:hover{transform:translateY(-4px);box-shadow:0 4px 30px rgba(0,0,0,.08)}
  .pcard:hover::before{opacity:1}}
.pico{width:52px;height:52px;border-radius:14px;background:#F5F0E8;display:flex;align-items:center;
  justify-content:center;font-size:1.5rem;margin-bottom:20px;line-height:1}
.pcard h3{font-size:1.25rem;margin-bottom:10px}
.pcard p{font-size:.9375rem;color:var(--ink-2);line-height:1.7}

/* social: TikTok and Instagram follow cards */
.social{display:grid;gap:18px;grid-template-columns:minmax(0,1fr);margin-top:clamp(28px,4vw,40px)}
@media (min-width:760px){.social{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}}
.soc{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:26px}
.soc-id{display:flex;align-items:center;gap:14px}
.soc-av{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--acc)}
.soc-k{font-size:var(--t-small);font-weight:600;color:var(--acc-text);max-width:none}
.soc-h{font-family:var(--disp);font-variation-settings:'opsz' 60;font-weight:600;
  font-size:1.375rem;letter-spacing:-.015em;margin-top:6px;max-width:none;hyphens:manual;word-break:break-word}
.soc-bio{font-size:var(--t-small);color:var(--ink-2);margin-top:8px}
.soc-act{display:grid;gap:10px;margin-top:20px}
.soc-act .btn-ghost{width:100%}
button.btn{border:0;cursor:pointer;font:inherit;font-weight:600}
.soc-note{font-size:var(--t-caption);color:var(--ink-3);margin-top:12px;line-height:1.55}

.checklist{list-style:none;display:grid;gap:14px;margin-top:4px}
.checklist li{display:flex;gap:12px;align-items:flex-start;font-size:var(--t-body)}
.ck{width:22px;height:22px;flex:none;margin-top:3px;fill:none;stroke:var(--acc-text);
  stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.package .btn{margin-top:28px}

.modules{border-top:1px solid var(--line-3)}
.module{padding-block:clamp(26px,3vw,40px);border-bottom:1px solid var(--line)}
.module .meta{font-size:var(--t-small);color:var(--ink-3);font-weight:500;margin-bottom:6px;
  font-variant-numeric:tabular-nums}
.module .msub{color:var(--ink-2);font-size:var(--t-small);margin-top:6px}
.lessons{list-style:none;margin-top:16px;display:grid;gap:8px;max-width:var(--m-prose)}
.lessons li{display:flex;gap:12px;align-items:baseline;font-size:var(--t-small);color:var(--ink-2)}
.ln{font-size:var(--t-caption);color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none;width:22px}
@media (min-width:860px){
  .module{display:grid;grid-template-columns:.82fr 1.18fr;grid-template-rows:auto auto 1fr;column-gap:32px;row-gap:0;align-items:start}
  .module .meta{grid-column:1}
  .module h3{grid-column:1;grid-row:2}
  .module .msub{grid-column:1;grid-row:3}
  .module .lessons{grid-column:2;grid-row:1/4;margin-top:0}
}

.about{display:grid;gap:clamp(24px,4vw,48px);grid-template-columns:minmax(0,1fr);
  grid-template-areas:"copy" "media"}
.about-copy{grid-area:copy}
.about-copy .lede{margin-top:16px}
.about-copy p+p{margin-top:16px;color:var(--ink-2)}
.about-media{grid-area:media;max-width:340px}
.about-media img{border-radius:var(--r-sm);background:var(--s-deep);aspect-ratio:581/760;
  object-fit:cover;object-position:top;box-shadow:var(--sh-media);
  filter:saturate(var(--grade,.95)) contrast(1.05)}
.about-media figcaption{font-size:var(--t-caption);color:var(--ink-3);margin-top:10px}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chip{font-size:var(--t-small);color:var(--ink-2);border:1px solid var(--line-3);
  border-radius:var(--r-sm);padding:7px 13px}
@media (min-width:860px){
  .about{grid-template-columns:1.18fr .82fr;grid-template-areas:"copy media";align-items:center}
  .about-media{max-width:none;justify-self:end}
}

/* benefits — rebuilt on the live site's card anatomy:
   sand band, centred header, white cards, emoji in a 64px gold circle, 4px lift on hover */
.benefits{width:100vw;margin-left:-50vw;margin-right:-50vw;left:50%;right:50%;position:relative;
  background:#F5F0E8;padding:clamp(64px,9vw,100px) var(--pad-x)}
.benefits::before{display:none}
.bhead{text-align:center;max-width:650px;margin:0 auto clamp(36px,5vw,60px)}
.bhead .eyebrow{justify-content:center;max-width:none}
.bhead h2{margin-inline:auto}
.bgrid{display:grid;gap:24px;grid-template-columns:minmax(0,1fr);max-width:400px;margin-inline:auto}
@media (min-width:760px){.bgrid{grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:calc(var(--container) - 2 * var(--pad-x))}}
.bcard{background:#fff;border-radius:12px;padding:36px 30px;text-align:center;
  border:1px solid rgba(0,0,0,.05);transition:transform .3s var(--e-out),box-shadow .3s var(--e-out)}
@media (hover:hover) and (pointer:fine){
  .bcard:hover{transform:translateY(-4px);box-shadow:0 4px 30px rgba(0,0,0,.08)}}
.bico{width:64px;height:64px;border-radius:50%;background:#F0E0B8;display:flex;align-items:center;
  justify-content:center;font-size:1.6rem;margin:0 auto 20px;line-height:1}
.bcard h3{font-size:1.2rem;margin-bottom:8px}
.bcard p{font-size:.9375rem;color:var(--ink-2);margin-inline:auto;max-width:30ch}

.clarity-box{background:var(--s-alt);border-radius:var(--r-sm);padding:clamp(22px,3vw,36px)}
.clarity-box h2{font-size:var(--t-h3);letter-spacing:-.018em}
.scope{display:grid;gap:26px;margin-top:20px}
.scope-h{font-size:var(--t-small);font-weight:600;margin-bottom:10px}
.scope-in .scope-h{color:var(--acc-text)}
.scope-out .scope-h{color:var(--ink-3)}
.scope ul{list-style:none;display:grid;gap:10px}
.scope li{font-size:var(--t-small);color:var(--ink-2);padding-left:16px;position:relative;max-width:46ch}
.scope li::before{content:'';position:absolute;left:0;top:.62em;width:6px;height:6px;
  border-radius:50%;background:var(--line-3)}
.legaltext{margin-top:24px;padding-top:18px;border-top:1px solid var(--line-3)}
.legaltext p{font-size:var(--t-caption);color:var(--ink-3);line-height:1.7;max-width:80ch}
.legaltext p+p{margin-top:10px}
@media (min-width:700px){.scope{grid-template-columns:1.05fr .95fr;gap:36px}}

/* price: inverted card, the hardest contrast on the page */

.peyebrow{font-size:var(--t-small);font-weight:600;color:#FF8FC0}
.pname{font-size:var(--t-h3);margin-top:10px;color:#fff;max-width:none}
.pby{font-size:var(--t-small);color:#A8A4AE;margin-top:4px}
.pricerow{display:flex;align-items:baseline;gap:14px;margin-top:20px;flex-wrap:wrap}
.amount{font-family:var(--disp);font-weight:600;font-size:clamp(2.75rem,5vw,3.5rem);
  font-variation-settings:'opsz' 120;letter-spacing:-.045em;line-height:1;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.pmeta{display:flex;flex-direction:column;hyphens:manual;min-width:0}
.pmeta b{font-size:var(--t-small);font-weight:500;color:#E6E3EA}
.pmeta span{font-size:var(--t-caption);color:#A8A4AE}
.vat{font-size:var(--t-caption);color:#A8A4AE;margin-top:8px}
.card .btn{margin-top:22px;background:var(--acc);color:#fff}
@media (hover:hover) and (pointer:fine){.card .btn:hover{background:#FF5FA8}}
.card .micro{margin-top:12px;color:#A8A4AE;text-align:left;max-width:none;hyphens:manual}
.card .checklist{margin-top:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14)}
.card .checklist li{color:#E6E3EA;font-size:var(--t-small)}
.card .ck{stroke:#FF8FC0}

.faqlist{border-top:1px solid var(--line-3)}
.qa{border-bottom:1px solid var(--line)}
.qa summary{display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:56px;padding:14px 0;cursor:pointer;list-style:none;
  font-size:var(--t-h4);font-weight:600;font-family:var(--sans);letter-spacing:-.012em}
.qa summary::-webkit-details-marker{display:none}
.chev{width:18px;height:18px;flex:none;fill:none;stroke:var(--ink-3);stroke-width:2.2;
  stroke-linecap:round;transition:transform .1s ease-in-out}
.qa[open] .chev{transform:rotate(45deg)}
.qa[open] summary{padding-bottom:14px}
.ans{padding-bottom:18px}
.ans p{color:var(--ink-2);font-size:var(--t-small)}

/* the accent lands once, full-bleed, at the close */
.final{width:100vw;margin-left:-50vw;margin-right:-50vw;left:50%;right:50%;position:relative;
  background:var(--acc);color:#fff;
  padding:clamp(48px,8vw,96px) var(--pad-x)}
.final::before{display:none}
.final>*{max-width:var(--container);margin-inline:auto}
.final h2{color:#fff;max-width:20ch}
.final .lede{margin-top:14px;color:#FFE3F0}
.final .btn{margin-top:28px;background:#fff;color:var(--ink)}
@media (hover:hover) and (pointer:fine){.final .btn:hover{background:var(--ink);color:#fff}}
.final .micro{margin-top:14px;color:#FFD3E8}

.foot{max-width:var(--container);margin:0 auto;padding:clamp(28px,4vw,48px) var(--pad-x) 40px}
.legal{list-style:none;display:flex;flex-wrap:wrap;gap:2px 18px;padding-block:8px}
.legal a{color:var(--ink-3);font-size:.8125rem;text-decoration:none;
  display:inline-flex;align-items:center;min-height:44px}
@media (hover:hover) and (pointer:fine){.legal a:hover{color:var(--ink);text-decoration:underline}}
.copy{font-size:var(--t-caption);color:var(--ink-3);margin-top:8px}
.fineprint{font-size:var(--t-caption);color:var(--ink-3);margin-top:14px;max-width:80ch;line-height:1.7}

.buybar{position:fixed;inset-inline:0;bottom:0;z-index:40;
  padding:12px var(--pad-x) calc(env(safe-area-inset-bottom,0px) + 24px);
  background:var(--s-bright);box-shadow:0 -1px 0 var(--line-3);
  display:flex;align-items:center;gap:14px}
.bb-price{font-size:var(--t-small);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.buybar .btn{flex:1;min-height:48px}
@media (min-width:860px){.buybar{display:none}body{padding-bottom:0}}

@media (prefers-reduced-motion:no-preference){
  html.anim .rv{opacity:0;transform:translateY(16px)}
  html.anim .rv.in{opacity:1;transform:none;
    transition:opacity .55s var(--e-out) calc(var(--i,0) * 70ms),
               transform .55s var(--e-out) calc(var(--i,0) * 70ms)}
}

/* ---------- consent ---------- */
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--ink-3);font-size:.8125rem;
  cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
@media (hover:hover) and (pointer:fine){.linkbtn:hover{color:var(--ink);text-decoration:underline}}
.consent{position:fixed;z-index:60;left:max(12px,env(safe-area-inset-left,0px));
  right:max(12px,env(safe-area-inset-right,0px));
  bottom:calc(env(safe-area-inset-bottom,0px) + 12px);
  max-width:560px;margin-inline:auto;background:var(--s-bright);color:var(--ink);
  border-radius:var(--r-md);padding:18px 18px 16px;box-shadow:var(--sh-lg)}
.consent[hidden]{display:none}
.consent{hyphens:manual}
.consent-h{font-weight:600;font-size:var(--t-body);max-width:none}
.consent-t{font-size:var(--t-small);color:var(--ink-2);margin-top:6px;line-height:1.55;max-width:none}
.consent-b{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
/* equal weight on purpose: refusing must be exactly as easy as accepting */
.cbtn{min-height:48px;border-radius:var(--r-sm);border:1.5px solid var(--ink);background:var(--s-bright);
  color:var(--ink);font:600 1rem/1 var(--sans);cursor:pointer}
@media (hover:hover) and (pointer:fine){.cbtn:hover{background:var(--ink);color:#fff}}
body.has-consent .buybar{visibility:hidden}
