/* Fomvdia — pixel rig UI. Tokens first, then components, then acts. */
@font-face{font-family:"Pixelify Sans";src:url(assets/fonts/PixelifySans.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Geist";src:url(assets/fonts/Geist.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{
  --canvas:#0c0a07;--surface:#17130d;--surface-2:#211a11;--line:#3a2f20;--ink:#f3e7d3;--ink-soft:#b9a88d;--ink-dim:#94846b;
  --accent:#ffb23f;--accent-deep:#c7801c;--accent-ink:#1a1206;
  --t0:#a3adb8;--t1:#72d493;--t2:#62adff;--t3:#c98bff;--t4:#f4d35e;--t5:#ff5c77;
  --px:4px;--g:clamp(16px,4vw,56px);--sec:clamp(64px,11vw,160px);
  --display:"Pixelify Sans",ui-monospace,monospace;--text:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.23,1,.32,1);--reveal:cubic-bezier(.22,.8,.3,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--canvas);scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);font:400 16px/1.62 var(--text);letter-spacing:.005em;overflow-x:hidden}
::selection{background:var(--accent);color:var(--accent-ink)}
img{display:block;max-width:100%}
.px{image-rendering:pixelated;image-rendering:crisp-edges}
a{color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1;letter-spacing:-.01em;text-wrap:balance;margin:0}
p{text-wrap:pretty;margin:0}
.num{font-variant-numeric:tabular-nums}
.wrap{width:min(1240px,100% - var(--g)*2);margin-inline:auto}
.soft{color:var(--ink-soft)}.dim{color:var(--ink-dim)}
/* CRT texture: scanlines + grain, very light */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.05;
  background:repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 3px),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}

/* pixel frame: notched corners */
.pf{--c:var(--px);clip-path:polygon(var(--c) 0,calc(100% - var(--c)) 0,100% var(--c),100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,var(--c) 100%,0 calc(100% - var(--c)),0 var(--c))}
.panel{background:var(--surface);box-shadow:inset 0 0 0 2px var(--line),inset 0 2px 0 2px rgba(243,231,211,.04)}

/* buttons: chunky pixel keys */
.btn{--bg:var(--surface-2);--fg:var(--ink);display:inline-flex;align-items:center;gap:10px;font:600 17px/1 var(--display);letter-spacing:.02em;
  color:var(--fg);background:var(--bg);padding:15px 20px 17px;text-decoration:none;border:0;cursor:pointer;position:relative;white-space:nowrap;
  box-shadow:inset 0 -4px 0 rgba(0,0,0,.35),inset 0 0 0 2px rgba(255,255,255,.06);transition:transform .12s var(--ease),filter .12s var(--ease)}
.btn.pri{--bg:var(--accent);--fg:var(--accent-ink);box-shadow:inset 0 -4px 0 var(--accent-deep),0 6px 0 -2px rgba(0,0,0,.35)}
.btn:active{transform:translateY(2px);box-shadow:inset 0 -2px 0 var(--accent-deep)}
.btn[aria-disabled=true]{filter:saturate(.3) brightness(.8);cursor:not-allowed}
@media (hover:hover) and (pointer:fine){.btn:hover{filter:brightness(1.08)}.btn.pri:hover{transform:translateY(-1px)}}
.btn .ico{width:18px;height:18px}
.link{font:600 15px/1 var(--display);letter-spacing:.03em;color:var(--ink-soft);text-decoration:none;padding:6px 0;border-bottom:2px solid var(--line)}
@media (hover:hover) and (pointer:fine){.link:hover{color:var(--ink);border-color:var(--accent)}}

/* tier chips */
.chip{display:inline-flex;align-items:center;gap:6px;font:600 12px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;padding:6px 8px 7px;background:#0008;color:var(--tc,var(--t0));box-shadow:inset 0 0 0 2px currentColor}
.chip::before{content:"";width:6px;height:6px;background:currentColor}
[data-tier="0"]{--tc:var(--t0)}[data-tier="1"]{--tc:var(--t1)}[data-tier="2"]{--tc:var(--t2)}[data-tier="3"]{--tc:var(--t3)}[data-tier="4"]{--tc:var(--t4)}[data-tier="5"]{--tc:var(--t5)}

/* ------------------------------------------------------------ status bar nav */
.bar{position:sticky;top:0;z-index:50;background:var(--canvas);box-shadow:0 2px 0 var(--line)}
.bar .wrap{display:flex;align-items:center;gap:20px;height:60px}
.logo{display:flex;align-items:center;gap:10px;font:700 21px/1 var(--display);letter-spacing:.04em;text-decoration:none}
.logo svg{width:28px;height:28px}
.bar nav{display:flex;gap:18px;margin-left:auto}
.bar nav a{font:500 15px/1 var(--display);letter-spacing:.03em;color:var(--ink-soft);text-decoration:none;padding:8px 2px}
@media (hover:hover) and (pointer:fine){.bar nav a:hover{color:var(--ink)}}
.bar .btn{padding:11px 14px 13px;font-size:15px}
.live{display:inline-flex;align-items:center;gap:8px;font:500 13px/1 var(--display);color:var(--ink);letter-spacing:.04em}
.live i{width:8px;height:8px;background:var(--ink-dim)}
.live.on i{background:var(--accent);animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:.25}}
@media (max-width:900px){.bar nav{display:none}.bar .live{margin-left:auto}}
@media (max-width:420px){.bar .live span{display:none}}

/* ------------------------------------------------------------ hero */
.hero{position:relative;padding:clamp(28px,6vw,72px) 0 var(--sec);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,72px);align-items:center}
.boot{font:500 13px/1.7 var(--display);color:var(--ink-dim);letter-spacing:.04em;min-height:6.8em;margin-bottom:22px;white-space:pre-wrap}
.boot b{color:var(--accent);font-weight:500}
.hero h1{font-size:clamp(44px,5.3vw,80px);line-height:.98;letter-spacing:-.015em;max-width:13ch}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .sub{margin-top:22px;font-size:clamp(17px,1.4vw,20px);color:var(--ink-soft);max-width:34ch}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:32px}
.hero .note{margin-top:18px;font:500 13px/1.4 var(--display);color:var(--ink-dim);letter-spacing:.03em}
.rig{position:relative;aspect-ratio:1;max-width:560px;justify-self:end;width:100%}
.rig canvas{position:absolute;inset:0;width:100%;height:100%}
.rig .slot{position:absolute;left:21%;top:10%;width:58%;aspect-ratio:1;box-shadow:0 0 0 4px #000,0 0 0 8px var(--line)}
.rig .slot img{position:absolute;inset:0;width:100%;height:100%;transition:opacity .5s var(--ease)}
.rig .tag{position:absolute;left:21%;top:calc(10% + 58% + 14px);display:flex;gap:8px;align-items:center;font:500 12px/1 var(--display);color:var(--ink-dim);letter-spacing:.05em}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr}
  .rig{justify-self:center;max-width:min(300px,64vw);order:-1;margin-bottom:0}
  .boot{display:none}
  .hero h1{font-size:clamp(38px,11vw,56px)}
}

/* ------------------------------------------------------------ section heads */
.sec{padding:var(--sec) 0 0}
.head{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,48px);max-width:720px}
.head h2{font-size:clamp(34px,4.6vw,64px)}
.head p{color:var(--ink-soft);font-size:clamp(16px,1.3vw,18px);max-width:58ch}

/* ------------------------------------------------------------ the line (live feed) */
.line{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.th{position:relative;padding:16px 16px 14px;display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;min-height:128px;
  animation:slidein .5s var(--reveal) both;animation-delay:calc(var(--i,0)*50ms)}
@keyframes slidein{from{opacity:0;transform:translateY(10px) scale(.97)}}
.th .av{width:40px;height:40px;background:var(--surface-2);object-fit:cover}
.th .who{font:600 14px/1.2 var(--display);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.th .txt{font-size:14px;line-height:1.5;color:var(--ink-soft);margin-top:6px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:break-word}
.th .st{grid-column:1/-1;display:flex;align-items:center;gap:10px;font:600 12px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}
.th .st .bar8{flex:1;height:8px;background:#0006;box-shadow:inset 0 0 0 2px var(--line);position:relative;overflow:hidden}
.th .st .bar8 i{position:absolute;inset:2px auto 2px 2px;width:calc((100% - 4px)*var(--f,0));background:var(--sc,var(--ink-dim));transition:width .6s var(--ease)}
.th[data-s=queued]{--f:.25;--sc:var(--ink-dim)}.th[data-s=minting]{--f:.5;--sc:var(--accent)}
.th[data-s=forging]{--f:.8;--sc:var(--accent)}.th[data-s=forging] .bar8 i{animation:work 1s steps(6) infinite}
@keyframes work{50%{filter:brightness(1.5)}}
.th[data-s=minted]{--f:1;--sc:var(--t1)}.th[data-s=minted] .st{color:var(--t1)}
.th[data-s=skipped] .st,.th[data-s=waiting] .st{color:var(--ink-dim)}
.th .gpu{position:absolute;right:14px;top:14px;width:40px;height:40px}
.empty{padding:28px;font:500 15px/1.5 var(--display);color:var(--ink-soft);letter-spacing:.02em}
.meter{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:18px;font:500 14px/1 var(--display);color:var(--ink-dim);letter-spacing:.03em}
.meter b{color:var(--ink);font:600 15px/1 var(--text);font-variant-numeric:tabular-nums}

/* ------------------------------------------------------------ forge (pinned act, the peak) */
.forge{height:280vh;position:relative;margin-top:var(--sec)}
.forge .cine-stage{display:grid;place-items:center;overflow:hidden}
.forge .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,5vw,80px);align-items:center;width:min(1240px,100% - var(--g)*2)}
.forge h2{font-size:clamp(34px,4.6vw,64px)}
.forge .steps{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:10px}
.forge .steps li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:baseline;font-size:16px;color:var(--ink-dim);transition:color .25s var(--ease)}
.forge .steps li b{font:600 14px/1 var(--display);color:var(--ink-dim);letter-spacing:.06em}
.forge .steps li.on{color:var(--ink)}.forge .steps li.on b{color:var(--accent)}
.forge .stagebox{position:relative;aspect-ratio:1;width:100%;max-width:560px;justify-self:center}
.forge canvas{width:100%;height:100%;box-shadow:0 0 0 4px #000,0 0 0 8px var(--line);transform:scale(var(--fz,1));transition:none}
.forge .cap{position:absolute;left:0;right:0;bottom:-34px;display:flex;justify-content:space-between;font:500 12px/1 var(--display);color:var(--ink-dim);letter-spacing:.05em}
.forge .pick{display:flex;gap:8px;margin-top:26px;flex-wrap:wrap}
.forge .pick button{width:52px;height:52px;padding:0;border:0;background:var(--surface-2);cursor:pointer;box-shadow:inset 0 0 0 2px var(--line)}
.forge .pick button img{width:100%;height:100%;object-fit:cover}
.forge .pick button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent),0 0 0 2px var(--accent)}
@media (max-width:860px){
  .forge{height:260vh}
  .forge .grid{grid-template-columns:1fr;gap:44px;align-content:center}
  .forge .stagebox{max-width:min(78vw,52vh);order:-1}
  .forge .steps{margin-top:14px;gap:6px}.forge .steps li{font-size:14px}
  .forge .pick{margin-top:12px}.forge .pick button{width:40px;height:40px}
  .forge .cap{bottom:-26px}
}

/* ------------------------------------------------------------ how (install wizard) */
.wiz{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;counter-reset:s}
.wiz .step{padding:26px 24px 28px;position:relative}
.wiz .step+.step{box-shadow:inset 2px 0 0 var(--line)}
.wiz .step .n{font:600 13px/1 var(--display);letter-spacing:.1em;color:var(--accent)}
.wiz .step h3{font-size:clamp(22px,2.2vw,30px);margin:14px 0 10px}
.wiz .step p{color:var(--ink-soft);font-size:15px}
.compose{margin-top:14px;padding:clamp(20px,3vw,32px);display:grid;grid-template-columns:1fr auto;gap:16px 24px;align-items:end}
.compose label{font:600 13px/1 var(--display);letter-spacing:.06em;color:var(--ink-soft);display:block;margin-bottom:8px}
.compose textarea,.compose input{width:100%;font:400 16px/1.5 var(--text);color:var(--ink);background:#0a0805;border:0;padding:12px 14px;box-shadow:inset 0 0 0 2px var(--line);resize:vertical}
.compose textarea:focus,.compose input:focus{outline:none;box-shadow:inset 0 0 0 2px var(--accent)}
.compose .out{grid-column:1/-1;font:500 14px/1.5 var(--display);color:var(--ink-dim);letter-spacing:.02em}
.compose .fields{display:grid;gap:14px}
@media (max-width:860px){.wiz{grid-template-columns:1fr}.wiz .step+.step{box-shadow:inset 0 2px 0 var(--line)}.compose{grid-template-columns:1fr}}

/* ------------------------------------------------------------ tiers (spec sheet) */
.spec{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(20px,4vw,56px);align-items:start}
.spec table{width:100%;border-collapse:collapse;font-size:15px}
.spec th{font:600 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);text-align:right;padding:0 10px 12px}
.spec th:first-child,.spec td:first-child{text-align:left}
.spec td{padding:13px 10px;text-align:right;box-shadow:inset 0 -2px 0 var(--line);cursor:pointer}
.spec tr[aria-selected=true] td{background:var(--surface-2)}
.spec td .chip{font-size:13px}
.spec .barcell{width:34%}
.spec .hb{height:10px;background:#0006;box-shadow:inset 0 0 0 2px var(--line);position:relative}
.spec .hb i{position:absolute;inset:2px auto 2px 2px;width:calc((100% - 4px)*var(--w));background:var(--tc);transform-origin:left;transform:scaleX(var(--grow,0));transition:transform .9s var(--reveal) calc(var(--i,0)*70ms)}
.is-in .spec .hb i,.spec.is-in .hb i{--grow:1}
.spec .show{position:sticky;top:84px}
.spec .show .art{aspect-ratio:1;position:relative;box-shadow:0 0 0 4px #000,0 0 0 8px var(--tc,var(--line))}
.spec .show .art img{width:100%;height:100%}
.spec .show .meta{display:flex;justify-content:space-between;margin-top:18px;font:500 13px/1.3 var(--display);color:var(--ink-dim);letter-spacing:.04em}
@media (max-width:860px){.spec{grid-template-columns:1fr}.spec .show{position:relative;top:0;order:-1;max-width:420px}.spec .barcell{display:none}}

/* ------------------------------------------------------------ mining */
.mine{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,4vw,56px)}
.mine .facts{display:grid;gap:22px;align-content:start}
.mine .facts p{color:var(--ink-soft)}
.mine .facts strong{color:var(--ink);font-weight:600}
.dash{padding:clamp(20px,3vw,32px);display:grid;gap:24px}
.readouts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
.ro .k{font:600 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}
.ro .v{font:650 clamp(26px,3vw,38px)/1.1 var(--text);letter-spacing:-.02em;margin-top:10px;color:var(--ink);font-variant-numeric:tabular-nums}
.ro .v.hot{color:var(--accent)}
.ro .s{font-size:13px;color:var(--ink-dim);margin-top:4px}
.lookup{display:grid;grid-template-columns:1fr auto;gap:10px}
.lookup input{font:400 15px/1 var(--text);color:var(--ink);background:#0a0805;border:0;padding:14px;box-shadow:inset 0 0 0 2px var(--line);min-width:0}
.lookup input:focus{outline:none;box-shadow:inset 0 0 0 2px var(--accent)}
.mygpus{display:flex;gap:8px;flex-wrap:wrap}
.mygpus a{width:56px;height:56px;box-shadow:0 0 0 2px var(--tc)}
.mygpus img{width:100%;height:100%}
.claimrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
@media (max-width:860px){.mine{grid-template-columns:1fr}}
@media (max-width:420px){.readouts{grid-template-columns:1fr 1fr;gap:18px 12px}.lookup{grid-template-columns:1fr}}

/* ------------------------------------------------------------ burn */
.burn{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(20px,4vw,56px);align-items:center}
.furnace{position:relative;aspect-ratio:5/4;box-shadow:0 0 0 4px #000,0 0 0 8px var(--line)}
.voyage{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;counter-reset:v}
.voyage li{font:600 12px/1.3 var(--display);letter-spacing:.04em;color:var(--ink-dim);padding-top:10px;box-shadow:inset 0 3px 0 var(--line);transition:color .25s var(--ease),box-shadow .25s var(--ease)}
.voyage li.on{color:var(--ink);box-shadow:inset 0 3px 0 var(--accent)}
@media (max-width:420px){.voyage{grid-template-columns:1fr 1fr;row-gap:12px}}
.furnace canvas{width:100%;height:100%}
.burn .readouts{margin:26px 0}
.receipts{list-style:none;padding:0;margin:0;display:grid;gap:0}
.receipts li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;box-shadow:inset 0 -2px 0 var(--line);font-size:14px;color:var(--ink-soft)}
.receipts a{font:500 13px/1 var(--display);letter-spacing:.04em;color:var(--ink-dim)}
@media (max-width:860px){.burn{grid-template-columns:1fr}.furnace-wrap{max-width:460px}}

/* ------------------------------------------------------------ gallery rail + page */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(150px,18vw,220px);gap:14px;overflow-x:auto;padding:6px 4px 18px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.card{scroll-snap-align:start;text-decoration:none;display:block}
.card .img{aspect-ratio:1;background:var(--surface-2);box-shadow:0 0 0 3px #000,0 0 0 5px var(--tc,var(--line));transition:transform .16s var(--ease)}
.card .img img{width:100%;height:100%}
.card .cap{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font:600 14px/1 var(--display);letter-spacing:.03em}
.card .cap span:last-child{color:var(--tc);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
@media (hover:hover) and (pointer:fine){.card:hover .img{transform:translateY(-4px)}}
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:26px 18px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filters button{font:600 13px/1 var(--display);letter-spacing:.06em;color:var(--ink-soft);background:var(--surface);border:0;padding:10px 12px 11px;cursor:pointer;box-shadow:inset 0 0 0 2px var(--line)}
.filters button[aria-pressed=true]{color:var(--accent-ink);background:var(--accent);box-shadow:none}
.filters select{margin-left:auto;font:600 13px/1 var(--display);color:var(--ink);background:var(--surface);border:0;padding:10px;box-shadow:inset 0 0 0 2px var(--line)}

/* ------------------------------------------------------------ faq + footer */
.faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 clamp(20px,4vw,56px)}
.faq details{box-shadow:inset 0 -2px 0 var(--line);padding:18px 0}
.faq summary{font:600 18px/1.3 var(--display);letter-spacing:.01em;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-weight:700}
.faq details[open] summary::after{content:"-"}
.faq details p{color:var(--ink-soft);margin-top:10px;font-size:15px;max-width:60ch}
@media (max-width:860px){.faq{grid-template-columns:1fr}}
.contracts{display:grid;gap:10px;margin-top:40px}
.contracts div{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;font-size:14px}
.contracts b{font:600 13px/1 var(--display);letter-spacing:.06em;color:var(--ink-dim);min-width:120px}
.contracts code{font:500 13px/1.4 ui-monospace,monospace;color:var(--ink-soft);word-break:break-all}
.contracts button{font:600 12px/1 var(--display);background:none;border:0;color:var(--accent);cursor:pointer;padding:2px}
footer{margin-top:var(--sec);padding:36px 0 48px;box-shadow:inset 0 2px 0 var(--line)}
footer .wrap{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between}
footer p{font-size:13px;color:var(--ink-dim);max-width:62ch}
footer nav{display:flex;gap:18px;flex-wrap:wrap}
footer nav a{font:500 14px/1 var(--display);color:var(--ink-soft);text-decoration:none}

/* reveals (cine data-cine-in) */
[data-cine-in]{opacity:0;transform:translateY(14px) scale(.985);transition:opacity .6s var(--reveal),transform .6s var(--reveal);transition-delay:calc(var(--i,0)*60ms)}
[data-cine-in].is-in{opacity:1;transform:none}
.no-js [data-cine-in]{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-cine-in]{transform:none;transition:opacity .4s linear}
  .th{animation:none}.live.on i{animation:none}
  .spec .hb i{transition:none;--grow:1}
}
.toast{position:fixed;left:0;right:0;margin-inline:auto;width:max-content;max-width:calc(100% - 32px);bottom:24px;z-index:99;background:var(--surface-2);color:var(--ink);font:500 14px/1.4 var(--display);letter-spacing:.02em;padding:12px 16px;box-shadow:inset 0 0 0 2px var(--accent),0 10px 30px rgba(0,0,0,.5);transform:translateY(20px);opacity:0;transition:transform .2s var(--ease),opacity .2s var(--ease);pointer-events:none}
.toast.on{transform:none;opacity:1}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* GPU page */
.gpupage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.gpupage .art{aspect-ratio:1;box-shadow:0 0 0 4px #000,0 0 0 8px var(--tc,var(--line))}
.gpupage .art img{width:100%;height:100%}
.gpupage h1{font-size:clamp(36px,5vw,64px);margin:16px 0 18px}
.thesis{margin:0;padding:16px 18px;background:var(--surface);box-shadow:inset 3px 0 0 var(--accent);color:var(--ink-soft);font-size:17px;line-height:1.55;word-break:break-word}
@media (max-width:860px){.gpupage{grid-template-columns:1fr}}
@media (max-width:420px){
  .spec table{font-size:14px}
  .spec th{padding:0 5px 10px;letter-spacing:.06em;font-size:11px;white-space:normal;vertical-align:bottom}
  .spec td{padding:11px 5px}
  .spec td .chip{font-size:11px;padding:5px 6px 6px;letter-spacing:.05em}
}

.no-js .stagebox{background:url(assets/art/rare.webp) center/cover}
.no-js .forge{height:auto;padding:var(--sec) 0 0}.no-js .forge .cine-stage{position:relative;height:auto}
/* touch targets ≥ 40px */
.logo{min-height:44px}
.bar .btn{min-height:42px}
.link{display:inline-flex;align-items:center;min-height:42px;padding:0}
.contracts button,.contracts a{min-height:32px;display:inline-flex;align-items:center}
.line .empty{grid-column:1/-1;max-width:640px}

/* wallet: nav chip, your rig, other wallet */
.bar .wbtn{--bg:var(--surface-2)}
@media (max-width:560px){.bar .wbtn{padding:11px 10px 13px;font-size:13px}.bar .live{display:none}}
.myrig{display:grid;gap:18px;padding-top:6px;box-shadow:inset 0 2px 0 var(--line);padding-top:22px}
.myrig .rh{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.myrig h3{font-size:24px}
.myrig .tip{font-size:13px;line-height:1.5}
.wopts{display:flex;flex-wrap:wrap;gap:10px}
.wopts .btn img{width:20px;height:20px}
.mygpus a{position:relative}
.mygpus a b{position:absolute;right:2px;bottom:2px;font:600 10px/1 var(--display);background:#000c;color:var(--tc);padding:2px 3px}
.other{box-shadow:inset 0 2px 0 var(--line);padding-top:16px}
.other summary{font:600 15px/1 var(--display);letter-spacing:.03em;color:var(--ink-soft);cursor:pointer;min-height:40px;display:flex;align-items:center}
.other[open] summary{margin-bottom:12px}
.other .lookup{margin-bottom:14px}
.claimrow .link{min-height:40px;background:none;border:0;border-bottom:2px solid var(--line);cursor:pointer}
