igneum/site/site.css
igneum-josh 2fa3adf997 site-redesign: the full-site redesign on our content, 22 pages served
The package's design system, layouts and interactions on our tokens and self-hosted fonts (site/site.css section 10),
our facts, numbers, records and live services on every page. The home page: the GPU hero (site/hero-scene.js, continuous
while in view, labelled as drawn), the live DAG panel on scenes/feed.js and live-dag.js 2.0.2, three reasons, the
economics split, the download row with the OS marks, the ledger line. The miner page: the download layout, platform
tabs stamped from the live download index with sha256, the steps, the card table, the fee section (the one source of
/dev-fee), the FAQ. The wallet page in the package's wallet-hero layout, the window slot ready for the wallet redesign.
The secondary pages rendered by the build from one source each: /claims and /randomx from the litepaper's sections,
/dev-fee from the miner's fee section, /provenance from docs/provenance.md through the scrub, /journey from
journey.json; /benchmarks rewrites to /miners, /connect redirects to /metamask. The generated pages (bench, bench
table, ledger) restyled onto the page hero and the docs layout with a section filter. The footer's secondary links point
at the real pages. The copy pass on every served page (docs/plans/site-copy-pass.md). The package's data tests and the
hero loop test in the gate (tools/site-redesign). No sample data is served; the package's review chrome is not.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 11:30:18 +01:00

544 lines
46 KiB
CSS

/* Igneum site: one design system for every page (docs/plans/site-ui-3.md, 6 October 2026).
Tokens, type, the shared components (nav, footer, card, tile, table, button, pill, note, callout, code) and the
state words. Each page keeps a short block of its own after this file. Fonts are declared in partials/head.html. */
/* ---------- 1. tokens ---------- */
:root{
--obsidian:#0C0C0E;--graphite:#16161A;--row:#111114;--line:#2A2A30;--line-2:#3A3A42;
--ember:#F2541B;--ember-hi:#FF6A2B;--ember-text:#F2541B;--molten:#FFB35C;--molten-text:#FFB35C;
--bone:#F4F1EC;--ink-2:#C9C7C2;--ash:#9A9A9E;--ember-ink:#0C0C0E;--ok:#FFB35C;
--scrim:rgba(12,12,14,.72);--top-bg:rgba(12,12,14,.86);--shadow:rgba(0,0,0,.6);--hover:rgba(255,255,255,.04);
--ember-12:rgba(242,84,27,.12);--ember-40:rgba(242,84,27,.4);--molten-10:rgba(255,179,92,.1);
--included:#3B7DD8;--excluded:#B0362B;
/* the chrome tokens older page blocks still read */
--ground:var(--obsidian);--surface:var(--graphite);--surface-2:var(--row);--ink:var(--bone);--quiet:var(--ash);
--ui-bg:var(--top-bg);--ui-menu:var(--obsidian);--ui-ink:var(--bone);--ui-ink-2:var(--ink-2);--ui-ash:var(--ash);--ui-line:var(--line);--ui-line-2:var(--line-2);
--ui-accent:var(--ember);--ui-accent-ink:var(--ember-ink);--ui-hot:var(--molten);--ui-hover:var(--ember-hi);--ui-tint:var(--ember-12);
--code:var(--row);--code-ink:var(--ink-2);
/* type */
--f-sans:'IBM Plex Sans','Plex Sans Fallback',system-ui,-apple-system,sans-serif;
--f-display:'Unbounded','Unbounded Fallback',sans-serif;
--f-mono:'IBM Plex Mono','Plex Mono Fallback',ui-monospace,Menlo,monospace;
--t-xs:11px;--t-sm:12px;--t-base:15px;--t-md:17px;--t-lg:19px;--t-h3:20px;
--t-h2:clamp(26px,3.2vw,36px);--t-h1:clamp(32px,5vw,56px);--t-hero:clamp(40px,7vw,76px);--t-num:clamp(26px,3vw,40px);
/* space, radius */
--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;
--gutter:32px;--sec:96px;--max:1120px;--nav-h:64px;
--r-card:16px;--r-row:12px;--r-btn:10px;--r-pill:999px;
color-scheme:dark;
}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]){
--obsidian:#F4F1EC;--graphite:#FFFFFF;--row:#FAF8F5;--line:#E2DED8;--line-2:#CFCAC2;
--ember:#D0420D;--ember-hi:#E04A14;--ember-text:#B8390C;--molten:#B8731F;--molten-text:#8F5810;
--bone:#16161A;--ink-2:#3C3C42;--ash:#6B6B70;--ember-ink:#FFFFFF;--ok:#B8731F;
--scrim:rgba(244,241,236,.72);--top-bg:rgba(244,241,236,.88);--shadow:rgba(0,0,0,.18);--hover:rgba(0,0,0,.04);
--ember-12:rgba(224,74,20,.1);--ember-40:rgba(224,74,20,.4);--molten-10:rgba(184,115,31,.1);
--included:#2A62B8;--excluded:#B0362B;
color-scheme:light;
}}
:root[data-theme="light"]{
--obsidian:#F4F1EC;--graphite:#FFFFFF;--row:#FAF8F5;--line:#E2DED8;--line-2:#CFCAC2;
--ember:#D0420D;--ember-hi:#E04A14;--ember-text:#B8390C;--molten:#B8731F;--molten-text:#8F5810;
--bone:#16161A;--ink-2:#3C3C42;--ash:#6B6B70;--ember-ink:#FFFFFF;--ok:#B8731F;
--scrim:rgba(244,241,236,.72);--top-bg:rgba(244,241,236,.88);--shadow:rgba(0,0,0,.18);--hover:rgba(0,0,0,.04);
--ember-12:rgba(224,74,20,.1);--ember-40:rgba(224,74,20,.4);--molten-10:rgba(184,115,31,.1);
--included:#2A62B8;--excluded:#B0362B;
color-scheme:light;
}
@media (max-width:1000px){:root{--gutter:24px}}
@media (max-width:720px){:root{--gutter:16px;--sec:64px}}
/* ---------- 2. base ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--obsidian);color:var(--bone);font:400 var(--t-md)/1.6 var(--f-sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--f-display);color:var(--bone);margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:var(--t-h1);font-weight:900;line-height:1.05}
h2{font-size:var(--t-h2);font-weight:700;line-height:1.1}
h3{font-size:var(--t-h3);font-weight:700;line-height:1.25}
p,li,dd,figcaption,td{text-wrap:pretty}
p{margin:0 0 1em}
a{color:var(--ember-text);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible,input:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:6px}
::selection{background:var(--ember-40)}
img,canvas,svg,video{max-width:100%;display:block}
code,kbd,.mono{font-family:var(--f-mono)}
hr{border:0;border-top:1px solid var(--line);margin:var(--s-6) 0}
.skip{position:absolute;left:12px;top:-80px;z-index:50;background:var(--ember);color:var(--ember-ink);padding:10px 14px;border-radius:var(--r-btn);font:600 15px/1.2 var(--f-sans);text-decoration:none}
.skip:focus{top:12px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.sec{padding:var(--sec) 0}
.sec+.sec{padding-top:0}
.sec-head{max-width:68ch;margin-bottom:var(--s-6)}
.sec-head p{color:var(--ink-2);font-size:var(--t-lg);line-height:1.5;margin:var(--s-3) 0 0}
.lead{font-size:var(--t-lg);line-height:1.55;color:var(--ink-2);max-width:62ch}
.eyebrow{font:500 var(--t-sm)/1.4 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ash);margin-bottom:var(--s-3)}
.eyebrow.ember{color:var(--ember-text)}
.measure{max-width:68ch}
.muted{color:var(--ash)}
.right{text-align:right}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* ---------- 3. nav ---------- */
.nav{position:sticky;top:0;z-index:40;background:var(--top-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:var(--s-5);height:var(--nav-h)}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--bone);text-decoration:none}
.brand:hover{text-decoration:none}
.brand .mark{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--graphite);border:1px solid var(--line)}
.brand .word{font:900 20px/1 var(--f-display);letter-spacing:.06em}
.nav .links{display:flex;align-items:center;gap:var(--s-4);margin-left:auto}
.nav .links a{color:var(--ink-2);font-size:var(--t-base);font-weight:500;padding:12px 2px;min-height:44px;display:inline-flex;align-items:center;border-bottom:2px solid transparent}
.nav .links a:hover{color:var(--bone);text-decoration:none}
.nav .links a[aria-current="page"]{color:var(--bone);border-bottom-color:var(--ember)}
.nav .cta{margin-left:var(--s-3)}
.burger{display:none;margin-left:auto;width:44px;height:44px;border-radius:var(--r-btn);border:1px solid var(--line);background:var(--graphite);color:var(--bone);cursor:pointer;align-items:center;justify-content:center}
.burger .bars{display:block;width:18px;height:2px;background:currentColor;position:relative}
.burger .bars::before,.burger .bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor}
.burger .bars::before{top:-6px}.burger .bars::after{top:6px}
.burger .bars,.burger .bars::before,.burger .bars::after{transition:transform .2s ease,background .2s ease}
.nav.open .burger .bars{background:transparent}.nav.open .burger .bars::before{transform:translateY(6px) rotate(45deg)}.nav.open .burger .bars::after{transform:translateY(-6px) rotate(-45deg)}
.nav-sheet{display:none}
@media (max-width:900px){
.nav .links{display:none}
.nav .cta{display:none}
.burger{display:inline-flex}
.nav.open .nav-sheet{display:block;position:fixed;inset:var(--nav-h) 0 0 0;background:var(--obsidian);z-index:39;overflow:auto;padding:var(--s-5) var(--gutter)}
.nav-sheet a{display:flex;align-items:center;min-height:48px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--bone);font-size:var(--t-lg);font-weight:500}
.nav-sheet a[aria-current="page"]{color:var(--ember-text)}
.nav-sheet .btn{margin-top:var(--s-5);width:100%}
}
/* ---------- 4. footer ---------- */
.foot{border-top:1px solid var(--line);padding:var(--s-6) 0 var(--s-5);margin-top:var(--sec);color:var(--ash);font-size:var(--t-base)}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(4,minmax(0,1fr));gap:var(--s-6) var(--s-5);align-items:start}
.foot-brand .brand{margin-bottom:var(--s-3)}
.foot-brand p{color:var(--ash);margin:0 0 var(--s-4);text-wrap:balance}
.social{display:flex;gap:var(--s-2)}
.social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-btn);border:1px solid var(--line);color:var(--bone);background:var(--graphite)}
.social a:hover{color:var(--ember-text);border-color:var(--ember-40);text-decoration:none}
.foot-col{display:flex;flex-direction:column;min-width:0}
.foot-col .eyebrow{margin-bottom:var(--s-2);line-height:2}
.foot-col a{display:block;color:var(--ink-2);padding:6px 0;line-height:1.4;text-wrap:pretty}
.foot-col a:hover{color:var(--bone)}
.foot-note{color:var(--ash);font-size:var(--t-sm);line-height:1.5;padding-top:6px;text-wrap:pretty}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-5);border-top:1px solid var(--line);margin-top:var(--s-6);padding-top:var(--s-4);font-size:var(--t-sm)}
.foot-imprint{max-width:60ch;line-height:1.5;text-wrap:pretty}
.foot-copy{text-wrap:balance;line-height:1.5}
.foot-state{display:inline-flex;align-items:center;gap:8px;font:500 var(--t-sm)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ash)}
.theme{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden}
.theme button{background:transparent;border:0;color:var(--ash);font:500 var(--t-sm)/1 var(--f-mono);padding:12px 12px;cursor:pointer;min-height:40px}
.theme button[aria-pressed="true"]{background:var(--graphite);color:var(--bone)}
@media (max-width:1000px){.foot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.foot-brand{grid-column:1/-1}}
@media (max-width:700px){.foot-grid{grid-template-columns:1fr 1fr;gap:var(--s-5) var(--s-4)}.foot-brand{grid-column:1/-1}.foot-base{justify-content:flex-start}}
/* ---------- 5. components ---------- */
.card{background:var(--graphite);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-5)}
.card h3{margin-bottom:var(--s-2)}
.card p:last-child{margin-bottom:0}
.grid{display:grid;gap:var(--s-4)}
.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.grid.c3,.grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:minmax(0,1fr)}}
/* a grid track never grows past the viewport for a long line inside it (the 390 px overflow class, 6 Oct 2026) */
.grid>*,.tiles>*,.card,.two>*,.split>*,.split2>*,.hero-grid>*,.download>*,.layout>*,.pillars>*,.phases>*,.group>*,.feats>*,.fee>*,.steps>*,.states>*,.ol>*,.cells>*,.strip>*{min-width:0}
pre{max-width:100%}
@media (max-width:720px){main table{display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.tbl table{display:table}}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3)}
@media (max-width:700px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tile{background:var(--row);border:1px solid var(--line);border-radius:var(--r-row);padding:var(--s-4) var(--s-4) var(--s-3);min-width:0}
.tile .v{font:700 var(--t-num)/1 var(--f-display);color:var(--bone);letter-spacing:-.02em;overflow-wrap:anywhere}
.tile .v.state{font:500 var(--t-base)/1.3 var(--f-mono);color:var(--ash);padding:6px 0}
.tile .k{font:400 var(--t-sm)/1.4 var(--f-mono);color:var(--ash);margin-top:var(--s-2)}
.tile.hot .v{color:var(--ember-text)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:var(--r-btn);border:1px solid var(--line);background:transparent;color:var(--bone);font:600 var(--t-base)/1.2 var(--f-sans);text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{text-decoration:none;border-color:var(--line-2);background:var(--hover)}
.btn.primary{background:var(--ember);border-color:var(--ember);color:var(--ember-ink);font:700 15px/1.2 var(--f-display);letter-spacing:.01em}
.btn.primary:hover{background:var(--ember-hi);border-color:var(--ember-hi)}
.btn.small{min-height:36px;padding:6px 14px;font-size:14px}
.btn[aria-disabled="true"],.btn:disabled{opacity:.5;cursor:default}
@media (max-width:720px){.cta .btn{width:100%}}
.cta{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 12px;font:500 var(--t-sm)/1.4 var(--f-mono);color:var(--ink-2);background:var(--row)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--molten);display:inline-block;flex:none}
.dot.live{animation:pulse 2s ease-in-out infinite}
.dot.off{background:var(--ash);animation:none}
.dot.bad{background:var(--ember);animation:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.dot.live{animation:none}}
.note{color:var(--ash);font-size:var(--t-base);line-height:1.55;max-width:80ch;margin:var(--s-4) 0 0}
.callout{border-left:2px solid var(--ember);background:var(--row);border-radius:0 var(--r-row) var(--r-row) 0;padding:var(--s-4) var(--s-5);margin:var(--s-5) 0;color:var(--ink-2)}
.callout p:last-child{margin:0}
pre,.code{background:var(--row);border:1px solid var(--line);border-radius:var(--r-row);padding:var(--s-4);font:400 14px/1.6 var(--f-mono);color:var(--ink-2);overflow:auto;margin:0}
code{font-size:.92em;background:var(--row);border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--ink-2)}
pre code{background:none;border:0;padding:0}
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-row);background:var(--graphite);min-width:0;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:var(--t-base);line-height:1.45}
th,td{text-align:left;padding:10px 14px;vertical-align:top}
th{font:500 var(--t-sm)/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ash);border-bottom:1px solid var(--line);white-space:nowrap}
td{border-top:1px solid var(--line);color:var(--ink-2)}
tr:first-child td{border-top:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td.id{font-family:var(--f-mono);font-size:14px;overflow-wrap:anywhere}
@media (max-width:720px){th,td{padding:8px 10px}}
.kv{display:grid;grid-template-columns:minmax(120px,30%) 1fr;gap:0 var(--s-4)}
.kv>div{padding:10px 0;border-top:1px solid var(--line);color:var(--ink-2)}
.kv>div:nth-child(-n+2){border-top:0}
.kv .k{font:500 var(--t-sm)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ash);padding-top:12px}
details{border-top:1px solid var(--line)}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;padding:14px 0;color:var(--bone);font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:var(--s-3)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--f-mono);color:var(--ash)}
details[open] summary::after{content:"\2212"}
details>:not(summary){padding-bottom:var(--s-4);color:var(--ink-2)}
input,select,textarea{font:400 var(--t-md)/1.4 var(--f-sans);color:var(--bone);background:var(--row);border:1px solid var(--line);border-radius:var(--r-btn);padding:10px 12px;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--line-2)}
.field{display:grid;gap:6px;margin-bottom:var(--s-4)}
.field label{font:500 var(--t-sm)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ash)}
/* ---------- 6. states ---------- */
.state{display:inline-flex;align-items:center;gap:8px;font:500 var(--t-sm)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ash)}
.state.live{color:var(--molten-text)}
.state.bad{color:var(--ember-text)}
.empty{color:var(--ash);font-size:var(--t-base);padding:var(--s-5) 0}
.empty.err{color:var(--ember-text)}
.spinner{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--ember);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation:none}}
/* ---------- 7. scenes ---------- */
.viz{padding:var(--s-4)}
.viz-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px var(--s-5);margin-bottom:var(--s-3)}
.viz-stats{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-4);font:400 var(--t-sm)/1.4 var(--f-mono);color:var(--ash)}
.viz-stats b{color:var(--bone);font-weight:500}
.viz canvas{width:100%;height:340px;border-radius:var(--r-row);background:var(--row);border:1px solid var(--line)}
@media (max-width:600px){.viz canvas{height:240px}}
.legend{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-4);margin-top:var(--s-4);font-size:14px;color:var(--ink-2)}
.legend[hidden]{display:none}
.legend span{display:inline-flex;align-items:center;gap:8px}
.sw{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}
/* the engaged scene: a chip in the corner while the wheel zooms */
.scene canvas.engaged{outline:2px solid var(--ember);outline-offset:-2px}
.chip-zoom{position:absolute;right:12px;top:12px;display:inline-flex;align-items:center;gap:8px;background:var(--graphite);border:1px solid var(--line-2);border-radius:var(--r-pill);padding:5px 12px;font:500 var(--t-sm)/1.4 var(--f-mono);color:var(--ink-2);pointer-events:none}
.chip-zoom[hidden]{display:none}
/* ---------- 8. print ---------- */
@media print{
:root{--obsidian:#fff;--graphite:#fff;--row:#f3f3f3;--line:#bbb;--line-2:#999;--bone:#000;--ink-2:#111;--ash:#444;--ember:#B8390C;--ember-text:#B8390C;--molten-text:#8F5810}
.nav,.foot,.burger,.skip,.cta,.theme,.no-print{display:none!important}
body{font-size:11pt;line-height:1.45;background:#fff;color:#000}
.wrap{max-width:none;padding:0}
a{color:#000;text-decoration:underline}
a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#444}
.card,.tbl,.callout,pre{break-inside:avoid;border-color:#bbb}
h1,h2,h3{break-after:avoid}
tr{break-inside:avoid}
canvas{display:none}
}
/* ---------- 9. product pages: miner, app, wallet, live (7 Oct 2026) ---------- */
.phero{position:relative;padding:calc(var(--s-6) + 16px) 0 var(--s-6);overflow:hidden}
.phero::before{content:"";position:absolute;inset:auto -10% -30% 40%;height:70%;background:radial-gradient(closest-side,var(--ember-12),transparent);pointer-events:none}
.phero .wrap{position:relative;display:grid;gap:var(--s-6);grid-template-columns:1fr;align-items:center}
@media (min-width:980px){.phero .wrap{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s-6) 56px}}
.phero h1{margin:0 0 var(--s-4)}
.phero .lead{margin:0 0 var(--s-5)}
.phero .os{display:flex;flex-wrap:wrap;gap:6px 16px;font:400 var(--t-sm)/1.4 var(--f-mono);color:var(--ash);margin-top:var(--s-4)}
.frame{position:relative;border:1px solid var(--line-2);border-radius:var(--r-card);background:var(--obsidian);box-shadow:0 30px 80px var(--shadow);overflow:hidden;margin:0;min-width:0}
.frame .bar{height:32px;display:flex;align-items:center;gap:7px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--graphite)}
.frame .bar i{width:10px;height:10px;border-radius:50%;background:var(--line-2);display:block}
.frame .bar b{margin-left:auto;font:500 11px/1 var(--f-mono);letter-spacing:.12em;color:var(--ash);text-transform:uppercase}
.frame img{display:block;width:100%;height:auto}
.frame figcaption{padding:10px 14px;font:400 13px/1.5 var(--f-mono);color:var(--ash);border-top:1px solid var(--line)}
.frame.phone{max-width:300px;margin:0 auto}
.frame .img-light,.frame .cap-light{display:none}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .frame .img-dark,:root:not([data-theme="dark"]) .frame .cap-dark{display:none}:root:not([data-theme="dark"]) .frame .img-light{display:block}:root:not([data-theme="dark"]) .frame .cap-light{display:inline}}
:root[data-theme="light"] .frame .img-dark,:root[data-theme="light"] .frame .cap-dark{display:none}:root[data-theme="light"] .frame .img-light{display:block}:root[data-theme="light"] .frame .cap-light{display:inline}
.glow{position:relative}
.glow::before{content:"";position:absolute;inset:12% -6% -8% -6%;background:radial-gradient(closest-side,var(--ember-12),transparent);filter:blur(12px);pointer-events:none}
.shots3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
@media (max-width:900px){.shots3{grid-template-columns:1fr}}
.dl-list{display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-4) 0}
.dl-list a{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-row);background:var(--graphite);color:var(--bone);font-weight:600;min-width:0}
.dl-list a:hover{text-decoration:none;border-color:var(--line-2);background:var(--hover)}
.dl-list a.primary{background:var(--ember);border-color:var(--ember);color:var(--ember-ink)}
.dl-list a.primary:hover{background:var(--ember-hi)}
.dl-list a span{font:400 var(--t-sm)/1.4 var(--f-mono);opacity:.85;text-align:right}
.dl-list a[data-dl-missing]{opacity:.55}
.dl-list a .osmark{width:26px;height:26px;flex:none}
.dl-list a.primary .osmark{color:#fff}
.dl-list a b{font-weight:600;margin-right:auto}
.notice{font-size:var(--t-base);color:var(--ink-2);margin:var(--s-3) 0 0}
.notice b{color:var(--bone);font-weight:600}
.lines{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3)}
.lines li{background:var(--row);border:1px solid var(--line);border-radius:var(--r-row);padding:var(--s-4);min-width:0;color:var(--ink-2);font-size:var(--t-base);line-height:1.5}
.lines strong{color:var(--bone);display:block;margin-bottom:4px}
.lines .src{display:block;font:400 var(--t-xs)/1.4 var(--f-mono);margin-top:6px}
.lines.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.lines.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.lines,.lines.c2,.lines.c4{grid-template-columns:1fr}}
.feature{display:grid;grid-template-columns:1fr;gap:var(--s-5);align-items:center}
@media (min-width:980px){.feature{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}.feature.flip>.frame{order:2}}
.feature h2{margin-bottom:var(--s-3)}
.feature>div>p{color:var(--ink-2)}
.feature .lines{grid-template-columns:1fr;margin-top:var(--s-4)}
.yourcard{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);background:var(--row);border:1px solid var(--line);border-radius:var(--r-row);padding:var(--s-3) var(--s-4);font-size:var(--t-base);color:var(--ink-2)}
.yourcard select{width:auto;padding:6px 10px;font:500 var(--t-base)/1.3 var(--f-sans)}
.yourcard b{color:var(--bone);font-weight:600}
.yourcard .eta{font-family:var(--f-mono);color:var(--molten-text)}
.tick{transition:color .5s ease}.tick.flash{color:var(--molten-text);transition:none}
.dl-bar{display:none}
@media (max-width:720px){.dl-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;justify-content:space-between;align-items:center;gap:var(--s-3);padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:var(--top-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}.dl-bar span{font:400 var(--t-sm)/1.4 var(--f-mono);color:var(--ash);min-width:0}body.has-dl-bar{padding-bottom:72px}}
.band{background:var(--ember);color:var(--ember-ink)}
.band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-5);padding-top:56px;padding-bottom:56px}
.band h2{color:var(--ember-ink);font-weight:900;margin-bottom:var(--s-2)}
.band p{margin:0;max-width:56ch}
.btn.dark{background:var(--obsidian);color:var(--bone);border-color:var(--obsidian)}
.btn.dark:hover{background:var(--graphite);border-color:var(--graphite)}
.switch{display:inline-flex;align-items:center;gap:12px;font-size:var(--t-base);color:var(--bone)}
.switch .track{width:44px;height:26px;border-radius:13px;background:var(--ember);position:relative;flex:0 0 44px}
.switch .track::after{content:"";position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:var(--bone)}
/* ---------- 10. the redesign vocabulary (7 Oct 2026, the full-site redesign package on our tokens and fonts) ----------
The package's layouts, restated on the tokens above: page hero with a breadcrumb, the home hero grid and the GPU scene,
section heads, panels, feature cards, tool cards, the split section, the CTA band, step lists, FAQ, platform tabs,
the stat grid, record cards, filters, the timeline, the compare table and the docs layout. Fonts stay self-hosted. */
.eyebrow .line{display:inline-block;width:24px;height:1px;background:var(--ember);vertical-align:middle;margin-right:10px}
.eyebrow em{font-style:normal;color:var(--ember-text)}
.accent{color:var(--ember-text)}
.molten{color:var(--molten-text)}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-size:15px;font-weight:500}
.text-link:hover{color:var(--ember-text);text-decoration:none}
.text-link .icon{width:16px;height:16px}
.icon{display:inline-block;width:20px;height:20px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.btn .icon{width:18px;height:18px}
.btn.ghost{background:transparent}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:var(--s-5)}
@media (max-width:720px){.actions .btn{width:100%}}
.small{font-size:13px;color:var(--ash)}
.rule{border-top:1px solid var(--line)}
.sec.compact{padding:var(--s-6) 0}
/* page hero: breadcrumb, eyebrow, h1, lead, optional actions on the right */
.page-hero{padding:calc(var(--s-6) + 8px) 0 var(--s-6)}
.page-hero h1{max-width:22ch}
.page-hero .lead{margin-top:var(--s-4);max-width:62ch}
.breadcrumb{display:flex;flex-wrap:wrap;gap:10px;font:400 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ash);margin-bottom:var(--s-5)}
.breadcrumb a{color:var(--ash)}.breadcrumb a:hover{color:var(--ember-text);text-decoration:none}
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s-6)}
.page-heading .actions{margin:0;flex-shrink:0}
@media (max-width:860px){.page-heading{flex-direction:column;align-items:flex-start;gap:var(--s-4)}}
/* the home hero */
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:var(--s-5);min-height:500px}
.hero-copy{position:relative;z-index:1;min-width:0}
.hero-copy h1{font-size:var(--t-hero);line-height:1.04;letter-spacing:-.03em;max-width:12ch}
.hero-copy h1 .accent{display:inline-block}
.hero-copy .lead{margin-top:var(--s-5);max-width:44ch}
.hero-footnote{display:flex;align-items:center;gap:9px;margin-top:var(--s-5);font:400 var(--t-xs)/1.6 var(--f-mono);letter-spacing:.04em;color:var(--ash)}
.hero-footnote .icon{width:14px;height:14px;color:var(--ember-text)}
.hero-scene{height:500px;position:relative;isolation:isolate;min-width:0}
.hero-scene::before{content:"";position:absolute;inset:20px -50px 0;background:radial-gradient(ellipse at 58% 48%,var(--ember-12),transparent 65%);z-index:-1;pointer-events:none}
.hero-scene canvas{display:block;width:100%;height:100%;border:0;background:transparent}
.scene-corner{position:absolute;font:400 var(--t-xs)/1.5 var(--f-mono);color:var(--ash);letter-spacing:.05em;pointer-events:none}
.scene-corner.tl{left:12px;top:18px}.scene-corner.tr{right:12px;top:18px;text-align:right}.scene-corner.bl{left:12px;bottom:26px}.scene-corner.br{right:12px;bottom:26px;text-align:right}
.scene-corner strong{display:block;color:var(--ink-2);font-weight:500;margin-bottom:3px}
.scene-steps{position:absolute;left:50%;bottom:66px;transform:translateX(-50%);display:flex;gap:4px;border:1px solid var(--line);padding:4px;border-radius:10px;background:var(--top-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.scene-step{background:transparent;border:0;color:var(--ash);font:500 var(--t-xs)/1 var(--f-mono);letter-spacing:.06em;padding:10px 13px;border-radius:7px;white-space:nowrap;cursor:pointer;min-height:36px}
.scene-step[aria-pressed="true"]{background:var(--ember-12);color:var(--ember-text)}
.scene-step:hover{color:var(--bone)}
.hero-bottom{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);padding-top:var(--s-5);margin-top:var(--s-5);gap:var(--s-5)}
.principle{display:flex;gap:12px;align-items:flex-start;min-width:0}
.principle .icon{color:var(--ember-text);width:18px;height:18px;margin-top:2px}
.principle strong{font-size:14px;font-weight:600;display:block;color:var(--bone)}
.principle small{font-size:13px;color:var(--ash);display:block;margin-top:3px;line-height:1.45}
@media (max-width:1100px){.hero-grid{grid-template-columns:1.06fr 1fr;gap:0}.hero-scene{height:420px}}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr;min-height:0;gap:var(--s-4)}.hero-copy{max-width:640px}.hero-copy h1{max-width:14ch}.hero-scene{max-width:660px;width:100%;height:440px;margin:0 auto}.hero-bottom{grid-template-columns:1fr 1fr;gap:var(--s-4)}}
@media (max-width:560px){.hero-scene{height:335px;margin-top:var(--s-3)}.scene-corner{font-size:9px}.scene-corner.tl{left:0;top:6px}.scene-corner.tr{right:0;top:6px}.scene-corner.bl{left:0;bottom:6px}.scene-corner.br{display:none}.scene-steps{bottom:44px;padding:3px;gap:2px}.scene-step{padding:8px 9px;font-size:10px}.hero-bottom{gap:var(--s-4) var(--s-3)}}
/* section head: eyebrow + h2 on the left, a line or a link on the right */
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s-6);margin-bottom:var(--s-6)}
.section-head h2{max-width:22ch}
.section-head>p{color:var(--ash);max-width:42ch;font-size:16px;margin:0}
.section-head .eyebrow{margin-bottom:var(--s-3)}
@media (max-width:860px){.section-head{align-items:flex-start;flex-direction:column;gap:var(--s-3)}}
/* panels */
.panel{background:var(--row);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;min-width:0}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel-head .eyebrow{margin:0}
.panel-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;gap:12px;border-top:1px solid var(--line);font:400 var(--t-xs)/1.7 var(--f-mono);color:var(--ash);flex-wrap:wrap}
.panel .legend{margin:0;font-size:12px}
.legend i{display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--ember);margin-right:7px;flex:none}
.legend i.your{background:var(--molten)}.legend i.included{background:var(--included)}.legend i.excluded{background:var(--excluded)}
.live-peek{position:relative}
.live-peek .scene{position:relative}
.live-peek canvas{display:block;height:300px;width:100%;background:var(--row);touch-action:pan-y}
.label-below{font-size:13px;color:var(--ash);margin-top:var(--s-3);display:flex;justify-content:space-between;gap:var(--s-5);flex-wrap:wrap}
@media (max-width:560px){.panel-head{padding:14px 16px}.panel-footer{padding:12px 16px;flex-direction:column;align-items:flex-start}.live-peek canvas{height:225px}}
/* feature cards (the package's .feature card; ours is a grid, so this is .fcard) */
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5)}
.grid-3>*,.grid-2>*,.tools-grid>*,.record-grid>*,.hero-grid>*,.download-layout>*,.split-section>*,.wallet-hero>*,.docs-layout>*,.console-layout>*{min-width:0}
.fcard{position:relative;padding:var(--s-6) var(--s-5);background:var(--row);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;display:flex;flex-direction:column}
.fcard::after{content:"";position:absolute;width:72px;height:1px;top:0;left:var(--s-5);background:var(--ember);opacity:.75}
.fcard .number{font:500 var(--t-xs)/1 var(--f-mono);letter-spacing:.1em;color:var(--ember-text);margin-bottom:var(--s-6);display:flex;align-items:center;justify-content:space-between}
.fcard .number .icon{width:24px;height:24px;color:var(--ash)}
.fcard h3{margin-bottom:var(--s-3)}
.fcard p{color:var(--ink-2);font-size:var(--t-base);margin:0}
.fcard .text-link{margin-top:auto;padding-top:var(--s-5)}
.feature-graphic{height:110px;width:100%;margin:var(--s-3) 0 var(--s-4);display:flex;align-items:center;justify-content:center}
.chip-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:5px;width:100%;max-width:260px;transform:perspective(400px) rotateX(30deg) rotateZ(-7deg)}
.chip-grid i{display:block;height:10px;border:1px solid var(--line-2);border-radius:2px}
.chip-grid i:nth-child(3n),.chip-grid i:nth-child(7n){background:var(--ember-12);border-color:var(--ember-40)}
.tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
.tool-card{border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-5);background:var(--row);transition:border-color .2s,transform .2s;display:flex;flex-direction:column}
.tool-card:hover{border-color:var(--line-2);transform:translateY(-3px)}
.tool-card>.icon{color:var(--ember-text);width:26px;height:26px;margin-bottom:var(--s-5)}
.tool-card h3{font-size:17px;margin-bottom:var(--s-3)}
.tool-card p{color:var(--ink-2);font-size:var(--t-base);margin:0}
.tool-card .text-link{margin-top:auto;padding-top:var(--s-5)}
@media (max-width:860px){.grid-3,.tools-grid{grid-template-columns:1fr 1fr}.grid-3>.fcard:last-child{grid-column:1/-1}}
@media (max-width:560px){.grid-3,.grid-2,.tools-grid{grid-template-columns:1fr}.grid-3>.fcard:last-child{grid-column:auto}.fcard{padding:var(--s-5)}.feature-graphic{height:85px}}
@media (prefers-reduced-motion:reduce){.tool-card,.tool-card:hover{transform:none;transition:none}}
/* the split section with the reward bars */
.split-section{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,100px);align-items:center}
.split-section h2{max-width:19ch}
.reward-bars{padding:var(--s-6)}
.reward-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s-4);gap:var(--s-3)}
.reward-row strong{font:700 clamp(30px,3.5vw,40px)/1 var(--f-display);letter-spacing:-.03em;color:var(--bone)}
.reward-row .icon{color:var(--ash)}
.reward-bar{height:12px;background:var(--graphite);display:flex;border-radius:3px;overflow:hidden;gap:3px;margin:var(--s-5) 0}
.reward-bar i:first-child{width:80%;background:var(--ember)}.reward-bar i:last-child{width:20%;background:var(--molten)}
.reward-key{display:flex;justify-content:space-between;gap:var(--s-5);margin-top:var(--s-5);font-size:13px;flex-wrap:wrap}
.reward-key strong{display:block;margin-bottom:4px;color:var(--bone)}
.reward-key span{color:var(--ash)}
.reward-note{margin:var(--s-5) 0 0;border-top:1px solid var(--line);padding-top:var(--s-4);font:400 var(--t-xs)/1.8 var(--f-mono);color:var(--ash)}
.mini-title{font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
@media (max-width:860px){.split-section{grid-template-columns:1fr;gap:var(--s-6)}.split-section h2{max-width:26ch}}
@media (max-width:560px){.reward-bars{padding:var(--s-5)}.reward-key{gap:var(--s-4);font-size:12px}}
/* the CTA band */
.cta-band{position:relative;padding:clamp(32px,5vw,58px);border:1px solid var(--ember-40);border-radius:var(--r-card);background:linear-gradient(120deg,var(--ember-12),transparent 70%);display:flex;align-items:center;justify-content:space-between;gap:var(--s-6);overflow:hidden}
.cta-band h2{max-width:20ch}
.cta-band p{color:var(--ink-2);font-size:var(--t-base);margin:var(--s-3) 0 0;max-width:50ch}
.cta-band .actions{margin:0;flex-shrink:0}
.cta-band .small{margin:var(--s-3) 0 0}
@media (max-width:860px){.cta-band{flex-direction:column;align-items:flex-start;gap:var(--s-5)}}
.glow-button{position:relative}
.glow-button::after{content:"";position:absolute;inset:-4px;border:1px solid var(--ember);border-radius:14px;opacity:0;pointer-events:none}
.glow-button:hover::after{animation:btnSignal .7s ease-out}
@keyframes btnSignal{from{transform:scale(.96);opacity:.45}to{transform:scale(1.06);opacity:0}}
/* steps and FAQ */
.step-list{display:grid}
.step-item{display:grid;grid-template-columns:44px 1fr;gap:var(--s-5);padding:var(--s-5) 0;border-top:1px solid var(--line)}
.step-item .step-index{font:700 14px/1 var(--f-display);color:var(--ember-text);border:1px solid var(--line-2);height:38px;width:38px;display:grid;place-items:center;border-radius:8px}
.step-item h3{font-size:16px;margin-bottom:8px}
.step-item p{font-size:var(--t-base);color:var(--ink-2);margin:0}
@media (max-width:560px){.step-item{gap:var(--s-4);grid-template-columns:38px 1fr}}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-size:16px;padding:18px 0}
.faq details p{padding-bottom:var(--s-5);color:var(--ink-2);font-size:var(--t-base);max-width:85ch;margin:0}
/* platform tabs and the download card */
.download-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,5vw,52px);align-items:center}
@media (max-width:860px){.download-layout{grid-template-columns:1fr}}
.ptabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.ptabs button{background:none;border:0;border-bottom:2px solid transparent;padding:12px 15px;color:var(--ash);font:500 14px/1.3 var(--f-sans);white-space:nowrap;cursor:pointer;flex:1;min-height:44px;margin-bottom:-1px}
.ptabs button[aria-selected="true"]{border-bottom-color:var(--ember);color:var(--bone)}
.ptabs button:hover{color:var(--bone)}
.download-card{padding:var(--s-5)}
.platform-body{padding-top:var(--s-5)}
.platform-body[hidden]{display:none}
.download-platform{display:flex;gap:14px;align-items:center;margin:var(--s-2) 0 var(--s-4)}
.download-platform .osmark{width:30px;height:30px;color:var(--bone);flex:none}
.download-platform h3{font-size:18px}
.download-platform p{font:400 var(--t-xs)/1.4 var(--f-mono);color:var(--ash);margin:5px 0 0}
.platform-body .btn.primary{width:100%;margin-top:var(--s-4)}
.platform-body .btn[data-dl-missing]{opacity:.55}
.download-detail{display:flex;justify-content:space-between;gap:var(--s-3);font:400 var(--t-xs)/1.5 var(--f-mono);margin-top:var(--s-3);color:var(--ash);flex-wrap:wrap}
.download-detail span{overflow-wrap:anywhere;min-width:0}
.download-note{font-size:var(--t-base);color:var(--ink-2);margin:var(--s-4) 0 0;line-height:1.6}
.download-note b{color:var(--bone);font-weight:600}
.source-note{font:400 var(--t-xs)/1.8 var(--f-mono);color:var(--ash);margin-top:var(--s-5);padding-left:12px;border-left:2px solid var(--line-2)}
.source-note a{color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}
.source-note a:hover{color:var(--ember-text)}
.notice-box{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line-2);border-radius:var(--r-row);padding:18px 22px;font-size:var(--t-base);color:var(--ink-2);background:var(--row)}
.notice-box .icon{color:var(--molten-text);width:19px;height:19px;margin-top:2px}
.notice-box strong{color:var(--bone);display:block;margin-bottom:4px;font-weight:600}
.notice-box p{margin:0}
.tag-row{display:flex;gap:8px;flex-wrap:wrap}
/* stat grid */
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-row);overflow:hidden;margin-bottom:var(--s-5);background:var(--row)}
.stat{padding:20px 22px;border-right:1px solid var(--line);min-width:0}
.stat:last-child{border-right:0}
.stat .key{font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ash);margin-bottom:10px}
.stat strong{font:700 clamp(21px,2.2vw,29px)/1.1 var(--f-display);letter-spacing:-.02em;color:var(--bone);overflow-wrap:anywhere}
.stat .small{font:400 var(--t-xs)/1.5 var(--f-mono);margin-top:8px;display:block}
@media (max-width:560px){.stat-grid{grid-template-columns:1fr 1fr}.stat:nth-child(2n){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.stat{padding:16px}}
/* records, filters, search */
.searchbar{position:relative;display:flex;align-items:center;gap:12px;padding:10px 16px;border:1px solid var(--line-2);border-radius:var(--r-btn);background:var(--row)}
.searchbar .icon{width:17px;height:17px;color:var(--ash)}
.searchbar input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--bone);font-size:15px;padding:6px 0;border-radius:0}
.searchbar input:focus{border:0}
.searchbar input::placeholder{color:var(--ash)}
.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:var(--s-4) 0}
.filter{background:none;border:1px solid var(--line);border-radius:6px;padding:8px 13px;font:500 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.04em;color:var(--ash);cursor:pointer;min-height:36px}
.filter[aria-pressed="true"]{border-color:var(--ember);color:var(--ember-text);background:var(--ember-12)}
.filter:hover{color:var(--bone)}
.record-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.record{background:var(--row);border:1px solid var(--line);border-radius:var(--r-row);padding:var(--s-5);min-width:0}
.record[hidden]{display:none}
.record .record-top{display:flex;justify-content:space-between;gap:var(--s-3);align-items:center;margin-bottom:var(--s-4);flex-wrap:wrap}
.record time{font:400 var(--t-xs)/1.4 var(--f-mono);color:var(--ash)}
.record h3{font-size:16px;line-height:1.45;margin-bottom:var(--s-3)}
.record p{font-size:var(--t-base);color:var(--ink-2);margin:0}
.record-count{font:400 var(--t-xs)/1.4 var(--f-mono);color:var(--ash);margin:var(--s-4) 0}
@media (max-width:860px){.record-grid{grid-template-columns:1fr}}
.badge{display:inline-block;padding:4px 8px;border:1px solid var(--line-2);border-radius:5px;font:500 var(--t-xs)/1.3 var(--f-mono);color:var(--ink-2);white-space:nowrap}
.badge.warm{border-color:var(--ember-40);color:var(--ember-text)}
.badge.gold{border-color:var(--molten);color:var(--molten-text)}
.empty-state{padding:var(--s-6) var(--s-5);text-align:center;color:var(--ash)}
.empty-state h3{color:var(--bone);font-size:17px;margin-bottom:var(--s-3)}
/* the timeline */
.timeline{position:relative;margin-top:var(--s-6)}
.milestone{display:grid;grid-template-columns:150px 1fr;gap:var(--s-6);position:relative;padding-bottom:var(--s-6)}
.milestone::before{content:"";position:absolute;top:14px;bottom:0;left:166px;width:1px;background:var(--line)}
.milestone:last-child::before{display:none}
.milestone::after{content:"";width:9px;height:9px;border:1px solid var(--line-2);background:var(--obsidian);border-radius:2px;position:absolute;left:162px;top:10px}
.milestone.current::after{background:var(--ember);border-color:var(--ember)}
.milestone.done::after{background:var(--molten);border-color:var(--molten)}
.milestone time,.milestone .when{font:400 var(--t-sm)/1.5 var(--f-mono);color:var(--ash);padding-top:4px;min-width:0;overflow-wrap:anywhere}
.milestone h3{font-size:18px;margin-bottom:10px}
.milestone p{color:var(--ink-2);font-size:var(--t-base);max-width:75ch;margin:0 0 8px}
.milestone .badge{margin-bottom:10px}
.milestone .gate{color:var(--ash);font-size:14px}
.milestone .gate b{color:var(--bone);font-weight:600}
@media (max-width:560px){.milestone{grid-template-columns:1fr;gap:6px;padding:0 0 var(--s-5) 22px}.milestone::before{left:4px;top:18px}.milestone::after{left:0;top:14px}.milestone time,.milestone .when{font-size:11px;padding-top:0}.milestone h3{font-size:16px}}
/* compare table */
.compare-table td:first-child{font-weight:600;color:var(--bone)}
.compare-table th:last-child{color:var(--ember-text)}
.compare-table td{white-space:normal;min-width:180px;vertical-align:top;line-height:1.6}
.compare-table td:last-child{background:var(--ember-12)}
/* the docs layout: a sticky contents rail, numbered sections */
.docs-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start}
.doc-nav{position:sticky;top:calc(var(--nav-h) + 20px);max-height:calc(100vh - var(--nav-h) - 48px);overflow:auto;border-right:1px solid var(--line);padding-right:16px;scrollbar-width:thin}
.doc-nav .eyebrow{margin-bottom:var(--s-3)}
.doc-nav a{display:block;font-size:13px;color:var(--ash);padding:7px 10px;border-left:2px solid transparent;line-height:1.35}
.doc-nav a:hover,.doc-nav a.active{color:var(--ember-text);background:var(--ember-12);border-left-color:var(--ember);text-decoration:none}
.doc-body{max-width:78ch;min-width:0}
.doc-section{padding-bottom:var(--s-6);margin-bottom:var(--s-6);border-bottom:1px solid var(--line)}
.doc-section .section-number{font:500 var(--t-xs)/1 var(--f-mono);letter-spacing:.1em;color:var(--ember-text);margin-bottom:12px}
.doc-notice{background:var(--ember-12);border:1px solid var(--ember-40);border-radius:var(--r-row);padding:18px 22px;margin-bottom:var(--s-6);font-size:14px;color:var(--ink-2)}
.doc-notice strong{display:block;color:var(--molten-text);margin-bottom:6px;font-weight:600}
@media (max-width:960px){.docs-layout{grid-template-columns:1fr;gap:var(--s-5)}.doc-nav{position:relative;top:0;max-height:190px;border:1px solid var(--line);border-radius:var(--r-row);padding:14px;display:grid;grid-template-columns:1fr 1fr}.doc-nav .eyebrow{grid-column:1/-1}}
@media (max-width:560px){.doc-nav{grid-template-columns:1fr 1fr;max-height:200px;padding:10px}.doc-nav a{font-size:12px;padding:6px 8px}}
/* reveal once, no scroll hijack; off under reduced motion */
.reveal{opacity:1}
.reveal.will-reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal.will-reveal{opacity:1;transform:none;transition:none}.glow-button:hover::after{animation:none}}
/* the wallet hero: copy beside the window; the card slot takes the wallet redesign when it lands */
.wallet-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(32px,6vw,65px)}
@media (max-width:860px){.wallet-hero{grid-template-columns:1fr}}
.code-block{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--row);border:1px solid var(--line);padding:18px;border-radius:var(--r-row);font:400 13px/1.8 var(--f-mono);margin:var(--s-4) 0}