/* Stokeholt — the holt. A blueprint instrument: one bank of six furnaces, one dial, one commit. */
:root{
  --ground:#050A12; --plate:#0A1420; --etch:#16283A; --etch2:#1F3B54;
  --ink:#CFE3F2; --dim:#6E8AA3; --fire:#00D5FF; --fire-soft:rgba(0,213,255,.14);
  --warn:#FF6B1A; --rig:min(560px,100vw);
  --disp:'Saira Condensed',Impact,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--mono);font-size:13px;line-height:1.45}
body{padding-bottom:88px;
  background-image:linear-gradient(var(--etch) 1px,transparent 1px),linear-gradient(90deg,var(--etch) 1px,transparent 1px);
  background-size:56px 56px;background-position:center top;background-attachment:fixed;background-blend-mode:normal}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(130% 90% at 50% 0%,transparent 42%,var(--ground) 92%);pointer-events:none;z-index:0}
a{color:var(--fire);text-decoration:none}
button,input{font:inherit;color:inherit}
#stage{position:relative;z-index:1;max-width:var(--rig);margin:0 auto;padding:0 14px}

/* ---- the plate: identity etched into the instrument, no chrome above it ---- */
.plate{display:flex;align-items:center;gap:10px;padding:16px 0 10px;border-bottom:1px solid var(--etch2)}
.plate img{width:30px;height:30px;border-radius:5px;flex:none}
.plate-id{flex:1;min-width:0}
.plate-name{font-family:var(--disp);font-weight:900;font-size:27px;letter-spacing:.11em;line-height:1;text-transform:uppercase}
.plate-spec{font-size:9.5px;letter-spacing:.11em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--dim);text-transform:uppercase;margin-top:3px}
.plate-key{background:none;border:1px solid var(--etch2);color:var(--dim);border-radius:2px;padding:7px 11px;font-size:11px;letter-spacing:.08em;cursor:pointer;text-transform:uppercase}
.plate-key.lit{border-color:var(--fire);color:var(--fire)}

/* ---- the bell strip ---- */
.bell{display:flex;align-items:baseline;justify-content:space-between;padding:11px 0 9px;border-bottom:1px solid var(--etch)}
.bell-t{font-family:var(--disp);font-size:31px;font-weight:700;letter-spacing:.05em;line-height:1;font-variant-numeric:tabular-nums}
.bell-t.close{color:var(--warn)}
.bell-l{font-size:10px;letter-spacing:.18em;color:var(--dim);text-transform:uppercase}
.bell-r{text-align:right;font-size:11px;color:var(--dim)}
.bell-r b{display:block;color:var(--ink);font-family:var(--disp);font-size:19px;font-weight:700;letter-spacing:.04em}

/* ---- the bank of six ---- */
.bank{position:relative;display:grid;grid-template-columns:42px repeat(6,1fr);gap:6px;height:min(40vh,300px);min-height:210px;margin:14px 0 0}
.scale{position:relative;border-right:1px dashed var(--etch2)}
.scale i{position:absolute;right:0;width:7px;border-top:1px solid var(--etch2)}
.scale i::after{content:attr(data-p);position:absolute;right:10px;top:-7px;font-size:9px;color:var(--dim);letter-spacing:.02em;white-space:nowrap}
.line{position:absolute;left:42px;right:0;height:0;border-top:1px dashed var(--fire);opacity:.75;pointer-events:none;z-index:3}
.line span{position:absolute;right:0;top:-14px;font-size:9px;letter-spacing:.2em;color:var(--fire);text-transform:uppercase}
.flue{position:relative;display:block;padding:0;border:1px solid #2B4D6B;border-radius:2px;background:rgba(10,20,32,.62);cursor:pointer;overflow:hidden;transition:border-color .14s}
.flue:hover{border-color:var(--etch2)}
.flue-fill{position:absolute;left:2px;right:2px;bottom:2px;height:0;background:linear-gradient(180deg,var(--fire),rgba(0,213,255,.42));box-shadow:0 -7px 18px var(--fire-soft)}
.flue-fill::after{content:'';position:absolute;left:0;right:0;top:-1px;height:2px;background:#DFF9FF}
.flue-no{position:absolute;top:5px;left:0;right:0;text-align:center;font-family:var(--disp);font-size:14px;font-weight:700;color:var(--dim);letter-spacing:.06em;z-index:2}
.flue-v{position:absolute;bottom:4px;left:2px;right:2px;text-align:center;font-size:9px;color:var(--ink);background:rgba(5,10,18,.86);padding:2px 0;z-index:4;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.flue.pick{border-color:var(--fire)}
.flue.pick .flue-no{color:var(--fire)}
.flue.lead .flue-v{color:var(--ink)}
.flue.mine::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--fire);z-index:3}

/* ---- the dock: the one action ---- */
.dock{margin:14px 0 0;border:1px solid var(--etch2);border-radius:3px;background:var(--plate);padding:12px}
.dock-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:9px}
.dock-pick{font-family:var(--disp);font-size:20px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.dock-bal{font-size:10px;color:var(--dim);letter-spacing:.06em}
.dial{-webkit-appearance:none;appearance:none;width:100%;height:30px;background:none;margin:0;display:block;cursor:grab}
.dial:active{cursor:grabbing}
.dial::-webkit-slider-runnable-track{height:8px;border-radius:1px;background:linear-gradient(90deg,var(--fire) var(--pct,0%),var(--etch) var(--pct,0%))}
.dial::-moz-range-track{height:8px;border-radius:1px;background:var(--etch)}
.dial::-moz-range-progress{height:8px;background:var(--fire)}
.dial::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:26px;border-radius:2px;background:var(--ink);border:1px solid var(--ground);margin-top:-9px;box-shadow:0 0 14px var(--fire-soft)}
.dial::-moz-range-thumb{width:13px;height:26px;border-radius:2px;background:var(--ink);border:1px solid var(--ground)}
.dock-amt{display:flex;align-items:baseline;justify-content:space-between;margin:2px 0 11px}
.dock-n{font-family:var(--disp);font-size:29px;font-weight:900;letter-spacing:.03em;line-height:1;font-variant-numeric:tabular-nums}
.dock-n small{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.14em;color:var(--dim);margin-left:6px}
.dock-lift{font-size:10px;color:var(--dim);text-align:right;letter-spacing:.04em}
.dock-lift b{color:var(--fire);font-weight:500}
.fire{width:100%;padding:14px;border:none;border-radius:2px;background:var(--fire);color:#031018;font-family:var(--disp);font-size:20px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.fire:disabled{background:var(--etch);color:var(--dim);cursor:not-allowed}
.fire.wait{background:var(--etch2);color:var(--ink)}

/* ---- blocks below the fold ---- */
.blk{margin:24px 0 0;border-top:1px solid var(--etch);padding-top:14px}
.blk-h{font-family:var(--disp);font-size:18px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 9px}
.worked{border:1px solid var(--etch2);border-left:2px solid var(--fire);border-radius:2px;padding:11px 12px;background:var(--plate);font-size:12px;color:var(--dim)}
.worked b{color:var(--ink);font-weight:500}
.worked em{display:block;margin-top:7px;font-style:normal;color:var(--fire);font-size:11px;letter-spacing:.04em}
.steps{counter-reset:s;list-style:none;margin:0;padding:0}
.steps li{counter-increment:s;position:relative;padding:8px 0 8px 32px;border-bottom:1px solid var(--etch);font-size:12px;color:var(--dim)}
.steps li::before{content:counter(s);position:absolute;left:0;top:7px;width:20px;height:20px;border:1px solid var(--etch2);border-radius:2px;text-align:center;line-height:19px;font-family:var(--disp);font-weight:700;color:var(--fire);font-size:12px}
.steps li b{color:var(--ink);font-weight:500}
.rows{width:100%;border-collapse:collapse;font-size:11px}
.rows th{text-align:left;font-weight:500;color:var(--dim);letter-spacing:.14em;font-size:9px;text-transform:uppercase;padding:0 0 6px;border-bottom:1px solid var(--etch)}
.rows td{padding:7px 0;border-bottom:1px solid var(--etch);color:var(--dim);font-variant-numeric:tabular-nums}
.rows td b{color:var(--ink);font-weight:500}
.rows td.fno{color:var(--fire);font-family:var(--disp);font-size:14px;letter-spacing:.06em}
.rows tr.win td{color:var(--ink)}
.stat{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--etch);border:1px solid var(--etch)}
.stat div{background:var(--ground);padding:10px}
.stat b{display:block;font-family:var(--disp);font-size:23px;font-weight:700;letter-spacing:.03em;color:var(--ink)}
.stat span{font-size:9px;letter-spacing:.16em;color:var(--dim);text-transform:uppercase}
.empty{padding:22px 0;text-align:center;color:var(--dim);font-size:12px}
.pill{display:inline-block;padding:2px 7px;border:1px solid var(--etch2);border-radius:2px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.pill.on{border-color:var(--fire);color:var(--fire)}
.prose p{color:var(--dim);font-size:12.5px;margin:0 0 11px}
.prose b{color:var(--ink);font-weight:500}

/* ---- the strip and the tag ---- */
.strip{position:relative;z-index:1;max-width:var(--rig);margin:26px auto 0;padding:0 14px;display:flex;gap:16px;align-items:center;border-top:1px solid var(--etch);padding-top:12px}
.strip a{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.strip a.here{color:var(--fire)}
.strip-gap{flex:1}
.tag{position:relative;z-index:1;max-width:var(--rig);margin:10px auto 0;padding:0 14px 26px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:10px;color:var(--dim)}
.tag-k{letter-spacing:.16em;text-transform:uppercase}
.tag code{color:var(--ink);word-break:break-all;font-size:10px}
.tag button{background:none;border:1px solid var(--etch2);color:var(--dim);border-radius:2px;padding:3px 7px;font-size:9px;cursor:pointer;letter-spacing:.1em;text-transform:uppercase}
.tag #buy{border:1px solid var(--fire);color:var(--fire);border-radius:2px;padding:3px 9px;letter-spacing:.1em;text-transform:uppercase}
.tag-k2 a{color:var(--dim)}

/* ---- slab (sheet) and flash (toast) ---- */
#slab{position:fixed;inset:0;background:rgba(3,7,12,.86);z-index:40;display:flex;align-items:flex-end;justify-content:center}
#slab[hidden]{display:none}
.slab-box{width:100%;max-width:var(--rig);background:var(--plate);border:1px solid var(--etch2);border-bottom:none;border-radius:4px 4px 0 0;padding:14px;max-height:82vh;overflow:auto}
.slab-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}
#slabTitle{font-family:var(--disp);font-size:18px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
#slabClose{background:none;border:none;color:var(--dim);font-size:22px;line-height:1;cursor:pointer}
.wal button{display:flex;align-items:center;gap:9px;width:100%;padding:11px;margin-bottom:7px;background:none;border:1px solid var(--etch2);border-radius:2px;color:var(--ink);cursor:pointer;font-size:12px}
.wal img{width:20px;height:20px;border-radius:3px}
.flash{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);background:var(--plate);border:1px solid var(--fire);color:var(--ink);padding:9px 15px;border-radius:2px;font-size:12px;z-index:60;max-width:88vw;text-align:center}
@media(min-width:620px){ .bank{height:360px} .stat{grid-template-columns:repeat(4,1fr)} }
.rows button{background:none;border:1px solid var(--fire);color:var(--fire);border-radius:2px;padding:4px 9px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;font-family:var(--mono)}
.rows a{color:var(--fire)}
