/* ApexX site theme: the index-cov look (Covalent-style), shared by the ApexX home and the Ronda page.
   Behaviour lives in motion.js / motion-engine.js; roadmap markup is generated by scripts/build-roadmap.mjs. */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=Martian+Mono:wght@400;600;800&display=swap');
:root{
  --bg:#09090b; --panel:#0b0b0d; --line:#222; --line-2:#333; --ink:#fff; --dim:#aaa; --faint:#555;
  --g:#4cf27a; --g-dim:#1d6b35; --red:#ff4d4d; --amber:#ffb020; --blue:#5b8cff;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace; --display:"Martian Mono",var(--mono); --term-h:42px; --pad:24px;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0}
html{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip;scroll-padding-top:76px}
body{background:var(--bg);font:400 15px/1.6 var(--mono);overflow-x:clip;-webkit-font-smoothing:antialiased;padding-bottom:var(--term-h)}
a{color:inherit}
ul,ol{list-style:none;padding:0}
button,input{font:inherit;color:inherit;background:none;border:0}
button{cursor:pointer}
::selection{background:var(--g);color:#000}
:focus-visible{outline:1px solid var(--g);outline-offset:3px}
[hidden]{display:none!important}
.wrap{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--pad)}
.g,.green{color:var(--g)}
.cap,.eyebrow{font:600 11px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase}
.eyebrow{color:var(--g)}
.mono{font-family:var(--mono)}
.skip{position:fixed;top:-80px;left:16px;z-index:120;background:var(--g);color:#000;padding:10px 14px;text-decoration:none}
.skip:focus{top:12px}
main,footer{position:relative;z-index:1}
#dither{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;image-rendering:pixelated}

/* bracket corners: thin grey ticks on a card's four corners */
.bk{position:relative;border:1px solid var(--line);background:rgb(9 9 11 / .72)}
.bk::before,.bk::after,.bk>.c3,.bk>.c4{content:"";position:absolute;width:9px;height:9px;border:0 solid #666;pointer-events:none}
.bk::before{left:-1px;top:-1px;border-width:1px 0 0 1px}.bk::after{right:-1px;top:-1px;border-width:1px 1px 0 0}
.bk>.c3{left:-1px;bottom:-1px;border-width:0 0 1px 1px}.bk>.c4{right:-1px;bottom:-1px;border-width:0 1px 1px 0}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 24px;border:1px solid var(--g);color:var(--g);font:500 14px/1 var(--mono);text-decoration:none;transition:background .15s,color .15s}
.btn:hover{background:var(--g);color:#000}
.btn.fill{background:var(--g);color:#000}
.btn.fill:hover{background:#86ffa6}
.btn.ghost{border-color:var(--line-2);color:#ddd}
.btn.ghost:hover{background:transparent;color:var(--g);animation:.3s step-end both bfi}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:36px}
.text-link{color:var(--g);font-size:13px;text-decoration:none}.text-link:hover{text-decoration:underline}

/* status chips (roadmap and product status) */
.status{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid var(--line-2);font:500 10.5px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#bbb;background:#000}
.status::before{content:"";width:6px;height:6px;border-radius:50%;background:#666;flex:none}
.status.in-progress{color:var(--g);border-color:var(--g-dim)}.status.in-progress::before{background:var(--g);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}
.status.planned{color:#bbb}.status.planned::before{background:#777}
.status.conditional{color:var(--amber);border-color:#4a3a14}.status.conditional::before{background:var(--amber)}

/* ------------------------------------------------------------ loader */
#loader{position:fixed;inset:0;z-index:100;background:#000;display:grid;place-items:center;transition:opacity .7s ease}
#loader.done{opacity:0;pointer-events:none}
#loader canvas{width:220px;height:220px;image-rendering:pixelated}
.page{opacity:0;transition:opacity .8s ease .1s}
.ready .page{opacity:1}

/* ------------------------------------------------------------ header */
.hdr{position:fixed;inset:16px 16px auto 16px;z-index:60;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}
.hdr>*{pointer-events:auto}
.logo{display:flex;align-items:center;height:36px;padding:0 12px;background:#000;text-decoration:none;font:800 15px/1 var(--display);letter-spacing:.02em}
.logo canvas{display:block;width:124px;height:22px}
.logo .logo-txt{display:flex;align-items:center;gap:8px}
.logo .logo-txt img{width:18px;height:18px}
.logo.has-canvas .logo-txt{display:none}
/* the reference "nav-btn": on hover the border flickers to green in steps, and back out on leave */
.nav-btn{border:1px solid #333;transition:border-color .15s}
.nav-btn:hover{animation:.3s step-end both bfi}
.nav-btn:not(:hover){animation:.3s step-end both bfo}
@keyframes bfi{0%{border-color:#fff3}10%{border-color:#4cf27a66}20%{border-color:#fff3}35%{border-color:#4cf27a33}50%{border-color:#fff3}65%{border-color:#4cf27a59}75%{border-color:#fff3}85%,to{border-color:#4cf27a4d}}
@keyframes bfo{0%{border-color:#4cf27a4d}10%{border-color:#fff3}20%{border-color:#4cf27a33}35%{border-color:#fff3}50%{border-color:#4cf27a26}65%{border-color:#fff3}75%{border-color:#4cf27a1a}85%,to{border-color:#fff3}}
.nav-flicker-active{animation:.3s step-end forwards ntf}
@keyframes ntf{0%{color:#aaa}20%{color:#4cf27a}40%{color:#aaa}60%{color:#4cf27a}80%{color:#aaa}to{color:#4cf27a}}
.nav{display:flex;background:#000}
.nav>div{position:relative;border-left:1px solid var(--line-2)}
.nav>div:first-child{border-left:0}
.nav .top{display:flex;align-items:center;gap:6px;height:34px;padding:0 16px;font:500 11.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#ddd;text-decoration:none;white-space:nowrap}
.nav .top:hover,.nav>div.open .top{color:var(--g)}
.nav .tri{color:var(--g);font-size:8px;transition:transform .2s}
.nav>div.open .tri{transform:rotate(180deg)}
.dd{position:absolute;left:-1px;top:calc(100% + 1px);min-width:220px;padding:12px 0;background:#000;border:1px solid var(--line-2);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s,transform .15s,visibility 0s .15s}
.nav>div:last-child .dd{left:auto;right:-1px}
.nav>div.open .dd{opacity:1;visibility:visible;transform:none;transition:opacity .15s,transform .15s}
.dd a{display:block;padding:8px 16px;text-decoration:none}
.dd a b{display:flex;align-items:center;gap:6px;font:500 12.5px/1.3 var(--mono);color:#ddd}
.dd a b i{font-style:normal;color:var(--faint);font-size:11px}
.dd a span{display:block;margin-top:3px;font:400 10.5px/1.3 var(--mono);color:var(--faint)}
.dd a:hover b{color:var(--g)}
.burger{display:none;width:40px;height:40px;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:#000}
.burger i{display:block;width:20px;height:2px;background:var(--g);transition:transform .3s,opacity .3s}
.menu-open .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-open .burger i:nth-child(2){opacity:0}.menu-open .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.sheet{position:fixed;inset:0;z-index:55;background:#000;display:none;flex-direction:column;justify-content:center;padding:0 24px}
.menu-open .sheet{display:flex}
.sheet .grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px}
.sheet h5{font:500 10px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.sheet a{display:block;padding:6px 0;color:var(--dim);text-decoration:none;font-size:14px}
@media (max-width:900px){.nav{display:none}.burger{display:flex}}

/* ------------------------------------------------------------ hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;align-items:center;padding:96px 0 56px}
.hero .hero-grid{max-width:none;display:grid;align-items:center;gap:20px}
@media (min-width:900px){.hero .hero-grid{padding:0 48px;gap:0}}
@media (min-width:900px){.hero-grid{grid-template-columns:minmax(0,55%) 0 minmax(0,45%)}}
.hero .expansion{font:600 11px/1.3 var(--mono);letter-spacing:.16em;color:var(--dim);margin-bottom:26px}
.hero h1{font:700 clamp(40px,12vw,60px)/.85 var(--mono);letter-spacing:-.04em;text-transform:uppercase;color:var(--g)}
.hero h1 span{display:block}
@media (min-width:900px){.hero h1{font-size:min(6.6vw,11vh)}}
/* short screens: the whole hero copy stays above the terminal bar */
@media (min-width:900px) and (max-height:800px){.hero{padding-top:80px;padding-bottom:48px}.hero .expansion{margin-bottom:18px}.hero h1{font-size:min(6.6vw,10vh)}.hero p.lead{margin-top:18px;font-size:16px;line-height:1.6}.hero .actions{margin-top:24px}.hero .availability{margin-top:16px}.notice{margin-top:20px;padding:12px 16px;font-size:12px;line-height:1.6}}
.hero p.lead{margin-top:24px;max-width:540px;color:#ccc;font-size:18px;line-height:1.625}
.hero .actions{margin-top:32px}
.hero .availability{margin-top:24px;max-width:52ch;font-size:11.5px;line-height:1.7;color:#8a8a8a}
.ascii-wrap{display:flex;flex-direction:column;align-items:center;overflow:visible}
.ascii{position:relative;width:min(60vh,40vw);height:min(60vh,40vw);overflow:visible}
.ascii canvas{display:block}
.ascii .fallback{position:absolute;inset:19%;width:62%;height:62%;object-fit:contain;opacity:.5}
.ascii.painted .fallback{display:none}
/* the view switch sits in the free band under the header, on the hero gutter, clear of the large mark */
.view-tabs{position:absolute;z-index:3;top:72px;right:48px;display:flex;background:#000}
.view-tabs button{height:30px;padding:0 12px;font:500 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#888;border-left:1px solid var(--line-2)}
.view-tabs button:first-child{border-left:0}
.view-tabs button[aria-pressed=true]{color:#000;background:var(--g)}
.system-map{width:min(60vh,40vw);height:min(60vh,40vw);margin:0;display:flex;flex-direction:column;justify-content:center}
.system-map svg{display:block;width:100%;height:auto}
.system-map .wire{fill:none;stroke:#2b6b3c;stroke-width:1}
.system-map .flow{fill:none;stroke:var(--g);stroke-width:2;stroke-dasharray:5 55;animation:signal 8s linear infinite}
.system-map .core{fill:#0f1a12;stroke:var(--g)}
.system-map .node{fill:#0b0b0d;stroke:#3a5a40}
.system-map .node-planned{stroke-dasharray:4 4}
.system-map text{font:12px var(--mono);fill:#fff}
.system-map .small-label{font-size:9px;fill:#999}
.system-map .legend{margin-top:10px;font:500 9.5px/1.6 var(--mono);letter-spacing:.1em;color:var(--faint)}
@keyframes signal{to{stroke-dashoffset:-600}}
@media (max-width:899px){.hero{padding-top:110px}.ascii-wrap{display:none}}

/* ------------------------------------------------------------ section heads */
.sec-h2{font:400 clamp(28px,3.2vw,40px)/1.2 var(--mono);letter-spacing:-.02em}
.sec-lead{margin-top:20px;max-width:58ch;color:#ccc;font-size:15px;line-height:1.75}

/* ------------------------------------------------------------ the stack section */
.stack{position:relative;padding:20vh 0 10vh}
.stack .wrap{display:grid;gap:40px}
@media (min-width:900px){.stack .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.stack .stack-head{position:sticky;top:38vh;align-self:start}
.stack h2{font:400 clamp(28px,3.2vw,40px)/1.2 var(--mono);letter-spacing:-.02em}
.stack .stack-head p:not(.eyebrow){margin-top:18px;max-width:44ch;color:#bbb;font-size:14px;line-height:1.7}
.stack .stack-head .eyebrow{margin-bottom:18px}
.cards{display:grid;gap:40vh}
.cards>.spacer{height:12vh}
.card{position:sticky;top:calc(12vh + var(--i) * 26px);padding:28px 28px 22px;background:#0b0b0d;transform-origin:50% 0;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .5s}
.card .hd{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}
.card .kind{display:flex;align-items:center;gap:12px;font:600 11px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase}
.card .kind i{width:10px;height:10px;transform:rotate(45deg);background:currentColor}
.card .num{padding:4px 12px;border:1px solid var(--line-2);font:500 12px/1 var(--mono)}
.card h3{margin-top:22px;font:700 clamp(22px,2.3vw,30px)/1.15 var(--display);letter-spacing:-.02em;color:#fff}
.card p{margin-top:14px;color:#ccc}
.card .ft{display:flex;align-items:center;gap:10px;margin-top:22px}
.card .ft i{flex:1;height:1px}
.card .ft span{font:500 8.5px/1 var(--mono);letter-spacing:.14em}
.card.blu{color:var(--blue)}.card.blu .num{border-color:#1f2f5a}.card.blu .ft i{background:linear-gradient(90deg,#22315a,transparent)}
.card.amb{color:var(--amber)}.card.amb .num{border-color:#4a3a14}.card.amb .ft i{background:linear-gradient(90deg,#5a4414,transparent)}
.card.grn{color:var(--g)}.card.grn .num{border-color:#1f4a2a}.card.grn .ft i{background:linear-gradient(90deg,#1f5a2e,transparent)}
.card.grn h3{color:var(--g)}

/* ------------------------------------------------------------ the scroll list + watch panel */
.fuel{position:relative;height:260vh}
.fuel-stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;align-items:center}
.fuel .wrap{display:grid;gap:40px;align-items:center}
@media (min-width:900px){.fuel .wrap{grid-template-columns:minmax(0,1fr) minmax(0,.86fr)}}
.fuel h2{font:400 clamp(28px,3.2vw,40px)/1.2 var(--mono);letter-spacing:-.02em}
.fuel ol{margin-top:56px;display:grid;gap:36px}
.fuel li{display:grid;grid-template-columns:56px 1fr;align-items:start}
.fuel li .n{font:500 13px/1 var(--mono);color:#2b5fd9;padding-top:6px}
.fuel li p{position:relative;padding-left:20px;border-left:2px solid #1a2a4a;font:400 clamp(15px,1.35vw,19px)/1.45 var(--mono);color:#666;transition:color .4s,border-color .4s}
.fuel li p b{display:block;font-weight:600;margin-bottom:4px}
.fuel li.on p{color:var(--g);border-color:var(--g)}
.fuel li.on .n{color:var(--blue)}
.watch{padding:28px}
.watch .hd{display:flex;align-items:center;gap:10px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--g)}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:24px}
.tile{display:grid;justify-items:center;gap:8px;padding:16px 8px 12px;background:#151517;border:1px solid #1d1d20;font:500 10.5px/1.25 var(--mono);color:#bbb;text-align:center;text-decoration:none;transition:border-color .3s,background .3s}
.tile b{font:700 20px/1 var(--display);color:#fff}
.tile small{font-size:9px;letter-spacing:.06em;color:#777;text-transform:uppercase}
.tile.hot{border-color:var(--g-dim);background:#0f1a12}
.tile.hot b{color:var(--g)}
.conv{display:flex;align-items:center;gap:12px;margin-top:28px;font:700 9.5px/1 var(--mono);letter-spacing:.06em;white-space:nowrap}
.conv i{flex:1;height:2px;background:linear-gradient(90deg,#2b5fd9,var(--g))}
.conv i:last-child{background:linear-gradient(90deg,var(--g),#2b5fd9)}
.convs{margin-top:16px;text-align:center;font:500 10px/1.4 var(--mono);letter-spacing:.08em;color:#bbb}
.watch .ftr{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:30px;padding-top:18px;border-top:1px solid var(--line);font:700 9.5px/1 var(--mono);letter-spacing:.06em}

/* ------------------------------------------------------------ SYS panel (scroll-pinned steps with diagrams) */
.solve{padding-top:26vh;padding-bottom:8vh;text-align:center}
.solve h2{font:400 clamp(36px,4.4vw,62px)/1.1 var(--mono);letter-spacing:-.03em;color:var(--g)}
.solve p{margin:20px auto 0;max-width:72ch;color:#ccc;font-size:clamp(14px,1.3vw,18px)}
.solve .eyebrow{margin-bottom:22px;color:var(--dim)}
.sys{position:relative;height:420vh}
.sys-stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;align-items:center;padding:100px 0 calc(var(--term-h) + 20px)}
.panel{background:rgb(9 9 11 / .9)}
.panel-bar{display:flex;justify-content:space-between;align-items:center;height:36px;padding:0 14px;border-bottom:1px solid var(--line);font:600 9.5px/1 var(--mono);letter-spacing:.08em;color:#aaa}
.panel-bar .dot{width:4px;height:4px;margin-right:8px;vertical-align:2px}
.panel-prog{height:2px;background:#151517}.panel-prog i{display:block;height:100%;width:25%;background:var(--g);transition:width .5s cubic-bezier(.2,.8,.2,1)}
.panel-body{display:grid;min-height:min(680px,calc(100svh - 240px))}
@media (min-width:1000px){.panel-body{grid-template-columns:minmax(0,.55fr) minmax(0,1fr)}}
.copycol{position:relative;border-right:1px solid var(--line)}
.state{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:40px 48px;opacity:0;transform:translateY(14px);transition:opacity .45s,transform .6s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.state.on{opacity:1;transform:none;pointer-events:auto}
.state .n{font:500 12px/1 var(--mono);color:var(--g)}
.state .status{align-self:flex-start;margin-top:16px}
.state h3{margin-top:18px;font:400 clamp(24px,2.3vw,32px)/1.25 var(--mono);letter-spacing:-.02em}
.state p{margin-top:16px;font-size:14px;color:#ccc;max-width:40ch;line-height:1.65}
.state .ex{margin-top:20px;padding:14px 16px;border:1px solid var(--line);background:#000;font:400 12px/1.7 var(--mono);color:#999;max-width:44ch}
.state .ex b{display:block;color:#fff;font-weight:500;margin-bottom:6px}
.state .ex em{display:block;margin-top:8px;font-style:normal;font-size:9.5px;letter-spacing:.1em;color:var(--faint)}
.viz{position:relative;min-height:460px}
.viz svg{position:absolute;inset:0;width:100%;height:100%}
.vs{opacity:0;transition:opacity .5s}.vs.on{opacity:1}
.v-t{fill:#fff;font:500 16px var(--mono)}.v-ts{fill:var(--g);font:400 14px var(--mono)}.v-tm{fill:#888;font:500 12px var(--mono);letter-spacing:.06em}
.v-tb{fill:#000;font:800 30px "Martian Mono",var(--mono)}.v-tbs{fill:#0b2d17;font:400 14px var(--mono)}
.v-line{stroke:#2b6b3c;stroke-width:1.3;fill:none}.v-corner{stroke:var(--g);stroke-width:3;fill:none}.pkt{fill:var(--g)}
.workflow-note{margin:0 auto;padding-top:24px;max-width:80ch;text-align:center;font-size:12.5px;line-height:1.7;color:#8a8a8a}
@media (max-width:999px){.sys{height:auto}.sys-stage{position:static;height:auto;padding:0}.copycol{border:0}.state{position:relative;inset:auto;opacity:1;transform:none;padding:28px 22px;border-bottom:1px solid var(--line)}.viz,.panel-prog{display:none}}

/* ------------------------------------------------------------ centered statement (token-style) */
.statement{padding-top:26vh;text-align:center}
.statement h2{font:400 clamp(28px,3.4vw,46px)/1.25 var(--mono);letter-spacing:-.025em;max-width:30ch;margin:0 auto}
.statement p.l{margin:22px auto 0;max-width:62ch;color:#ccc;font-size:16px;line-height:1.75}
.statement .actions{justify-content:center;margin-top:28px}
.statement .eyebrow{margin-bottom:22px}

/* ------------------------------------------------------------ banner (re-uses the ASCII engine) */
.verify{padding-top:22vh}
.banner{position:relative;min-height:min(78vh,640px);overflow:hidden;display:grid;place-items:center}
.banner canvas{position:absolute;inset:0;width:100%;height:100%}
.banner .ov{position:relative;z-index:1;display:grid;justify-items:center;gap:20px;text-align:center;padding:56px 40px;max-width:780px;background:radial-gradient(closest-side,rgb(0 0 0 / .95),rgb(0 0 0 / .88) 62%,rgb(0 0 0 / .5) 85%,transparent)}
.banner .ov h2{font:400 clamp(28px,3.4vw,46px)/1.2 var(--mono);letter-spacing:-.025em}
.banner .ov p{max-width:52ch;font-size:clamp(14px,1.4vw,17px);color:#ddd;line-height:1.7}
.banner .ov .small{font-size:12px;color:#999;max-width:60ch}
.banner .ov .actions{margin-top:4px;justify-content:center}

/* ------------------------------------------------------------ roadmap (generated markup) */
.roadmap{padding-top:24vh}
.roadmap .head{text-align:center;margin-bottom:8vh}
.roadmap .head h2{font:400 clamp(28px,3.4vw,46px)/1.25 var(--mono);letter-spacing:-.025em}
.roadmap .head p:not(.eyebrow){margin:20px auto 0;max-width:62ch;color:#ccc;line-height:1.75}
.roadmap .head .eyebrow{margin-bottom:22px}
.roadmap-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);background:#000;font:600 10px/1 var(--mono);letter-spacing:.12em;color:#888}
.track-controls{display:flex;border:1px solid var(--line-2)}
.track-controls button{height:30px;padding:0 14px;font:500 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#999;border-left:1px solid var(--line-2)}
.track-controls button:first-child{border-left:0}
.track-controls button[aria-pressed=true]{background:var(--g);color:#000}
.roadmap-track{margin-top:56px}
.track-intro{display:grid;gap:10px;padding-bottom:20px;border-bottom:1px solid var(--line)}
@media (min-width:900px){.track-intro{grid-template-columns:minmax(0,.6fr) minmax(0,1fr);align-items:end}}
.track-intro h3{font:800 clamp(22px,2.4vw,32px)/1.1 var(--display);letter-spacing:-.02em;color:var(--g);text-transform:uppercase}
.track-intro p{color:#bbb;font-size:14px;max-width:62ch}
.milestones{display:grid;gap:16px;margin-top:20px;align-items:start}
@media (min-width:760px){.milestones{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1150px){.milestones{grid-template-columns:repeat(3,minmax(0,1fr))}}
.milestone{position:relative;padding:22px 22px 18px;border:1px solid var(--line);background:#0b0b0d;scroll-margin-top:90px;transition:border-color .2s}
.milestone:hover{animation:.3s step-end both bfi}
.milestone:target{border-color:var(--g)}
.milestone::before{content:"";position:absolute;left:-1px;top:-1px;width:9px;height:9px;border:solid #666;border-width:1px 0 0 1px}
.milestone-top{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.milestone-top .mono{padding:4px 10px;border:1px solid var(--line-2);font:600 12px/1 var(--mono);color:#fff}
.milestone[data-status=in-progress] .milestone-top .mono{border-color:var(--g-dim);color:var(--g)}
.milestone h3{margin-top:18px;font:700 18px/1.25 var(--display);letter-spacing:-.02em;color:#fff}
.milestone>p{margin-top:10px;font-size:13px;line-height:1.65;color:#bbb}
.milestone details{margin-top:16px;border-top:1px solid var(--line)}
.milestone summary{display:flex;justify-content:space-between;align-items:center;padding-top:12px;cursor:pointer;list-style:none;font:500 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--g)}
.milestone summary::-webkit-details-marker{display:none}
.milestone details[open] summary span{transform:rotate(45deg)}
.milestone summary span{transition:transform .2s;font-size:14px}
.milestone h4{margin-top:16px;font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#888}
.milestone ul{margin-top:8px;display:grid;gap:6px}
.milestone li{position:relative;padding-left:16px;font-size:12.5px;line-height:1.6;color:#ccc}
.milestone li::before{content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;transform:rotate(45deg);background:var(--g-dim)}
.milestone .dependency{margin-top:14px;font-size:11.5px;color:#888}
.milestone .dependency a{color:var(--g)}
.roadmap-footnote{margin:40px auto 0;max-width:80ch;text-align:center;font-size:12px;line-height:1.7;color:#8a8a8a}

/* ------------------------------------------------------------ notice (Ronda test status) */
.notice{margin-top:28px;padding:14px 18px;max-width:620px;font-size:12.5px;line-height:1.7;color:#bbb}
.notice strong{color:var(--amber);font-weight:600}

/* ------------------------------------------------------------ marquee */
.since{padding:24vh 0 6vh;text-align:center;font:400 clamp(26px,3vw,40px)/1.2 var(--mono);letter-spacing:-.02em}
.marquee{background:#000;padding:56px 0;overflow:hidden;border-top:1px solid #111;border-bottom:1px solid #111}
.marquee .track{display:flex;gap:120px;width:max-content;animation:mq 30s linear infinite}
.marquee .track span{font:800 34px/1 "Martian Mono",var(--mono);letter-spacing:-.02em;color:#e8e8e8;white-space:nowrap;display:flex;align-items:center;gap:14px}
.marquee .track span i{width:10px;height:10px;background:var(--g);transform:rotate(45deg)}
.marquee:hover .track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}

/* ------------------------------------------------------------ follow (globe) + clocks */
.follow{position:relative;padding:20vh 0 0;overflow:hidden}
.follow .box{position:relative;z-index:2;width:min(100% - 48px,576px);margin:0 auto;padding:44px 48px 48px;text-align:center}
.follow .box h3{font:400 28px/1.25 var(--mono);letter-spacing:-.02em}
.follow .box p{margin-top:16px;color:#bbb;font-size:14px}
.follow .box .btn{width:100%;margin-top:28px;min-height:44px}
#globe{display:block;width:min(1100px,100%);height:auto;aspect-ratio:2/1;margin:-160px auto 0;position:relative;z-index:1}
.clocks{position:relative;z-index:3;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 32px;padding:16px var(--pad) 22px;border-top:1px solid rgb(255 255 255 / .06);background:linear-gradient(to top,rgb(0 0 0 / .9),rgb(0 0 0 / .6) 60%,transparent)}
.clocks div{display:flex;align-items:center;gap:8px;font:500 10px/1 var(--mono);letter-spacing:.1em}
.clocks i{width:6px;height:6px;border-radius:50%;background:var(--g);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}
.clocks span{color:rgb(255 255 255 / .4)}.clocks b{color:rgb(76 242 122 / .7);font-weight:500;font-variant-numeric:tabular-nums}
@keyframes pulse{50%{opacity:.5}}

/* ------------------------------------------------------------ footer */
.foot{background:rgb(0 0 0 / .85);border-top:1px solid rgb(255 255 255 / .08)}
.foot-top{display:flex;flex-wrap:wrap;gap:32px;padding:32px 24px 16px}
@media (min-width:768px){.foot-top{padding:32px 32px 16px}}
.foot-top>img{width:32px;height:32px}
.foot-top .tag{font-size:12px;line-height:1.7;color:#999}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-left:auto}
@media (min-width:1000px){.cols{display:flex;gap:48px}}
.cols h4{font:500 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px}
.cols a{display:block;padding:5px 0;font-size:12px;color:rgb(255 255 255 / .8);text-decoration:none;transition:color .15s}
.cols a:hover{color:var(--g)}
.legal{padding:8px 24px 0;max-width:110ch;font-size:11.5px;line-height:1.7;color:#8a8a8a}
@media (min-width:768px){.legal{padding:8px 32px 0}}
.legal b{color:#ccc;font-weight:600}
.pixpad{padding:16px 24px 0}
@media (min-width:768px){.pixpad{padding:16px 32px 0}}
.pixwrap{position:relative;width:100%;aspect-ratio:665/95}
#pix{position:absolute;inset:0;width:100%;height:100%}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px 20px;font-size:12px;color:rgb(255 255 255 / .8)}
@media (min-width:768px){.foot-base{padding:16px 32px 20px}}
.foot-base nav{display:flex;flex-wrap:wrap;gap:24px}
.foot-base a{text-decoration:none}.foot-base a:hover{color:var(--g)}
#pause{display:inline-flex;align-items:center;gap:8px;color:rgb(255 255 255 / .8)}
#pause:hover{color:var(--g)}

/* ------------------------------------------------------------ terminal */
.term{position:fixed;left:0;right:0;bottom:0;z-index:70;background:#000;border-top:1px solid var(--line-2);font-family:var(--mono)}
.term-out{max-height:60vh;overflow-y:auto;padding:12px 16px 4px;display:none}
.term.has-out .term-out{display:block}
.term-out .echo{display:flex;gap:8px;margin-bottom:4px;font-size:12px}
.term-out .echo span:first-child{color:var(--g)}
.term-out pre{margin:0;color:#aaa;font:400 12px/1.65 var(--mono);white-space:pre-wrap}
.term-out a{color:var(--g);text-decoration:none}.term-out a:hover{text-decoration:underline}
.sitemap{display:grid;gap:4px 48px;font:400 12px/1.65 var(--mono);color:#aaa}
@media (min-width:1000px){.sitemap{grid-template-columns:1fr 1fr}}
.sitemap .dir{margin-top:12px}.sitemap>div>.dir:first-child{margin-top:0}
.sitemap .f{display:grid;grid-template-columns:110px 150px 22px 1fr;padding-left:16px;white-space:nowrap}
.sitemap .f a{overflow:hidden;text-overflow:ellipsis}
.sitemap .note{grid-column:1/-1;margin-top:18px;color:var(--g)}
@media (max-width:700px){.sitemap .f{grid-template-columns:120px 22px 1fr}.sitemap .f>span:first-child{display:none}}
.term-in{display:flex;align-items:center;gap:8px;height:var(--term-h);padding:0 16px}
.term-in label{flex:none;color:var(--g);font-size:12px}
.term-field{position:relative;flex:1;display:flex;align-items:center;min-width:0}
.term-field input{width:100%;outline:0;font-size:12px;color:#fff;caret-color:transparent}
.term-field input::placeholder{color:#555}
.caret{position:absolute;top:50%;transform:translateY(-50%);width:7px;height:14px;background:var(--g);pointer-events:none;animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}
@media (max-width:600px){.term-in label{font-size:10.5px}.term-field input{font-size:11px}}

.paused *,.paused *::before,.paused *::after{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee .track,.system-map .flow{animation:none}.card{transition:none}}
@media (max-width:899px){.stack .stack-head{position:static}.cards{gap:24px}.cards>.spacer{display:none}.card{position:relative;top:auto}.fuel{height:auto}.fuel-stage{position:static;height:auto;padding:16vh 0}.since{padding-top:16vh}}

/* ------------------------------------------------------------ Ronda launch box + contract list */
.notice.launch{max-width:620px;font-size:13px;line-height:1.7;color:#ccc}
.notice.launch .launch-k{display:inline-block;margin-bottom:8px;padding:3px 8px;border:1px solid var(--g-dim);color:var(--g);font:600 10px/1.3 var(--mono);letter-spacing:.16em}
.notice.launch .launch-t{display:block;font:700 22px/1.25 var(--mono);color:#fff;letter-spacing:-.01em}
.notice.launch .launch-t span{font-weight:400;font-size:14px;color:#aaa}
.notice.launch .launch-c{display:block;margin:6px 0 4px;font:600 15px/1.3 var(--mono);color:var(--g);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.notice.launch .launch-c:empty{display:none}
.tiles#ronda-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.watch .addr{margin-top:22px;display:grid;gap:8px;font:400 11.5px/1.4 var(--mono)}
.watch .addr li{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:10px}
.watch .addr span{color:#888;letter-spacing:.06em}
.watch .addr button{text-align:left;color:#ddd;border:1px solid var(--line);background:#000;padding:6px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;cursor:copy}
.watch .addr button:hover{color:var(--g);border-color:var(--g-dim)}
.watch .addr em{font-style:normal;color:var(--amber)}
@media (max-width:600px){.watch .addr li{grid-template-columns:1fr}.notice.launch .launch-t{font-size:18px}}
/* short screens: the launch box and the headline stay above the terminal bar */
@media (min-width:900px) and (max-height:800px){[data-page=ronda] .hero h1{font-size:min(6.6vw,9vh)}.notice.launch{margin-top:16px;padding:10px 14px;font-size:12px;line-height:1.55}.notice.launch .launch-k{margin-bottom:4px}.notice.launch .launch-t{font-size:18px}.notice.launch .launch-c{margin:3px 0 2px;font-size:14px}}
