
.scan{position:relative;background:var(--black-hero);color:var(--text-on-dark);min-height:100cqh;
  --scan-pad:20px; padding:calc(var(--space-xl) + var(--hdr-h, 0px)) var(--scan-pad) var(--space-mega)}
.scan .wrap{max-width:1180px;margin:0 auto;padding-inline:0}   /* the section's own --scan-pad sets the edges; the site .wrap padding would double it */
.scan [hidden]{display:none !important}

/* header: what this is and how far along */
.scan-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-s) var(--space-l);margin-bottom:var(--space-xl)}
.scan-top .eyebrow{color:var(--text-on-dark-muted)}
.scan-progress{display:flex;align-items:center;gap:var(--space-s);flex:1 1 220px;max-width:360px}
.scan-progress .count{font-size:var(--type-body-sm);color:var(--text-on-dark-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.scan-progress .track{flex:1;height:4px;background:var(--border-dark);border-radius:var(--radius-sm);overflow:hidden}
.scan-progress .fill{height:100%;width:0;background:var(--cool-500);border-radius:var(--radius-sm);transition:width var(--motion-slow) var(--ease)}
.zv-back{appearance:none;display:inline-flex;align-items:center;gap:6px;min-height:var(--touch-mobile);margin-left:calc(var(--space-xs) * -1);padding:0 var(--space-xs);
  background:none;border:0;color:var(--text-on-dark-muted);font:inherit;font-size:var(--type-body-sm);font-weight:var(--weight-bold);cursor:pointer;white-space:nowrap}
.zv-back:hover{color:var(--text-on-dark)}
.zv-back:focus-visible{outline:3px solid var(--focus-ring-color);outline-offset:1px}
.zv-back.is-off{visibility:hidden}
.zv-back svg{width:20px;height:20px;fill:currentColor;flex:none}
.zv-redo{appearance:none;display:inline-flex;align-items:center;gap:6px;min-height:var(--touch-mobile);padding:0;background:none;border:0;
  color:var(--text-on-dark-muted);font:inherit;font-size:var(--type-body-md);font-weight:var(--weight-bold);cursor:pointer}
.zv-redo > span:last-child{border-bottom:2px solid var(--border-dark);padding-bottom:1px;transition:border-color var(--motion-base) var(--ease)}
.zv-redo:hover{color:var(--text-on-dark)}
.zv-redo:hover > span:last-child{border-color:currentColor}
.zv-redo.is-primary{color:var(--text-on-dark)}
.zv-redo:focus-visible{outline:3px solid var(--focus-ring-color);outline-offset:3px}
.zv-redo svg{width:20px;height:20px;fill:currentColor;flex:none}
.q-note{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-s);margin:0;color:var(--text-on-dark-muted);font-size:var(--type-body-sm)}
.q-note .zv-redo{font-size:var(--type-body-sm);color:var(--tertiary-500)}
.q-note .zv-redo > span:last-child{border-color:color-mix(in srgb, var(--tertiary-500) 30%, transparent)}
.reveal-prev{margin:0;color:var(--text-on-dark-muted);font-size:var(--type-body-md);font-variant-numeric:tabular-nums}
.reveal-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;column-gap:var(--space-l)}
.reveal-redo{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-l)}
.reveal-redo .zv-redo{font-size:var(--type-body-sm)}
.reveal-redo .zv-redo svg{width:18px;height:18px}

/* a question */
.stage-q{display:grid;gap:var(--space-xl)}
.q{display:grid;gap:var(--space-m);align-content:start;max-width:40rem}
.q h2{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,6.6cqi,2.1rem);line-height:1.12;letter-spacing:-0.02em;text-wrap:balance}
.q h2:focus{outline:none}
.q .help{margin:0;color:var(--text-on-dark-muted);font-size:var(--type-body-md)}
.chips{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-s)}

/* .zv-chip 0.1.0 */
.zv-marketing .zv-chip{min-height:var(--touch-mobile);padding:var(--space-s) var(--space-m);font-size:var(--type-body-md);font-variant-numeric:tabular-nums;text-align:center}
.zv-marketing .zv-chip[aria-pressed="true"]{border-color:var(--text-on-dark);background:rgba(255,255,255,.08)}
.zv-marketing .zv-chip:focus-visible{outline:3px solid var(--focus-ring-color);outline-offset:2px}

.entry{display:flex;align-items:center;gap:var(--space-xs);background:rgba(255,255,255,.035);border:1.5px solid var(--border-dark);padding:0 var(--space-m);min-height:var(--touch-mobile)}
.entry:focus-within{border-color:var(--text-on-dark);outline:3px solid var(--focus-ring-color);outline-offset:2px}
.entry .affix{color:var(--text-on-dark-muted);font-size:var(--type-body-lg);font-variant-numeric:tabular-nums}
.entry input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--text-on-dark);font:inherit;font-size:var(--type-body-lg);font-variant-numeric:tabular-nums;padding:var(--space-s) 0}
.entry input::placeholder{color:var(--text-on-dark-faint)}
.q .err{margin:0;min-height:1.4em;color:var(--danger-400);font-size:var(--type-body-sm)}
.q .actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-s) var(--space-m)}
.q .actions .btn{min-height:var(--touch-mobile)}
.q .actions .kbd-hint{font-size:var(--type-body-sm);color:var(--text-on-dark-faint);display:none}
.btn-ring{display:inline-block;outline-offset:4px}
.btn-ring:has(.btn:focus-visible){outline:2px solid var(--text-on-dark)}
.scan .btn:focus-visible{outline:none;box-shadow:none}

/* the ledger: their answers so far, each one tappable to change */
.ledger{background:rgba(255,255,255,.035);border:1px solid var(--border-dark);padding:var(--space-m);align-self:start}
.ledger h3{margin:0 0 var(--space-s);font-size:var(--type-body-sm);font-weight:var(--weight-bold);color:var(--text-on-dark-muted)}
.ledger ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.ledger button{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;gap:var(--space-m);width:100%;min-height:var(--touch-desktop);align-items:center;padding:0 var(--space-xs);cursor:pointer;border-bottom:1px solid var(--border-dark)}
.ledger button:hover .v{text-decoration:underline}
.ledger button:focus-visible{outline:3px solid var(--focus-ring-color);outline-offset:1px}
.ledger .k{color:var(--text-on-dark-muted);font-size:var(--type-body-sm)}
.ledger .v{color:var(--text-on-dark);font-variant-numeric:tabular-nums;font-weight:var(--weight-bold)}
.ledger .empty{color:var(--text-on-dark-faint);font-size:var(--type-body-sm);margin:0}

/* the calculation moment: a second instance of the hero engine, on the owner's own answers */
.calc-story{position:relative;height:100cqh;margin:calc(-1 * var(--space-xl)) calc(-1 * var(--scan-pad)) 0}
.calc-story .sticky{position:relative;height:100%;overflow:hidden}
.calc-story canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.calc-story .scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg, color-mix(in srgb, var(--black-hero) 92%, transparent) 0%, color-mix(in srgb, var(--black-hero) 70%, transparent) 30%, transparent 56%)}
.calc-copy{position:absolute;left:var(--scan-pad);right:var(--scan-pad);bottom:var(--space-xl);display:grid;gap:var(--space-s)}
.calc-copy h2{margin:0;font-family:var(--font-display);font-weight:var(--weight-black);font-size:clamp(1.6rem,7cqi,2.2rem);line-height:1.08;letter-spacing:-0.025em;text-wrap:balance;
  text-shadow:0 1px 18px color-mix(in srgb, var(--black-hero) 70%, transparent)}
.calc-copy .eyebrow{color:var(--text-on-dark-muted)}
.calc-copy .line{margin:0;color:var(--text-on-dark-muted);font-size:var(--type-body-md);transition:opacity var(--motion-slow) var(--ease)}
.no-gl .calc-story{height:auto;min-height:60cqh}
.no-gl .calc-story canvas{display:none}

/* the reveal: the scope's hierarchy, top to bottom */
.reveal{display:grid;gap:var(--space-xxxl)}
.reveal-head{display:grid;gap:var(--space-s)}
.reveal-head .eyebrow{color:var(--text-on-dark-muted)}
.reveal-figure:focus,.fm-title:focus,#calcHead:focus{outline:none}   /* focus lands here on purpose; it is a heading, not a control (#calcHead: 2026-10-08, review fix 3) */
.reveal-figure{margin:0;font-family:var(--font-display);font-weight:var(--weight-black);color:var(--tertiary-500);
  font-size:clamp(3.4rem,17cqi,8.5rem);line-height:.95;letter-spacing:-0.035em;font-variant-numeric:tabular-nums}
.reveal-line{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(1.35rem,5.4cqi,2rem);line-height:1.15;letter-spacing:-0.015em;text-wrap:balance;max-width:28em}
.reveal-who{margin:0;color:var(--text-on-dark-muted);font-size:var(--type-body-lg);max-width:36em}
.reveal h3{margin:0 0 var(--space-xs);font-family:var(--font-display);font-weight:800;font-size:clamp(1.3rem,4.6cqi,1.75rem);letter-spacing:-0.01em}
.reveal .sub{margin:0 0 var(--space-m);color:var(--text-on-dark-muted)}

.reveal-cta{display:grid;gap:var(--space-s);justify-items:start;margin-top:var(--space-xl)}
.reveal-cta .btn{min-height:var(--touch-mobile)}
.reveal-cta .micro{color:var(--text-on-dark-faint);font-size:var(--type-body-sm);margin:0}
.trust{margin:0;padding-top:var(--space-m);border-top:1px solid var(--border-dark);color:var(--text-on-dark-faint);font-size:var(--type-body-sm);max-width:44em}

/* review-only notes (press Sources): where a line comes from, what is still pending */
.scan .review-tag,.scan .src-note{display:none}
:root[data-sources="on"] .scan .review-tag{display:inline-block;margin-left:var(--space-xs);padding:1px 6px;border:1px dashed var(--cool-500);color:var(--cool-500);font-size:var(--type-body-xs);font-weight:var(--weight-regular);letter-spacing:0;text-transform:none;vertical-align:middle}
:root[data-sources="on"] .scan .src-note{display:block;margin-top:var(--space-xxs);color:var(--cool-500);font-size:var(--type-body-xs)}

/* .zv-gate 0.2.0 — the opt-in between the number and the first move */
.zv-gate{display:grid;gap:var(--space-xl);padding:var(--space-l) var(--space-m);background:rgba(255,255,255,.035);border:1px solid var(--border-dark)}
.zv-gate h3{margin:0 0 var(--space-xs)}
.zv-gate .sub{margin:0 0 var(--space-l)}
.gate-intro{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-m);align-items:center;align-content:start}
.gate-intro h3,.gate-intro .sub{grid-column:1 / -1}
.gate-intro .zv-cover{--cover-w:120px}
.gate-tease{margin:0;color:var(--text-on-dark-muted);font-size:var(--type-body-sm);max-width:26em}
.gate-tease b{color:var(--text-on-dark);font-variant-numeric:tabular-nums;font-weight:var(--weight-bold)}
.gate-form{display:grid;gap:var(--space-xs);align-content:start}
.gate-form label{font-family:var(--font-display);font-weight:800;font-size:var(--type-body-lg)}
.gate-form label.opt{margin-top:var(--space-m);font-size:var(--type-body-md);font-weight:var(--weight-bold)}
.gate-form label .lbl-note{font-family:var(--font-text);font-weight:var(--weight-regular);color:var(--text-on-dark-faint);font-size:var(--type-body-sm)}
.gate-form .entry{min-width:0}
.gate-form .entry input{width:100%}
.gate-form .entry:has(input[aria-invalid="true"]){border-color:var(--danger-400)}
.gate-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.gate-form .act{display:grid;gap:var(--space-s);margin-top:var(--space-m)}
.gate-form .btn{min-height:var(--touch-mobile);width:100%}
.gate-form .consent{margin:0;color:var(--text-on-dark-muted);font-size:var(--type-body-sm)}
.gate-form .err{margin:0;min-height:1.4em;color:var(--danger-400);font-size:var(--type-body-sm)}
.gate-form .trust{margin-top:var(--space-s)}
.gate-done{margin:0;font-size:var(--type-body-lg)}
.gate-done .proto{color:var(--text-on-dark-faint);font-size:var(--type-body-sm)}

/* .zv-cover 0.1.0 — the PDF's cover, small. Sized by --cover-w; everything inside is a fraction of it, so it scales as one piece. */
.zv-cover{--u:calc(var(--cover-w,168px) / 100);margin:0;width:var(--cover-w,168px);display:grid;gap:var(--space-s)}
.zv-cover .sheet{position:relative;aspect-ratio:8.5 / 11;display:grid;grid-template-rows:auto auto 1fr auto auto;min-width:0;
  padding:calc(var(--u) * 11) calc(var(--u) * 10) calc(var(--u) * 9);background:var(--black-hero);border:1px solid color-mix(in srgb, var(--text-on-dark) 16%, transparent);
  box-shadow:0 1px 0 color-mix(in srgb, var(--text-on-dark) 6%, transparent) inset, 0 22px 44px -18px rgba(0,0,0,.85), 0 6px 14px -6px rgba(0,0,0,.6)}
.zv-cover .sheet::before{content:"";position:absolute;inset:calc(var(--u) * 5);border:.6px solid color-mix(in srgb, var(--tertiary-500) 34%, transparent);pointer-events:none}
.zv-cover .k{font-size:calc(var(--u) * 4.1);font-weight:var(--weight-bold);letter-spacing:.2em;text-transform:uppercase;color:var(--text-on-dark-muted);line-height:1.2}
.zv-cover .fig{margin-top:calc(var(--u) * 4);font-family:var(--font-display);font-weight:var(--weight-black);font-size:calc(var(--u) * 16);line-height:1;letter-spacing:-0.035em;color:var(--tertiary-500);font-variant-numeric:tabular-nums}
.zv-cover .zv-strands{align-self:end;height:calc(var(--u) * 38);margin-bottom:calc(var(--u) * 7);gap:calc(var(--u) * 1.7)}
.zv-cover .for{font-size:calc(var(--u) * 4.6);font-weight:var(--weight-bold);color:var(--text-on-dark);line-height:1.25;overflow-wrap:anywhere}
.zv-cover .date{margin-top:calc(var(--u) * 1.5);font-size:calc(var(--u) * 3.6);color:var(--text-on-dark-faint);font-variant-numeric:tabular-nums}
.zv-cover figcaption{font-size:var(--type-body-xs);color:var(--text-on-dark-faint);letter-spacing:.02em}

/* .zv-strands 0.1.0 */
.zv-strands{display:flex;gap:3px;height:12px}
.zv-strands .s{flex:var(--w) 1 0px;min-width:3px;border-radius:1px;background:color-mix(in srgb, var(--text-on-dark) 17%, transparent);
  transform:scaleX(0);transform-origin:left center;transition:transform 760ms var(--ease) calc(var(--i) * 55ms), background-color 600ms var(--ease) 950ms}
.zv-strands.is-in .s{transform:none}
.zv-strands.is-in .s.on{background:var(--tertiary-500)}
.zv-strands.is-vertical{align-items:flex-end}
.zv-strands.is-vertical .s{flex:1 1 0px;min-width:0;height:calc(var(--w) * 100%);transform:scaleY(0);transform-origin:center bottom;
  background:color-mix(in srgb, var(--text-on-dark) 24%, transparent)}
.zv-strands.is-vertical.is-in .s{transform:none}

/* .zv-firstmove 0.1.0 */
.zv-firstmove{display:grid;gap:var(--space-l);align-content:start}
.zv-firstmove > .eyebrow{color:var(--text-on-dark-muted);margin-bottom:calc(-1 * var(--space-s))}
.zv-marketing .reveal .fm-title{margin:0;font-family:var(--font-display);font-weight:var(--weight-black);font-size:clamp(2.1rem,9.5cqi,3.6rem);line-height:1;letter-spacing:-0.035em;text-wrap:balance}
.fm-meter{display:grid;gap:var(--space-xs)}
.fm-scale{display:flex;justify-content:space-between;gap:var(--space-m);margin:0;color:var(--text-on-dark-faint);font-size:var(--type-body-sm);font-variant-numeric:tabular-nums}
.fm-scale span:first-child{color:var(--text-on-dark-muted)}
.fm-facts{margin:0;border-top:1px solid var(--border-dark)}
.fm-facts > div{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-xxs);padding:var(--space-m) 0;border-bottom:1px solid var(--border-dark)}
.fm-facts dt{font-size:var(--type-body-xs);font-weight:var(--weight-bold);letter-spacing:.15em;text-transform:uppercase;color:var(--text-on-dark-faint)}
.fm-facts dd{margin:0;font-size:var(--type-body-lg);line-height:1.45;color:var(--text-on-dark);text-wrap:pretty}
.fm-facts dd .why{color:var(--text-on-dark-muted);font-size:var(--type-body-md)}
.fm-facts > div:nth-child(2) dd{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}
.fm-facts > div:nth-child(2) dd .why{font-weight:var(--weight-regular)}
.fm-cta{margin-top:var(--space-xs)}

.fm-side{display:grid;gap:var(--space-xl);align-content:start;min-width:0}
.fm-next,.fm-pdf,.fm-where{min-width:0}
.fm-next h4,.fm-pdf h4{margin:0 0 var(--space-s);font-size:var(--type-body-xs);font-weight:var(--weight-bold);letter-spacing:.15em;text-transform:uppercase;color:var(--text-on-dark-faint)}
.fm-next ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-s)}
.fm-next li{display:inline-grid;grid-template-columns:auto auto auto;align-items:center;gap:var(--space-s);min-height:var(--touch-desktop);padding:0 var(--space-m);border:1px solid var(--border-dark)}
.fm-next .n{font-family:var(--font-display);font-weight:var(--weight-black);color:var(--text-on-dark-faint)}
.fm-next .amt{font-weight:var(--weight-bold);font-size:var(--type-body-lg);font-variant-numeric:tabular-nums}
.fm-next .lock{width:16px;height:16px;fill:var(--text-on-dark-faint)}
.fm-next .sub{margin:var(--space-s) 0 0;font-size:var(--type-body-sm)}
.fm-pdf{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-l);align-items:center;padding:var(--space-l);background:rgba(255,255,255,.035);border:1px solid var(--border-dark);--cover-w:132px}
.fm-pdf .zv-cover figcaption{display:none}
.fm-pdf-copy h4{color:var(--text-on-dark-muted)}
.fm-pdf-copy p{margin:0;color:var(--text-on-dark-muted);font-size:var(--type-body-md)}
.fm-pdf-copy .sent{margin-top:var(--space-s);color:var(--text-on-dark);font-size:var(--type-body-sm);overflow-wrap:anywhere}
.fm-where{border-top:1px solid var(--border-dark);border-bottom:1px solid var(--border-dark)}
.fm-where summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-m);min-height:var(--touch-mobile);cursor:pointer;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}
.fm-where summary::-webkit-details-marker{display:none}
.fm-where summary::after{content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform var(--motion-base) var(--ease);flex:none}
.fm-where[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.fm-where summary:focus-visible{outline:3px solid var(--focus-ring-color);outline-offset:2px}
.fm-where ol{list-style:none;margin:0 0 var(--space-s);padding:0}
.fm-where li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px var(--space-s);padding:var(--space-xs) 0 var(--space-s);border-top:1px solid var(--border-dark);font-size:var(--type-body-sm)}
.fm-where li .bar{grid-column:1 / -1;grid-row:2}
.fm-where .bar{display:block;height:6px;width:calc(var(--w) * 100%);min-width:2px;border-radius:1px;background:color-mix(in srgb, var(--text-on-dark) 20%, transparent)}
.fm-where li:first-child .bar{background:var(--tertiary-500)}
.fm-where .amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:var(--weight-bold)}
.fm-where .note{margin:0 0 var(--space-m);color:var(--text-on-dark-faint);font-size:var(--type-body-xs)}

/* reduced motion from the review bar (the media query is handled by the design system's .rise rule) */
:root[data-motion="reduce"] .scan .rise{opacity:1;transform:none;transition:none}
:root[data-motion="reduce"] .scan-progress .fill{transition:none}
:root[data-motion="reduce"] .zv-strands .s{transition:none}
@media (prefers-reduced-motion: reduce){ .zv-strands .s{transition:none} }

/* desktop: question left, ledger right; the reveal gets two columns for the lists */
@container screen (min-width: 860px){
  .scan{--scan-pad:clamp(32px, 6cqi, 112px)}
  .stage-q{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);align-items:start;gap:var(--space-mega)}
  .chips{grid-template-columns:repeat(6,auto);justify-content:start}
  .zv-marketing .zv-chip{min-height:var(--touch-desktop);min-width:4.5em}
  .q .actions .btn{min-height:var(--touch-desktop)}
  .q .actions .kbd-hint{display:inline}
  .zv-back,.zv-redo{min-height:var(--touch-desktop)}
  .q h2{font-size:clamp(2rem,3.2cqi,2.75rem)}
  .calc-copy{right:auto;top:0;bottom:0;width:min(32rem, 40cqi);align-content:center}
  .calc-story .scrim{background:linear-gradient(90deg, color-mix(in srgb, var(--black-hero) 90%, transparent) 0%, color-mix(in srgb, var(--black-hero) 60%, transparent) 30%, transparent 55%)}
  .calc-copy h2{font-size:clamp(2.2rem,3.4cqi,3.25rem)}
  .reveal{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--space-mega)}
  .reveal-head,.trust{grid-column:1 / -1}
  .reveal-figure{font-size:clamp(5rem,10cqi,9rem)}
  .reveal-line{font-size:clamp(1.6rem,2.4cqi,2.25rem)}
  .zv-gate,.gate-done{grid-column:1 / -1}
  .zv-gate{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:var(--space-mega);padding:var(--space-xl)}
  .gate-intro{grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-xl);align-items:end}
  .gate-intro h3,.gate-intro .sub{grid-column:1 / -1}
  .gate-intro .zv-cover{--cover-w:184px}
  .gate-tease{margin:0 0 var(--space-xl)}
  .gate-form .act{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:var(--space-m)}
  .gate-form .btn{min-height:var(--touch-desktop);width:auto}
  .reveal[data-plan="open"]{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);row-gap:var(--space-xl)}
  .reveal[data-plan="open"] .zv-firstmove{grid-column:1}
  .reveal[data-plan="open"] .fm-side{grid-column:2;padding-top:var(--space-xs)}
  .fm-pdf{--cover-w:148px}
  .fm-facts > div{grid-template-columns:5.5rem minmax(0,1fr);gap:var(--space-m)}
  .fm-facts dt{padding-top:.3em}
  .gate-tease{font-size:var(--type-body-md)}
  .fm-where summary{min-height:var(--touch-desktop)}
  .fm-where li{grid-template-columns:minmax(0,9.5rem) minmax(0,1fr) 5.5rem;padding:var(--space-xs) 0}
  .fm-where li .bar{grid-column:auto;grid-row:auto}
}

.zv-takeover{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;box-sizing:border-box;
  display:none;flex-direction:column;overflow:hidden;border-radius:var(--fit-radius, 0);
  background:var(--black-hero);color:var(--text-on-dark)}
.zv-takeover[open]{display:flex;--hdr-h:0px;animation:zv-takeover-in var(--motion-base) var(--ease) both}
.zv-takeover.is-closing{animation:zv-takeover-out var(--motion-base) var(--ease) both}
.zv-takeover::backdrop{background:transparent}
.zv-takeover-still{display:none;position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}
.zv-takeover.has-still{background:transparent}
.zv-takeover.has-still .zv-takeover-still{display:block}
.zv-takeover.has-still::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:color-mix(in srgb, var(--black-hero) 78%, transparent)}
@keyframes zv-takeover-in{ from{opacity:0;translate:0 var(--space-m)} }
@keyframes zv-takeover-out{ to{opacity:0} }
:root[data-motion="reduce"] .zv-takeover{animation:none}
@media (prefers-reduced-motion: reduce){ .zv-takeover[open],.zv-takeover.is-closing{animation:none} }
.zv-takeover-bar{flex:none;box-sizing:border-box;height:calc(64px + env(safe-area-inset-top, 0px));display:flex;align-items:center;justify-content:space-between;
  padding:env(safe-area-inset-top, 0px) max(20px, env(safe-area-inset-right, 0px)) 0 max(20px, env(safe-area-inset-left, 0px));border-bottom:1px solid var(--border-dark)}
.zv-takeover-bar img{height:22px;width:auto;display:block}
.zv-takeover-close{flex:none;box-sizing:border-box;width:var(--touch-mobile);height:var(--touch-desktop);display:grid;place-items:center;padding:0;
  border:1.5px solid var(--text-on-dark-muted);border-radius:var(--radius-md);background:transparent;color:var(--text-on-dark);cursor:pointer;
  transition:background-color var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease)}
.zv-takeover-close svg{width:24px;height:24px;fill:currentColor}
.zv-takeover-close:hover{background:var(--overlay-light);border-color:var(--text-on-dark)}
.zv-takeover-close:focus-visible{outline:2px solid var(--text-on-dark);outline-offset:3px}
.zv-takeover-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;container:screen / size;
  padding-bottom:env(safe-area-inset-bottom, 0px);padding-inline:env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);box-sizing:border-box}
.zv-takeover[open] .scan{background:transparent}
.zv-takeover .zv-takeover-body{scroll-padding-top:var(--space-xl)}   /* what the Scan scrolls to (the opt-in, the plan's first line) lands clear of the bar, past its rise */
.zv-takeover[open] .scan[data-stage="calc"]{padding-bottom:0}   /* the calculation moment fills the box, with nothing below it to scroll to */
@container screen (min-width: 860px){
  .zv-takeover{--zv-takeover-still:18px}   /* desktop: the script paints the held frame behind, blurred this much */
  .zv-takeover-bar{height:80px;padding-inline:clamp(32px, 6cqi, 112px)}
  .zv-takeover-bar img{height:30px}
  .zv-takeover-close{width:var(--touch-desktop)}
}
