/* ============================================================================
   Expansion Works® — Design System (site.css)
   Extracted verbatim from the signed-off custom-site bundle
   (custom-site/overview.html → design-system block) plus the dark-mode
   inversion from custom-site/dark-demo.html, re-scoped to a `dark` class on
   the document root (<html class="dark">). Do NOT redesign — this is the
   signed-off look. Tokens, type, layout, components, motion all live here.
   ============================================================================ */

/* Satoshi — the brand typeface. Loaded both via Fontshare @import (kept per
   spec) AND a <link rel="stylesheet"> in the base layout for resilience. */
@import url('https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700,900&display=swap');

/* ===== EW Design System — tokens (verbatim from home bundle) ===== */
:root{
  --ew-ink:#0b0b0b; --ew-paper:#f5f4f0; --ew-yellow:#f1ff66; --ew-white:#ffffff;
  --ew-rule:rgba(11,11,11,0.12); --ew-ink-90:rgba(11,11,11,0.9); --ew-ink-55:rgba(11,11,11,0.55);
  --ew-radius:8px; --ew-pill:999px;
  --ew-soft:0 12px 28px rgba(11,11,11,0.08); --ew-lift:0 24px 56px rgba(11,11,11,0.14);
  --ew-w:1120px; --ew-prose:720px;
  --ew-font:'Satoshi',ui-sans-serif,system-ui,-apple-system,'Inter',sans-serif;
  --ew-pad-y:clamp(76px,9vw,124px); --ew-pad-x:clamp(20px,7vw,90px);
}
html{background:#f5f4f0;}
body{background:transparent;margin:0;padding:0;font-family:'Satoshi',ui-sans-serif,system-ui,-apple-system,'Inter',sans-serif;color:#0b0b0b;line-height:1.55;-webkit-font-smoothing:antialiased;}
*,*::before,*::after{box-sizing:border-box;}
img{max-width:100%;display:block;}
/* TYPE — sentence-case lock; UPPERCASE stays on eyebrows/pills/buttons/labels only */
#ew-preview-root h1,#ew-preview-root h2,#ew-preview-root h3,#ew-preview-root h4,#ew-preview-root h5,#ew-preview-root h6,#ew-preview-root .h1,#ew-preview-root .h2,#ew-preview-root .h3{text-transform:none;font-family:'Satoshi',ui-sans-serif,system-ui,-apple-system,'Inter',sans-serif;color:#0b0b0b;}
#ew-preview-root .card--ink h1,#ew-preview-root .card--ink h2,#ew-preview-root .card--ink h3,#ew-preview-root .card--ink .h2,#ew-preview-root .card--ink .h3,#ew-preview-root .on-ink h1,#ew-preview-root .on-ink h2,#ew-preview-root .on-ink h3,#ew-preview-root .on-ink .h2,#ew-preview-root .on-ink .h3{color:#f5f4f0;}

/* fade-bg + interstitial fade-to-black + scroll tracker */
#ew-bg{position:fixed;inset:0;z-index:-1;background:var(--ew-paper);transition:background-color 2.2s ease-in-out;pointer-events:none;}
#ew-fade{position:fixed;inset:0;z-index:9990;background:#0b0b0b;opacity:0;pointer-events:none;transition:opacity 1.4s cubic-bezier(.22,1,.36,1);}
/* once JS has faded the dark-entrance overlay out, lock it transparent + inert */
#ew-fade.ew-fade--done{opacity:0;pointer-events:none;}
#ew-progress{position:fixed;bottom:0;left:0;height:5px;width:0;background:var(--ew-ink);z-index:9998;transition:width .08s linear;}

/* drifting face-blobs (rulebook §5) */
#s-home{position:relative;z-index:0;display:block;}
.float-layer{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;}
.face{position:absolute;opacity:.5;filter:blur(.4px);animation:ewdrift 14s ease-in-out infinite;}
.f1{width:46px;top:18vh;right:6%;}
.f2{width:56px;top:66vh;left:5%;animation-duration:11s;animation-delay:-4s;}
.f3{width:40px;top:33%;right:7%;animation-duration:16s;animation-delay:-7s;}
.f4{width:58px;top:47%;left:6%;animation-duration:12s;animation-delay:-2s;}
.f5{width:38px;top:60%;right:5%;animation-duration:15s;animation-delay:-9s;}
.f6{width:52px;top:74%;left:7%;animation-duration:13s;animation-delay:-5s;}
.f7{width:44px;top:87%;right:6%;animation-duration:17s;animation-delay:-11s;}
.f8{width:44px;top:26%;left:4%;animation-duration:14s;animation-delay:-3s;}
.f9{width:50px;top:41%;right:4%;animation-duration:13s;animation-delay:-8s;}
.f10{width:38px;top:68%;left:5%;animation-duration:16s;animation-delay:-6s;}
@keyframes ewdrift{0%{transform:translate(0,0) rotate(-6deg);}25%{transform:translate(9px,-20px) rotate(3deg);}50%{transform:translate(-5px,-32px) rotate(6deg);}75%{transform:translate(-11px,-12px) rotate(-3deg);}100%{transform:translate(0,0) rotate(-6deg);}}
@media(max-width:760px){.face{opacity:.42;}.f3,.f4,.f5,.f6,.f7,.f8,.f9,.f10{display:none;}.f1{top:16vh;right:7%;width:44px;}.f2{top:88vh;left:6%;width:50px;}}
@media(prefers-reduced-motion:reduce){.face{animation:none;}}
/* dark mode — hide the drifting faces entirely for a clean black canvas */
.dark .float-layer,.dark .face{display:none;}

/* type */
.h1{font-weight:900;letter-spacing:-0.03em;line-height:1.04;margin:0;font-size:clamp(40px,6.4vw,64px);}
.h1--hero{font-size:clamp(40px,6.4vw,64px);}
.h2{font-weight:900;letter-spacing:-0.03em;line-height:1.12;margin:0;font-size:clamp(27px,3.4vw,40px);}
.h3{font-weight:900;letter-spacing:-0.02em;line-height:1.18;margin:0;font-size:clamp(19px,2vw,24px);}
.lede{font-size:clamp(17px,1.6vw,20px);font-weight:500;line-height:1.55;margin:0;max-width:34em;}
.lede--hero{font-size:clamp(18px,1.8vw,22px);}
.body{font-size:clamp(16px,1.3vw,18px);font-weight:500;line-height:1.65;margin:0;max-width:38em;}
.body strong{font-weight:700;}
.eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ew-ink-55);margin:0 0 14px;}
.caption{font-size:13px;font-weight:500;opacity:.62;}

/* layout */
.wrap{max-width:var(--ew-w);margin:0 auto;padding-left:var(--ew-pad-x);padding-right:var(--ew-pad-x);}
.section{padding-top:var(--ew-pad-y);padding-bottom:var(--ew-pad-y);}
.section--plain{border-top:none;}
.hero{min-height:calc(100svh - 108px);display:flex;flex-direction:column;justify-content:center;padding-top:20px;padding-bottom:56px;}
.section--yellow .arrow:hover{border-bottom-color:var(--ew-ink);}
.section--yellow .btn--primary:hover{background:var(--ew-white);color:var(--ew-ink);}
.center{text-align:center;}
.center .lede,.center .body{margin-left:auto;margin-right:auto;}

/* buttons */
.btn{font-family:var(--ew-font);font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.04em;padding:15px 34px;border-radius:var(--ew-radius);border:none;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:none;line-height:1;}
.btn--primary{background:var(--ew-ink);color:var(--ew-yellow);}
.btn--primary:hover{background:var(--ew-yellow);color:var(--ew-ink);}
.btn--ghost{background:transparent;color:var(--ew-ink);border:1.5px solid var(--ew-ink);}
.btn--ghost:hover{background:var(--ew-ink);color:var(--ew-paper);}
.btn--sm{padding:11px 22px;font-size:13px;}
.on-ink .btn--primary{background:var(--ew-yellow);color:var(--ew-ink);}
.on-ink .btn--primary:hover{background:var(--ew-paper);color:var(--ew-ink);}
.arrow{color:var(--ew-ink);font-weight:700;text-decoration:none;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:6px;}
.arrow:hover{border-bottom-color:var(--ew-yellow);}

/* pills */
.pill{display:inline-flex;align-items:center;gap:8px;background:var(--ew-ink);color:var(--ew-yellow);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:7px 14px;border-radius:var(--ew-pill);line-height:1;width:max-content;}
.pill__num{width:18px;height:18px;border-radius:50%;background:var(--ew-yellow);color:var(--ew-ink);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;}
.pill--badge{background:var(--ew-yellow);color:var(--ew-ink);}

/* cards / grids */
.card{background:var(--ew-white);border:2px solid var(--ew-ink-90);border-radius:var(--ew-radius);padding:clamp(22px,3vw,34px);box-shadow:var(--ew-soft);}
.card--ink{background:var(--ew-ink);color:var(--ew-paper);border-color:var(--ew-ink);}
.grid{display:grid;gap:clamp(16px,2vw,24px);}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--tiers .card{display:flex;flex-direction:column;}
.grid--tiers .card .btn{margin-top:auto;}
/* featured tier — raised, ringed emphasis on the "Most Popular" card (from the mock) */
.grid--tiers .card--featured{box-shadow:var(--ew-lift);position:relative;z-index:1;}
.dark .grid--tiers .card--featured{box-shadow:0 24px 56px rgba(0,0,0,.5);}
/* hidden badge placeholder keeps non-featured price rows aligned with the featured badge */
.tier-badge-placeholder{visibility:hidden;}
.optin{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.optin input{flex:1;min-width:200px;padding:14px 18px;border:none;border-radius:var(--ew-radius);font-family:var(--ew-font);font-size:15px;background:var(--ew-paper);color:var(--ew-ink);}

/* media placeholder */
.media{aspect-ratio:16/9;width:100%;max-width:100%;border:2px solid var(--ew-ink-90);border-radius:var(--ew-radius);background:#111;box-shadow:var(--ew-lift);display:flex;align-items:center;justify-content:center;color:rgba(245,244,240,.5);font-size:12px;text-transform:uppercase;letter-spacing:.1em;position:relative;overflow:hidden;}
/* standalone media/video block — contained 16:9 in the content rail, centred
   (never full-bleed/huge). Caps width to the standard prose width and forces a
   16:9 box regardless of any authored ratio so the video can't blow up. */
.media-frame{max-width:var(--ew-prose);margin:0 auto;}
.media-frame .media{aspect-ratio:16/9;max-height:78vh;}

/* header — STICKY CHROME UNIT (header + black banner pinned together) + transparent/blended header */
#ew-preview-root, #ew-preview-root #s-home, body { overflow: visible; transform: none; }
/* the whole chrome (header + promo banner) sticks to the top as ONE unit */
.chrome{position:sticky;top:0;z-index:60;}
/* header BLENDS with the page background (it is transparent; #ew-bg shows through — paper in light, black in dark) */
.hdr{position:relative;z-index:2;background:var(--ew-paper);border-bottom:none;transition:background-color 2.2s ease-in-out;}
#ew-preview-root #home-hdr{position:relative;z-index:2;background:var(--ew-paper);border-bottom:none;transition:background-color 2.2s ease-in-out;}
.hdr__in{max-width:var(--ew-w);margin:0 auto;padding:16px var(--ew-pad-x);display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo{font-weight:900;font-size:20px;letter-spacing:-0.02em;color:inherit;text-decoration:none;}
.logo sup{font-size:9px;font-weight:700;vertical-align:super;}
.nav{display:flex;align-items:center;gap:16px;flex-wrap:nowrap;}
.nav a,.nav .quiet{white-space:nowrap;}
.nav a:not(.btn){font-weight:700;font-size:14px;color:var(--ew-ink);text-decoration:none;}
.nav a:not(.btn):hover{text-decoration:underline;text-decoration-color:var(--ew-yellow);text-underline-offset:5px;text-decoration-thickness:3px;}
.nav a.btn--primary{color:var(--ew-yellow);background:var(--ew-ink);}
.nav a.btn--primary:hover{color:var(--ew-ink);background:var(--ew-yellow);}
.nav .quiet{font-weight:500;opacity:.7;font-size:13px;}
@media(max-width:1024px){.nav{display:none;}}

/* mobile menu */
.nav-toggle{display:none;}
.nav-panel{display:none;}
@media(max-width:1024px){
  .hdr .nav{display:none;}
  #ew-preview-root .hdr__in .nav-toggle{display:inline-flex;align-items:center;align-self:center;position:static;background:var(--ew-yellow);color:var(--ew-ink);border:none;border-radius:var(--ew-pill);padding:10px 17px;font-family:var(--ew-font);font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;box-shadow:0 3px 16px rgba(11,11,11,.22);margin-left:auto;}
  .nav-panel{display:flex;position:fixed;inset:0;z-index:10001;background:var(--ew-paper);flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .35s ease,transform .35s ease;}
  .nav-panel.open{opacity:1;transform:translateY(0);pointer-events:auto;}
  .nav-panel__links{display:flex;flex-direction:column;align-items:center;gap:2px;}
  .nav-panel a:not(.btn){font-family:var(--ew-font);font-weight:900;font-size:clamp(26px,8vw,36px);letter-spacing:-0.02em;color:var(--ew-ink);text-decoration:none;padding:11px 0;}
  .nav-panel .quiet{font-family:var(--ew-font);font-weight:500;opacity:.7;font-size:clamp(15px,4vw,18px);color:var(--ew-ink);padding:8px 0;}
  .nav-panel a.btn{margin-top:18px;}
  .nav-close{position:absolute;top:18px;right:20px;background:none;border:none;font-size:38px;line-height:1;color:var(--ew-ink);cursor:pointer;}
}

/* footer (rich) */
.foot{border-top:1px solid var(--ew-rule);padding:clamp(34px,5vw,56px) var(--ew-pad-x);display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;}
.foot__trust{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;opacity:.55;}
.foot__disc{font-size:12px;line-height:1.5;opacity:.6;max-width:62ch;}
.foot__legal{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;font-size:11px;font-weight:500;opacity:.7;}
.foot__legal a{color:var(--ew-ink);text-decoration:none;}
.foot__legal a:hover{text-decoration:underline;text-underline-offset:3px;}
.social{display:flex;justify-content:center;gap:12px;}
.social a{width:40px;height:40px;border-radius:50%;background:var(--ew-ink);display:inline-flex;align-items:center;justify-content:center;}
.social svg{width:18px;height:18px;fill:var(--ew-yellow);}
.copy{font-size:13px;opacity:.7;}

/* pricing */
.price-toggle{display:inline-flex;border:1.5px solid var(--ew-ink);border-radius:var(--ew-pill);padding:4px;gap:4px;margin:0 auto 32px;}
.price-toggle button{border:none;background:transparent;color:var(--ew-ink);font-family:var(--ew-font);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.04em;padding:9px 18px;border-radius:var(--ew-pill);cursor:pointer;display:inline-flex;gap:8px;align-items:center;}
.price-toggle button.active{background:var(--ew-ink);color:var(--ew-paper);}
.price-toggle .tag{font-size:10px;font-weight:800;background:var(--ew-yellow);color:var(--ew-ink);padding:2px 7px;border-radius:var(--ew-pill);}
.price{display:flex;align-items:baseline;gap:4px;margin:6px 0 4px;}
.price__num{font-weight:900;letter-spacing:-0.04em;font-size:clamp(40px,5vw,56px);line-height:1;}
.price__per{font-size:15px;font-weight:600;opacity:.7;}
.feat{list-style:none;margin:14px 0 22px;padding:0;}
.feat li{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--ew-rule);font-size:15px;font-weight:500;}
.feat li:before{content:"\2713";color:var(--ew-ink);font-weight:900;flex:0 0 16px;}
.card--ink .feat li{border-top-color:rgba(245,244,240,.18);}
.card--ink .feat li:before{color:var(--ew-yellow);}
.card--ink .price__num{color:var(--ew-yellow);}

/* offer value-stack / pre-checkout (verbatim from estate mock) */
.feat__v{margin-left:auto;color:var(--ew-ink-55);font-weight:600;font-size:13px;white-space:nowrap;}
.card--ink .feat__v{color:rgba(245,244,240,.6);}
.stack__total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:10px 0 0;padding-top:13px;border-top:1px solid var(--ew-rule);font-weight:600;}
.stack__total .v{font-weight:800;}
.pay-opts{display:flex;flex-direction:column;gap:10px;margin:14px 0 18px;}
.pay-opt{display:flex;align-items:center;gap:12px;border:1.5px solid var(--ew-rule);border-radius:var(--ew-radius);padding:13px 15px;}
.pay-opt__dot{width:16px;height:16px;border-radius:var(--ew-pill);border:2px solid var(--ew-rule);flex:0 0 16px;}
.pay-opt__t{flex:1;font-size:14px;font-weight:600;line-height:1.25;}
.pay-opt__t small{display:block;font-weight:500;font-size:12px;opacity:.65;}
.pay-opt__p{font-weight:800;font-size:14px;white-space:nowrap;}
.pay-opt--on{border-color:var(--ew-ink);}
.pay-opt--on .pay-opt__dot{border-color:var(--ew-ink);background:var(--ew-ink);box-shadow:inset 0 0 0 3px var(--ew-paper);}
.next{list-style:none;counter-reset:n;margin:0;padding:0;}
.next li{counter-increment:n;display:flex;gap:11px;align-items:flex-start;padding:9px 0;font-size:15px;font-weight:500;border-top:1px solid var(--ew-rule);line-height:1.45;}
.next li:first-child{border-top:0;padding-top:0;}
.next li:before{content:counter(n);background:var(--ew-ink);color:var(--ew-paper);min-width:22px;height:22px;border-radius:var(--ew-pill);display:grid;place-items:center;font-size:12px;font-weight:800;flex:0 0 22px;margin-top:1px;}

/* media play button (verbatim from estate mock) */
.media .play{position:absolute;width:54px;height:54px;border-radius:50%;background:var(--ew-yellow);display:flex;align-items:center;justify-content:center;}
.media .play:after{content:"";border-left:16px solid var(--ew-ink);border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px;}

/* click-to-load video facade — cover image + play button; the real player is
   injected by site.js ONLY on click (no iframe/<video> in the page on load). */
.media__facade{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:#111;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;}
.media__cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.media__ph{position:relative;z-index:1;color:rgba(245,244,240,.5);font-size:12px;text-transform:uppercase;letter-spacing:.1em;}
.media__facade .play{transition:transform .15s ease,box-shadow .15s ease;box-shadow:var(--ew-lift);}
.media__facade:hover .play,.media__facade:focus-visible .play{transform:scale(1.08);}
.media__facade:focus-visible{outline:3px solid var(--ew-yellow);outline-offset:3px;}
/* the injected player fills the media box */
.media iframe,.media video,.media .wistia_embed,.media .wistia_responsive_padding{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000;}

/* testimonial / stars */
.stars{color:var(--ew-ink);letter-spacing:2px;font-size:14px;}
.on-ink .stars{color:var(--ew-yellow);}
.quote__who{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.7;margin-top:10px;}

/* faq */
.faq{max-width:var(--ew-prose);margin:0 auto;}
.faq details{border-top:1px solid var(--ew-rule);}
.faq details:last-child{border-bottom:1px solid var(--ew-rule);}
.faq summary{cursor:pointer;list-style:none;font-weight:700;font-size:17px;padding:20px 0;display:flex;justify-content:space-between;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:after{content:"+";font-weight:700;}
.faq details[open] summary:after{content:"\2013";}
.faq p{margin:0 0 20px;font-size:16px;line-height:1.62;opacity:.9;}

/* Qualifier slider — brand-pure 3-zone (paper->yellow->ink track, ink thumb with yellow ring) */
.ew-focus{max-width:760px;margin:0 auto;text-align:center;}
.ew-focus__eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ew-ink-55);margin:0 0 10px;}
.ew-focus__title{margin:0 0 8px;}
.ew-focus__lede{margin:0 auto 22px;max-width:50ch;}
.ew-focus__block{background:var(--ew-paper);border:1.5px solid var(--ew-ink-90);border-radius:16px;padding:clamp(22px,3.6vw,36px);text-align:center;box-shadow:var(--ew-soft);margin:0 0 14px;}
.ew-focus__top{margin:0 0 18px;}
.ew-focus__value{font-size:clamp(48px,6vw,68px);font-weight:900;color:var(--ew-ink);line-height:1;letter-spacing:-.04em;margin:0 0 4px;font-variant-numeric:tabular-nums;}
.ew-focus__valueLabel{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ew-ink-55);margin:0;}
.ew-focus__sliderRow{display:flex;align-items:center;gap:14px;margin:0 0 22px;}
.ew-focus__end{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ew-ink-55);flex:0 0 auto;}
input.ew-focus__slider{flex:1 1 auto;-webkit-appearance:none;appearance:none;width:100%;height:10px;background:linear-gradient(to right,var(--ew-paper) 0%,var(--ew-yellow) 50%,var(--ew-ink) 100%);border:1.5px solid var(--ew-ink-90);border-radius:var(--ew-pill);outline:none;cursor:pointer;padding:0;margin:0;}
input.ew-focus__slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:30px;height:30px;background:var(--ew-ink);border:4px solid var(--ew-yellow);border-radius:50%;cursor:pointer;box-shadow:0 6px 14px rgba(0,0,0,.18);transition:transform .15s ease;}
input.ew-focus__slider::-webkit-slider-thumb:hover{transform:scale(1.08);}
input.ew-focus__slider::-moz-range-thumb{width:30px;height:30px;background:var(--ew-ink);border:4px solid var(--ew-yellow);border-radius:50%;cursor:pointer;box-shadow:0 6px 14px rgba(0,0,0,.18);transition:transform .15s ease;}
input.ew-focus__slider::-moz-range-thumb:hover{transform:scale(1.08);}
.ew-focus__response{background:var(--ew-white);border:1.5px solid var(--ew-ink-90);border-radius:12px;padding:22px 26px;text-align:left;transition:background-color .35s ease,color .35s ease,border-color .35s ease;}
.ew-focus__response[data-zone="high"]{background:var(--ew-ink);color:var(--ew-paper);border-color:var(--ew-ink);}
.ew-focus__response[data-zone="high"] .ew-focus__respTitle{color:var(--ew-paper);}
.ew-focus__response[data-zone="high"] .ew-focus__respText{color:rgba(245,244,240,.82);}
.ew-focus__response[data-zone="high"] .btn--primary{background:var(--ew-yellow);color:var(--ew-ink);}
.ew-focus__response[data-zone="high"] .btn--primary:hover{background:var(--ew-paper);color:var(--ew-ink);}
.ew-focus__respTitle{margin:0 0 8px;font-size:clamp(19px,2vw,22px);font-weight:900;letter-spacing:-.02em;line-height:1.18;}
.ew-focus__respText{margin:0 0 16px;font-size:15px;line-height:1.6;}
.ew-focus__disc{font-size:12px;line-height:1.55;color:var(--ew-ink-55);max-width:54ch;margin:0 auto;text-align:center;}
.ew-focus__disc strong{color:var(--ew-ink);font-weight:700;}
@media(max-width:640px){.ew-focus__sliderRow{gap:8px;}.ew-focus__end{font-size:10px;}}

/* promo bar */
.promo-bar{background:var(--ew-ink);color:var(--ew-paper);display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;padding:9px 20px;font-size:13px;font-weight:500;text-align:center;line-height:1.3;}
.promo-bar .promo-tiny{display:none;}
.ad-slot{border-radius:var(--ew-radius);margin-bottom:30px;}
.promo-bar strong{color:var(--ew-yellow);font-weight:700;}
.promo-bar .promo-count{font-weight:700;color:var(--ew-yellow);font-variant-numeric:tabular-nums;letter-spacing:.03em;}
.promo-bar .promo-cta{color:var(--ew-paper);font-weight:700;text-decoration:none;border-bottom:2px solid var(--ew-yellow);padding-bottom:1px;white-space:nowrap;}
.promo-bar .promo-cta:hover{color:var(--ew-yellow);}
.promo-bar--neon{background:var(--ew-yellow);color:var(--ew-ink);font-weight:600;box-shadow:0 2px 18px rgba(241,255,102,.55);}
.promo-bar--neon strong{color:var(--ew-ink);font-weight:800;}
.promo-bar--neon .promo-count{color:var(--ew-ink);}
.promo-bar--neon .promo-cta{color:var(--ew-ink);font-weight:800;border-bottom-color:var(--ew-ink);}
.promo-bar--neon .promo-cta:hover{opacity:.65;color:var(--ew-ink);}
@media(max-width:820px){.promo-bar{font-size:12px;gap:8px;padding:7px 14px;}.promo-bar .promo-long{display:none;}.promo-bar .promo-tiny{display:inline;}.promo-bar .promo-count{display:none;}}

/* callout (placeholder treatment, reused from estate .ph) */
.ph{background:repeating-linear-gradient(45deg,rgba(11,11,11,.04),rgba(11,11,11,.04) 10px,rgba(11,11,11,.08) 10px,rgba(11,11,11,.08) 20px);border:1.5px dashed rgba(11,11,11,.25);border-radius:var(--ew-radius);display:flex;align-items:center;justify-content:center;color:var(--ew-ink-55);font-size:11px;text-transform:uppercase;letter-spacing:.1em;text-align:center;padding:10px;}

/* mobile rhythm */
@media(max-width:760px){
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr;}
  .btn{width:100%;}
  .section{padding-top:clamp(92px,21vw,128px);padding-bottom:clamp(92px,21vw,128px);}
  .grid{gap:28px;}
}
@media(max-width:900px){
  .grid--4{grid-template-columns:repeat(2,1fr);}
}

/* KILL ALL BUTTON ANIMATIONS — colour change only */
#ew-preview-root .btn,
#ew-preview-root .btn--primary,
#ew-preview-root .btn--ghost,
#ew-preview-root .btn--sm,
#ew-preview-root .nav a.btn,
#ew-preview-root .nav-panel a.btn,
#ew-preview-root .nav-panel__links a.btn,
#ew-preview-root .price-toggle button,
#ew-preview-root .promo-cta,
#ew-preview-root .nav-toggle {
  transform: none;
  transition: background-color .12s ease, color .12s ease, border-color .12s ease;
  box-shadow: none;
  animation: none;
}
#ew-preview-root .btn:hover,
#ew-preview-root .nav-toggle:hover,
#ew-preview-root .price-toggle button:hover,
#ew-preview-root .promo-cta:hover { transform: none; }

/* PRICING — mobile (<=760px): horizontal SWIPE carousel via scroll-snap (desktop keeps the 2-up grid) */
@media(max-width:760px){
  .grid--tiers{
    display:flex;
    grid-template-columns:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:16px;
    margin-left:calc(var(--ew-pad-x) * -1);
    margin-right:calc(var(--ew-pad-x) * -1);
    padding:4px var(--ew-pad-x) 14px;
    scroll-padding-left:var(--ew-pad-x);
  }
  .grid--tiers::-webkit-scrollbar{height:0;}
  .grid--tiers > .card{
    flex:0 0 86%;
    scroll-snap-align:start;
    width:86%;
  }
  .grid--tiers > .card .btn{width:100%;}
}

/* COOKIE-CONSENT BANNER (brand-styled; bottom; will later gate Clarity + GA4). Pattern from the estate mock. */
.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;max-width:560px;margin:0 auto;background:var(--ew-ink);color:var(--ew-paper);border-radius:16px;padding:18px 20px;z-index:9996;box-shadow:0 10px 40px rgba(11,11,11,.35);font-size:14px;line-height:1.5;}
.cookie-banner p{margin:0 0 12px;}
.cookie-banner__row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.cookie-banner__btn{font-family:var(--ew-font);border-radius:10px;padding:10px 18px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:12px;cursor:pointer;line-height:1;}
.cookie-banner__btn--accept{background:var(--ew-yellow);color:var(--ew-ink);border:none;}
.cookie-banner__btn--decline{background:transparent;color:var(--ew-paper);border:1.5px solid rgba(245,244,240,.4);}
.cookie-banner__link{color:var(--ew-paper);opacity:.7;font-size:12px;margin-left:auto;text-decoration:none;}
.cookie-banner__link:hover{opacity:1;text-decoration:underline;text-underline-offset:3px;}
.cookie-banner[hidden]{display:none;}


/* ============================================================================
   DARK MODE — a straight palette inversion (ink ground, paper "ink", yellow
   accent). Activated by a `dark` class on the document root: <html class="dark">.
   Same blocks, only colour differs. Ported verbatim from custom-site/dark-demo.html
   (.surface.dark token set + .dark component rules), re-scoped to the root.
   ============================================================================ */

/* dark tokens — greys + hairlines are paper-at-opacity, mirroring how light
   uses ink-at-opacity (--ew-ink-55 / --ew-rule). No new colours introduced. */
.dark{
  --d-text-2:rgba(245,244,240,.72);   /* body / secondary  — mirrors --ew-ink-55 */
  --d-dim:rgba(245,244,240,.5);        /* eyebrows, captions, labels */
  --d-line:rgba(245,244,240,.14);      /* hairline borders  — mirrors --ew-rule */
  --d-raise:rgba(245,244,240,.09);     /* raised box surface */
}
/* the page ground goes ink; #ew-bg starts ink so the blended header reads black */
html.dark{background:#0b0b0b;}
/* DARK ENTRANCE — #ew-bg is ink immediately (no paper->ink crawl) so nothing
   animates independently of the overlay; the whole viewport fades in as one. */
.dark #ew-bg{background:#0b0b0b;transition:none;}
/* the full-viewport overlay starts OPAQUE (covering the page black) on dark pages.
   The actual fade-out is driven by a tiny INLINE style+script in base.njk — that
   way it is always fresh (never a stale cached stylesheet) and it fires AFTER the
   page paints, so the reveal is actually visible. This is just the start state. */
.dark #ew-fade{opacity:1;}
/* dark header is just ink from the start — drop its standalone slow background
   transition so it does not separately fade; the overlay does the entrance. */
.dark .hdr,.dark #home-hdr,.dark #ew-preview-root #home-hdr{background:var(--ew-ink);transition:none;}

/* type + prose */
.dark .h1,.dark .h2,.dark .h3{color:var(--ew-paper);}
#ew-preview-root.dark h1,#ew-preview-root.dark h2,#ew-preview-root.dark h3,
.dark #ew-preview-root h1,.dark #ew-preview-root h2,.dark #ew-preview-root h3{color:var(--ew-paper);}
.dark .lede,.dark .body{color:var(--d-text-2);}
.dark .eyebrow,.dark .caption,.dark .quote__who{color:var(--d-dim);}

/* header + nav — BLACK and visible in dark (header is transparent, #ew-bg goes ink behind it) */
.dark .hdr,.dark #home-hdr{background:var(--ew-ink);border-bottom-color:var(--d-line);}
/* logo — ink by default; flip to paper/white so it reads on the black dark header */
.dark .logo,.dark .logo sup{color:var(--ew-paper);}
.dark .nav a:not(.btn){color:var(--ew-paper);}
.dark .nav a:not(.btn):hover{text-decoration-color:var(--ew-yellow);}
.dark .nav .quiet{color:var(--d-text-2);}
.dark .nav a.btn--primary,.dark .btn--primary{background:var(--ew-yellow);color:var(--ew-ink);}
.dark .nav a.btn--primary:hover,.dark .btn--primary:hover{background:var(--ew-paper);color:var(--ew-ink);}
.dark .arrow{color:var(--ew-paper);}
.dark .arrow:hover{border-bottom-color:var(--ew-yellow);}
.dark .btn--ghost{color:var(--ew-paper);border-color:var(--d-line);}
.dark .btn--ghost:hover{background:var(--ew-paper);color:var(--ew-ink);}

/* mobile nav dropdown/panel — BLACK in dark */
.dark .nav-panel{background:var(--ew-ink);}
.dark .nav-panel a:not(.btn){color:var(--ew-paper);}
.dark .nav-panel .quiet{color:var(--d-text-2);}
.dark .nav-close{color:var(--ew-paper);}
.dark .nav-toggle{background:var(--ew-yellow);color:var(--ew-ink);}

/* cards / surfaces */
.dark .card{background:var(--d-raise);border:1.5px solid var(--d-line);color:var(--ew-paper);box-shadow:none;}
.dark .card--ink{background:var(--d-raise);border:1.5px solid var(--ew-yellow);color:var(--ew-paper);}
.dark .stars{color:var(--ew-yellow);}
.dark .pill{background:var(--d-raise);color:var(--ew-paper);border:1px solid var(--d-line);}
.dark .pill__num{background:var(--ew-yellow);color:var(--ew-ink);}
.dark .pill--badge{background:var(--ew-yellow);color:var(--ew-ink);}
.dark .ph{background:repeating-linear-gradient(45deg,rgba(245,244,240,.03),rgba(245,244,240,.03) 10px,rgba(245,244,240,.07) 10px,rgba(245,244,240,.07) 20px);border-color:var(--d-line);color:var(--d-dim);}

/* shared components reused on dark */
.dark .feat li{border-top-color:var(--d-line);}
.dark .feat li:before{color:var(--ew-yellow);}
.dark .feat__v{color:rgba(245,244,240,.6);}
.dark .price__num{color:var(--ew-paper);}
.dark .card--ink .price__num{color:var(--ew-yellow);}
.dark .price-toggle{border-color:var(--d-line);}
.dark .price-toggle button{color:var(--ew-paper);}
.dark .price-toggle button.active{background:var(--ew-yellow);color:var(--ew-ink);}
.dark .stack__total{border-top-color:var(--d-line);}
.dark .pay-opt{border-color:var(--d-line);}
.dark .pay-opt--on{border-color:var(--ew-yellow);}
.dark .pay-opt--on .pay-opt__dot{border-color:var(--ew-yellow);background:var(--ew-yellow);box-shadow:inset 0 0 0 3px var(--ew-ink);}
.dark .next li{border-top-color:var(--d-line);}
.dark .next li:before{background:var(--ew-yellow);color:var(--ew-ink);}
.dark .optin input{background:var(--d-raise);color:var(--ew-paper);}
.dark .faq details{border-top-color:var(--d-line);}
.dark .faq details:last-child{border-bottom-color:var(--d-line);}
.dark .faq summary{color:var(--ew-paper);}

/* qualifier slider on dark */
.dark .ew-focus__block{background:var(--d-raise);border-color:var(--d-line);box-shadow:none;}
.dark .ew-focus__value{color:var(--ew-paper);}
.dark .ew-focus__valueLabel,.dark .ew-focus__eyebrow,.dark .ew-focus__end{color:var(--d-dim);}
.dark input.ew-focus__slider{border-color:var(--d-line);}
.dark .ew-focus__response{background:var(--d-raise);border-color:var(--d-line);color:var(--ew-paper);}
.dark .ew-focus__respTitle{color:var(--ew-paper);}
.dark .ew-focus__respText{color:var(--d-text-2);}
.dark .ew-focus__disc{color:var(--d-dim);}
.dark .ew-focus__disc strong{color:var(--ew-paper);}

/* footer on dark */
.dark .foot{border-top-color:var(--d-line);}
.dark .foot__disc,.dark .foot__trust,.dark .copy{color:var(--d-text-2);}
.dark .foot__legal a{color:var(--ew-paper);}
.dark .social a{background:var(--d-raise);border:1px solid var(--d-line);}

/* promo banner stays ink in both themes (it is already ink); neon variant unchanged */

/* ============================================================================
   BLOCK BACKGROUND HELPER — the per-block `background` property (paper / yellow
   / dark). paper + yellow already exist via .section / .section--yellow; this
   adds a section-level dark (ink) ground for blocks set to `dark`, consistent
   with the .card--ink / .on-ink language. Text + accents invert as on ink.
   ============================================================================ */
.section--dark{background:var(--ew-ink);color:var(--ew-paper);}
.section--dark .h1,.section--dark .h2,.section--dark .h3{color:var(--ew-paper) !important;}
.section--dark .lede,.section--dark .body{color:rgba(245,244,240,.82);}
.section--dark .eyebrow,.section--dark .caption,.section--dark .quote__who{color:rgba(245,244,240,.55);}
.section--dark .arrow{color:var(--ew-paper);}
.section--dark .arrow:hover{border-bottom-color:var(--ew-yellow);}
.section--dark .btn--primary{background:var(--ew-yellow);color:var(--ew-ink);}
.section--dark .btn--primary:hover{background:var(--ew-paper);color:var(--ew-ink);}
.section--dark .btn--ghost{color:var(--ew-paper);border-color:rgba(245,244,240,.4);}
.section--dark .btn--ghost:hover{background:var(--ew-paper);color:var(--ew-ink);}
.section--dark .stars{color:var(--ew-yellow);}
.section--dark .card{background:rgba(245,244,240,.06);border-color:rgba(245,244,240,.14);color:var(--ew-paper);box-shadow:none;}
.section--dark .feat li{border-top-color:rgba(245,244,240,.18);}
.section--dark .feat li:before{color:var(--ew-yellow);}
.section--dark .faq details{border-top-color:rgba(245,244,240,.18);}
.section--dark .faq details:last-child{border-bottom-color:rgba(245,244,240,.18);}
.section--dark .faq summary{color:var(--ew-paper);}

/* ============================================================================
   PAGE COMPONENTS — ported verbatim from the signed-off custom-site bundle
   (terms.html .prose, blog-post.html .post-* + blockquote, estate mock
   .theory-label / .callout / .callout--yellow). Used by the legal pages, the
   blog post, and the How It Works "Theory Check". Not a redesign — these are
   the same rules the standalone pages already shipped with.
   ============================================================================ */

/* prose (legal pages: Terms / Privacy / Cookies) */
.prose{max-width:var(--ew-prose);}
.prose .body{margin-bottom:16px;}
.prose .body:last-child{margin-bottom:0;}
.prose .h3{margin:clamp(30px,3.4vw,38px) 0 12px;}
.prose .h3:first-child{margin-top:0;}
.prose hr + .h3{margin-top:0;}
.prose ul{margin:4px 0 18px;padding-left:1.25em;}
.prose li{font-size:16px;line-height:1.62;font-weight:500;margin:0 0 .55em;}
.prose li:last-child{margin-bottom:0;}
.prose li strong{font-weight:700;}
.prose hr{border:none;border-top:1px solid var(--ew-rule);margin:clamp(30px,4vw,40px) 0;}

/* theory-check callout (How It Works) — ink panel + yellow variant (estate mock) */
.callout{background:var(--ew-ink);color:var(--ew-paper);border-radius:var(--ew-radius);padding:20px 22px;}
.callout--yellow{background:var(--ew-yellow);color:var(--ew-ink);border:2px solid var(--ew-ink);}
.theory-label{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ew-yellow);margin-bottom:8px;}

/* blog post (reading view) — verbatim from custom-site/blog-post.html */
.post-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:48px;align-items:start;}
.post-body{max-width:var(--ew-prose);}
.post__tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;}
.post__title{font-size:clamp(27px,3.4vw,40px);font-weight:900;letter-spacing:-0.03em;line-height:1.12;margin:0;}
.post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:16px 0 0;font-size:13px;font-weight:600;color:var(--ew-ink-55);}
.post__meta .dot{opacity:.5;}
.post-img{aspect-ratio:16/10;border-radius:var(--ew-radius);background:#2b2b2b;box-shadow:var(--ew-soft);}
.post-body p{font-size:17px;line-height:1.7;font-weight:500;margin:0 0 20px;}
.post-body p strong{font-weight:700;}
.post-body em{opacity:.8;}
.post-body h2{font-size:clamp(19px,2vw,24px);font-weight:900;letter-spacing:-0.02em;line-height:1.18;margin:38px 0 14px;}
.post-body blockquote{border-left:3px solid var(--ew-ink);margin:28px 0;padding:4px 0 4px 22px;font-size:clamp(19px,2.2vw,24px);font-weight:600;line-height:1.4;}
.post-sidebar{position:sticky;top:120px;}
.post-sidebar input{width:100%;padding:12px 18px;border:1.5px solid var(--ew-ink);border-radius:var(--ew-pill);font-family:var(--ew-font);font-size:14px;margin-bottom:24px;}
.post-cats{display:flex;flex-direction:column;gap:9px;font-size:14px;}
.post-cats a{color:var(--ew-ink);text-decoration:none;}
.post-cats a:hover{text-decoration:underline;text-underline-offset:3px;}
@media(max-width:860px){.post-grid{grid-template-columns:1fr;}.post-sidebar{position:static;}}

/* dark-mode variants for ported components (so dark pages stay correct) */
.dark .prose hr{border-top-color:var(--d-line);}
.dark .post-img{background:#2b2b2b;}
.dark .post-body blockquote{border-left-color:var(--ew-yellow);}
.dark .post-cats a{color:var(--ew-paper);}
.dark .post-sidebar input{background:transparent;border-color:var(--d-line);color:var(--ew-paper);}

/* ============================================================================
   BLOG — post body extras + Stories listing cards + tag filter.
   Builds on the existing .post-grid / .post-body / .post-sidebar / .pill tokens
   (above) so posts and the listing stay faithful to the signed-off design.
   ============================================================================ */
/* post header meta (author · date) */
.post__author{font-weight:700;color:var(--ew-ink);}
.post__dot{opacity:.45;}
.post__meta a{color:inherit;}
/* a real (filled) image frame — same shape as the .post-img placeholder */
.post-img--filled{background:#2b2b2b;overflow:hidden;}
.post-img--filled img{display:block;}
/* in-body figures (image + caption / video + caption) */
.post-figure{margin:28px 0;}
.post-img-natural{display:block;width:100%;height:auto;border-radius:var(--ew-radius);box-shadow:var(--ew-soft);}
.post-figure .media{aspect-ratio:16/9;}
.post-figure figcaption,.post-figure .caption{margin-top:10px;font-size:13px;color:var(--ew-ink-55);text-align:center;font-style:italic;}
.post-body figure img{border-radius:var(--ew-radius);}
.post-body blockquote cite,.post-quote__who{display:block;margin-top:12px;font-size:14px;font-weight:600;font-style:normal;opacity:.7;}
.post-body a:not(.pill):not(.arrow):not(.btn){color:var(--ew-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;text-decoration-color:var(--ew-yellow);}
.post-body a:not(.pill):not(.arrow):not(.btn):hover{text-decoration-color:var(--ew-ink);}
.post-body hr{border:0;border-top:1px solid var(--ew-rule);margin:34px 0;}
.post-body ul,.post-body ol{font-size:17px;line-height:1.7;font-weight:500;margin:0 0 20px;padding-left:1.2em;}
.post-body li{margin:0 0 8px;}
.post-cta-row{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;}

/* Stories listing — card grid (data-driven from collections.post) */
.post-list-grid{display:grid;gap:34px 28px;}
.post-list-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.story-card{text-decoration:none;color:inherit;display:flex;flex-direction:column;}
.story-card__media{aspect-ratio:16/10;margin-bottom:14px;}
.story-card__media img{display:block;}
.story-card__title{font-size:clamp(21px,2.4vw,28px);font-weight:900;letter-spacing:-0.03em;line-height:1.14;margin:0;}
.story-card:hover .story-card__title{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:3px;text-decoration-color:var(--ew-yellow);}
.story-card__excerpt{font-size:14px;line-height:1.55;font-weight:500;color:var(--ew-ink-55);margin:10px 0 0;}
.story-card__tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;}
.story-card__date{font-size:12px;font-weight:600;color:var(--ew-ink-55);margin-top:10px;}
.story-empty{grid-column:1 / -1;font-size:15px;color:var(--ew-ink-55);}
.story-empty a{color:var(--ew-ink);}
/* active category in the sidebar filter */
[data-story-cats] a.is-active,.post-cats a.is-active{font-weight:800;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ew-yellow);text-decoration-thickness:2px;}
@media(max-width:760px){
  .post-list-grid--2{grid-template-columns:1fr;}
  [data-story-filter]{grid-template-columns:1fr !important;}
}

/* dark-mode variants for blog extras */
.dark .post__author{color:var(--ew-paper);}
.dark .post-body a:not(.pill):not(.arrow):not(.btn){color:var(--ew-paper);}
.dark .post-body a:not(.pill):not(.arrow):not(.btn):hover{text-decoration-color:var(--ew-paper);}
.dark .post-body hr{border-top-color:var(--d-line);}
.dark .story-card__title{color:var(--ew-paper);}
.dark .story-card__excerpt,.dark .story-card__date,.dark .story-empty{color:var(--d-dim);}
