/* motion manifesto — draft. Tokens from server/web/m2.css (the deck design motion.gift runs on), the fee
   palette from bgc.js ("Where the fees go"), easing from motion-kit.css. Fonts are the site's own files.
   Flat by rule (owner review 2026-10-21): no borders or outlines on cards, tables, pills, chips, tiles or
   slider thumbs. Things are separated by spacing, background tone and type. Chart axes and grid lines are
   the only strokes. One file, no override passes: edit a rule where it is, don't add a later one. */
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('fonts/jetbrains-mono-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('fonts/instrument-serif-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('fonts/instrument-serif-latin-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}

:root{
  --font:'Space Grotesk',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,Menlo,monospace; --serif:'Instrument Serif',Georgia,serif;
  /* surfaces, darkest to lightest: page, sunken, panel, tone (a tile inside a panel), raised (pills, tracks) */
  --bg:#070708; --panel-2:#0b0b0d; --panel:#0f0f11; --tone:#151518; --raised:#1b1b1f; --raised-2:#232328;
  --line-2:#2b2b31;                                  /* chart grid and slider track only */
  /* text: all of these pass WCAG AA (4.5:1) on --panel and --bg */
  --text:#f4f4f2; --sub-2:#d2d2ce; --sub:#a2a29f; --dim:#8a8a8e;
  --accent:#c6f135; --accent-2:#d9ff5a; --on-accent:#0b0f03; --accent-bg:rgba(198,241,53,.12); --glow:rgba(198,241,53,.28);
  --purple:#8b7dff; --lime:#a6f35f; --mint:#e9f7dc; --grey:#55605a; --red:#ff6b6b; --amber:#f2c14e; --sol:#7a83ff;
  --live:#46e08f; --plan:#b8a6ff;
  --ease:cubic-bezier(.2,.8,.2,1); --glide:cubic-bezier(.2,.7,.2,1);
  --wrap:1160px; --pad:28px; --gap:20px; --r:18px; --nav:58px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav) + env(safe-area-inset-top))}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);font-size:16px;line-height:1.55;letter-spacing:-.01em;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 max(var(--pad),env(safe-area-inset-right)) 0 max(var(--pad),env(safe-area-inset-left))}
.num{font-variant-numeric:tabular-nums}
em.s{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.005em}

/* ── chrome: progress line + slim header ── */
.progress{position:fixed;left:0;top:env(safe-area-inset-top);right:0;height:2px;z-index:60;pointer-events:none}
.progress i{display:block;height:100%;background:var(--accent);transform-origin:left;transform:scaleX(0)}
.top{position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top);background:rgba(7,7,8,.84);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.top .wrap{height:var(--nav);display:flex;align-items:center;gap:22px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand img{width:28px;height:28px;border-radius:8px}
.brand b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:26px;letter-spacing:-.01em;line-height:1}
.toc{display:flex;gap:2px;font-size:13.5px;font-weight:500;margin-left:10px}
.toc a{white-space:nowrap;color:var(--sub);text-decoration:none;padding:7px 11px;border-radius:999px;transition:color .16s,background-color .16s}
.toc a:hover{color:var(--text);background:var(--raised)}
.toc a.on{color:var(--text);background:var(--raised)}
.top .r{margin-left:auto}
.draft{font:600 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--amber);white-space:nowrap}

/* ── type ── */
.eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sub);margin:0 0 26px}
.eyebrow b{color:var(--accent);font-weight:600}
h1,h2,h3{margin:0;font-weight:600}
h2{font-size:clamp(32px,4.2vw,54px);line-height:1.04;letter-spacing:-.04em;max-width:17ch;text-wrap:balance}
h3{font-size:19px;letter-spacing:-.02em;line-height:1.25}
.lead{font-size:clamp(17px,1.5vw,19px);line-height:1.62;color:var(--sub);max-width:62ch;margin:26px 0 0;text-wrap:pretty}
.lead b,.body b{color:var(--text);font-weight:600}
.body{color:var(--sub);font-size:15.5px;line-height:1.65;margin:0}
.body + .body{margin-top:12px}
.k{display:block;font-size:14px;font-weight:500;line-height:1.35;color:var(--sub-2);letter-spacing:-.005em}
.src{display:block;margin-top:14px;font:500 12px/1.6 var(--font);color:var(--dim)}
.src::before{content:"Source: ";color:var(--sub)}
.src a{color:var(--sub);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--raised-2)}
.src a:hover{color:var(--text)}
.src code,.body code{font:500 1em var(--mono)}
.note{font-size:13.5px;color:var(--sub);line-height:1.6;margin:12px 0 0}
.dim{color:var(--dim)}

/* $MOTION equivalents next to dollar figures (painted by manifesto.js at the price on the hero's price line) */
.tq{color:var(--sub);font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.lead .tq,.body .tq{color:var(--sub)}
.tqb{display:block;margin-top:4px;font-size:12.5px;font-weight:500;letter-spacing:0}
.tqi{display:inline;margin-left:8px;font-size:12.5px;font-weight:500;letter-spacing:0;color:var(--sub)}
.tqs{display:block;margin-top:2px;font-size:12.5px;color:var(--dim)}
.tqv{display:block;margin-top:7px;font:500 13px/1.3 var(--mono);color:var(--accent);opacity:.82;letter-spacing:-.01em;white-space:nowrap}
.pxline{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font:500 12.5px/1.5 var(--font);color:var(--sub)}
.pxline::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}


/* ── layout ── */
.sec{padding:128px 0 24px;position:relative}
.sec .head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:end;margin-bottom:56px}
.sec .head .lead{margin:0}
.card{background:var(--panel);border-radius:var(--r);padding:30px}
.card.hot{background:linear-gradient(160deg,rgba(198,241,53,.08),transparent 55%),var(--panel)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.gap{height:var(--gap)}
.mt{margin-top:var(--gap)}
.print-only{display:none}
.fine-print{margin:14px 0 0;font-size:12.5px;line-height:1.6;color:var(--dim);max-width:90ch}
.fine-print a{color:var(--sub);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--raised-2)}

/* ── Blender clips (assets/3d/, assets/manifesto-motion.js): decorative, sized before anything loads (the poster's
   width/height give the box its ratio, so nothing shifts), poster first, the video fades in over it once it plays.
   The clips are rendered on the page black #070708 and fade to it at the edges; `lighten` lets whatever is behind
   (the hero glow, a panel's tone) show through the black instead of a dark box ── */
.m3d{position:relative;margin:0;pointer-events:none;user-select:none;mix-blend-mode:lighten}
.m3d-in{position:relative;will-change:transform}
.m3d-in > img,.m3d-in > video{display:block;width:100%;height:auto}
.m3d-in > video{position:absolute;inset:0;height:100%;object-fit:cover;opacity:0;transition:opacity .5s var(--ease)}
.m3d.m3d-on .m3d-in > video{opacity:1}
.m3d-stage{margin:-8px 0 28px}
.sec .head.hc{grid-template-columns:minmax(0,1fr) clamp(240px,27vw,350px);grid-template-areas:"h f" "l f";row-gap:24px;align-items:end}
.sec .head.hc > h2{grid-area:h}
.sec .head.hc > .lead{grid-area:l;align-self:start}
.sec .head.hc > .m3d{grid-area:f;align-self:center;margin:-40px -20px -12px 0}
/* ── hero ── */
.hero{position:relative;min-height:calc(100vh - var(--nav));display:flex;align-items:center;padding:90px 0 80px;overflow:hidden;isolation:isolate}
.hero > .wrap{width:100%}
.hero .orb{position:absolute;z-index:-1;width:760px;height:760px;right:-180px;top:-160px;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(198,241,53,.15),rgba(198,241,53,.04) 42%,transparent 68%);filter:blur(10px)}
html.anim .hero .orb{animation:drift 22s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-90px,70px,0) scale(1.08)}}
/* the Blender hero clip sits where the old outline mark was: right of the lead, under the headline's end */
.hero .m3d-hero{position:absolute;z-index:-1;top:58%;right:max(-40px,calc((100vw - var(--wrap)) / 2 - 70px));width:min(42vw,600px);transform:translateY(-50%)}
.hero .kicker{font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--sub);display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:30px}
.hero .kicker i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}
.hero h1{font-size:clamp(42px,6.4vw,90px);line-height:.98;letter-spacing:-.05em}
.hero h1 em.s{display:block;color:var(--accent);font-size:1.04em;letter-spacing:-.02em;text-wrap:balance}
.hero .lead{max-width:52ch}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:60px;max-width:980px}
.kpis b{display:block;font-size:clamp(30px,3.4vw,46px);font-weight:600;letter-spacing:-.04em;line-height:1}
.kpis b .u{color:var(--accent)}
.kpis small{display:block;margin-top:10px;color:var(--sub);font-size:13.5px;line-height:1.4}
.hero .src{margin-top:22px}
.scroll-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font:500 12px/1 var(--mono);letter-spacing:.2em;color:var(--dim);text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:10px}
.scroll-cue i{width:1px;height:34px;background:linear-gradient(var(--sub),transparent)}
html.anim .scroll-cue i{animation:cue 2.4s ease-in-out infinite}
@media (max-height:800px){.scroll-cue{display:none}}
@keyframes cue{0%,100%{transform:scaleY(.4);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* ── reveal ── */
html.anim .rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0ms)}
html.anim .rv.in{opacity:1;transform:none}

/* ── tiles: a row of panels with a 2px seam of page background ── */
.stats,.ex,.addr,.order,.route{display:grid;gap:2px;border-radius:var(--r);overflow:hidden}
.stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.stats > div,.ex > div,.addr > div,.order > div,.route .n{background:var(--panel)}
.stats > div{padding:28px}
.stat b{display:block;font-size:clamp(34px,3.6vw,50px);font-weight:600;letter-spacing:-.045em;line-height:1}
.stat small{display:block;color:var(--sub);font-size:14px;margin-top:12px;line-height:1.45}

/* ── 01 token card ── */
.tok{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:var(--gap);margin-top:var(--gap)}
.tok .id{display:flex;gap:16px;align-items:center;margin-bottom:18px}
.tok .id img{width:46px;height:46px;border-radius:12px}
.tok .id b{font-size:22px;letter-spacing:-.03em;display:block}
.tok .id small{color:var(--sub);font-size:13.5px}
.ca{padding:10px 12px;border-radius:10px;background:var(--tone);font:500 12px/1.4 var(--mono);color:var(--sub-2);word-break:break-all}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px;margin-top:24px}
.kv b{display:block;font-size:26px;letter-spacing:-.035em;font-weight:600;line-height:1.05}
.kv small{display:block;color:var(--sub);font-size:13px;margin-top:6px;line-height:1.4}

/* ── charts ── */
.fig{background:var(--panel);border-radius:var(--r);padding:28px 28px 24px;position:relative}
.fig h3{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.fig h3 small{font:500 13px/1.3 var(--font);color:var(--sub);letter-spacing:0}
.fig .cap{color:var(--sub);font-size:14.5px;margin:8px 0 0;line-height:1.55;max-width:70ch}
.vb{position:relative;margin-top:30px;height:220px;display:flex;align-items:flex-end;gap:var(--g,4px);border-bottom:1px solid var(--line-2);padding-top:26px}
.vb .b{position:relative;flex:1 1 0;min-width:0;height:100%;display:flex;align-items:flex-end}
.vb .b i{display:block;width:100%;height:calc(var(--v)*100%);background:var(--c,#3a3a42);border-radius:4px 4px 0 0;transform-origin:bottom;transition:transform 1.1s var(--glide);transition-delay:calc(var(--k,0)*26ms)}
html.anim .vb .b i{transform:scaleY(0)}
html.anim .in .vb .b i,html.anim .vb.in .b i{transform:scaleY(1)}
.vb .b:hover i{filter:brightness(1.25)}
.vb .b .t{position:absolute;left:50%;bottom:calc(var(--v)*100% + 7px);transform:translateX(-50%);font:600 11px/1 var(--mono);color:var(--sub-2);white-space:nowrap;transition:opacity .5s ease;transition-delay:calc(var(--k,0)*26ms + .6s)}
html.anim .vb .b .t{opacity:0}
html.anim .in .vb .b .t{opacity:1}
.vb .b.hl .t{color:var(--accent)}
.vb .grid{position:absolute;left:0;right:0;border-top:1px dashed var(--line-2);pointer-events:none}
.vb .grid span{position:absolute;right:0;top:-18px;font:500 11px/1 var(--mono);color:var(--dim)}
.vx{display:flex;gap:var(--g,4px);margin-top:9px}
.vx span{flex:1 1 0;min-width:0;font:500 11px/1 var(--mono);color:var(--dim);text-align:center;white-space:nowrap}
.vx span:first-child{text-align:left}
.vx span:last-child{text-align:right}

.hb{display:grid;gap:14px;margin-top:22px}
.hb .r{display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr) auto;gap:16px;align-items:center}
.hb .r > span{font-size:14.5px;color:var(--sub-2);line-height:1.3}
.hb .r > span small{display:block;color:var(--dim);font-size:12.5px}
.hb .tr{height:30px;background:var(--panel-2);border-radius:8px;overflow:hidden}
.hb .tr i{display:block;height:100%;width:calc(var(--v)*100%);min-width:3px;background:var(--c,var(--accent));border-radius:8px;transform-origin:left;transition:transform 1.2s var(--glide);transition-delay:calc(var(--k,0)*90ms)}
html.anim .hb .tr i{transform:scaleX(0)}
html.anim .in .hb .tr i{transform:scaleX(1)}
.hb .r > b{font:600 15px/1 var(--font);letter-spacing:-.02em;min-width:78px;text-align:right}
.hb .r > b small{display:block;font:500 12px/1 var(--font);color:var(--sub);margin-top:5px;letter-spacing:0}
#ch-axiom-bars .r{grid-template-columns:120px minmax(0,1fr) auto}

.sparkbox{position:relative}
.sparkbox .plot{position:relative;margin-top:26px}
.spark{width:100%;height:200px;display:block;overflow:visible}
.spark .ln{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
html.anim .spark .ln{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s var(--glide)}
html.anim .in .spark .ln{stroke-dashoffset:0}
.spark .ar{fill:url(#sparkfill)}
html.anim .spark .ar{opacity:0;transition:opacity 1.2s ease 1s}
html.anim .in .spark .ar{opacity:1}
.sparkbox .pk{position:absolute;transform:translate(-50%,-100%);font:600 12px/1.3 var(--mono);color:var(--accent);white-space:nowrap;padding-bottom:12px}
.sparkbox .pk::after{content:"";position:absolute;left:50%;bottom:0;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(198,241,53,.16);transform:translateY(50%)}
.sparkx{display:flex;justify-content:space-between;font:500 11px/1 var(--mono);color:var(--dim);margin-top:8px}

.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap)}
.bignums{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}
.bignums b{display:block;font-size:clamp(32px,3.6vw,48px);font-weight:600;letter-spacing:-.045em;line-height:1}
.bignums small{display:block;color:var(--sub);font-size:13.5px;margin-top:10px}

.shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:var(--gap)}
.shot{margin:0;background:var(--panel);border-radius:14px;overflow:hidden}
.shot img{width:100%;height:150px;object-fit:cover;object-position:left top;transition:transform .6s var(--ease)}
.shot:hover img{transform:scale(1.03)}
.shot figcaption{padding:12px 14px 14px;font-size:13px;color:var(--sub);line-height:1.5}
.shot figcaption a{color:var(--sub-2)}

.caveat{margin:var(--gap) 0 0;padding:18px 22px;border-radius:14px;background:var(--panel-2);color:var(--sub);font-size:14.5px;line-height:1.65}

/* ── 02 how motion pays for itself: sources on the left, wires, destinations on the right ── */
.pf{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) clamp(70px,9vw,130px) minmax(0,1fr);align-items:center}
.pf-wires{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:0}
.pf-wires .wb{fill:none;stroke-width:1.6;opacity:.38}
.pf-wires .wf2{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:2 16;animation:pfflow 1.4s linear infinite}
@keyframes pfflow{to{stroke-dashoffset:-18}}
.pf-wires .wires{clip-path:inset(0 0 0 0);transition:clip-path 1.6s var(--glide) .2s}
html.anim .pf .pf-wires .wires{clip-path:inset(0 100% 0 0)}
html.anim .pf.in .pf-wires .wires{clip-path:inset(0 0 0 0)}
.pf-src{grid-column:1;list-style:none;margin:0;padding:0;display:grid;gap:10px;position:relative;z-index:1}
.pfs{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;padding:18px 20px;border-radius:16px;background:var(--panel)}
.pf-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-bg)}
.pf-ic svg{width:22px;height:22px;stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pfs h3{font-size:16.5px;letter-spacing:-.02em;display:flex;align-items:baseline;gap:9px}
.pf-l{font:600 12px/1 var(--mono);color:var(--dim);text-transform:uppercase}
.pfs p{margin:5px 0 0;color:var(--sub);font-size:14px;line-height:1.5}
.pf-m{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:8px;font-size:14px;color:var(--sub-2)}
.pf-m b{color:var(--text);font-weight:600}
.pf-to{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pt{display:inline-flex;align-items:center;gap:7px;font:500 12.5px/1 var(--font);padding:7px 10px;border-radius:999px;background:var(--raised);color:var(--sub-2)}
.pt::before,.pd{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;flex:none;background:#8a8a8e}
.pt.run::before,.pd.run{background:var(--purple)}
.pt.burn::before,.pd.burn{background:var(--accent)}
.pt.burn{background:var(--accent-bg);color:var(--accent)}
.pf-dst{grid-column:3;display:grid;gap:10px;position:relative;z-index:1}
.pf-clip{margin:-18px -10px -8px}
.pfd{padding:22px 24px;border-radius:18px;background:var(--panel)}
.pfd .k{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sub);margin-bottom:8px}
.pfd h3{font-size:21px;letter-spacing:-.03em}
.pfd p{margin:8px 0 0;color:var(--sub);font-size:14.5px;line-height:1.55}
.pfd p b{color:var(--text)}
.pfd.run{background:linear-gradient(160deg,rgba(139,125,255,.13),transparent 60%),var(--panel)}
.pfd.burn{background:linear-gradient(160deg,rgba(198,241,53,.13),transparent 60%),var(--panel)}
.pfd.burn h3{color:var(--accent)}
.pfd.burn .k{color:var(--sub-2)}
.pfd ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:9px}
.pfd li{position:relative;padding-left:16px;font-size:14.5px;color:var(--sub);line-height:1.5}
.pfd li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.pfd li b{color:var(--text);font-weight:600}
.pfd.fnd{background:var(--panel-2)}
.pf-link{display:flex;align-items:center;gap:12px;padding:0 24px;font-size:13px;color:var(--sub);margin:-2px 0}
.pf-link i{width:2px;height:30px;flex:none;background:repeating-linear-gradient(180deg,var(--accent) 0 4px,transparent 4px 8px);opacity:.8}

/* recap before the disclaimer */
.recap{padding:24px 0 96px}
.recap-in{background:linear-gradient(170deg,rgba(198,241,53,.06),transparent 40%),var(--panel);border-radius:24px;padding:34px}
.recap-h{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 28px;align-items:baseline;margin-bottom:24px}
.recap-h .k{grid-column:1/-1;color:var(--accent);font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
.recap-h h2{font-size:clamp(26px,2.8vw,36px);line-height:1.05}
.recap-h p{margin:0;color:var(--sub);font-size:15px}
.recap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rc{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:16px;border-radius:14px;background:var(--tone)}
.rc b{display:block;font-size:15px;letter-spacing:-.015em}
.rc small{display:block;font-size:13px;color:var(--sub-2);margin-top:4px;line-height:1.45}
.rc .pf-to{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:13px;color:var(--sub);line-height:1.35}
.rc .pf-to .pd{margin-right:0}
.recap-burn{display:flex;gap:12px;align-items:baseline;margin:20px 0 0;font-size:15px;color:var(--sub-2);line-height:1.55}
.recap-burn b{color:var(--accent)}
.recap-burn .pd{transform:translateY(-1px)}

/* ── 03 builders ── */
.rails{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.rail{background:var(--panel);border-radius:var(--r);padding:28px}
.rail .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-bg);margin-bottom:22px}
.rail .ic svg{width:22px;height:22px;stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rail p{color:var(--sub);font-size:15px;line-height:1.6;margin:10px 0 0}
.route{margin-top:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr))}
.route .n{padding:22px 24px 20px;position:relative}
.route .n .st{display:block;font:600 12px/1 var(--mono);color:var(--dim);margin-bottom:12px}
.route .n.acc{background:linear-gradient(160deg,rgba(198,241,53,.14),transparent 60%),var(--panel)}
.route .n.acc .st{color:var(--accent)}
.route .n b{display:block;font-size:16px;letter-spacing:-.02em}
.route .n small{display:block;color:var(--sub);font-size:13.5px;margin-top:6px;line-height:1.45}
.ex{margin-top:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr))}
.ex > div{padding:24px 26px}
.ex b{display:block;font-size:34px;letter-spacing:-.045em;font-weight:600;line-height:1}
.ex small{display:block;color:var(--sub);font-size:13.5px;margin-top:9px;line-height:1.45}
.ex .acc b{color:var(--accent)}
#api-table{margin-top:16px}
#api-table td:nth-child(2){white-space:nowrap}
#api-table td{font-size:13.5px}
.api .apiprice{display:flex;align-items:baseline;gap:10px;margin-top:12px}
.api .apiprice b{font-size:clamp(48px,4.6vw,64px);font-weight:600;letter-spacing:-.06em;line-height:.95;color:var(--accent)}
.api .apiprice small{font-size:14px;color:var(--sub)}

/* ── 04 three ways to trade ── */
.ways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.way{background:var(--panel);border-radius:20px;padding:30px 28px 28px;display:flex;flex-direction:column}
.way.w1{background:linear-gradient(165deg,rgba(198,241,53,.11),transparent 50%),var(--panel)}
.way .no{font-size:15px;font-weight:600;color:var(--sub-2);letter-spacing:-.01em}
.way .fee{margin:22px 0 8px;font-size:clamp(52px,5.2vw,74px);font-weight:600;letter-spacing:-.06em;line-height:.9}
.way .fee small{font-size:.3em;letter-spacing:-.02em;color:var(--sub);font-weight:500;margin-left:6px}
.way.w1 .fee{color:var(--accent)}
.way .sub{color:var(--sub-2);font-size:15px;font-weight:500;margin-bottom:18px;min-height:2.8em}
.way p{color:var(--sub);font-size:15px;line-height:1.6;margin:0 0 10px}
.way p b{color:var(--text)}
.way ul{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.way li{font-size:14px;color:var(--sub-2);display:flex;gap:10px;line-height:1.45}
.way li::before{content:"";flex:none;width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--accent)}
.way li > span{display:block}
.way li b{color:var(--text);font-weight:600}
.way.w3 li::before{background:var(--sub)}
.split{display:flex;gap:28px;align-items:flex-end;margin:22px 0 8px}
.split b{display:block;font-size:clamp(40px,3.9vw,56px);font-weight:600;letter-spacing:-.055em;line-height:.9}
.split small{display:block;font-size:13.5px;color:var(--sub);margin-top:10px}

.tiers{display:grid;gap:8px;margin:4px 0 16px}
.tier{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;padding:14px 16px;border-radius:12px;background:var(--tone)}
.tier .nm{grid-row:span 3;display:flex;flex-direction:column;justify-content:center;min-width:66px}
.tier .nm b{font-size:24px;letter-spacing:-.04em;line-height:1;font-weight:600}
.tier .nm small{font-size:12.5px;color:var(--sub);margin-top:6px}
.tier .d0{font-size:13px;color:var(--accent);line-height:1.4}
.tier .d0 .tq{color:inherit}
.tier .d{font-size:14px;color:var(--sub-2);line-height:1.45}
.tier .d2{font-size:13px;color:var(--sub);line-height:1.45}

.mprice{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;align-items:center;margin-top:var(--gap)}
.formula{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 0}
.formula span{padding:9px 12px;border-radius:10px;background:var(--tone);font-size:14px;color:var(--text);font-weight:500}
.formula span:first-child{background:var(--accent-bg);color:var(--accent)}
.formula i{font-style:normal;color:var(--sub);font:600 16px/1 var(--mono)}
.fair{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:var(--gap);padding:24px 26px;border-radius:16px;background:var(--panel-2)}
.fair > .k{grid-column:1/-1;color:var(--sub);margin-bottom:-8px}
.fair b{display:block;font-size:15px;letter-spacing:-.01em}
.fair small{display:block;color:var(--sub);font-size:13.5px;line-height:1.5;margin-top:5px}

/* ── tables: no rules; a faint tone on alternate rows ── */
table.t{width:100%;border-collapse:collapse;font-size:14.5px}
.t th{font:500 13px/1.3 var(--font);color:var(--sub);text-align:left;padding:10px 12px 8px;white-space:nowrap}
.t td{padding:14px 12px;font-variant-numeric:tabular-nums;color:var(--sub-2);vertical-align:top}
.t tbody tr:nth-child(odd) td{background:rgba(255,255,255,.025)}
.t tbody tr td:first-child{border-radius:10px 0 0 10px}
.t tbody tr td:last-child{border-radius:0 10px 10px 0}
.t tr.hl td{background:rgba(198,241,53,.07)!important}
.t .r{text-align:right}
.t td b{color:var(--text);font-weight:600}
.t td small{display:block;color:var(--dim);font-size:12.5px;margin-top:3px}
.tcard{overflow-x:auto}

/* ── controls: chips and sliders ── */
.presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chip{min-height:36px;padding:0 14px;border-radius:999px;border:0;background:var(--raised);color:var(--sub-2);font:500 13.5px/1 var(--font);cursor:pointer;transition:background-color .16s,color .16s,transform .14s var(--ease)}
.chip:hover{background:var(--raised-2);color:var(--text)}
.chip:active{transform:scale(.96)}
.chip.on{background:var(--accent);color:var(--on-accent);font-weight:600}
.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sl{margin-bottom:26px}
.sl:last-child{margin-bottom:0}
.sl label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14.5px;color:var(--sub-2);margin-bottom:10px}
.sl label output{font:600 17px/1 var(--font);color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.sl label output small{font:500 12px/1 var(--font);color:var(--sub);margin-left:6px;letter-spacing:0}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;margin:0;cursor:pointer;--p:50%;touch-action:pan-y}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--accent) var(--p),var(--raised-2) var(--p))}
input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--accent) var(--p),var(--raised-2) var(--p))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-8px;border:0;border-radius:50%;background:var(--text);box-shadow:0 2px 10px rgba(0,0,0,.55);transition:transform .14s var(--ease)}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border:0;border-radius:50%;background:var(--text);box-shadow:0 2px 10px rgba(0,0,0,.55)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}
input[type=range]:focus{outline:none}
input[type=range]:focus-visible::-webkit-slider-thumb{background:var(--accent)}
input[type=range]:focus-visible::-moz-range-thumb{background:var(--accent)}

/* ── 05 founder's scenario ── */
.fsbox{background:linear-gradient(180deg,rgba(198,241,53,.05),transparent 38%),var(--panel);border-radius:26px;padding:34px 34px 30px}
.fstop{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:20px;align-items:center;margin:-10px 0 22px}
.fstop .m3d-supply{margin:-14px -14px -18px 0}
.fstop .fsread{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));row-gap:26px}
.fstop .fsread .big1{grid-row:span 2;align-self:center}
.fstop .fsread .big1 b{font-size:clamp(48px,5vw,76px)}
.fsread{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:24px;align-items:end}
.fsread .k{margin-bottom:8px;font-size:13.5px;color:var(--sub)}
.fsread b{display:block;font-size:clamp(26px,2.6vw,38px);font-weight:600;letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums}
.fsread .big1 b{font-size:clamp(52px,6.2vw,92px);color:var(--accent);letter-spacing:-.055em}
.fsread small{display:block;color:var(--sub);font-size:13.5px;margin-top:8px;line-height:1.35}
.fschart{position:relative;min-height:300px}
.fschart svg{display:block;overflow:visible}
.fschart .gl{stroke:#1d1d22;stroke-width:1}
.fschart .yl{fill:var(--dim);font:500 11px var(--mono);text-anchor:end}
.fschart .xl{fill:var(--dim);font:500 11px var(--mono);text-anchor:middle}
.fschart .dead{fill:#6a6a70}
.fschart .wick.wd{stroke:#6a6a70}
.fschart .sl{fill:var(--sub);font:500 12px var(--font)}
.fschart .body{fill:var(--accent)}
.fschart .wick{stroke:var(--accent);stroke-width:1.6;stroke-linecap:round}
.fschart .sup{fill:none;stroke:var(--text);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.fschart .supa{fill:rgba(244,244,242,.035)}
.fschart .supd{fill:var(--text)}
.fschart .lab{font:600 12px var(--mono);paint-order:stroke;stroke:var(--panel);stroke-width:5px;stroke-linejoin:round}
.fschart .ls{fill:var(--text)}
.fschart .lb{fill:var(--accent)}
.fslegend{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:13.5px;color:var(--sub-2);margin-top:14px}
.fslegend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:8px;vertical-align:-1px}
.fslegend .lg-burn{background:var(--accent)}
.fslegend .lg-dead{background:#6a6a70}
.fslegend .lg-sup{height:2px;border-radius:0;background:var(--text);vertical-align:3px}
.fsmeta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:14px}
.fsmeta .fslegend{margin:0}
.fsmodel{display:flex;gap:6px;flex-wrap:wrap}
.fsmodel .chip{font-size:13px}
.fsimplied{margin:22px 0 0;font-size:13px;line-height:1.55;color:var(--dim);max-width:90ch}
.fsnote{margin:14px 0 0;font-size:14px;line-height:1.55;color:var(--sub);max-width:80ch}
.fsnote b{color:var(--sub-2);font-weight:600}
.fsctl{margin-top:30px}
.fsctl .presets{margin-bottom:24px}
.fsgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 40px}
.sl.big{margin:0}
.sl.big label{font-size:14px;color:var(--sub);margin-bottom:4px;align-items:flex-end}
.sl.big label output{font-size:24px;letter-spacing:-.035em}
.sl.big input[type=range]{height:44px}
.sl.big input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:6px}
.sl.big input[type=range]::-moz-range-track{height:6px;border-radius:6px}
.sl.big input[type=range]::-webkit-slider-thumb{width:26px;height:26px;margin-top:-10px}
.sl.big input[type=range]::-moz-range-thumb{width:26px;height:26px}
.fsrow{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:28px}
#fs-table{width:100%}
#fs-table td:first-child{white-space:nowrap}
.fsrow .fine-print{margin:0}

/* ── 06 a month in dollars ── */
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:2px;border-radius:22px;overflow:hidden}
.calc .ctl{padding:32px;background:var(--panel)}
.calc .out{padding:32px;background:linear-gradient(170deg,rgba(198,241,53,.06),transparent 45%),var(--panel)}
.outs{display:grid;grid-template-columns:1fr 1fr;gap:28px 24px}
.outs b{display:block;font-size:clamp(32px,3.2vw,46px);font-weight:600;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.outs b.acc{color:var(--accent)}
.outs small{display:block;color:var(--sub);font-size:13.5px;margin-top:9px;line-height:1.4}
.peracc{margin-top:22px;font-size:14.5px;color:var(--sub);line-height:1.6}
.peracc b{color:var(--text)}
.meter{position:relative;margin-top:34px;height:72px}
.meter .track{position:absolute;left:0;right:0;top:26px;height:14px;border-radius:8px;background:var(--raised);overflow:hidden}
.meter .fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:8px;transition:width .5s var(--ease)}
.meter .tk{position:absolute;top:18px;width:1px;height:30px;background:var(--sub)}
.meter .tk span{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font:600 11px/1 var(--mono);color:var(--sub-2);white-space:nowrap}
.meter .tk em{position:absolute;top:36px;left:50%;transform:translateX(-50%);font:500 11px/1 var(--mono);color:var(--dim);white-space:nowrap;font-style:normal}
.meter .tk.r span,.meter .tk.r em{left:auto;right:0;transform:none}
.meter .tk.l span,.meter .tk.l em{left:0;transform:none}

/* ── 07 where revenue goes ── */
.order{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:var(--gap);counter-reset:o}
.order > div{position:relative;padding:22px 24px 22px 64px}
.order > div::before{counter-increment:o;content:counter(o);position:absolute;left:22px;top:22px;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--raised);color:var(--sub-2);font:700 13px/1 var(--font)}
.order > div.acc::before{background:var(--accent);color:var(--on-accent)}
.order b{display:block;font-size:16px;letter-spacing:-.02em}
.order small{display:block;color:var(--sub);font-size:14px;margin-top:5px;line-height:1.5}
.wf{display:grid;grid-template-columns:200px minmax(0,1fr) 270px;gap:28px;align-items:center;margin-top:26px}
.wf .left .k{margin-bottom:12px}
.wf .left b{display:block;font-size:clamp(40px,3.8vw,54px);font-weight:600;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.wf .left small{display:block;color:var(--sub);font-size:13.5px;margin-top:10px;line-height:1.45}
.wf svg{width:100%;height:320px;display:block;overflow:visible}
.wf .flows{clip-path:inset(0 0 0 0);transition:clip-path 1.6s var(--glide)}
html.anim .wf .flows{clip-path:inset(0 100% 0 0)}
html.anim .in .wf .flows{clip-path:inset(0 0 0 0)}
.wf .rl{display:grid;gap:16px}
.wf .rl > div{display:grid;grid-template-columns:10px minmax(0,1fr);gap:4px 12px;align-items:baseline}
.wf .rl i{width:10px;height:10px;border-radius:50%;align-self:center}
.wf .rl span{font-size:14.5px;color:var(--sub-2)}
.wf .rl b{grid-column:2;font-size:22px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}
.wf .rl small{grid-column:2;color:var(--sub);font-size:13px;line-height:1.35}
.wf .rl .off span,.wf .rl .off b,.wf .rl .off small{color:var(--dim)}
.wf .rl .off i{opacity:.4}
.state{margin-top:18px;padding:14px 16px;border-radius:12px;font-size:14.5px;line-height:1.55;color:var(--sub-2);background:var(--tone)}
.state.below{background:rgba(242,193,78,.08)}
.state b{color:var(--text)}
.wfctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:24px}
.wfctl .chips{display:flex;gap:8px;flex-wrap:wrap}
.wfctl .sl{flex:1;min-width:220px;margin:0}
.costs .tiersbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;height:190px;margin-top:22px}
.tiersbar .tb{display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.tiersbar .tb i{display:block;height:calc(var(--v)*100%);min-height:6px;border-radius:10px 10px 4px 4px;background:rgba(139,125,255,.3);transform-origin:bottom;transition:transform 1.1s var(--glide);transition-delay:calc(var(--k,0)*140ms)}
.tiersbar .tb.now i{background:var(--purple)}
html.anim .tiersbar .tb i{transform:scaleY(0)}
html.anim .in .tiersbar .tb i{transform:scaleY(1)}
.tiersbar .tb b{display:block;font-size:24px;letter-spacing:-.04em;font-weight:600;margin-bottom:8px}
.tiersbar-x{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:10px;font-size:13px;color:var(--sub);line-height:1.4}
.tiersbar-x b{display:block;color:var(--sub-2);font-size:13.5px;font-weight:600;margin-bottom:2px}
.costs .today{margin-top:26px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}
.costs .today .k{margin-bottom:10px}
.costs .today .tbar{height:10px;border-radius:6px;background:var(--raised);overflow:hidden}
.costs .today .tbar i{display:block;height:100%;width:calc(var(--v)*100%);background:var(--purple);border-radius:6px}
.costs .today > b{font-size:26px;letter-spacing:-.03em}
.costs .today > b small{font-size:13.5px;color:var(--sub);font-weight:500}
.cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.cats span{font-size:13.5px;padding:8px 12px;border-radius:999px;background:var(--raised);color:var(--sub-2);line-height:1.3}
#cat-in span{background:var(--accent-bg);color:var(--accent)}

/* ── 08 break-even ── */
.be .hb .r{grid-template-columns:minmax(150px,280px) minmax(0,1fr) auto}
.be .hb .tr{height:40px;border-radius:10px}
.be .hb .tr i{border-radius:10px}
.be .who{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);margin-top:var(--gap)}
.pays{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pays span{font:500 13.5px/1 var(--font);padding:9px 12px;border-radius:999px;background:var(--raised);color:var(--sub-2)}
.pays span.y{background:var(--accent-bg);color:var(--accent)}

/* ── 09 token fees ── */
.tf{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--gap);align-items:stretch}
.tf .shotbig{margin:0;border-radius:var(--r);overflow:hidden;background:#0d0d0f;display:flex;flex-direction:column}
.tf .shotbig .crop{overflow:hidden;aspect-ratio:1009/470}
.tf .shotbig .crop img{width:104%;max-width:none;height:auto;margin-left:-3.6%}
.tf .shotbig figcaption{padding:12px 16px;font-size:13px;color:var(--sub);margin-top:auto}
.feebig{display:block;font-size:clamp(44px,4.4vw,62px);letter-spacing:-.05em;line-height:1;margin-top:14px;font-weight:600}
.minibar{display:flex;height:12px;border-radius:6px;overflow:hidden;margin-top:20px;gap:2px}
.minibar i{flex:var(--v);transform-origin:left;transition:transform 1.1s var(--glide)}
html.anim .minibar i{transform:scaleX(0)}
html.anim .in .minibar i{transform:scaleX(1)}
.feerows{margin-top:14px}
.feerows .row{display:flex;align-items:center;gap:12px;font-size:15px;padding:9px 0;color:var(--sub-2)}
.feerows .row i{width:9px;height:9px;border-radius:50%;flex:none}
.feerows .row b{margin-left:auto;font-weight:600;font-size:17px;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums}

/* ── 10 reporting ── */
.commits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.commit{background:var(--panel);border-radius:var(--r);padding:26px}
.commit .ic{display:block;font-size:13.5px;font-weight:500;color:var(--accent);margin-bottom:14px}
.commit p{color:var(--sub);font-size:14.5px;line-height:1.6;margin:10px 0 0}
.addr{margin-top:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr))}
.addr > div{padding:20px 24px;background:var(--panel-2)}
.addr code{display:block;font:500 12.5px/1.5 var(--mono);color:var(--sub-2);margin-top:10px;word-break:break-all}
.addr code.tbd{font-family:var(--font);font-size:14px;color:var(--sub)}

/* ── 11 roadmap ── */
.road{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.road::before{content:"";position:absolute;left:14px;right:14px;top:14px;height:2px;margin-top:-1px;background:var(--raised)}
.road .rline{position:absolute;left:14px;top:13px;height:2px;width:calc((100% - 28px) * .12);background:var(--accent);transform-origin:left;transition:transform 1.6s var(--glide)}
html.anim .road .rline{transform:scaleX(0)}
html.anim .in .road .rline,html.anim .road.in .rline{transform:scaleX(1)}
.phase{position:relative;padding-top:52px}
.phase .dot{position:absolute;left:0;top:0;width:29px;height:29px;border-radius:50%;background:var(--raised);display:grid;place-items:center;font:700 12px/1 var(--font);color:var(--sub-2)}
.phase.now .dot{background:var(--accent);color:var(--on-accent)}
html.anim .phase.now .dot{animation:live 2.4s ease-out infinite}
@keyframes live{0%{box-shadow:0 0 0 0 rgba(198,241,53,.5)}70%{box-shadow:0 0 0 10px rgba(198,241,53,0)}100%{box-shadow:0 0 0 0 rgba(198,241,53,0)}}
.phase .k{margin-bottom:8px;font-size:13.5px;color:var(--sub)}
.phase.now .k{color:var(--accent)}
.phase h3{font-size:22px}
.phase ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.phase li{font-size:14.5px;color:var(--sub);line-height:1.5;padding-left:16px;position:relative}
.phase li::before{content:"";position:absolute;left:0;top:10px;width:5px;height:5px;border-radius:50%;background:var(--sub)}

/* ── closing + footer ── */
.close{padding:160px 0 140px;position:relative;overflow:hidden;isolation:isolate}
.close::before{content:"";position:absolute;width:900px;height:900px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(198,241,53,.09),transparent 62%);z-index:-1}
.close .quote{margin:0;font-size:clamp(36px,5vw,72px);line-height:1.03;letter-spacing:-.05em;font-weight:600;max-width:17ch;text-wrap:balance}
.close .lead{max-width:60ch}
.sign{display:flex;align-items:center;gap:12px;margin-top:44px;color:var(--sub);font-size:14.5px}
.sign img{width:30px;height:30px;border-radius:8px}
footer{padding:70px 0 calc(90px + env(safe-area-inset-bottom));background:var(--panel-2)}
footer .cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:56px}
footer h3{font-size:15px;margin-bottom:14px}
footer p{color:var(--sub);font-size:14px;line-height:1.7;margin:0 0 10px}
footer p.risk{color:var(--sub-2);padding:14px 16px;border-radius:12px;background:rgba(242,193,78,.07)}
footer p.risk b{color:var(--amber)}
footer ol{margin:0;padding-left:20px;color:var(--sub);font-size:13.5px;line-height:1.7}
footer ol a{color:var(--sub-2);word-break:break-word}
footer .fine{margin-top:40px;font-size:13px;color:var(--dim)}

/* ── internal PDF appendix (injected by the draft build only) ── */
.appx-banner{display:inline-block;margin-bottom:28px;padding:9px 14px;border-radius:8px;background:rgba(255,92,92,.14);color:#ff8080;font:700 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase}
.appx h2 em.s{color:var(--sub)}
.axlist{margin:12px 0 0;padding-left:18px;color:var(--sub-2);font-size:14px;line-height:1.6}
.axlist li{margin-bottom:6px}
.appx .t td{font-size:13.5px}

/* ── responsive ── */
@media (max-width:1100px){
  .wf{grid-template-columns:170px minmax(0,1fr) 230px;gap:20px}
  .fsread,.fstop .fsread{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fsread .big1,.fstop .fsread .big1{grid-column:1/-1;grid-row:auto}
  .fair{grid-template-columns:1fr 1fr 1fr;gap:18px}
  .hero .m3d-hero{width:36vw;top:62%;right:-30px}
  .fstop{grid-template-columns:minmax(0,1fr) 170px}
}
/* header on narrow screens: the logo plus a horizontal strip of section links that scrolls on its own
   (the active link is kept in view by manifesto.js); each link is a 44px touch target with a smaller pill */
@media (max-width:980px){
  .top .wrap{gap:6px;padding-right:0}
  .toc{position:relative;flex:1;min-width:0;margin-left:4px;gap:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:0 max(var(--pad),env(safe-area-inset-right)) 0 6px;scroll-padding:0 40px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 34px),transparent);mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 34px),transparent)}
  .toc::-webkit-scrollbar{display:none}
  .toc a{flex:none;position:relative;isolation:isolate;display:flex;align-items:center;min-height:44px;padding:0 12px;background:none!important}
  .toc a::before{content:"";position:absolute;inset:6px 1px;border-radius:999px;background:transparent;z-index:-1;transition:background-color .16s}
  .toc a.on::before{background:var(--raised)}
}
@media (max-width:860px){
  :root{--pad:20px;--gap:14px;--nav:54px}
  .brand{min-height:44px;flex:none}
  .brand img{width:26px;height:26px;border-radius:7px}
  .brand b{font-size:23px}
  .toc{font-size:14px}
  /* type: one scale for phones and tablets */
  .sec{padding:76px 0 12px}
  .eyebrow{margin-bottom:18px;gap:10px}
  .sec .head{grid-template-columns:1fr;gap:16px;margin-bottom:28px}
  h2{font-size:clamp(30px,8.4vw,44px);line-height:1.06;max-width:20ch}
  .lead{font-size:16.5px;line-height:1.6}
  .fig h3{display:block}
  .fig h3 small{display:block;margin-top:6px}
  .grid2,.duo,.tok,.tf,.be .who,.mprice,.fsrow{grid-template-columns:1fr}
  .mprice{gap:16px}
  .fsrow{gap:18px;margin-top:20px}
  .card,.fig{padding:22px 20px}
  .m3d-stage{margin:-4px 0 16px}
  .scroll-cue{display:none}
  /* hero */
  .hero{min-height:auto;padding:48px 0 52px;flex-direction:column;align-items:stretch}
  .hero .kicker{margin-bottom:20px}
  .hero .lead{margin-top:20px}
  .kpis{gap:2px;border-radius:16px;overflow:hidden;margin-top:32px}
  .kpis > div{background:rgba(15,15,17,.86);padding:18px 16px 16px}
  .kpis b{font-size:clamp(28px,8.2vw,40px)}
  .kpis small{margin-top:8px;font-size:13px}
  .hero .src{margin-top:14px}
  /* the founder's scenario clip: cropped to the box and the coin, centred under the lead */
  .sec .head.hc{grid-template-columns:1fr;grid-template-areas:"h" "l" "f";row-gap:16px}
  .sec .head.hc > .m3d{justify-self:center;width:min(100%,300px);margin:-4px 0 -8px}
  .sec .head.hc > .m3d .m3d-in{aspect-ratio:4/3;overflow:hidden}
  .sec .head.hc > .m3d .m3d-in > img,.sec .head.hc > .m3d .m3d-in > video{height:100%;object-fit:cover;object-position:50% 74%}
  /* the supply clip comes back as a small square next to the big number, cropped to the coin stack */
  .fstop{display:block;position:relative;margin:0 0 18px}
  .fstop .m3d-supply{--s:132px;position:absolute;top:-10px;right:-6px;width:var(--s);height:var(--s);margin:0;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent,#000 22%);mask-image:linear-gradient(180deg,transparent,#000 22%)}
  .fstop .m3d-supply .m3d-in{position:absolute;width:calc(var(--s) * 1.5);left:calc(var(--s) * -.25);top:calc(var(--s) * -.4)}
  .fsread,.fstop .fsread{grid-template-columns:1fr 1fr;gap:20px 16px;align-items:start}
  .fsread .big1{padding-right:116px;min-height:120px}
  /* tiles */
  .stats,.rails,.ways,.commits,.ex,.addr,.order,.fair{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stats > div{padding:20px 18px}
  .stats > div:first-child{grid-column:1/-1}
  .stats > div:not(:first-child) b{font-size:clamp(26px,7.4vw,36px)}
  .kv{gap:18px 16px;margin-top:20px}
  .kv > div:first-child,.kv > div:last-child{grid-column:1/-1}
  .rail{padding:20px;display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;align-items:center}
  .rail .ic{margin:0}
  .rail p{grid-column:1/-1;margin-top:12px}
  .route{grid-template-columns:1fr 1fr}
  .route .n{padding:18px 16px}
  .route .n .st{margin-bottom:10px}
  .ex > div{padding:18px 20px}
  .ex b{font-size:30px}
  .way{padding:24px 20px 22px}
  .way .fee{margin-top:16px}
  .fair{gap:16px;padding:20px}
  .commits{gap:2px;border-radius:var(--r);overflow:hidden}
  .commit{border-radius:0;padding:20px}
  .commit .ic{margin-bottom:8px}
  .commit p{margin-top:6px}
  .addr > div{padding:18px 20px}
  /* the original screenshots: a swipeable row, edge to edge */
  .shots{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad));padding:0 var(--pad) 2px;scroll-padding:0 var(--pad)}
  .shots::-webkit-scrollbar{display:none}
  .shot{flex:0 0 min(78%,340px);scroll-snap-align:start}
  .shot img{height:180px}
  /* data API: one row per plan, name and price on a line, what it is underneath */
  #api-table thead{display:none}
  #api-table,#api-table tbody{display:block}
  #api-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 14px;padding:12px 14px;border-radius:12px;margin-bottom:4px}
  #api-table tbody tr:nth-child(odd){background:rgba(255,255,255,.025)}
  #api-table tbody tr.hl{background:rgba(198,241,53,.07)}
  .api .apiprice{flex-wrap:wrap;gap:6px 10px}
  .api .apiprice small{flex-basis:100%}
  #api-table td{padding:0;background:transparent!important;border-radius:0!important;font-size:14.5px}
  #api-table td:nth-child(3){grid-column:1/-1;color:var(--sub);font-size:13.5px}
  .calc{grid-template-columns:1fr}
  .calc .ctl,.calc .out{padding:24px 20px}
  /* revenue flow: chart, then its slider, then the three steps and what they mean */
  #wf-fig{display:flex;flex-direction:column}
  #wf-fig .wf{display:contents}
  #wf-fig > h3{order:0}
  #wf-fig .wf .left{order:1;margin-top:18px}
  #wf-fig .wf svg{order:2;margin-top:20px;height:210px}
  #wf-fig .wfctl{order:3;margin-top:20px}
  #wf-fig .wf .rl{order:4;margin-top:24px;gap:14px}
  #wf-fig .state{order:5}
  #wf-fig > .fine-print{order:6}
  .wf .left .k{margin-bottom:8px}
  .wfctl .sl{flex-basis:100%}
  .wfctl .chips{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .road{grid-template-columns:1fr;gap:34px}
  .road::before{left:14px;right:auto;top:14px;bottom:14px;width:2px;height:auto;margin:0 0 0 -1px}
  .road .rline{left:13px;width:2px;height:calc((100% - 28px) * .12);transform-origin:top}
  html.anim .road .rline{transform:scaleY(0)}
  html.anim .in .road .rline,html.anim .road.in .rline{transform:scaleY(1)}
  .phase{padding:0 0 0 52px}
  footer .cols{grid-template-columns:1fr;gap:36px}
  footer{padding-top:56px}
  .hb .r,.be .hb .r,#ch-axiom-bars .r{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
  .hb .r > span{grid-column:1/-1}
  .close{padding:96px 0 88px}
  .draft{display:none}
  .way .sub{min-height:0}
  .vb{height:180px}
  .fsbox{padding:22px 16px 20px;border-radius:20px}
  .fsgrid{grid-template-columns:1fr;gap:16px}
  .sl.big label output{font-size:22px}
  input[type=range],.sl.big input[type=range]{height:44px}
  /* stacked tables: one tile per row */
  table.t.stack thead{display:none}
  table.t.stack,table.t.stack tbody,table.t.stack tr,table.t.stack td{display:block;width:100%}
  table.t.stack tr{margin-bottom:6px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.025)}
  table.t.stack tr.hl{background:rgba(198,241,53,.07)}
  table.t.stack tbody tr td,table.t.stack tr.hl td{background:transparent!important;border-radius:0}
  table.t.stack td{padding:4px 0;display:flex;justify-content:space-between;gap:16px;text-align:right}
  table.t.stack td::before{content:attr(data-l);color:var(--sub);font-size:13px;text-align:left}
  table.t.stack td:first-child{display:block;text-align:left;padding-bottom:8px}
  table.t.stack td:first-child::before{content:none}
  table.t.stack td .v{text-align:right}
  table.t.stack td .v small{display:inline;margin:0 0 0 6px}
  table.t.stack td .v .tqb{display:block;margin:2px 0 0}
  /* money in: clip, sources, then where it goes; the wires give way to the coloured tags */
  .pf{display:flex;flex-direction:column;align-items:stretch;gap:10px}
  .pf-wires{display:none}
  .pf-dst{display:contents}
  .pf-clip{order:-1;margin:-6px -10px -4px}
  .pf-src{order:0}
  .pfd.run{order:1;margin-top:10px}
  .pf-link{order:2}
  .pfd.burn{order:3}
  .pfd.fnd{order:4}
  .pfs{padding:16px;gap:14px}
  .pfd{padding:20px}
  .recap{padding:12px 0 64px}
  .recap-in{padding:22px 18px;border-radius:20px}
  .recap-h{grid-template-columns:1fr;gap:8px}
  .recap-grid{grid-template-columns:1fr}
  .rc{padding:14px}
  .fsmeta{flex-direction:column;align-items:stretch}
  .fsmodel{display:grid;grid-template-columns:1fr 1fr}
  .fsmodel .chip{padding:0 8px}
  .tqv{font-size:12.5px}
}
/* tablets: the hero clip sits right of the lead, the readouts run four across */
@media (min-width:600px) and (max-width:860px){
  .hero .m3d-hero{position:absolute;top:118px;right:-70px;width:min(60vw,500px);transform:none;margin:0}
  .hero .lead{max-width:min(52ch,64%)}
  .kpis{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none}
  .fstop .m3d-supply{--s:176px}
  .fsread .big1{padding-right:170px;min-height:150px}
  .fsread,.fstop .fsread{grid-template-columns:repeat(4,minmax(0,1fr))}
  .fsread .big1{grid-column:1/-1}
  .route{grid-template-columns:repeat(4,minmax(0,1fr))}
  .rails{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rail{display:block}
  .rail .ic{margin-bottom:16px}
  .rail p{margin-top:8px}
  .ex{grid-template-columns:repeat(3,minmax(0,1fr))}
  .commits{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stats > div:first-child{grid-column:auto}
  .fsgrid{grid-template-columns:1fr 1fr;gap:18px 28px}
  .fsread,.fstop .fsread{grid-template-columns:repeat(3,minmax(0,1fr))}
  .recap-grid{grid-template-columns:1fr 1fr}
  .pf-src{display:grid;grid-template-columns:1fr 1fr}
}
/* phones: the hero clip is the first thing under the header, a band cropped to the tile and its pedestal,
   fading into the page where the kicker starts */
@media (max-width:599px){
  .hero{padding:0 0 44px}
  .hero .m3d-hero{--hw:clamp(440px,136vw,560px);position:relative;top:auto;right:auto;transform:none;width:auto;height:clamp(224px,64vw,290px);margin:0 0 -22px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 66%,transparent 98%);mask-image:linear-gradient(180deg,#000 66%,transparent 98%)}
  .hero .m3d-hero .m3d-in{position:absolute;width:var(--hw);left:50%;margin-left:calc(var(--hw) / -2);top:calc(var(--hw) * -.075)}
  .hero .orb{width:560px;height:560px;right:-200px;top:-140px}
  .hero .kicker{position:relative;font-size:12px;letter-spacing:.12em;flex-wrap:nowrap;margin-bottom:16px}
  .hero h1{font-size:clamp(40px,12.2vw,52px);line-height:.98}
  .hero .lead{font-size:16px;line-height:1.58}
  .kpis{grid-template-columns:1fr 1fr}
  .vb.sparse .b:not(.hl) .t{display:none}
  .vb.sparse .b .t{bottom:calc(var(--tv,var(--v)) * 100% + 7px)}   /* a label lifts above a taller neighbour */
  .vx span,.vb .b .t{font-size:10px}
  #ch-gmgn-x span:nth-child(10n+6){visibility:hidden}
  .outs{gap:22px 16px}
  .way .fee{font-size:56px}
  .split b{font-size:42px}
  .fsread .big1 b{font-size:clamp(46px,14vw,60px)}
}
/* touch (and any narrow screen): chips and slider thumbs sized for a thumb */
@media (pointer:coarse),(max-width:860px){
  .chip{min-height:44px;padding:0 16px;font-size:14px}
  #fpresets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  #presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
  .presets .chip{padding:0 8px}
  input[type=range]{height:44px}
  input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:6px}
  input[type=range]::-moz-range-track{height:6px;border-radius:6px}
  input[type=range]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-11px}
  input[type=range]::-moz-range-thumb{width:28px;height:28px}
  .sl.big input[type=range]::-webkit-slider-thumb{width:30px;height:30px;margin-top:-12px}
  .sl.big input[type=range]::-moz-range-thumb{width:30px;height:30px}
  .sl label{margin-bottom:2px}
}
@media (pointer:coarse) and (min-width:600px),(min-width:600px) and (max-width:860px){
  #fpresets{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* ── reduced motion: final state, no travel ── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ── print / PDF: A4, each section starts a page, everything in its final state, controls replaced by
   the static inputs line and the scenario tables ── */
@page{size:A4;margin:0}
@media print{
  html,body{background:var(--bg)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  *{animation:none!important;transition:none!important}
  .progress,.top,.scroll-cue,.presets,.calc .ctl,.wfctl,.fsctl,.fsmodel,.no-print{display:none!important}
  .print-only{display:block!important}
  .rv{opacity:1!important;transform:none!important}
  .hero{min-height:0;padding:150px 0 120px;break-after:page}
  .sec{padding:48px 0 24px;break-before:page}
  .sec .head{margin-bottom:28px;gap:40px}
  .close{break-before:page;padding:140px 0 120px}
  footer{break-before:page;background:var(--bg)}
  .card,.fig,.calc,.way,.rail,.commit,.tcard,.route,.order,.ex,.stats,.wf,.shot,.phase,.tf,.addr,.be .who > *,.fsrow,.fair,.caveat,.tiers,.fsbox,.mprice,.shots,.rails,.ways,.road,.pfs,.pfd,.rc,.recap-in{break-inside:avoid}
  h2,.head{break-after:avoid}
  .calc{grid-template-columns:1fr}
  .wf svg{height:250px}
  .vb{height:190px}
  .shots-h{break-before:page;padding-top:48px;margin-bottom:6px}
  .shots{grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
  .shots .shot:first-child{grid-column:1/-1}
  .shot img{height:auto;object-fit:contain}
  .fsinputs{margin:14px 0 0;font-size:13.5px;color:var(--sub-2)}
  /* clips print as their posters */
  .m3d video{display:none!important}
  .m3d-in{transform:none!important}
  .m3d-stage{break-inside:avoid}
}

/* what changes for you: four audiences, then the holders' card */
.you .you-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.you .card{display:flex;flex-direction:column;gap:12px}
.you .who{font:600 12px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.you h3{margin:0;font-size:clamp(19px,1.6vw,22px);line-height:1.25;letter-spacing:-.01em;color:var(--text)}
.you .holders{margin-top:var(--gap);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:28px;background:linear-gradient(135deg,rgba(198,241,53,.07),var(--panel) 55%)}
.you .holders-h{display:flex;flex-direction:column;gap:12px}
.you .holders-l{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.you .holders-l li{color:var(--sub);font-size:15.5px;line-height:1.6;padding-left:18px;position:relative}
.you .holders-l li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.you .holders-l b{color:var(--text);font-weight:600}
@media (max-width:1100px){.you .you-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.you .holders{grid-template-columns:1fr;gap:18px}}
@media (max-width:599px){.you .you-grid{grid-template-columns:1fr}}
