:root{
  --bg:#0B1220; --panel:#111A2C; --panel2:#0F1728; --border:#223148;
  --border-hi:#2E4160; --ink:#E8EEF7; --muted:#8194AC;
  --acc:#3FB68B; --dca:#9BBF4E; --hold:#E3A63B; --dist:#E05252; --blue:#5B8DD9;
  /* derived shades — every skin overrides the whole set */
  --grad1:#16233E; --grad2:#101B31;           /* body wash */
  --slab-hi:#1A2A44; --slab-lo:#12203A;       /* conveyor / 3D slabs */
  --space-hi:#0E1930; --space-lo:#070C16;     /* globe · 3D · screensaver */
  --globe-a:#131E34; --globe-b:#0D1526; --globe-c:#081020; /* sphere shading */
  --code:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --mono:var(--code);        /* UI face — a skin may point this at --sans */
  --sans:"IBM Plex Sans",system-ui,sans-serif;
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{height:100%}
body{
  background:
    radial-gradient(1100px 500px at 75% -12%, var(--grad1) 0%, transparent 60%),
    radial-gradient(900px 600px at -10% 110%, var(--grad2) 0%, transparent 55%),
    var(--bg);
  color:var(--ink);font-family:var(--mono);
  -webkit-font-smoothing:antialiased}

.app{display:flex;flex-direction:column;gap:12px;height:100%;
  max-width:1720px;margin:0 auto;padding:16px 18px 12px}

/* ---------- chrome ---------- */
header{display:flex;justify-content:space-between;align-items:center;padding:0 4px}
.brand{font:600 13px var(--mono);letter-spacing:.22em;color:var(--ink);
  display:flex;align-items:center;gap:10px;white-space:nowrap}
.brand .mark{color:var(--hold);font-size:15px;text-shadow:0 0 14px color-mix(in srgb,var(--hold) 55%,transparent)}
.brand .sub{color:var(--muted);font-weight:400;letter-spacing:.18em;font-size:11px}
.hdr-right{display:flex;align-items:center;gap:12px}
#asof{font:11px var(--mono);color:var(--muted);letter-spacing:.08em}
footer{font:10px var(--mono);color:var(--muted);padding:0 4px;letter-spacing:.05em}

.iconbtn{background:transparent;border:1px solid var(--border);color:var(--muted);
  border-radius:8px;padding:6px 8px;cursor:pointer;line-height:0;
  transition:color .15s,border-color .15s}
.iconbtn:hover{color:var(--ink);border-color:var(--border-hi)}
.iconbtn[aria-pressed="true"]{color:var(--acc);border-color:var(--acc);
  box-shadow:0 0 10px color-mix(in srgb,var(--acc) 25%,transparent)}
input:focus-visible,button:focus-visible,summary:focus-visible,a:focus-visible{
  outline:2px solid var(--ink);outline-offset:2px}

.banner{background:color-mix(in srgb,var(--hold) 20%,var(--bg));
  border:1px solid color-mix(in srgb,var(--hold) 34%,var(--bg));color:var(--hold);
  font:600 12px var(--mono);padding:9px 14px;border-radius:8px}

/* ---------- layout ---------- */
main{flex:1;display:grid;grid-template-columns:340px minmax(0,1fr) 350px;
  gap:12px;min-height:0}
.col{display:flex;flex-direction:column;gap:12px;min-height:0;min-width:0;
  overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.col::-webkit-scrollbar{width:5px}
.col::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.col::-webkit-scrollbar-track{background:transparent}
.card.grow{flex:1;min-height:0;display:flex;flex-direction:column}

.card{background:linear-gradient(180deg,var(--panel) 0%,var(--panel2) 100%);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:18px 20px;box-shadow:0 12px 32px rgba(0,0,0,.35);
  transition:border-color .2s}
.card:hover{border-color:var(--border-hi)}
.cardtitle{font:600 10px var(--mono);letter-spacing:.18em;color:var(--muted);
  margin-bottom:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.seg{display:inline-flex;gap:2px;margin-left:4px}
.segbtn{background:transparent;border:1px solid var(--border);color:var(--muted);
  font:600 9px var(--mono);letter-spacing:.06em;padding:3px 7px;border-radius:6px;
  cursor:pointer;transition:color .15s,border-color .15s}
.segbtn:hover{color:var(--ink)}
.segbtn.on{color:var(--ink);border-color:var(--border-hi);
  background:color-mix(in srgb,var(--muted) 8%,transparent)}
.cardtitle::before{content:"";width:14px;height:2px;border-radius:1px;flex:none;
  background:linear-gradient(90deg,var(--hold),transparent)}
.lab{font:700 8px var(--mono);letter-spacing:.14em;color:var(--blue);
  border:1px solid var(--blue);border-radius:4px;padding:1px 5px;opacity:.75}
.cardtitle .tlink{margin-left:auto}
.tlink{font:10px var(--mono);color:var(--muted);text-decoration:none;
  letter-spacing:.08em;font-weight:400;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;max-width:60%}
a.tlink:hover{color:var(--ink)}
.cardtitle .iconbtn{margin-left:6px;padding:4px 6px}

/* ---------- hero ---------- */
.hero-top{display:flex;flex-wrap:wrap;justify-content:space-between;
  align-items:flex-start;row-gap:10px}
#riskBig{font:700 62px/1 var(--mono);letter-spacing:-.03em;
  text-shadow:0 0 32px color-mix(in srgb,var(--ink) 14%,transparent)}
#price{font:500 14px var(--mono);color:var(--muted);margin-top:8px;
  display:flex;align-items:center;gap:7px}
.hero-btns{display:flex;align-items:center;gap:8px;margin-left:auto}
.pill{display:inline-block;border:1px solid var(--zone,var(--muted));
  color:var(--zone,var(--muted));border-radius:999px;padding:6px 13px;
  font:600 11px var(--mono);letter-spacing:.12em;white-space:nowrap;
  background:color-mix(in srgb,var(--zone,transparent) 13%,transparent)}
.livedot{width:6px;height:6px;border-radius:50%;background:var(--acc);
  display:inline-block;animation:pulse2 2s ease-in-out infinite}
.railwrap{margin-top:26px}
.rail{position:relative;height:10px;border-radius:5px;
  background:linear-gradient(90deg,var(--acc),var(--dca) 35%,var(--hold) 60%,var(--dist) 85%);
  box-shadow:0 0 18px color-mix(in srgb,var(--acc) 12%,transparent)}
.rail-sm{height:8px}
.marker{position:absolute;top:-10px;left:0;width:0;height:0;
  transform:translateX(-50%);
  border-left:6px solid transparent;border-right:6px solid transparent;
  border-top:7px solid var(--ink);
  filter:drop-shadow(0 0 6px color-mix(in srgb,var(--ink) 60%,transparent));
  transition:left 1s cubic-bezier(.22,1,.36,1)}
.tick{position:absolute;top:0;width:2px;height:10px;background:var(--bg);
  transform:translateX(-50%)}
.zonestrip{display:flex;margin-top:6px}
.zonestrip span{font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase;
  overflow:hidden;white-space:nowrap;opacity:.8}
#orderLine{font:700 24px var(--mono);margin-top:16px;padding-top:14px;
  border-top:1px solid var(--border)}
#orderSub{font:11px var(--mono);color:var(--muted);margin-top:5px;line-height:1.5}
.skel #riskBig,.skel #price,.skel #orderLine{color:var(--border);
  animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
@keyframes pulse2{50%{opacity:.35}}

/* ---------- 15-min call ---------- */
.call-ask{display:flex;align-items:center;gap:8px}
.call-lab{font:10px var(--mono);color:var(--muted);letter-spacing:.05em;
  white-space:nowrap}
.call-ask input{width:104px;padding:6px 8px;font-size:13px}
.call-verdict{display:flex;align-items:baseline;gap:10px;margin-top:13px}
.call-verdict b{font:700 30px/1 var(--mono);letter-spacing:-.02em}
#callProb{font:700 20px var(--mono);font-variant-numeric:tabular-nums}
.call-word{font:600 9px var(--mono);color:var(--muted);letter-spacing:.14em;
  text-transform:uppercase}
.callbar{height:8px;border-radius:4px;overflow:hidden;position:relative;
  background:color-mix(in srgb,var(--dist) 24%,var(--bg));margin-top:11px}
.callbar i{display:block;height:100%;width:50%;border-radius:4px 0 0 4px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--acc) 74%,var(--bg)),var(--acc));transition:width .4s ease}
.callbar::after{content:"";position:absolute;left:50%;top:0;width:2px;
  height:100%;background:var(--bg)}
.call-sub{font:10px var(--mono);color:var(--muted);margin-top:8px;
  letter-spacing:.02em;font-variant-numeric:tabular-nums}
.call-actions{display:flex;align-items:center;gap:6px;margin-top:11px}
.call-actions .segbtn:disabled{opacity:.4;cursor:default}
.call-actions .segbtn:disabled:hover{color:var(--muted)}
.call-score{font:10px var(--mono);color:var(--muted);margin-left:auto;
  font-variant-numeric:tabular-nums;white-space:nowrap}
#callLog{list-style:none;margin-top:8px;font:10px var(--mono)}
#callLog li{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;
  padding:3.5px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);
  font-variant-numeric:tabular-nums;color:var(--muted)}
#callLog li:last-child{border-bottom:0}

/* ---------- fear & greed ---------- */
.fng-row{display:flex;gap:20px;align-items:center}
#fngVal{font:700 38px/1 var(--mono);letter-spacing:-.02em}
#fngLabel{font:600 10px var(--mono);color:var(--muted);letter-spacing:.12em;
  text-transform:uppercase;margin-top:6px;white-space:nowrap}
.fng-meter{flex:1}
.fng-ends{display:flex;justify-content:space-between;font:9px var(--mono);
  color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:6px}

/* ---------- halving ---------- */
#hvCount{font:700 27px/1.1 var(--mono);letter-spacing:-.01em;
  font-variant-numeric:tabular-nums}
.hv-sub{font:11px var(--mono);color:var(--muted);margin:7px 0 12px}
.hv-track{height:5px}
.hv-track i{background:linear-gradient(90deg,var(--hold),var(--dist));width:0}
.hv-row{display:flex;justify-content:space-between;font:10px var(--mono);
  color:var(--muted);margin-top:9px;letter-spacing:.05em}
.hv-row b{color:var(--ink);font-weight:600}

/* ---------- ticker ---------- */
.ticker{background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--border);border-radius:9px;
  overflow:hidden;position:relative;height:32px;flex:none}
.tickertrack{display:inline-flex;align-items:center;height:32px;
  white-space:nowrap;will-change:transform;
  animation:marquee var(--dur,60s) linear infinite}
.ticker:hover .tickertrack,.ticker:focus .tickertrack,
.ticker:focus-within .tickertrack{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.titem{font:11px var(--mono);color:var(--ink);text-decoration:none;
  padding:0 16px;display:inline-flex;align-items:baseline;gap:8px}
.titem:hover{text-decoration:underline}
.titem .src{color:var(--hold);font-size:9px;letter-spacing:.08em}
.titem .age{color:var(--muted);font-size:9px}

/* ---------- chart ---------- */
.cwrap{position:relative;flex:1;min-height:200px}
#cv{width:100%;height:100%;display:block;touch-action:pan-y;position:absolute;inset:0}
.tip{position:absolute;background:var(--panel);border:1px solid var(--border-hi);
  border-radius:6px;padding:6px 9px;font:11px var(--mono);color:var(--ink);
  pointer-events:none;white-space:nowrap;z-index:5;
  box-shadow:0 6px 18px rgba(0,0,0,.4)}

/* ---------- globe ---------- */
.gwrap{position:relative;height:min(300px,30vh)}
#globe{width:100%;height:100%;display:block;cursor:grab;touch-action:none}
#globe:active{cursor:grabbing}

.gcaption{font:10px var(--mono);color:var(--muted);letter-spacing:.06em;
  margin-top:10px;text-align:center}
.ss-caption{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);
  font:10px var(--mono);color:var(--muted);letter-spacing:.22em;opacity:.75;
  white-space:nowrap;max-width:44vw;overflow:hidden;text-overflow:ellipsis}

/* ---------- block conveyor ---------- */
#conv{width:100%;height:148px;display:block}
#convCard{flex:none}

/* ---------- book depth: coins until price ---------- */
.dwrap{position:relative;height:148px}
#depth{width:100%;height:100%;display:block;cursor:crosshair}
.dmiles{display:grid;grid-template-columns:1fr 1fr;gap:3px 16px;margin-top:10px;
  min-height:48px}
.dmrow{display:flex;justify-content:space-between;gap:8px;
  font:10px var(--mono);color:var(--muted);letter-spacing:.02em;
  font-variant-numeric:tabular-nums;min-height:14px}
.dmrow b{color:var(--ink);font-weight:600;white-space:nowrap}
.dmrow .qb{color:var(--acc);white-space:nowrap}
.dmrow .qa{color:var(--dist);white-space:nowrap}
#depthCard .gcaption{margin-top:9px}
#depthCard .seg{margin-left:2px}

/* ---------- components / breakdown ---------- */
.explain{font:11px var(--sans);color:var(--muted);margin-bottom:14px;line-height:1.55}
.formula{font:10px var(--mono);color:var(--muted);letter-spacing:.01em;font-weight:400}
.comp{margin-bottom:13px}
.comp:last-of-type{margin-bottom:0}
.comp-head{display:flex;justify-content:space-between;align-items:flex-end;
  font:10px var(--mono);color:var(--muted);letter-spacing:.08em;margin-bottom:6px;gap:8px}
.comp-head b{font:600 13px var(--mono);color:var(--ink)}
.comp-head .raw{color:var(--ink);font-weight:600}
.track{height:6px;background:var(--bg);border-radius:3px;overflow:hidden}
.track i{display:block;height:100%;width:0;border-radius:3px;transition:width .6s ease}
.risksum{display:flex;justify-content:space-between;align-items:baseline;
  border-top:1px solid var(--border);margin-top:14px;padding-top:12px;
  font:11px var(--mono);color:var(--muted)}
.risksum b{font:700 19px var(--mono)}

/* ---------- tape ---------- */
.tape-head{display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:10px;flex:none}
#tapePrice{font:700 26px/1 var(--mono);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.wsdot{display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--muted);margin-right:2px;flex:none}
.wsdot.live{background:var(--acc);box-shadow:0 0 8px color-mix(in srgb,var(--acc) 80%,transparent);
  animation:pulse2 2s ease-in-out infinite}
#wsStatus{font:9px var(--mono);color:var(--muted);letter-spacing:.12em;
  text-transform:uppercase}
.fabwrap{position:relative;height:288px;flex:none;border-radius:6px;
  overflow:hidden;background:color-mix(in srgb,var(--bg) 55%,transparent)}
.fabwrap canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.press{display:flex;align-items:center;gap:10px;margin-top:10px;flex:none}
.pb{font:600 10px var(--mono);color:var(--acc);white-space:nowrap}
.ps{font:600 10px var(--mono);color:var(--dist);white-space:nowrap}
.pressbar{flex:1;height:8px;border-radius:4px;position:relative;
  overflow:hidden;background:color-mix(in srgb,var(--dist) 24%,var(--bg))}
.pressbar i{display:block;height:100%;width:50%;border-radius:4px 0 0 4px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--acc) 74%,var(--bg)),var(--acc));transition:width .6s ease}
.pressbar::after{content:"";position:absolute;left:50%;top:0;width:2px;
  height:100%;background:var(--bg)}
@media (prefers-reduced-motion:reduce){.pressbar i{transition:none}}
.exchips{display:flex;gap:4px;margin-top:9px;flex-wrap:wrap;flex:none}
.exchip{display:inline-flex;align-items:center;gap:4px;background:transparent;
  border:1px solid var(--border);border-radius:6px;color:var(--muted);
  font:600 9px var(--mono);letter-spacing:.04em;padding:3px 6px;cursor:pointer;
  font-variant-numeric:tabular-nums;
  transition:color .15s,border-color .15s,opacity .15s}
.exchip:hover{color:var(--ink);border-color:var(--border-hi)}
.exchip .dot{width:5px;height:5px;border-radius:50%;background:var(--hold);
  flex:none;transition:background .3s;box-sizing:border-box}
.exchip.conn .dot{background:transparent;border:1px solid var(--hold)}
.exchip.live .dot{background:var(--acc);box-shadow:0 0 6px color-mix(in srgb,var(--acc) 70%,transparent)}
.exchip .sh{color:var(--ink);font-weight:700;white-space:pre}
.exchip.off{opacity:.35}
.exchip.off .dot{background:var(--muted);box-shadow:none}
.fabstats{font:9px var(--mono);color:var(--muted);letter-spacing:.08em;
  margin:8px 0 10px;flex:none}
@media (max-width:1180px){.fabwrap{height:240px}}
#tape{list-style:none;font:11px var(--mono);overflow:hidden;flex:1;min-height:0;
  mask-image:linear-gradient(180deg,#000 82%,transparent);
  -webkit-mask-image:linear-gradient(180deg,#000 82%,transparent)}
#tape li{display:grid;grid-template-columns:1fr 1.2fr 1fr auto auto;gap:8px;
  padding:3.5px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);
  font-variant-numeric:tabular-nums}
#tape li:last-child{border-bottom:0}
#tape .t{color:var(--muted)}
#tape .sz{text-align:right;color:var(--muted)}
#tape .ex{color:var(--muted);font-size:9px;align-self:center;
  letter-spacing:.08em}
#tape .side{text-align:right;font-weight:600;width:40px}
#tape li.new{animation:flash .5s ease-out}
@keyframes flash{from{background:color-mix(in srgb,var(--muted) 14%,transparent)}to{background:transparent}}

/* ---------- settings dialog ---------- */
dialog{margin:auto;background:linear-gradient(180deg,var(--panel),var(--panel2));
  color:var(--ink);border:1px solid var(--border-hi);border-radius:var(--radius);
  padding:22px 24px;width:min(560px,92vw);max-height:90vh;overflow-y:auto;
  box-shadow:0 24px 80px rgba(0,0,0,.6)}
dialog::backdrop{background:rgba(4,8,16,.7);backdrop-filter:blur(3px)}
.dlg-head{display:flex;justify-content:space-between;align-items:center;
  margin-bottom:4px}
.dlg-head .cardtitle{margin-bottom:0}
.dlg-head .iconbtn{font:600 12px var(--mono);line-height:1}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;margin-top:12px}
@media (max-width:460px){.grid{grid-template-columns:1fr}}
label{display:flex;flex-direction:column;gap:5px;font:10px var(--mono);
  color:var(--muted);letter-spacing:.05em}
input{background:var(--bg);border:1px solid var(--border);border-radius:8px;
  color:var(--ink);font:600 13px var(--mono);padding:8px 10px;width:100%;
  appearance:none;-webkit-appearance:none}
input:hover{border-color:var(--border-hi)}
.sz-title{margin-top:20px}
#sz{width:100%;height:190px;display:block}
.szlegend{display:flex;gap:16px;margin-top:10px;font:10px var(--mono);
  color:var(--muted);flex-wrap:wrap}
.szlegend i{display:inline-block;width:9px;height:9px;border-radius:2px;
  margin-right:6px;vertical-align:-1px}
.note{font:11px var(--sans);color:var(--muted);margin-top:12px;line-height:1.5}

/* ---------- send sats ---------- */
.satsbtn{background:transparent;border:1px solid color-mix(in srgb,var(--hold) 50%,transparent);
  color:var(--hold);border-radius:999px;padding:6px 13px;cursor:pointer;
  font:600 10px var(--mono);letter-spacing:.14em;white-space:nowrap;
  animation:satsglow 4s ease-in-out infinite;
  transition:color .15s,border-color .15s,box-shadow .15s}
.satsbtn:hover{color:color-mix(in srgb,var(--hold) 70%,#fff);border-color:var(--hold);
  box-shadow:0 0 16px color-mix(in srgb,var(--hold) 45%,transparent);animation:none}
@keyframes satsglow{
  0%,100%{box-shadow:0 0 0 color-mix(in srgb,var(--hold) 0%,transparent)}
  50%{box-shadow:0 0 12px color-mix(in srgb,var(--hold) 35%,transparent)}}
@media (prefers-reduced-motion:reduce){.satsbtn{animation:none}}
.satslink{background:none;border:none;cursor:pointer;padding:0;
  font:10px var(--mono);color:var(--hold);letter-spacing:.05em;opacity:.8}
.satslink:hover{opacity:1;text-decoration:underline}
#donate{width:min(420px,92vw)}
#donate .cardtitle .mark{color:var(--hold);
  text-shadow:0 0 14px color-mix(in srgb,var(--hold) 55%,transparent)}
.don-pitch{font:12px var(--sans);color:var(--muted);line-height:1.6;
  margin-top:10px}
.don-tabs{display:flex;gap:8px;margin-top:14px}
.don-tab{flex:1;background:transparent;border:1px solid var(--border);
  color:var(--muted);border-radius:8px;padding:8px 0;cursor:pointer;
  font:600 10px var(--mono);letter-spacing:.12em;
  transition:color .15s,border-color .15s,background .15s}
.don-tab:hover{color:var(--ink);border-color:var(--border-hi)}
.don-tab.active{color:var(--hold);border-color:color-mix(in srgb,var(--hold) 55%,transparent);
  background:color-mix(in srgb,var(--hold) 7%,transparent)}
.don-link{color:var(--hold);text-decoration:none}
.don-link:hover{text-decoration:underline}
.don-qr{display:flex;flex-direction:column;align-items:center;gap:9px;
  margin-top:16px}
.don-qr a{display:block;line-height:0;border-radius:14px;
  transition:box-shadow .15s}
.don-qr a:hover{box-shadow:0 0 24px color-mix(in srgb,var(--hold) 35%,transparent)}
.don-qr img{background:#fff;border-radius:14px;padding:10px;
  width:228px;max-width:70vw;height:auto}
.don-scan{font:9px var(--mono);color:var(--muted);letter-spacing:.1em}
.don-addr{display:block;width:100%;margin-top:14px;cursor:pointer;
  background:var(--bg);border:1px solid var(--border);border-radius:8px;
  padding:10px 12px;text-align:center;
  transition:border-color .15s}
.don-addr:hover{border-color:var(--border-hi)}
.don-addr code{font:600 11px var(--mono);color:var(--ink);
  word-break:break-all;letter-spacing:.02em}
.don-copylab{display:block;margin-top:6px;font:9px var(--mono);
  color:var(--muted);letter-spacing:.14em;text-transform:uppercase}
.don-addr.copied{border-color:var(--acc)}
.don-addr.copied .don-copylab{color:var(--acc)}
.don-foot{font:10px var(--mono);color:var(--muted);margin-top:12px;
  text-align:center;letter-spacing:.03em}

/* ---------- 3D block cutaway ---------- */
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:none;
  align-items:stretch}
#blkCard{display:flex;flex-direction:column;min-width:0}
.blkwrap{position:relative;flex:1;min-height:min(300px,30vh);overflow:hidden;
  border-radius:10px;background:
  radial-gradient(75% 85% at 50% 42%, var(--space-hi) 0%, var(--space-lo) 100%)}
.blkwrap.full{position:fixed;inset:0;z-index:55;border-radius:0;
  min-height:0;background:
  radial-gradient(1200px 800px at 50% 42%, var(--space-hi) 0%, var(--space-lo) 72%)}
/* HUD, callouts and close live only in the expanded view — inline stays clean */
.blkwrap:not(.full) .blk-hud,
.blkwrap:not(.full) .blk-close,
.blkwrap:not(.full) .blk-hint{display:none}
#blkCv{position:absolute;inset:0;width:100%;height:100%;display:block;
  cursor:grab;touch-action:none}
#blkCv:active{cursor:grabbing}
.blk-hud{position:absolute;font-family:var(--mono);pointer-events:none}
.blk-tl{top:26px;left:32px;display:flex;flex-direction:column;gap:7px}
.blk-title{font:600 10px var(--mono);letter-spacing:.22em;color:var(--blue)}
#blkHeight{font:700 30px/1 var(--mono);letter-spacing:-.01em;
  font-variant-numeric:tabular-nums}
.blk-meta{font:11px var(--mono);color:var(--muted);letter-spacing:.04em}
.blk-hash{font:9px var(--mono);color:var(--acc);letter-spacing:.02em;
  word-break:break-all;max-width:min(560px,80vw)}
.blk-close{position:absolute;top:22px;right:26px;z-index:5;
  font:600 12px var(--mono);background:color-mix(in srgb,var(--bg) 60%,transparent)}
.blk-bl{bottom:36px;left:32px;display:flex;flex-direction:column;gap:6px;
  max-width:min(460px,72vw)}
.blk-bl b{font:700 12px var(--mono);letter-spacing:.1em;color:var(--hold)}
.blk-bl span{font:11px var(--mono);color:var(--muted);line-height:1.6}
.blk-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  font:9px var(--mono);color:var(--muted);letter-spacing:.22em;opacity:.6;
  white-space:nowrap}
@media (max-width:640px){
  .blk-tl{top:16px;left:16px}
  #blkHeight{font-size:22px}
  .blk-bl{left:16px;bottom:44px}
}

/* ---------- screensaver ---------- */
.ss{position:fixed;inset:0;z-index:50;background:
  radial-gradient(1200px 800px at 50% 40%, var(--space-hi) 0%, var(--space-lo) 70%);
  cursor:none}
#ssCv{position:absolute;inset:0;width:100%;height:100%}
.ss-stat{position:absolute;display:flex;flex-direction:column;gap:6px;
  font-family:var(--mono)}
.ss-stat b{font:700 30px/1 var(--mono);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.ss-lab{font:600 10px var(--mono);color:var(--muted);letter-spacing:.2em}
.ss-tl{top:34px;left:40px}
.ss-tr{top:34px;right:40px;text-align:right}
.ss-bl{bottom:34px;left:40px}
.ss-br{bottom:34px;right:40px;text-align:right}
.ss-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  font:10px var(--mono);color:var(--muted);letter-spacing:.25em;opacity:.6}
#ssSpark{width:180px;height:36px;margin-top:8px;opacity:.9}
.ss-rail{position:relative;width:180px;height:5px;border-radius:3px;
  margin:10px 0 0 auto;opacity:.85;
  background:linear-gradient(90deg,var(--acc),var(--dca) 35%,var(--hold) 60%,var(--dist) 85%)}
.ss-rail i{position:absolute;top:-3px;width:2.5px;height:11px;background:var(--ink);
  border-radius:1px;transform:translateX(-50%);
  box-shadow:0 0 6px color-mix(in srgb,var(--ink) 80%,transparent)}
.ss-panel{position:absolute;right:40px;bottom:118px;width:300px;
  display:flex;flex-direction:column;gap:8px;padding:12px 14px;
  background:color-mix(in srgb,var(--bg) 28%,transparent);border:1px solid color-mix(in srgb,var(--border) 55%,transparent);
  border-radius:10px;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
#ssFab{width:100%;height:130px;display:block}
.ss-pressbar{height:5px;border-radius:3px;overflow:hidden;position:relative;
  background:color-mix(in srgb,var(--dist) 28%,transparent)}
.ss-pressbar i{display:block;height:100%;width:50%;
  background:color-mix(in srgb,var(--acc) 85%,transparent);transition:width .6s ease}
.ss-lab.dim{opacity:.75;letter-spacing:.1em}
@media (max-width:900px){.ss-panel{display:none}}

/* ---------- responsive ---------- */
@media (max-width:640px){
  .brand .sub{display:none}
  #asof{display:none}
  #globeCard .tlink{display:none}   /* provenance lives in the caption */
  .satsbtn{padding:5px 9px;letter-spacing:.08em}
  .hdr-right{gap:8px}
}
@media (max-width:1180px){
  html,body{height:auto}
  .app{height:auto}
  main{display:flex;flex-direction:column}
  .col{overflow:visible}
  .cwrap{min-height:300px;height:300px;flex:none}
  .card.grow{flex:none}
  #tape{max-height:330px}
  .gwrap{height:min(78vw,340px)}
  .row2{grid-template-columns:1fr}
  .blkwrap{min-height:min(78vw,340px)}
  .ss-stat b{font-size:20px}
  .ss-tl{top:18px;left:18px}.ss-tr{top:18px;right:18px}
  .ss-bl{bottom:18px;left:18px}.ss-br{bottom:18px;right:18px}
}
@media (min-width:1181px){
  .cwrap{min-height:0}
  /* the labs make the center column scroll, and a flex:1 card in an
     overflowing column shrinks to its title — pin a real plot height */
  #chartCard{min-height:clamp(320px,42vh,520px)}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .marker,.track i,.callbar i{transition:none}
  .tickertrack{animation:none}
  .ticker{overflow-x:auto;scrollbar-width:thin}
  #tape li.new{animation:none}
  .livedot,.wsdot.live{animation:none}
  .skel #riskBig,.skel #price,.skel #orderLine{animation:none}
}


/* ================= LABS (one self-contained card per file) ============= */

/* labs share the fabric's column: keep the grow card from collapsing under
   them (its fixed-height mosaic would spill over the cards below) */
#tapeCard{min-height:560px}

/* ---------- lab: strike ladder ---------- */
#ladderCard .lhead{display:grid;grid-template-columns:76px 1fr 42px;gap:10px;
  padding:0 2px;font:600 8px var(--mono);color:var(--muted);
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:7px}
#ladderCard .lhead span:first-child,
#ladderCard .lhead span:last-child{text-align:right}
#ladderCard .lrows{position:relative}
#ladderCard .lrow{display:grid;grid-template-columns:76px 1fr 42px;gap:10px;
  align-items:center;height:22px;padding:0 2px;border-radius:5px;
  transition:background .3s}
#ladderCard .lstrike{font:600 10px var(--mono);color:var(--muted);
  text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
#ladderCard .lrow.atm{background:linear-gradient(90deg,color-mix(in srgb,var(--muted) 13%,transparent),
  color-mix(in srgb,var(--muted) 2%,transparent) 78%);box-shadow:inset 0 0 14px color-mix(in srgb,var(--ink) 5%,transparent)}
#ladderCard .lrow.atm .lstrike{color:var(--ink)}
#ladderCard .lrow.atm .lstrike::before{content:"▸ ";color:var(--hold)}
/* the departure board: bars are segmented LED strips — 20 discrete cells
   light left to right; the red field shows through the unlit gaps */
#ladderCard .lbar{position:relative;height:7px;border-radius:2px;
  overflow:hidden;background:
  repeating-linear-gradient(90deg,color-mix(in srgb,var(--dist) 17%,var(--bg)) 0,
    color-mix(in srgb,var(--dist) 17%,var(--bg)) calc(5% - 2px),
    var(--bg) calc(5% - 2px),var(--bg) 5%)}
#ladderCard .lbar i{display:block;height:100%;width:0;
  background:repeating-linear-gradient(90deg,
    color-mix(in srgb,var(--acc) 88%,var(--bg)) 0,var(--acc) calc(5% - 2px),
    var(--bg) calc(5% - 2px),var(--bg) 5%);
  box-shadow:0 0 8px color-mix(in srgb,var(--acc) 35%,transparent);transition:width .45s ease}
#ladderCard .lbar::after{content:"";position:absolute;left:50%;top:0;width:2px;
  height:100%;background:color-mix(in srgb,var(--ink) 50%,transparent)}
#ladderCard .lpct{font:600 10px var(--mono);color:var(--muted);
  text-align:right;font-variant-numeric:tabular-nums;overflow:hidden}
#ladderCard .lpct b{display:inline-block;font-weight:600}
#ladderCard .lpct b.roll{animation:ladRoll .35s cubic-bezier(.2,.9,.3,1)}
@keyframes ladRoll{from{transform:translateY(-115%);opacity:.2}
  to{transform:translateY(0);opacity:1}}
/* the ATM under-glow is one rail that GLIDES between rows */
#ladderCard .lrail{position:absolute;left:0;right:0;height:22px;
  border-radius:5px;pointer-events:none;
  background:linear-gradient(90deg,color-mix(in srgb,var(--hold) 12%,transparent),
    color-mix(in srgb,var(--hold) 2%,transparent) 78%);
  box-shadow:inset 0 0 14px color-mix(in srgb,var(--hold) 8%,transparent);
  transition:top .6s cubic-bezier(.22,1,.36,1)}
#ladderCard .lrow.atm{background:none;box-shadow:none}
/* the spot cursor is a scanning laser with a faint bloom */
#ladderCard .lspot{position:absolute;left:0;right:0;height:0;
  border-top:1px solid color-mix(in srgb,var(--ink) 55%,transparent);pointer-events:none;
  box-shadow:0 0 9px color-mix(in srgb,var(--ink) 50%,transparent);
  transition:top .6s cubic-bezier(.22,1,.36,1)}
#ladderCard .lspot b{position:absolute;left:88px;top:0;transform:translateY(-50%);
  font:600 8px var(--mono);letter-spacing:.08em;color:var(--ink);
  font-variant-numeric:tabular-nums;white-space:nowrap;
  background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--border);
  border-radius:4px;padding:1px 5px}
#ladderCard .lwarm{font:10px var(--mono);color:var(--muted);
  letter-spacing:.12em;text-align:center;padding:30px 0;
  animation:pulse 1.4s ease-in-out infinite}
#ladderCard .lfoot{font:9px var(--mono);color:var(--muted);
  letter-spacing:.06em;margin-top:10px;font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){
  #ladderCard .lrow,#ladderCard .lbar i,#ladderCard .lspot,
  #ladderCard .lrail{transition:none}
  #ladderCard .lwarm{animation:none}
  #ladderCard .lpct b.roll{animation:none}
}

/* ---------- lab: moscow time — a real Solari split-flap board ----------
   Each digit is a physical flap unit: two static half-plates with a hinge
   line, plus two animated flaps — the OLD top folds down (.ff), then the
   NEW bottom unfolds (.fb) — in CSS 3D under one perspective. */
#moscowCard{flex:none}
#moscowCard .mt-clock{display:flex;justify-content:center;align-items:center;
  gap:5px;font:700 44px/1 var(--mono);margin:4px 0 14px;
  font-variant-numeric:tabular-nums;perspective:420px}
#moscowCard .mt-f{position:relative;display:inline-block;width:.78em;
  height:1.14em;transform-style:preserve-3d}
#moscowCard .mt-f b{position:absolute;left:0;width:100%;height:50%;
  overflow:hidden;font-weight:700;color:var(--ink);
  background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 86%,var(--ink)) 0%,
    color-mix(in srgb,var(--panel) 95%,var(--ink)) 100%);
  border:1px solid color-mix(in srgb,var(--border-hi) 90%,transparent);box-sizing:border-box;
  backface-visibility:hidden}
#moscowCard .mt-f b i{font-style:normal;display:block;width:100%;
  height:1.14em;line-height:1.14em;text-align:center}
#moscowCard .mt-f .fu,#moscowCard .mt-f .ff{top:0;
  border-radius:.1em .1em 0 0;border-bottom:none}
#moscowCard .mt-f .fl,#moscowCard .mt-f .fb{bottom:0;
  border-radius:0 0 .1em .1em;border-top:none;
  background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 55%,var(--panel2)) 0%,
    var(--panel2) 100%)}
#moscowCard .mt-f .fl i,#moscowCard .mt-f .fb i{margin-top:-0.57em}
/* the hinge — a dark slit across the middle of every unit */
#moscowCard .mt-f::after{content:"";position:absolute;left:-1px;right:-1px;
  top:calc(50% - 1px);height:2px;background:var(--bg);z-index:4}
/* animated flaps exist only mid-flip */
#moscowCard .mt-f .ff,#moscowCard .mt-f .fb{visibility:hidden;z-index:3}
#moscowCard .mt-f.go .ff{visibility:visible;transform-origin:center bottom;
  animation:mtFold .22s ease-in forwards}
#moscowCard .mt-f.go .fb{visibility:visible;transform-origin:center top;
  transform:rotateX(88deg);
  animation:mtUnfold .26s .22s cubic-bezier(.2,.8,.3,1.1) forwards}
@keyframes mtFold{from{transform:rotateX(0);filter:brightness(1)}
  to{transform:rotateX(-88deg);filter:brightness(.55)}}
@keyframes mtUnfold{from{transform:rotateX(88deg);filter:brightness(1.35)}
  to{transform:rotateX(0);filter:brightness(1)}}
/* direction edge-light: the flipping plates catch green or red */
#moscowCard .mt-up .go b{color:color-mix(in srgb,var(--acc) 60%,#fff)}
#moscowCard .mt-dn .go b{color:color-mix(in srgb,var(--dist) 52%,#fff)}
#moscowCard .mt-c{color:var(--hold);font-size:.7em;
  text-shadow:0 0 10px color-mix(in srgb,var(--hold) 60%,transparent);
  animation:mtblink 1s steps(1) infinite}
#moscowCard .mt-sub{font:11px var(--mono);color:var(--muted);text-align:center;
  letter-spacing:.04em;font-variant-numeric:tabular-nums}
#moscowCard .mt-cap{font:10px var(--mono);color:var(--muted);opacity:.75;
  letter-spacing:.06em;margin-top:10px;text-align:center;line-height:1.5}
#moscowCard .mt-cap b{color:var(--acc);font-weight:600}
@keyframes mtblink{50%{opacity:.4}}
@media (prefers-reduced-motion:reduce){
  #moscowCard .mt-f.go .ff,#moscowCard .mt-f.go .fb{animation:none;
    visibility:hidden}
  #moscowCard .mt-c{animation:none}
}

/* ---------- lab: cycle rulers ---------- */
#rulersCard .rlwrap{position:relative;height:200px}
#rulersCard #rlCv{width:100%;height:100%;display:block}
#rulersCard .rl-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;
  margin-top:12px}
#rulersCard .rl-cell{display:flex;flex-direction:column;gap:4px;min-width:0}
#rulersCard .rl-lab{font:600 9px var(--mono);color:var(--muted);
  letter-spacing:.14em;white-space:nowrap}
#rulersCard .rl-cell b{font:700 20px/1 var(--mono);letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;white-space:nowrap}
#rulersCard .rl-sub{font:10px var(--mono);color:var(--muted);
  font-variant-numeric:tabular-nums;white-space:nowrap}
#rulersCard .rl-band{font:10px var(--mono);color:var(--muted);
  letter-spacing:.03em;font-variant-numeric:tabular-nums;
  border-top:1px solid var(--border);margin-top:12px;padding-top:10px}
#rulersCard .gcaption{margin-top:8px}

/* ---------- lab: block gong — the temple bell ---------- */
#convCard #gongBtn.ring{color:var(--hold);border-color:var(--hold);
  animation:gongRing 1.4s ease-out}
@keyframes gongRing{from{box-shadow:0 0 0 0 color-mix(in srgb,var(--hold) 45%,transparent)}
  to{box-shadow:0 0 0 12px color-mix(in srgb,var(--hold) 0%,transparent)}}
/* the bell swings from its hinge with decaying amplitude */
#convCard #gongBtn svg{transform-origin:50% 15%}
#convCard #gongBtn.swing svg{animation:gongSwing 1.9s ease-out}
@keyframes gongSwing{
  0%{transform:rotate(0)} 10%{transform:rotate(16deg)}
  26%{transform:rotate(-12deg)} 42%{transform:rotate(8deg)}
  58%{transform:rotate(-5deg)} 74%{transform:rotate(3deg)}
  88%{transform:rotate(-1.5deg)} 100%{transform:rotate(0)}}
/* whale tick: a micro-ripple confined to the button */
#convCard #gongBtn.blip{animation:gongBlip .5s ease-out}
@keyframes gongBlip{from{box-shadow:0 0 0 0 color-mix(in srgb,var(--blue) 40%,transparent)}
  to{box-shadow:0 0 0 6px color-mix(in srgb,var(--blue) 0%,transparent)}}
/* page-wide golden shockwave, centered on the bell; idle = invisible */
.gongwave{position:fixed;left:0;top:0;width:12px;height:12px;z-index:70;
  margin:-6px 0 0 -6px;border-radius:50%;pointer-events:none;opacity:0}
.gongwave.go{animation:gongWave 1.5s cubic-bezier(.1,.6,.3,1) forwards}
@keyframes gongWave{
  0%{opacity:1;transform:scale(1);
    box-shadow:0 0 0 2px color-mix(in srgb,var(--hold) 60%,transparent),0 0 40px 14px color-mix(in srgb,var(--hold) 28%,transparent)}
  100%{opacity:0;transform:scale(90);
    box-shadow:0 0 0 1px color-mix(in srgb,var(--hold) 0%,transparent),0 0 6px 2px color-mix(in srgb,var(--hold) 0%,transparent)}}
@media (prefers-reduced-motion:reduce){
  #convCard #gongBtn.ring,#convCard #gongBtn.swing svg,
  #convCard #gongBtn.blip{animation:none}
  #convCard #gongBtn.ring{box-shadow:0 0 0 3px color-mix(in srgb,var(--hold) 40%,transparent)}
  .gongwave.go{animation:none;opacity:0}
}

/* ---------- lab: fee weather ---------- */
#feeCard{flex:none}
#feeCv{width:100%;height:150px;display:block}
#feeCard .ftiers{display:flex;flex-direction:column;gap:5px;margin-top:12px}
#feeCard .ftrow{display:grid;grid-template-columns:70px 1fr 84px;gap:10px;
  align-items:center;font:10px var(--mono);color:var(--muted);
  letter-spacing:.02em;font-variant-numeric:tabular-nums}
#feeCard .ftrow b{font-weight:600;text-align:right;white-space:nowrap}
#feeCard .ftrow .track i{transition:width .6s ease,background .6s ease}
#feeCard .fclear{font:10px var(--mono);color:var(--muted);margin-top:11px;
  padding-top:9px;border-top:1px solid var(--border);letter-spacing:.02em;
  font-variant-numeric:tabular-nums}
#feeCard .fclear b{color:var(--blue);font-weight:600}
#feeCard .gcaption{margin-top:9px}
@media (prefers-reduced-motion:reduce){#feeCard .ftrow .track i{transition:none}}

/* ---------- lab: difficulty epoch — the instrument dial ---------- */
#epochCard .ep-dial{position:relative;height:168px;margin:2px 0 4px}
#epochCard #epDialCv{width:100%;height:100%;display:block}
#epochCard .ep-center{position:absolute;left:0;right:0;top:50%;
  transform:translateY(-38%);text-align:center;pointer-events:none}
#epochCard #epChange{font:700 27px/1 var(--mono);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;color:var(--muted)}
#epochCard .ep-estlab{display:block;font:600 8px var(--mono);
  color:var(--muted);letter-spacing:.16em;text-transform:uppercase;
  margin-top:5px}
#epochCard .ep-sub{font:11px var(--mono);color:var(--muted);margin:2px 0 10px;
  text-align:center}
#epochCard .ep-row{display:flex;justify-content:space-between;
  font:10px var(--mono);color:var(--muted);margin-top:9px;letter-spacing:.05em;
  font-variant-numeric:tabular-nums}
#epochCard .ep-row b{color:var(--ink);font-weight:600}
#epochCard .ep-bud{border-top:1px solid var(--border);margin-top:13px;
  padding-top:11px}
#epochCard .ep-budhead{display:flex;justify-content:space-between;
  align-items:baseline;font:600 9px var(--mono);color:var(--muted);
  letter-spacing:.14em}
#epochCard .ep-budhead b{font:700 11px var(--mono);color:var(--hold)}
/* the budget gauge: machined channel, steel-blue subsidy under amber fees */
#epochCard .ep-stack{position:relative;height:7px;border-radius:3px;
  overflow:hidden;margin-top:8px;
  background:
    repeating-linear-gradient(90deg,transparent 0,transparent 9%,
      color-mix(in srgb,var(--bg) 80%,transparent) 9%,color-mix(in srgb,var(--bg) 80%,transparent) 10%),
    linear-gradient(180deg,color-mix(in srgb,var(--blue) 40%,transparent),color-mix(in srgb,var(--blue) 16%,transparent));
  box-shadow:inset 0 1px 2px rgba(0,0,0,.5)}
#epochCard .ep-stack i{display:block;height:100%;width:0;min-width:2px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--hold) 80%,#fff),var(--hold));
  border-radius:3px 0 0 3px;box-shadow:0 0 8px color-mix(in srgb,var(--hold) 50%,transparent);
  transition:width .6s ease}
#epochCard .ep-budsub{font:10px var(--mono);color:var(--muted);margin-top:7px;
  letter-spacing:.02em;line-height:1.5;font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){#epochCard .ep-stack i{transition:none}}

/* ---------- lab: lightning pulse — electricity ---------- */
#lnCard .ln-hero{position:relative}
#lnCard #lnBolt{position:absolute;inset:-6px -4px;width:calc(100% + 8px);
  height:calc(100% + 12px);pointer-events:none;z-index:0}
#lnCard .ln-cap{position:relative;z-index:1}
#lnCard .ln-cap b.zap{animation:lnZap .4s steps(3)}
@keyframes lnZap{0%{color:var(--ink);text-shadow:0 0 26px color-mix(in srgb,var(--blue) 90%,transparent)}
  100%{color:var(--hold);text-shadow:0 0 30px color-mix(in srgb,var(--hold) 32%,transparent)}}
/* current drifts through the reachability split while the tab is visible */
#lnCard .ln-split i{position:relative}
#lnCard .ln-split i::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,0) 0,
    rgba(255,255,255,0) 6px,rgba(255,255,255,.22) 6px,
    rgba(255,255,255,.22) 8px);
  animation:lnDrift 1.6s linear infinite}
@keyframes lnDrift{from{background-position:0 0}to{background-position:14px 0}}
@media (prefers-reduced-motion:reduce){
  #lnCard .ln-cap b.zap{animation:none}
  #lnCard .ln-split i::after{animation:none;background:none}
}
#lnCard .ln-cap{display:flex;align-items:baseline;gap:8px}
#lnCard .ln-cap b{font:700 34px/1 var(--mono);letter-spacing:-.02em;
  color:var(--hold);text-shadow:0 0 30px color-mix(in srgb,var(--hold) 32%,transparent);
  font-variant-numeric:tabular-nums}
#lnCard .ln-unit{font:600 9px var(--mono);color:var(--muted);
  letter-spacing:.16em;text-transform:uppercase}
#lnCard .ln-delta{margin-left:auto;font:600 10px var(--mono);
  font-variant-numeric:tabular-nums;white-space:nowrap}
#lnCard .ln-sub{font:10px var(--mono);color:var(--muted);margin-top:6px;
  letter-spacing:.02em;font-variant-numeric:tabular-nums}
#lnCard #lnSpark{width:100%;height:36px;display:block;margin-top:9px}
#lnCard .ln-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
  margin-top:11px;padding-top:11px;border-top:1px solid var(--border)}
#lnCard .ln-grid span{font:9px var(--mono);color:var(--muted);
  letter-spacing:.1em;text-transform:uppercase}
#lnCard .ln-grid b{display:block;font:600 14px var(--mono);color:var(--ink);
  margin-top:3px;font-variant-numeric:tabular-nums}
#lnCard .ln-grid i{display:block;font:9px var(--mono);font-style:normal;
  color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}
#lnCard .ln-split{display:flex;height:5px;border-radius:3px;overflow:hidden;
  margin-top:12px;background:var(--bg)}
#lnCard .ln-split i{height:100%;width:0;transition:width .6s ease}
#lnCard .ln-split i:nth-child(1){background:var(--acc)}
#lnCard .ln-split i:nth-child(2){background:var(--blue)}
#lnCard .ln-split i:nth-child(3){background:var(--hold)}
#lnCard .ln-split i:nth-child(4){background:var(--muted);opacity:.55}
#lnCard .ln-splitcap{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;
  font:9px var(--mono);color:var(--muted);letter-spacing:.04em}
#lnCard .ln-splitcap b{color:var(--ink);font-weight:600;
  font-variant-numeric:tabular-nums}
#lnCard .ln-splitcap span::before{content:"";display:inline-block;width:7px;
  height:7px;border-radius:2px;margin-right:5px;vertical-align:-1px}
#lnCard .s-cl::before{background:var(--acc)}
#lnCard .s-bo::before{background:var(--blue)}
#lnCard .s-tor::before{background:var(--hold)}
#lnCard .s-pr::before{background:var(--muted);opacity:.55}
#lnCard .ln-topslab{font:600 9px var(--mono);color:var(--muted);
  letter-spacing:.18em;margin-top:13px;padding-top:11px;
  border-top:1px solid var(--border)}
#lnCard #lnTops{list-style:none;margin-top:6px;font:10px var(--mono)}
#lnCard #lnTops li{display:grid;grid-template-columns:auto 1fr auto auto;
  gap:9px;align-items:baseline;padding:3.5px 0;color:var(--muted);
  border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);font-variant-numeric:tabular-nums}
#lnCard #lnTops li:last-child{border-bottom:0}
#lnCard #lnTops .rk{color:var(--hold);font-weight:700}
#lnCard #lnTops .al{color:var(--ink);font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;min-width:0}
#lnCard #lnTops .cp{color:var(--hold);white-space:nowrap}
#lnCard #lnTops .ln-wait{display:block}
#lnCard .gcaption{text-align:left;margin-top:10px}
@media (prefers-reduced-motion:reduce){#lnCard .ln-split i{transition:none}}

/* ---------- lab: on-chain watch — whale sonar + block graffiti ---------- */
/* the sonar scope: contacts are txs, the beam re-illuminates them */
#whaleCard .wscope{height:118px;border-radius:8px;overflow:hidden;
  margin-bottom:10px;background:
  radial-gradient(90% 120% at 50% 50%, var(--space-hi) 0%, var(--space-lo) 100%);
  border:1px solid color-mix(in srgb,var(--acc) 18%,transparent)}
#whaleCard #whaleScope{width:100%;height:100%;display:block}
#whaleCard .wlist,#graffCard .glist{list-style:none;font:10px var(--mono)}
#whaleCard .wempty,#graffCard .gempty{padding:8px 0;color:var(--muted);
  font:10px var(--mono);letter-spacing:.08em}
#whaleCard .wrow{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;
  align-items:baseline;padding:4.5px 2px;border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);
  font-variant-numeric:tabular-nums;color:var(--muted)}
#whaleCard .wrow.fresh{animation:wSurface .7s cubic-bezier(.2,.8,.3,1)}
@keyframes wSurface{from{transform:translateY(9px);opacity:0}
  to{transform:translateY(0);opacity:1}}
#whaleCard .wrow:last-child{border-bottom:0}
#whaleCard .wamt{font:600 12px var(--mono);color:var(--blue);white-space:nowrap}
#whaleCard .wage{text-align:right;font-size:9px;white-space:nowrap}
#whaleCard .wrow.mega{background:linear-gradient(90deg,color-mix(in srgb,var(--hold) 9%,transparent),transparent 70%)}
#whaleCard .wrow.mega .wamt{color:var(--hold);
  text-shadow:0 0 12px color-mix(in srgb,var(--hold) 65%,transparent)}
#whaleCard .gcaption,#graffCard .gcaption{text-align:left;margin-top:10px}
/* the wall: a barely-there brick hint behind spray-stencil miner tags */
#graffCard .glist{padding:4px 2px;border-radius:8px;background:
  repeating-linear-gradient(0deg,transparent 0,transparent 17px,
    color-mix(in srgb,var(--border) 28%,transparent) 17px,color-mix(in srgb,var(--border) 28%,transparent) 18px),
  repeating-linear-gradient(90deg,transparent 0,transparent 46px,
    color-mix(in srgb,var(--border) 18%,transparent) 46px,color-mix(in srgb,var(--border) 18%,transparent) 47px)}
#graffCard .gtag{display:flex;gap:10px;align-items:baseline;padding:9px 4px 5px;
  transform:rotate(var(--tilt,0deg))}
#graffCard .gh{font:600 10px var(--mono);color:var(--hold);text-decoration:none;
  letter-spacing:.06em;white-space:nowrap;font-variant-numeric:tabular-nums}
#graffCard .gh:hover{color:var(--ink)}
#graffCard .gtag b{font:600 12px var(--mono);color:var(--ink);
  word-break:break-word;letter-spacing:.02em}
/* duotone spray edge, hued per miner (hash → one of five) */
#graffCard .g-h0 b{text-shadow:0 0 1px var(--hold),0 0 14px color-mix(in srgb,var(--hold) 50%,transparent)}
#graffCard .g-h1 b{text-shadow:0 0 1px var(--acc),0 0 14px color-mix(in srgb,var(--acc) 50%,transparent)}
#graffCard .g-h2 b{text-shadow:0 0 1px var(--blue),0 0 14px color-mix(in srgb,var(--blue) 55%,transparent)}
#graffCard .g-h3 b{text-shadow:0 0 1px var(--dca),0 0 14px color-mix(in srgb,var(--dca) 50%,transparent)}
#graffCard .g-h4 b{text-shadow:0 0 1px var(--dist),0 0 14px color-mix(in srgb,var(--dist) 45%,transparent)}
/* the typewriter caret while a fresh tag sprays on */
#graffCard .gtag b.typing::after{content:"▌";color:var(--ink);
  animation:mtblink .7s steps(1) infinite}
#graffCard .gage{margin-left:auto;font-size:9px;color:var(--muted);
  white-space:nowrap}
/* OP_RETURNs: little taped label strips under the tag */
#graffCard .gop{display:flex;gap:8px;align-items:baseline;margin:3px 0 3px 14px;
  padding:3px 8px;background:color-mix(in srgb,var(--panel) 75%,transparent);
  border:1px solid color-mix(in srgb,var(--border-hi) 55%,transparent);border-radius:3px;
  transform:rotate(-.4deg);width:fit-content;max-width:calc(100% - 16px)}
#graffCard .gol{font:700 8px var(--mono);letter-spacing:.1em;color:var(--blue);
  opacity:.7;flex:none}
#graffCard .got{color:var(--muted);word-break:break-word;line-height:1.45}
@media (prefers-reduced-motion:reduce){
  #whaleCard .wrow.fresh{animation:none}
  #graffCard .gtag b.typing::after{content:"";animation:none}
}

/* ---------- lab: leverage temp ---------- */
#levCard .lev-hero{display:flex;align-items:baseline;gap:8px}
#levCard .lev-hero b{font:700 30px/1 var(--mono);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
#levCard .lev-hero .unit{font:600 9px var(--mono);color:var(--muted);
  letter-spacing:.14em}
#levCard .lev-word{font:600 9px var(--mono);color:var(--muted);
  letter-spacing:.12em;text-transform:uppercase;margin-left:auto;
  text-align:right;max-width:46%;line-height:1.5}
/* the glass capillary: an inset glass tube whose liquid FILLS from the
   center toward the reading, wobbling as it arrives; bubbles drift toward
   the hot end when funding runs hot, frost creeps in when deeply negative */
#levCard .lev-thermo{position:relative;height:14px;border-radius:7px;
  margin-top:22px;overflow:hidden;
  background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 84%,#000) 0%,
    var(--panel) 55%,color-mix(in srgb,var(--panel) 84%,var(--blue)) 100%);
  border:1px solid var(--border-hi);
  box-shadow:inset 0 2px 4px rgba(0,0,0,.65),inset 0 -1px 2px color-mix(in srgb,var(--ink) 5%,transparent)}
#levCard .lev-thermo::before{content:"";position:absolute;left:2%;right:2%;
  top:2px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ink) 14%,transparent) 30%,
    color-mix(in srgb,var(--ink) 14%,transparent) 70%,transparent)}
#levCard .lev-thermo::after{content:"";position:absolute;left:50%;top:0;
  width:2px;height:100%;background:color-mix(in srgb,var(--ink) 35%,transparent)}
#levCard .lev-liq{position:absolute;top:3px;bottom:3px;left:50%;width:0;
  border-radius:4px;
  transition:width .9s cubic-bezier(.32,1.4,.4,1),left .9s cubic-bezier(.32,1.4,.4,1),
    background .6s,box-shadow .6s}
#levCard .lev-bub{position:absolute;top:50%;width:3px;height:3px;
  border-radius:50%;background:color-mix(in srgb,var(--ink) 50%,transparent);opacity:0;
  transform:translateY(-50%)}
#levCard .lev-thermo.hot .lev-bub{animation:levBub 3.2s linear infinite}
#levCard .lev-bub.b1{left:52%}
#levCard .lev-bub.b2{left:58%;animation-delay:-1.1s!important}
#levCard .lev-bub.b3{left:64%;animation-delay:-2.2s!important}
@keyframes levBub{0%{opacity:0;transform:translate(0,-50%) scale(.6)}
  15%{opacity:.7}85%{opacity:.5}
  100%{opacity:0;transform:translate(120px,-50%) scale(1)}}
#levCard .lev-frost{position:absolute;left:5px;top:50%;
  transform:translateY(-52%);font-size:8px;color:color-mix(in srgb,var(--blue) 85%,transparent);
  text-shadow:0 0 8px color-mix(in srgb,var(--blue) 80%,transparent);opacity:0;transition:opacity .8s}
#levCard .lev-thermo.cold .lev-frost{opacity:1}
#levCard .lev-vtick{position:absolute;top:-3px;width:2.5px;height:16px;
  border-radius:1px;background:var(--ink);transform:translateX(-50%);
  box-shadow:0 0 6px color-mix(in srgb,var(--ink) 75%,transparent);
  transition:left 1s cubic-bezier(.22,1,.36,1)}
#levCard .lev-vtick i{position:absolute;top:-11px;left:50%;
  transform:translateX(-50%);font:700 7px var(--mono);font-style:normal;
  letter-spacing:.08em;color:var(--muted)}
#levCard .lev-ends{display:flex;justify-content:space-between;
  font:8px var(--mono);color:var(--muted);letter-spacing:.1em;
  text-transform:uppercase;margin-top:7px}
#levCard .lev-rows{margin-top:12px;border-top:1px solid var(--border);
  padding-top:10px;display:flex;flex-direction:column;gap:7px}
#levCard .lev-row{display:grid;grid-template-columns:52px 1fr auto;gap:8px;
  font:10px var(--mono);color:var(--muted);align-items:baseline;
  font-variant-numeric:tabular-nums}
#levCard .lev-row .vn{font:600 9px var(--mono);letter-spacing:.12em;
  text-transform:uppercase}
#levCard .lev-row .v{color:var(--ink)}
#levCard .lev-row b{font:600 11px var(--mono);color:var(--ink);
  white-space:nowrap}
#levCard .lev-note{font:9px var(--mono);color:var(--muted);
  letter-spacing:.03em;margin-top:11px;line-height:1.7}
/* the carry slope: an inclined plane whose ball rolls toward whoever pays */
#levCard .lev-plane{display:flex;align-items:center;gap:10px;margin-top:12px}
#levCard .lp-bar{position:relative;flex:none;width:96px;height:2px;
  border-radius:1px;background:var(--border-hi);
  transform:rotate(var(--tilt,0deg));transition:transform .9s ease}
#levCard .lp-ball{position:absolute;top:-5px;left:50%;width:7px;height:7px;
  border-radius:50%;background:var(--hold);
  box-shadow:0 0 8px color-mix(in srgb,var(--hold) 60%,transparent);
  transition:left .9s cubic-bezier(.3,1.2,.4,1)}
#levCard .lev-plane.downright .lp-ball{left:78%}
#levCard .lev-plane:not(.downright) .lp-ball{left:12%}
#levCard .lp-lab{font:9px var(--mono);color:var(--muted);
  letter-spacing:.04em;line-height:1.5}
@media (prefers-reduced-motion:reduce){
  #levCard .lev-vtick,#levCard .lev-liq,#levCard .lp-bar,
  #levCard .lp-ball{transition:none}
  #levCard .lev-thermo.hot .lev-bub{animation:none}
}

/* ==================== appearance themes ==================== */
/* switcher: a palette button + popover in the header */
.themewrap{position:relative;display:inline-flex}
.thememenu{position:absolute;top:calc(100% + 8px);right:0;z-index:60;
  min-width:220px;padding:6px;border-radius:10px;
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--border-hi);
  box-shadow:0 18px 48px rgba(0,0,0,.5);
  display:flex;flex-direction:column;gap:2px}
.thememenu[hidden]{display:none}
.tm-item{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;
  gap:8px;background:transparent;border:1px solid transparent;border-radius:7px;
  padding:7px 9px;cursor:pointer;text-align:left;
  transition:border-color .15s,background .15s}
.tm-item:hover{border-color:var(--border-hi);
  background:color-mix(in srgb,var(--muted) 8%,transparent)}
.tm-item.on{border-color:var(--border-hi);
  background:color-mix(in srgb,var(--muted) 12%,transparent)}
.tm-dots{display:inline-flex;gap:3px;align-self:center}
.tm-dots i{width:8px;height:8px;border-radius:50%;
  border:1px solid rgba(255,255,255,.18)}
.tm-name{font:700 10px var(--mono);letter-spacing:.14em;color:var(--ink);white-space:nowrap}
.tm-sub{font:9px var(--mono);color:var(--muted);letter-spacing:.03em;
  white-space:nowrap}
.tm-item.on .tm-name::after{content:" ✓";color:var(--acc)}

/* ---------- midnight — lights off, signals on ---------- */
html[data-theme="midnight"]{
  --bg:#04050A; --panel:#0A0D15; --panel2:#070910; --border:#181E2C;
  --border-hi:#293347; --ink:#D9E1F2; --muted:#5C6880;
  --acc:#36E2A8; --dca:#A6DB4F; --hold:#F2B04A; --dist:#FF5A5A; --blue:#6FA8FF;
  --grad1:#0A1020; --grad2:#060B16;
  --slab-hi:#131A2A; --slab-lo:#0C1220;
  --space-hi:#0A1122; --space-lo:#03060D;
  --globe-a:#0C1526; --globe-b:#070D1A; --globe-c:#030711;
}

/* ---------- matrix — phosphor green on black ---------- */
html[data-theme="matrix"]{
  --bg:#010401; --panel:#041008; --panel2:#020903; --border:#0D2E17;
  --border-hi:#17542B; --ink:#BFFFD0; --muted:#3F8A57;
  --acc:#00FF6E; --dca:#7DE838; --hold:#D8E23C; --dist:#FF4444; --blue:#38E0C0;
  --grad1:#06180B; --grad2:#030F06;
  --slab-hi:#0A2413; --slab-lo:#051A0C;
  --space-hi:#07200F; --space-lo:#010702;
  --globe-a:#0A2413; --globe-b:#051808; --globe-c:#020B04;
}
/* CRT scanlines over the whole terminal + a hint of phosphor bloom */
html[data-theme="matrix"] body::after{content:"";position:fixed;inset:0;
  pointer-events:none;z-index:98;background:repeating-linear-gradient(0deg,
    rgba(0,255,110,.035) 0 1px,transparent 1px 3px)}
html[data-theme="matrix"] .brand,
html[data-theme="matrix"] .cardtitle{
  text-shadow:0 0 8px color-mix(in srgb,var(--acc) 25%,transparent)}
@media (prefers-reduced-motion:no-preference){
  html[data-theme="matrix"] .livedot{
    box-shadow:0 0 10px color-mix(in srgb,var(--acc) 80%,transparent)}
}

/* ---------- gilded — true black · white · gold ----------
   The cash-app read: a pure black ground, flat charcoal surfaces with no
   hairlines, white sans numerals, and gold spent in exactly two places —
   the price line and the call-to-action pill. Data rows stay monospace. */
html[data-theme="gilded"]{
  --bg:#000000; --panel:#141414; --panel2:#141414; --border:#242424;
  --border-hi:#343434; --ink:#FFFFFF; --muted:#8C8C8C;
  --acc:#2DBE6C; --dca:#A3B85A; --hold:#DEC27F; --dist:#E4574F; --blue:#B9A277;
  --grad1:#000000; --grad2:#000000;
  --slab-hi:#1E1E1E; --slab-lo:#121212;
  --space-hi:#161616; --space-lo:#000000;
  --globe-a:#1C1C1C; --globe-b:#121212; --globe-c:#0A0A0A;
  --gold-hi:#F6EED8; --gold:#DEC27F; --gold-lo:#B08F52;
  --fill:#1F1F1F; --fill-hi:#2A2A2A;       /* control surfaces */
  --mono:var(--sans);                      /* the UI speaks sans… */
  --radius:20px;
}
/* …while anything tabular keeps the true monospace */
html[data-theme="gilded"] #tape,
html[data-theme="gilded"] #callLog,
html[data-theme="gilded"] .comp-head,
html[data-theme="gilded"] .formula,
html[data-theme="gilded"] .dmrow,
html[data-theme="gilded"] .exchip,
html[data-theme="gilded"] .tip,
html[data-theme="gilded"] .blk-hash,
html[data-theme="gilded"] .don-addr code,
html[data-theme="gilded"] #ladderCard .lstrike,
html[data-theme="gilded"] #ladderCard .lpct,
html[data-theme="gilded"] #ladderCard .lspot b,
html[data-theme="gilded"] #moscowCard .mt-clock,
html[data-theme="gilded"] #feeCard .ftrow,
html[data-theme="gilded"] #lnCard #lnTops,
html[data-theme="gilded"] #whaleCard .wlist,
html[data-theme="gilded"] #graffCard .glist,
html[data-theme="gilded"] #levCard .lev-row{--mono:var(--code)}

/* ground + surfaces: flat, borderless, generously rounded */
html[data-theme="gilded"] .card{background:var(--panel);border-color:transparent;
  box-shadow:none}
html[data-theme="gilded"] .card:hover{border-color:transparent;background:var(--panel)}
html[data-theme="gilded"] .ticker,
html[data-theme="gilded"] .thememenu,
html[data-theme="gilded"] dialog{background:var(--panel);border-color:transparent}
html[data-theme="gilded"] .ticker{border-radius:14px}
html[data-theme="gilded"] dialog{border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.8)}
html[data-theme="gilded"] dialog::backdrop{background:rgba(0,0,0,.72)}
html[data-theme="gilded"] .thememenu{border-radius:16px;box-shadow:0 18px 48px rgba(0,0,0,.7)}
html[data-theme="gilded"] .tm-item{border-radius:10px}
html[data-theme="gilded"] .tm-item:hover,
html[data-theme="gilded"] .tm-item.on{border-color:transparent;background:var(--fill)}
html[data-theme="gilded"] .tm-item.on .tm-name::after{color:var(--gold)}
html[data-theme="gilded"] .tip{background:var(--fill);border-color:transparent;
  border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.6)}
html[data-theme="gilded"] .banner{border-color:transparent;border-radius:14px}
html[data-theme="gilded"] .col{scrollbar-color:var(--fill-hi) transparent}
html[data-theme="gilded"] .col::-webkit-scrollbar-thumb{background:var(--fill-hi)}
html[data-theme="gilded"] .track{background:#262626}
html[data-theme="gilded"] .fabwrap{background:#0A0A0A;border-radius:12px}
html[data-theme="gilded"] .ss-panel{background:rgba(20,20,20,.72);
  border-color:transparent;border-radius:16px}
html[data-theme="gilded"] #whaleCard .wscope{border-color:transparent;
  background:radial-gradient(90% 120% at 50% 50%,#101010 0%,#000 100%)}
html[data-theme="gilded"] #graffCard .gop{border-color:transparent;background:var(--fill)}
html[data-theme="gilded"] #ladderCard .lspot b{border-color:transparent;background:var(--fill-hi)}
html[data-theme="gilded"] #levCard .lev-thermo{border-color:transparent;
  background:var(--fill);box-shadow:inset 0 2px 4px rgba(0,0,0,.6)}
html[data-theme="gilded"] .don-qr img{border-radius:18px}

/* controls: filled pills instead of outlines */
html[data-theme="gilded"] .iconbtn,
html[data-theme="gilded"] .exchip,
html[data-theme="gilded"] .don-tab,
html[data-theme="gilded"] .don-addr,
html[data-theme="gilded"] .blk-close,
html[data-theme="gilded"] input{border-color:transparent;background:var(--fill)}
html[data-theme="gilded"] .iconbtn{border-radius:999px;padding:7px 9px}
html[data-theme="gilded"] .cardtitle .iconbtn{padding:5px 7px}
html[data-theme="gilded"] .iconbtn:hover,
html[data-theme="gilded"] .exchip:hover,
html[data-theme="gilded"] .don-tab:hover,
html[data-theme="gilded"] .don-addr:hover,
html[data-theme="gilded"] input:hover{border-color:transparent;background:var(--fill-hi)}
html[data-theme="gilded"] .iconbtn[aria-pressed="true"]{color:var(--gold);
  border-color:transparent;background:var(--fill-hi);box-shadow:none}
html[data-theme="gilded"] .don-tab{border-radius:999px}
html[data-theme="gilded"] .don-tab.active{border-color:transparent;
  background:var(--fill-hi);color:var(--gold)}
html[data-theme="gilded"] .don-addr{border-radius:14px}
html[data-theme="gilded"] .don-addr.copied{border-color:transparent;
  background:color-mix(in srgb,var(--acc) 18%,var(--fill))}
html[data-theme="gilded"] .don-qr a:hover{box-shadow:none;opacity:.92}
html[data-theme="gilded"] input{border-radius:12px}
html[data-theme="gilded"] .segbtn{background:transparent;border-color:transparent;
  border-radius:999px;padding:5px 10px;font-size:10px;letter-spacing:0}
html[data-theme="gilded"] .segbtn.on{background:var(--fill-hi);color:var(--ink);
  border-color:transparent;font-weight:700}
html[data-theme="gilded"] .call-actions .segbtn{background:var(--fill)}
html[data-theme="gilded"] .call-actions .segbtn:hover{background:var(--fill-hi)}
html[data-theme="gilded"] .lab{border-color:transparent;background:var(--fill);
  color:var(--muted);opacity:.75;border-radius:999px;padding:2px 7px}
html[data-theme="gilded"] .satsbtn{background:var(--fill);border-color:transparent;
  color:var(--gold);animation:none;letter-spacing:.06em}
html[data-theme="gilded"] .satsbtn:hover{background:var(--fill-hi);
  color:var(--gold-hi);box-shadow:none}
/* gold is the call to action: the zone pill fills solid, black type */
html[data-theme="gilded"] .pill{background:var(--gold);color:#000;
  border-color:transparent;font-weight:700;letter-spacing:.04em;padding:8px 16px}

/* type: white sans numerals, quiet labels; gold only at the brand mark */
html[data-theme="gilded"] .brand{letter-spacing:.1em}
html[data-theme="gilded"] .titem .src{color:var(--muted)}
html[data-theme="gilded"] .brand .mark{color:var(--gold);text-shadow:none}
html[data-theme="gilded"] #donate .cardtitle .mark{color:var(--gold);text-shadow:none}
html[data-theme="gilded"] .cardtitle{font-size:11px;letter-spacing:.1em}
html[data-theme="gilded"] .cardtitle::before{display:none}
html[data-theme="gilded"] #riskBig{font-size:54px;letter-spacing:-.035em;
  text-shadow:none!important}
html[data-theme="gilded"] .hero-btns{flex:none}
html[data-theme="gilded"] #price{color:var(--ink);font-weight:500}
html[data-theme="gilded"] .rail{box-shadow:none}
html[data-theme="gilded"] .marker{filter:none}
html[data-theme="gilded"] .tick{background:var(--panel)}
html[data-theme="gilded"] .zonestrip span{letter-spacing:.04em;font-weight:500}
html[data-theme="gilded"] #hvCount,
html[data-theme="gilded"] #moscowCard .mt-clock{color:var(--ink)}
html[data-theme="gilded"] #moscowCard .mt-f b{color:var(--ink);
  background:#262626;border-color:transparent}
html[data-theme="gilded"] #moscowCard .mt-f .fl,
html[data-theme="gilded"] #moscowCard .mt-f .fb{background:#1C1C1C}
html[data-theme="gilded"] #moscowCard .mt-f::after{background:var(--panel)}
html[data-theme="gilded"] #moscowCard .mt-c{color:var(--gold);text-shadow:none}
html[data-theme="gilded"] .callbar::after,
html[data-theme="gilded"] .pressbar::after{background:var(--panel)}

/* lab cards: same flat language — no LED glows, brick textures, or
   skeuomorphic gauges; unlit gaps are the card, not the void */
html[data-theme="gilded"] #ladderCard .lbar{background:
  repeating-linear-gradient(90deg,color-mix(in srgb,var(--dist) 17%,var(--panel)) 0,
    color-mix(in srgb,var(--dist) 17%,var(--panel)) calc(5% - 2px),
    var(--panel) calc(5% - 2px),var(--panel) 5%)}
html[data-theme="gilded"] #ladderCard .lbar i{box-shadow:none;background:
  repeating-linear-gradient(90deg,var(--acc) 0,var(--acc) calc(5% - 2px),
    var(--panel) calc(5% - 2px),var(--panel) 5%)}
html[data-theme="gilded"] #ladderCard .lrail{background:var(--fill);box-shadow:none}
html[data-theme="gilded"] #ladderCard .lspot{box-shadow:none;
  border-top-color:color-mix(in srgb,var(--ink) 35%,transparent)}
html[data-theme="gilded"] #graffCard .glist{background:none}
html[data-theme="gilded"] #graffCard .gtag b{text-shadow:none}
html[data-theme="gilded"] #lnCard .ln-cap b{color:var(--ink);text-shadow:none}
html[data-theme="gilded"] #lnCard .ln-cap b.zap{animation:none}
html[data-theme="gilded"] #lnCard .ln-split{background:#262626}
html[data-theme="gilded"] #levCard #levApr{text-shadow:none!important}
html[data-theme="gilded"] #levCard .lev-liq{box-shadow:none!important}
html[data-theme="gilded"] #levCard .lev-vtick,
html[data-theme="gilded"] #levCard .lp-ball{box-shadow:none}
html[data-theme="gilded"] #whaleCard .wrow.mega{background:var(--fill);border-radius:6px}
html[data-theme="gilded"] #whaleCard .wrow.mega .wamt{text-shadow:none}
html[data-theme="gilded"] #epochCard .ep-stack{background:#262626;box-shadow:none}
html[data-theme="gilded"] #epochCard .ep-stack i{background:var(--gold);box-shadow:none}
/* status dots and markers: solid, no bloom */
html[data-theme="gilded"] .wsdot.live,
html[data-theme="gilded"] .exchip.live .dot,
html[data-theme="gilded"] .ss-rail i{box-shadow:none}
html[data-theme="gilded"] .exchip.conn .dot{border-color:var(--muted)}
/* screensaver captions clear 4.5:1 on the black ground */
html[data-theme="gilded"] .ss-lab.dim{opacity:1}
html[data-theme="gilded"] .ss-hint{opacity:.85}
