/* ==========================================================================
   Evidence Scan - HoloHDR page (LEDGER is the single site language).
   White, cold hue, fine-lines foil, SPARSE - restraint is the design
   statement. Foil moments, top to bottom (two sections stay fully clean:
   the problem scrub and the Surface cross-link):
     hero    - the single "dollars" pill
     problem - NONE (the doubt space is holo-free by design; the question
               scrub's claim stamp is the one exception)
     diff    - the FIRE tag pill (the answer enters)
     criteria- three hover-lit numbers + the one fine-lines separator stripe
     surface - NONE (a quiet breath)
     why     - the one holo-frame + the award icon on FIRE Zero
     ledger  - the steel dollar figures (the page's centrepiece)
     uses    - small holo icons + the screenshot card's fine-lines seal
     warranty- the Warranty badge + the "$5 million" pill
     closer  - the arrow CTA's foil arrow
   Tokens: brand/elevate-tokens.css - chrome: site.css.
   Foil styling lives ONLY in holo-fallback.css; this file just sizes/positions
   the foil boxes and lays out the page.
   ========================================================================== */

/* ---------- page shell ---------- */
body{overflow-x:hidden;overflow-x:clip;background:var(--page-bg,var(--canvas));color:var(--page-ink,var(--ink));}
.scan{background:var(--page-bg,var(--canvas));color:var(--page-ink,var(--ink));}

/* ---------- shared type (Satoshi display, editorial whitespace) ---------- */
.sn-h{font-family:var(--font-display);font-weight:700;font-size:clamp(34px,4.6vw,60px);line-height:1.12;letter-spacing:-0.03em;margin:0;}
.sn-p{font-size:18px;line-height:1.6;margin:24px 0 0;max-width:56ch;}

/* ---------- silky IO reveals (scan.js gates the hidden state behind
   body.sn-anim, so content is never lost without JS; reduced-motion safe) ---------- */
body.sn-anim .r{opacity:0;transform:translateY(var(--reveal-rise,20px));transition:opacity var(--dur-reveal,500ms) var(--ease-silk),transform var(--dur-reveal,500ms) var(--ease-silk);}
body.sn-anim .r.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){body.sn-anim .r{opacity:1;transform:none;transition:none;}}

/* ==========================================================================
   The scrub scaffold (shared by the problem, why and ledger sections).
   The scrub layout - tall driver + sticky stage + stacked phases - only
   arms under body.sn-scrub (added by scan.js when motion is allowed), so
   without JS, with reduced motion, or without IO the phases simply flow as
   normal stacked content, fully visible.
   ========================================================================== */
body.sn-scrub [data-scrub]{position:relative;}
body.sn-scrub .sn-scrub__sticky{position:sticky;top:0;height:100vh;overflow:hidden;}
body.sn-scrub .sn-phase{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;isolation:isolate;}
body.sn-scrub .sn-phase > .wrap{width:100%;}
.sn-phase{isolation:isolate;}
/* unarmed flow: give the stacked phases their own air */
body:not(.sn-scrub) .sn-phase{padding:var(--space-xl) 0;}
/* driver heights */
body.sn-scrub .sn-prob{min-height:160vh;}
body.sn-scrub .sn-scanl{min-height:420vh;}   /* +40vh hold on the money beat (Aaron) */
body.sn-scrub .sn-why{min-height:340vh;}
body.sn-scrub .sn-two{min-height:360vh;}

/* ---------- 1 · hero: white, lots of air, type only ---------- */
.sn-hero{position:relative;isolation:isolate;overflow:hidden;padding:96px 0;}
.sn-hero__in{position:relative;z-index:1;}
.sn-hero__h{font-family:var(--font-display);font-weight:700;font-size:clamp(48px,7.4vw,112px);line-height:1.04;letter-spacing:-0.035em;margin:0;max-width:14ch;}
.sn-hero__lead{font-size:clamp(20px,2vw,26px);line-height:1.5;margin:28px 0 0;max-width:34ch;}
.sn-hero__lead .hl{white-space:nowrap;}
.sn-hero__cta{margin-top:44px;display:flex;align-items:center;gap:28px;}
.sn-hero__alt{font-size:17px;font-weight:600;color:var(--ink);}

/* ---------- 2a · the problem: normal-flow editorial intro, no foil ---------- */
.sn-prob2{padding:var(--space-2xl) 0;}
.sn-prob2__h{max-width:24ch;}

/* ---------- 2b · why breaches still happen: one composed slide ----------
   Transparent ground - the radar sweeps behind it. */
.sn-why4m{isolation:isolate;}
.sn-why4m__grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-lg);align-items:center;}
.sn-why4m__h{max-width:18ch;}
.sn-why4m__statwrap{text-align:left;}
.sn-why4m__big{margin:0;}
.sn-why4m__cap{font-size:16px;line-height:1.5;margin:12px 0 0;color:var(--slate-950);font-weight:600;}
.sn-why4m__reason{font-family:var(--font-display);font-weight:700;font-size:clamp(21px,2.4vw,30px);letter-spacing:-0.015em;line-height:1.3;margin:var(--space-lg) 0 0;}
.sn-why4m__proxy{margin-top:12px;max-width:52ch;}

/* ---------- 2c · the question scrub: the grey verdict room ---------- */
.sn-prob{background:var(--slate-100);}
.sn-prob__in{max-width:880px;margin:0 auto;}
.sn-prob__h{font-family:var(--font-display);font-weight:700;font-size:clamp(32px,4.4vw,58px);line-height:1.12;letter-spacing:-0.03em;margin:0;}
.sn-prob__big{font-family:var(--font-display);font-weight:700;font-size:clamp(52px,9vw,140px);line-height:1;letter-spacing:-0.04em;margin:32px 0 0;color:var(--slate-950);}
.sn-prob__p{font-size:19px;line-height:1.6;margin:28px 0 0;max-width:52ch;}
.sn-prob__ask{font-family:var(--font-display);font-weight:700;font-size:clamp(40px,6vw,88px);line-height:1.06;letter-spacing:-0.035em;margin:0;}

/* the claim stamp: 4 foil sheets over one square box (the fire-stripe
   cascade recipe); page CSS sizes the box, rotates it and slams it in.
   The seal contract's left-band geometry is overridden to fill the box. */
.sn-prob__in--ask{position:relative;}
.sn-stamp{position:absolute;top:-96px;right:clamp(0px,4vw,48px);width:clamp(120px,14vw,176px);aspect-ratio:1;transform:rotate(-12deg);z-index:2;pointer-events:none;}
.sn-stamp .hl.hl--seal,
.sn-stamp .hl.hl--seal.hl-gl{position:absolute;inset:0;width:100%;height:100%;}
/* sheets 1-2 run at half strength: the ENGINE dims them (data-holo-gain=0.5
   in the markup); the opacity here only halves the pre-engine CSS fallback,
   and lifts once the engine upgrades the element (.hl-gl) */
.sn-stamp__l1{opacity:0.5;-webkit-mask:url('../../assets/guilloche/claim-stamp-1.svg') center/contain no-repeat;mask:url('../../assets/guilloche/claim-stamp-1.svg') center/contain no-repeat;}
.sn-stamp__l2{opacity:0.5;-webkit-mask:url('../../assets/guilloche/claim-stamp-2.svg') center/contain no-repeat;mask:url('../../assets/guilloche/claim-stamp-2.svg') center/contain no-repeat;}
.sn-stamp__l1.hl-gl{opacity:1;-webkit-mask:url('../../assets/guilloche/claim-stamp-1.svg') center/contain no-repeat;mask:url('../../assets/guilloche/claim-stamp-1.svg') center/contain no-repeat;}
.sn-stamp__l2.hl-gl{opacity:1;-webkit-mask:url('../../assets/guilloche/claim-stamp-2.svg') center/contain no-repeat;mask:url('../../assets/guilloche/claim-stamp-2.svg') center/contain no-repeat;}
.sn-stamp__l3,.sn-stamp__l3.hl-gl{-webkit-mask:url('../../assets/guilloche/claim-stamp-3.svg') center/contain no-repeat;mask:url('../../assets/guilloche/claim-stamp-3.svg') center/contain no-repeat;}
.sn-stamp__l35,.sn-stamp__l35.hl-gl{-webkit-mask:url('../../assets/guilloche/claim-stamp-3-5.svg') center/contain no-repeat;mask:url('../../assets/guilloche/claim-stamp-3-5.svg') center/contain no-repeat;}
.sn-stamp__l4,.sn-stamp__l4.hl-gl{-webkit-mask:url('../../assets/guilloche/claim-stamp-4.svg') center/contain no-repeat;mask:url('../../assets/guilloche/claim-stamp-4.svg') center/contain no-repeat;}
/* the sticker application: armed pages idle it hidden; scan.js latches
   .sn-stamp--in once the beat has fully settled, and after a beat of
   hesitation (the hand lining up) the sticker arrives from upper right,
   twists into its final angle, presses a touch past rest and eases back -
   settling to zero velocity. */
body.sn-scrub .sn-stamp{opacity:0;transform:translate(26px,-34px) rotate(-20deg) scale(1.35);}
body.sn-scrub .sn-stamp.sn-stamp--in{animation:sn-stamp-stick .85s cubic-bezier(.22,1,.36,1) .12s forwards;}   /* hesitation trimmed .28->.12s (arrive on time - Aaron) */
@keyframes sn-stamp-stick{
  0%{opacity:0;transform:translate(26px,-34px) rotate(-20deg) scale(1.35);}
  60%{opacity:1;transform:translate(0,0) rotate(-11deg) scale(0.97);}
  100%{opacity:1;transform:translate(0,0) rotate(-12deg) scale(1);}
}
@media(max-width:880px){.sn-stamp{top:-72px;right:0;}}

/* ---------- 3 · the FIRE difference: big editorial two-column ---------- */
.sn-diff{padding:var(--space-2xl) 0;isolation:isolate;}
.sn-diff__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--space-lg);align-items:center;}
.sn-diff__h{font-family:var(--font-display);font-weight:700;font-size:clamp(36px,4.8vw,68px);line-height:1.1;letter-spacing:-0.03em;margin:0;text-align:left;}
.sn-diff__dime{display:block;}
.sn-diff__fire{display:block;margin-top:12px;}
.sn-diff__kicker{font-family:var(--font-display);font-weight:700;font-size:clamp(18px,1.9vw,24px);letter-spacing:-0.01em;margin:28px 0 0;color:var(--slate-950);}
.sn-def{background:var(--fill-1);border-radius:var(--radius-card);padding:clamp(28px,3.4vw,44px);}
.hl.sn-def__tag{font-weight:700;font-size:14px;letter-spacing:0.02em;line-height:1;padding:8px 16px;border-radius:var(--radius-pill);}
.sn-def__h{font-family:var(--font-display);font-weight:700;font-size:clamp(21px,2.2vw,26px);letter-spacing:-0.015em;line-height:1.25;margin:20px 0 0;}
.sn-def__p{font-size:17px;line-height:1.6;margin:12px 0 0;}

/* ---------- 4a · if it's in your scan: four lines, four screens ----------
   Lines 1-3 are pure ink; line 4 lands as the giant steel money line
   (the laminate over/underline was retired 2026-07-23, Aaron). */
/* the section itself stays TRANSPARENT when armed: the darkness is the
   radar's own ground (.snb-ground, beam.js) so the sweep keeps running
   over it; unarmed/reduced pages get a plain dark ground instead */
body:not(.sn-scrub) .sn-scanl{background:var(--slate-950);}
.sn-scanl__in{text-align:center;isolation:isolate;}
.sn-scanl__line{font-family:var(--font-display);font-weight:700;font-size:clamp(38px,5.6vw,84px);line-height:1.08;letter-spacing:-0.035em;margin:0;color:#fff;}
/* the money word wears the laminate as a banknote-style sandwich: one
   stripe riding ABOVE the word and one below, word-width */
.sn-scanl__money{position:relative;display:inline-block;isolation:isolate;}
/* em-based geometry so the sandwich scales with the type. The word is all
   x-height glyphs, so the box's empty ascender space above them must be
   swallowed: the top stripe sits far lower relative to the box (its glyph
   gap then matches the bottom stripe's). */
/* re-tile the pattern sheets at stripe scale (the gallery's calibration) */

/* ---------- 4b · criteria: slate cards + the separator ---------- */
.sn-crit{padding:var(--space-2xl) 0;isolation:isolate;}
.sn-crit__h{max-width:24ch;}
.sn-crit__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin-top:var(--space-lg);}
.sn-crit__tile{background:var(--fill-1);border-radius:var(--radius-card);padding:clamp(28px,3.2vw,44px);}
.sn-crit__num{display:inline-block;font-family:var(--font-display);font-weight:700;font-size:clamp(40px,4vw,64px);line-height:1;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;}
.sn-crit__tile h3{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-0.01em;line-height:1.25;margin:20px 0 0;}
.sn-crit__tile p{font-size:16px;line-height:1.6;margin:8px 0 0;}
.sn-crit__tile .hl{background:none;box-shadow:none;color:inherit;}
.sn-crit__tile .warr-hl-canvas{opacity:0;transition:opacity .35s var(--ease-silk);}
.sn-crit__tile:hover .warr-hl-canvas{opacity:1;}
.sn-crit__note{font-size:17px;line-height:1.6;margin:var(--space-lg) 0 0;max-width:64ch;}

/* ---------- 5 · Surface cross-link: fully quiet, the grey breath ---------- */
.sn-surf{padding:var(--space-2xl) 0;background:var(--slate-100);}
.sn-surf__h{max-width:24ch;}
.sn-surf__link{margin:28px 0 0;font-size:17px;font-weight:600;}
.sn-surf__link a{color:var(--ink);}

/* ---------- 6 · why scrub: the holo-frame beat, watching, FIRE Zero ---------- */
.sn-why__in{max-width:920px;margin:0 auto;}
.sn-why__in--center{text-align:center;}
.sn-why__h{max-width:22ch;margin-left:auto;margin-right:auto;}
.sn-why__p{margin-left:auto;margin-right:auto;}
.sn-why__frame{max-width:880px;margin:0 auto;}
.sn-why__body{background:var(--page-bg,var(--canvas));text-align:center;padding:clamp(44px,6vw,88px) clamp(24px,4vw,64px);}
.sn-why__big{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(32px,4.6vw,64px);line-height:1.1;letter-spacing:-0.03em;color:var(--slate-950);}
.sn-why__sub{font-size:clamp(16px,1.5vw,19px);line-height:1.6;margin:24px auto 0;max-width:46ch;}
/* the scan progress bar (the shipped home component, sized locally) */
.sn-scanbar{position:relative;width:min(420px,80%);height:8px;border-radius:999px;background:var(--slate-200);overflow:hidden;margin:32px auto 0;}
.sn-scanbar__fill{position:absolute;left:0;top:0;bottom:0;display:block;width:8%;border-radius:999px;background:var(--slate-900);}
body:not(.sn-scrub) .sn-scanbar__fill{width:62%;}
/* FIRE Zero: copy panel left, the warranty streak-tracker card right */
.sn-why__in--zero{max-width:1200px;}
.sn-zero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--space-lg);align-items:center;}
.sn-zero__panel{background:var(--slate-100);border-radius:var(--radius-card);padding:clamp(32px,4.6vw,64px);position:relative;isolation:isolate;}
.sn-zero__h{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,3.4vw,44px);line-height:1.16;letter-spacing:-0.025em;margin:0;max-width:26ch;text-align:left;}
.sn-zero__p{font-size:18px;line-height:1.6;margin:20px 0 0;max-width:52ch;}

/* the streak tracker card, verbatim from warranty.css (S3d): slate-200
   sheet, teal/emerald laminate edge, giant day count, live dates, the
   foil award ribbon bleeding off the top-right corner */
.warr-streak__card{
  --streak-stripe:clamp(48px,15.3%,88px);
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--slate-200);border-radius:var(--radius-card);
  aspect-ratio:574/440;
}
.warr-streak__lam{position:absolute;top:0;bottom:0;left:0;width:var(--streak-stripe);z-index:0;opacity:0.6;pointer-events:none;}
.warr-streak__lam .hl.hl--rule,
.warr-streak__lam .hl.hl--rule.hl-gl{position:absolute;inset:0;width:100%;height:100%;display:block;}
.warr-streak__lam .hl--pat-guilloche,
.warr-streak__lam .hl--pat-guilloche.hl-gl{-webkit-mask-size:120px auto;mask-size:120px auto;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-position:center;mask-position:center;}
.warr-streak__lam .hl--pat-logo,
.warr-streak__lam .hl--pat-logo.hl-gl{-webkit-mask-size:auto 480px;mask-size:auto 480px;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-position:left center;mask-position:left center;}
.warr-streak__body{
  position:absolute;inset:0;z-index:1;
  display:flex;flex-direction:column;align-items:flex-start;
  padding:clamp(24px,7%,44px);
  padding-left:calc(var(--streak-stripe) + clamp(20px,5%,40px));
  color:var(--slate-950);
}
.warr-streak__t{font-family:var(--font-display);font-weight:700;font-size:clamp(18px,2.2vw,28px);letter-spacing:-0.01em;line-height:1.2;margin:0;}
.warr-streak__stat{display:flex;align-items:baseline;gap:20px;margin:auto 0;}
.warr-streak__num{font-family:var(--font-display);font-weight:700;font-size:clamp(72px,9.5vw,118px);line-height:1;letter-spacing:-0.03em;}
.warr-streak__unit{font-family:var(--font-display);font-weight:700;font-size:clamp(26px,3vw,38px);line-height:1;letter-spacing:-0.02em;}
.warr-streak__dates{font-weight:600;font-size:clamp(15px,1.6vw,19px);line-height:1.3;margin:0;}
.warr-streak__sep{font-weight:400;padding:0 4px;}
.warr-streak__award{position:absolute;top:-14%;right:-20%;width:48%;aspect-ratio:1;z-index:2;pointer-events:none;}
.warr-streak__award-fill{position:absolute;inset:0;width:100%;height:100%;}
.warr-streak__award .hl.hl--icon,
.warr-streak__award .hl.hl--icon.hl-gl{position:absolute;inset:0;width:100%;height:100%;display:block;}
.warr-streak__award-lam{
  position:absolute;inset:0;opacity:0.45;pointer-events:none;
  -webkit-mask:url('../../assets/holo/svg/icon-award-fill.svg') center/contain no-repeat;
  mask:url('../../assets/holo/svg/icon-award-fill.svg') center/contain no-repeat;
}
.warr-streak__award-lam .hl.hl--rule,
.warr-streak__award-lam .hl.hl--rule.hl-gl{position:absolute;inset:0;width:100%;height:100%;display:block;}
.warr-streak__award-lam .hl--pat-guilloche,
.warr-streak__award-lam .hl--pat-guilloche.hl-gl{-webkit-mask-size:120px auto;mask-size:120px auto;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-position:center;mask-position:center;}
.warr-streak__award-lam .hl--pat-logo,
.warr-streak__award-lam .hl--pat-logo.hl-gl{-webkit-mask-size:auto 480px;mask-size:auto 480px;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-position:left center;mask-position:left center;}

/* ---------- 7 · the ledger: two columns, layered assembly, steel figures ---------- */
/* the grey plinth: the fixed ledger stage reads as its own chamber */
.sn-two{background:var(--slate-100);}
body.sn-scrub .sn-two__sticky{display:flex;align-items:center;}
body:not(.sn-scrub) .sn-two{padding:var(--space-2xl) 0;}
.sn-two__in{isolation:isolate;width:100%;}
.sn-two__h{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,3.4vw,46px);line-height:1.14;letter-spacing:-0.025em;margin:0 0 var(--space-lg);max-width:24ch;}
.sn-two__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start;}
.sn-two__label{font-family:var(--font-display);font-weight:700;font-size:clamp(19px,1.9vw,24px);letter-spacing:-0.01em;margin:0;color:var(--slate-950);}
.sn-two__numwrap{position:relative;isolation:isolate;margin-top:16px;min-height:1.1em;font-family:var(--font-display);font-weight:700;font-size:clamp(48px,6.4vw,104px);line-height:1;letter-spacing:-0.04em;}
.sn-two__num{display:block;color:var(--slate-900);}   /* plain ink - the steel shimmer came off (2026-07-23, Aaron) */
/* the engine rasters steel glyphs CENTRED in the element box via canvas
   fillText, which can express neither letter-spacing nuances nor
   font-variant-numeric. site.css puts tabular-nums on body, so CSS laid
   "1" digits WIDE while the raster drew them narrow - every 1-bearing
   figure drifted right by half the difference. Both dials are reset here
   so the two measurements agree and every figure lands left-flush. */
/* left-flush figures: the engine CENTRES the glyph raster in the element
   box (holo-masks.js glyphs()), so the box must keep the contract's
   symmetric 0.18em side padding (headroom - zeroing it clips the raster and
   lets the centring drift per string). The negative margin then walks the
   whole box left by exactly the padding, landing the glyphs on the column's
   left edge - identically in every state, before and after the drain. */
/* the two states stack when armed; unarmed only the final state shows */
body.sn-scrub .sn-two__num{position:absolute;left:0;top:0;}
body.sn-scrub .sn-two__num--b{opacity:0;}
body:not(.sn-scrub) .sn-two__num--a{display:none;}
.sn-two__state{font-size:16px;line-height:1.5;margin:14px 0 0;color:var(--slate-950);font-weight:600;}
.sn-two__sub{font-size:17px;line-height:1.6;margin:24px 0 0;max-width:44ch;}
/* layers idle hidden only when armed; JS drives their opacity */
body.sn-scrub .sn-layer{opacity:0;}

/* ---------- 7b · put the numbers to work: quiet rows + screenshot card ---------- */
.sn-uses{padding:var(--space-2xl) 0;}
.sn-uses__cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);margin-top:var(--space-lg);}
.sn-uses__colh{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-0.01em;margin:0 0 8px;color:var(--slate-950);}
.sn-uses__col{display:flex;flex-direction:column;gap:var(--space-sm);}
.sn-row{display:grid;grid-template-columns:36px 1fr;gap:16px;align-items:start;background:var(--fill-1);border-radius:var(--radius-card);padding:clamp(20px,2.4vw,32px);isolation:isolate;}
.sn-row__icon{width:28px;height:28px;margin-top:2px;}
.sn-row h4{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-0.01em;line-height:1.3;margin:0;}
.sn-row p{font-size:16px;line-height:1.6;margin:6px 0 0;max-width:52ch;}
.sn-shot{position:relative;isolation:isolate;background:var(--fill-1);border-radius:var(--radius-card);padding:clamp(40px,6vw,72px) clamp(28px,5vw,64px);margin-top:var(--space-lg);overflow:hidden;}
.sn-shot p{font-size:16px;line-height:1.6;margin:0;color:var(--slate-500);max-width:44ch;}

/* ---------- 8 · the warranty: badge + copy ---------- */
.sn-warr{padding:var(--space-2xl) 0;isolation:isolate;}
.sn-warr__grid{display:grid;grid-template-columns:auto 1fr;gap:clamp(32px,6vw,96px);align-items:center;}
.sn-warr__seal .emblem-stage{width:clamp(240px,28vw,380px);aspect-ratio:1;}
.emblem-tilt{width:100%;height:100%;will-change:transform;}
.warr-holo{display:block;opacity:0;animation:sn-holo-in .9s var(--ease-silk) .15s forwards;}
@keyframes sn-holo-in{to{opacity:1;}}
@media(prefers-reduced-motion:reduce){.warr-holo{opacity:1;animation:none;}}
.sn-warr__h{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,3.8vw,52px);line-height:1.12;letter-spacing:-0.03em;margin:0;max-width:22ch;}
.sn-warr__h .hl{white-space:nowrap;}

/* ---------- 8b · beyond the FIRE list: three quiet rows ---------- */
.sn-lists{padding:var(--space-2xl) 0;}
.sn-lists__rows{margin-top:var(--space-lg);}
.sn-lrow{display:grid;grid-template-columns:minmax(160px,260px) 1fr;gap:var(--space-sm);padding:28px 0;}
.sn-lrow + .sn-lrow{margin-top:4px;}
.sn-lrow h3{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-0.01em;line-height:1.3;margin:0;}
.sn-lrow p{font-size:17px;line-height:1.6;margin:0;max-width:64ch;}

/* ---------- 9 · closer: ink band + demo CTA ---------- */
.sn-close{padding:var(--space-2xl) 0;}
:where(.sn-close){background:var(--band-bg-final,var(--slate-950));}
.sn-close__in{text-align:center;color:var(--on-dark);}
.sn-close__h{font-family:var(--font-display);font-weight:700;font-size:clamp(34px,4.6vw,60px);line-height:1.12;letter-spacing:-0.03em;margin:0 auto;max-width:20ch;color:#fff;}
.sn-close__p{font-size:18px;line-height:1.6;margin:24px auto 0;max-width:46ch;color:#fff;}
.sn-close__btn{margin-top:40px;}

/* ---------- small screens ---------- */
@media(max-width:880px){
  .sn-zero__grid{grid-template-columns:1fr;gap:var(--space-md);}
  .sn-why4m__grid{grid-template-columns:1fr;gap:var(--space-md);}
  .sn-diff__grid{grid-template-columns:1fr;gap:var(--space-md);}
  .sn-prob2__grid{grid-template-columns:1fr;gap:var(--space-sm);}
  .sn-crit__grid{grid-template-columns:1fr;gap:var(--space-sm);}
  .sn-two__grid{grid-template-columns:1fr;gap:var(--space-md);}
  .sn-uses__cols{grid-template-columns:1fr;gap:var(--space-md);}
  .sn-warr__grid{grid-template-columns:1fr;gap:var(--space-md);}
  .sn-warr__seal .emblem-stage{width:clamp(220px,60vw,320px);}
  .sn-lrow{grid-template-columns:1fr;gap:8px;}
  .sn-hero__cta{flex-wrap:wrap;}
}
