@font-face{font-family:Inter;src:url(fonts/Inter-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:JBM;src:url(fonts/JetBrainsMono.woff2) format("woff2");font-weight:100 800;font-display:swap}
:root{--acr:247,147,26;--t1r:245,245,247;--fgr:255,255,255;--gnr:48,209,88;--rd:#FF453A;--ac:var(--or);--fc:var(--or);--hl:var(--or);--cell:#0A0A0B;--cell2:#0E0E10;--glow:none;--scan:0;--bg:#050506;--pn:rgba(255,255,255,.022);--bd:rgba(255,255,255,.085);--bd2:rgba(255,255,255,.14);--t1:#F5F5F7;--t2:#A1A1A6;--t3:#6E6E73;--or:#F7931A;--gn:#30D158;--mu:#C9A35A;
--sans:Inter,"PingFang TC","Noto Sans TC","Noto Sans CJK TC","Microsoft JhengHei",system-ui,sans-serif;--mono:JBM,"JetBrains Mono",ui-monospace,Menlo,monospace}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--t1);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}
body{background:radial-gradient(900px 420px at 15% -8%,rgba(var(--acr),.07),transparent 60%),var(--bg);min-height:100vh}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.term{max-width:1280px;margin:0 auto;padding:12px 12px 28px}
/* window bar */
.win{display:flex;align-items:center;gap:10px;height:34px;padding:0 12px;border:1px solid var(--bd);border-radius:12px 12px 0 0;background:rgba(var(--fgr),.03);font-family:var(--mono);font-size:13px;color:var(--t3)}
.win .dots{display:flex;gap:6px}.win .dots i{width:10px;height:10px;border-radius:50%;background:rgba(var(--fgr),.22)}
.win .tt{flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.win .snap{white-space:nowrap}
.frame{border:1px solid var(--bd);border-top:0;border-radius:0 0 12px 12px;padding:12px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr);
grid-template-areas:"hd" "flow" "tabs" "chain" "today" "latest" "log" "cum" "sim" "spread" "cex" "life" "rival" "heat" "liq" "foot"}
.pn{background:var(--pn);border:1px solid var(--bd);border-radius:10px;padding:14px;min-width:0}
.ph{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-family:var(--mono);font-size:13px;color:var(--t3);letter-spacing:.02em}
.ph b{font-family:var(--sans);font-size:15px;color:var(--t1);font-weight:650;letter-spacing:0}.ph .r{margin-left:auto;white-space:nowrap}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:5px;border:1px solid var(--bd2);font-family:var(--mono);font-size:13px;color:var(--t2);white-space:nowrap;line-height:1}
.tag.on{border-color:rgba(var(--acr),.55);color:var(--ac);background:rgba(var(--acr),.08)}
.tag.ok{border-color:rgba(var(--gnr),.35);color:var(--gn)}
/* header */
.hd{grid-area:hd;display:grid;gap:14px}
.brand{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.brand img{width:30px;height:36px}
.brand h1{font-size:22px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}
.brand .sp{flex:1}
.lang{display:flex;border:1px solid var(--bd2);border-radius:7px;overflow:hidden}
.lang button{font-family:var(--mono);font-size:13px;color:var(--t3);padding:5px 8px;min-height:30px}
.lang button.on{color:var(--bg);background:var(--hl);font-weight:600}
.main{font-size:13px;color:var(--t2);border:1px solid var(--bd2);border-radius:7px;padding:5px 9px;min-height:30px;display:inline-flex;align-items:center;white-space:nowrap}
.stl{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-family:var(--mono);font-size:13px;color:var(--t2)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--gn);box-shadow:0 0 0 0 rgba(var(--gnr),.5);animation:pl 2s infinite;display:inline-block}
.dot.lag{background:var(--mu);animation:none}.dot.off{background:var(--t3);animation:none}
@keyframes pl{0%{box-shadow:0 0 0 0 rgba(var(--gnr),.45)}70%{box-shadow:0 0 0 7px rgba(var(--gnr),0)}100%{box-shadow:0 0 0 0 rgba(var(--gnr),0)}}
.stl .lv{display:inline-flex;align-items:center;gap:7px;color:var(--t1)}
.hero{display:grid;gap:12px}
.hero .lb{font-size:15px;color:var(--t2);margin-bottom:2px}
.big{font-family:var(--mono);font-weight:700;font-size:46px;letter-spacing:-.03em;line-height:1.05;white-space:nowrap}
.big .c{font-size:.55em;color:var(--t2);margin-right:2px;vertical-align:.5em;font-weight:600}.big .p{color:var(--ac)}.big .d{color:var(--t3)}
.ctr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--bd);border-radius:10px;overflow:hidden}
.ctr div{padding:10px 12px;border-right:1px solid var(--bd);border-bottom:1px solid var(--bd);min-width:0}
.ctr div:nth-child(2n){border-right:0}.ctr div:nth-child(n+3){border-bottom:0}
.ctr dt{font-size:13px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctr dd{font-family:var(--mono);font-size:17px;font-weight:600;margin-top:3px;white-space:nowrap}
/* flow */
.flow{grid-area:flow}
.mods{position:relative;display:grid;gap:8px}
.rail{position:absolute;left:21px;top:22px;bottom:22px;width:1px;background:linear-gradient(var(--bd2),var(--bd2))}
.rail i{position:absolute;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--ac);box-shadow:0 0 10px var(--ac);top:0;animation:rd 4.8s linear infinite}
@keyframes rd{0%{top:0;opacity:0}6%{opacity:1}94%{opacity:1}100%{top:100%;opacity:0}}
.mod{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 10px 10px 6px;border:1px solid var(--bd);border-radius:9px;background:var(--cell);transition:border-color .3s,background .3s}
.mod .g{width:30px;height:30px;border-radius:7px;border:1px solid var(--bd2);display:grid;place-items:center;font-family:var(--mono);font-size:14px;color:var(--t2);background:var(--cell2)}
.mod h3{font-size:15px;font-weight:650}
.mod p{font-size:13px;color:var(--t3);margin-top:2px}
.mod .m{font-family:var(--mono);font-size:13px;color:var(--t2);margin-top:4px}
.mod .m b{color:var(--t1);font-weight:600}
.mod.on{border-color:rgba(var(--acr),.5);background:rgba(var(--acr),.04)}
.mod.on .g{border-color:rgba(var(--acr),.6);color:var(--ac)}
/* chains */
.chain{grid-area:chain}
.cg{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cb{display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:8px;row-gap:2px;padding:9px 10px;border:1px solid var(--bd);border-radius:8px;background:var(--cell);text-align:left;min-height:46px}
.cb img{width:18px;height:18px;border-radius:50%}
.cb .n{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cb .s{grid-column:2;font-family:var(--mono);font-size:13px;color:var(--t3);white-space:nowrap}
.cb .s .dot{width:6px;height:6px;animation:none;margin-right:5px;vertical-align:1px}
.cb.on{border-color:var(--hl);background:rgba(var(--acr),.06)}
.cb.on .n{color:var(--hl);font-weight:600}
.cb.hide{display:none}
.cmore{grid-column:1/-1;font-family:var(--mono);font-size:13px;color:var(--t2);border:1px dashed var(--bd2);border-radius:8px;min-height:40px}
/* today */
.today{grid-area:today}
.today svg{display:block;width:100%;height:auto;overflow:visible}
.ax{display:flex;justify-content:space-between;font-family:var(--mono);font-size:13px;color:var(--t3);margin-top:6px}
/* latest */
.latest{grid-area:latest;display:none}
.lt-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lt-h .ch{display:inline-flex;align-items:center;gap:7px;font-size:15px;font-weight:600}
.lt-h .ch img{width:18px;height:18px}
.lt-h time{margin-left:auto;font-family:var(--mono);font-size:13px;color:var(--t3)}
.lt-v{font-family:var(--mono);font-size:30px;font-weight:700;color:var(--gn);margin:10px 0 8px;letter-spacing:-.02em}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13px}
.kv dt{color:var(--t3)}.kv dd{font-family:var(--mono);color:var(--t1);text-align:right;overflow-wrap:anywhere}
.why{margin-top:12px;padding:10px;border-left:2px solid var(--ac);background:rgba(var(--acr),.04);border-radius:0 6px 6px 0;font-size:13px;color:var(--t2);line-height:1.6}
.why b{color:var(--ac);font-weight:600;margin-right:6px}
.lnk{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-family:var(--mono);font-size:13px;color:var(--t2)}
.lnk a:hover{color:var(--ac)}
/* log */
.log{grid-area:log}
.seg{display:inline-flex;border:1px solid var(--bd2);border-radius:7px;overflow:hidden;margin-left:auto}
.seg button{font-size:13px;color:var(--t2);padding:6px 10px;min-height:32px;white-space:nowrap}
.seg button.on{background:var(--hl);color:var(--bg);font-weight:600}
.cmd{font-family:var(--mono);font-size:13px;color:var(--t2);margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmd span{color:var(--ac)}
.note{font-size:13px;color:var(--t3);margin:-2px 0 8px}
.ll{list-style:none;border-top:1px solid var(--bd)}
.ll li{padding:10px 8px 10px 10px;border-bottom:1px solid var(--bd);border-left:2px solid transparent;cursor:pointer;animation:in .45s both}
.ll li.sel{border-left-color:var(--ac);background:rgba(var(--acr),.045)}
@keyframes in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.r1{display:flex;align-items:center;gap:6px 8px;min-width:0;flex-wrap:wrap}
.r1 time{font-family:var(--mono);font-size:13px;color:var(--t3);white-space:nowrap}
.r1 .ch{display:inline-flex;align-items:center;gap:6px;font-size:15px;white-space:nowrap;min-width:0}
.r1 .ch img{width:16px;height:16px}
.r1 .v{margin-left:auto;font-family:var(--mono);font-size:15px;font-weight:600;color:var(--gn);white-space:nowrap}
.r2{font-size:13px;color:var(--t2);margin-top:5px;line-height:1.5;overflow-wrap:anywhere}
.r2 b{color:var(--ac);font-weight:500;margin-right:6px}
.r2 .k{font-family:var(--mono)}
.r3{display:flex;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:13px;color:var(--t3);margin-top:4px}
.r3 a{color:var(--t2)}
.cur{display:inline-block;width:8px;height:15px;background:var(--ac);vertical-align:-2px;animation:bl 1.1s steps(1) infinite}
@keyframes bl{50%{opacity:0}}
.lmore{width:100%;margin-top:10px;min-height:42px;border:1px solid var(--bd2);border-radius:8px;font-size:15px;color:var(--t2)}
/* cum */
.cum{grid-area:cum}
.cum svg{display:block;width:100%;height:auto}
.sv{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:8px}
.sv .a{font-size:13px;color:var(--t3)}.sv .a b{display:block;font-family:var(--mono);font-size:15px;color:var(--t2);font-weight:500;margin-top:2px}
.sv .z{text-align:right;font-size:13px;color:var(--t3)}.sv .z b{display:block;font-family:var(--mono);font-size:22px;color:var(--t1);font-weight:700;margin-top:2px}
.bar{height:6px;border-radius:3px;background:rgba(var(--fgr),.06);overflow:hidden;margin:10px 0 12px}
.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,rgba(var(--acr),.35),var(--ac));transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.cs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cs div{border:1px solid var(--bd);border-radius:8px;padding:8px 10px;min-width:0}
.cs dt{font-size:13px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cs dd{font-family:var(--mono);font-size:15px;font-weight:600;margin-top:2px;white-space:nowrap}
.cs dd small{display:block;font-size:13px;color:var(--t3);font-weight:400}
.foot{grid-area:foot;font-size:13px;color:var(--t3);line-height:1.6;text-align:center;padding:4px 8px}
@media (min-width:1024px){
 .term{padding:24px}
 .frame{padding:14px;gap:14px;grid-template-columns:300px minmax(0,1fr) 360px;grid-template-areas:"hd hd hd" "flow chain latest" "flow today latest" "spread spread cex" "sim rival rival" "sim liq liq" "life heat heat" "cum log log" "foot foot foot";align-items:start}
 .tabs{display:none!important}
 .frame>.pn{display:block!important}
 .spread,.cex,.life,.heat,.rival,.liq,.sim{align-self:stretch}
 .sim .bn{font-size:26px}
 .hd{grid-template-columns:minmax(0,1fr) auto;align-items:center}
 .hero{grid-template-columns:auto auto;align-items:center;gap:22px}
 .big{font-size:56px}
 .ctr{grid-template-columns:repeat(2,minmax(150px,1fr))}
 .flow,.cum{align-self:stretch}
 .cg{grid-template-columns:repeat(4,1fr)}
 .cb.hide{display:grid}.cmore{display:none}
 .latest{display:block;align-self:stretch}
 .ll{max-height:620px;overflow:auto}
 .lmore{display:none}
}

/* mobile tabs */
.tabs{grid-area:tabs;position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:8px 2px;margin:-4px -2px;background:linear-gradient(var(--bg) 80%,rgba(5,5,6,0));-webkit-mask:linear-gradient(90deg,#000 88%,transparent)}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:none;font-size:15px;color:var(--t2);border:1px solid var(--bd2);border-radius:8px;padding:6px 12px;min-height:36px;white-space:nowrap}
.tabs button.on{background:var(--hl);border-color:var(--hl);color:var(--bg);font-weight:600}
.frame.tabbed>.pn[data-tab]{display:none}
.frame.tabbed>.pn[data-tab].show{display:block}
.mock{border-color:rgba(201,163,90,.45);color:var(--mu)}
/* sim */
.sim .top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-bottom:12px}
.sim .lb{font-size:13px;color:var(--t3)}
.sim .bn{font-family:var(--mono);font-size:30px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}
.sim .hr{text-align:right}.sim .hr b{display:block;font-family:var(--mono);font-size:22px;font-weight:700;color:var(--t1)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{font-weight:400;color:var(--t3);text-align:right;padding:6px 4px;border-bottom:1px solid var(--bd);white-space:nowrap}
th:first-child,td:first-child{text-align:left}
td{font-family:var(--mono);text-align:right;padding:7px 4px;border-bottom:1px solid var(--bd);white-space:nowrap;color:var(--t1)}
td.g{color:var(--gn)}td.r{color:var(--rd)}td.d{color:var(--t3)}
.sub{font-family:var(--mono);font-size:13px;color:var(--t3);margin:14px 0 6px}
.hit{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gn);margin-right:6px;vertical-align:1px}.hit.no{background:var(--rd)}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* spread matrix */
.mx td{text-align:center;padding:3px}
.mx td:first-child{font-family:var(--sans);font-size:13px;color:var(--t2);text-align:left;padding-right:8px}
.mx th{text-align:center;font-size:13px;padding:4px 3px}
.mx .c{display:block;border-radius:5px;padding:7px 2px;font-size:13px;min-width:48px;border:1px solid transparent}
.mx .c.top{border-color:var(--ac);color:var(--ac);font-weight:700}
.mx .c.na{color:var(--t3)}
/* cex */
.cex .bn{font-family:var(--mono);font-size:30px;font-weight:700}
.cex .pr{display:flex;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:13px;color:var(--t3);margin:6px 0 10px;flex-wrap:wrap}
.cex .pr b{color:var(--t1);font-weight:500}
.cex svg{display:block;width:100%;height:auto}
.prs{display:flex;gap:6px;margin-bottom:10px}
.prs button{font-family:var(--mono);font-size:13px;color:var(--t2);border:1px solid var(--bd2);border-radius:6px;padding:4px 9px;min-height:30px}
.prs button.on{border-color:var(--ac);color:var(--ac)}
/* lifetime */
.hist{display:flex;align-items:flex-end;gap:6px;height:130px;padding-top:18px;position:relative}
.hist div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.hist i{display:block;width:100%;border-radius:3px 3px 0 0;background:rgba(var(--fgr),.16)}
.hist div.md i{background:var(--ac)}
.hist span{font-family:var(--mono);font-size:13px;color:var(--t3)}
.hist em{font-style:normal;font-family:var(--mono);font-size:13px;color:var(--t2)}
.hx{display:flex;gap:6px;margin-top:6px}.hx span{flex:1;text-align:center;font-family:var(--mono);font-size:13px;color:var(--t3)}
.kpi{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:6px;font-size:13px;color:var(--t3)}.kpi b{display:block;font-family:var(--mono);font-size:22px;color:var(--t1);font-weight:700}
.kpi b.o{color:var(--ac)}
/* rival */
.rv .w{display:inline-block;height:4px;border-radius:2px;background:var(--ac);vertical-align:middle;margin-left:6px;opacity:.85}
.rk{color:var(--t3)}
/* heat */
.hm{display:grid;grid-template-columns:30px repeat(24,minmax(0,1fr));gap:2px;font-family:var(--mono);font-size:13px;color:var(--t3)}
.hm i{display:block;aspect-ratio:1/1;border-radius:2px;background:rgba(var(--acr),.06)}
.hm i.top{outline:1.5px solid var(--ac);outline-offset:0}
.hm span{line-height:1;align-self:center}
.hax{display:grid;grid-template-columns:30px repeat(4,1fr);font-family:var(--mono);font-size:13px;color:var(--t3);margin-top:6px}
.lg{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t3);margin-top:10px;flex-wrap:wrap}
.lg .sc{width:90px;height:8px;border-radius:2px;background:linear-gradient(90deg,rgba(var(--acr),.06),var(--ac))}
/* liq */
.hf{font-weight:700}.hf.n{color:var(--ac)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.sim{grid-area:sim}.spread{grid-area:spread}.cex{grid-area:cex}.life{grid-area:life}.rival{grid-area:rival}.heat{grid-area:heat}.liq{grid-area:liq}

.today .plotw{position:relative}
.today .fl{position:absolute;top:0;transform:translateX(-50%);font-family:var(--mono);font-size:15px;font-weight:700;color:var(--t1);white-space:nowrap;background:var(--bg);padding:0 4px;border-radius:4px}
.ctl{display:flex;margin-bottom:10px}.ctl .seg{margin-left:0}
.foot a{color:var(--t2);text-decoration:underline;text-underline-offset:3px}
@media (max-width:640px){
 .win .tt{display:none}.win .snap{margin-left:auto;overflow:hidden;text-overflow:ellipsis}
 .brand .main{display:none}
 .mods{grid-template-columns:1fr 1fr}.rail{display:none}
 .mod{grid-template-columns:26px minmax(0,1fr);padding:10px;align-content:start}
 .mod .g{width:26px;height:26px;font-size:13px}
 .mod p{display:none}.mod>.tag{display:none}
 .mod .m{overflow-wrap:anywhere}
}
@media (min-width:1024px){.frame{grid-template-columns:280px minmax(0,1fr) 340px}.cg{grid-template-columns:repeat(3,1fr)}}
.ph{flex-wrap:wrap;row-gap:4px}.ph .r{max-width:100%}

.rl{list-style:none;border-top:1px solid var(--bd)}
.rl li{padding:9px 2px;border-bottom:1px solid var(--bd)}
.rl .a{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:15px}
.rl .a b{font-weight:600;white-space:nowrap}.rl .gn{color:var(--gn)}.rl i{font-style:normal}
.rl .s{font-size:13px;color:var(--t3);margin-top:3px;line-height:1.5}
.mb{display:block}.dt{display:none}
@media (min-width:641px){.mb{display:none}.dt{display:block}}
@media (max-width:640px){.mod .m .x{display:none}}
.hx span{white-space:nowrap}

/* ================= themes (t300u) ================= */
html[data-theme]{--sans:var(--mono)}
html[data-theme]{--mono:JBM,"JetBrains Mono","Noto Sans TC","PingFang TC","Noto Sans CJK TC","Microsoft JhengHei",ui-monospace,monospace}
html[data-theme=a]{--bg:#000;--t1:#00FF66;--t1r:0,255,102;--t2:#3EE07F;--t3:#22A858;--ac:#00FF66;--acr:0,255,102;--fc:#00FF66;--hl:#00FF66;--gn:#00FF66;--gnr:0,255,102;--rd:#FF3B3B;--mu:#C6FF4D;--fgr:0,255,102;--pn:rgba(0,255,102,.025);--bd:rgba(0,255,102,.16);--bd2:rgba(0,255,102,.32);--cell:#010A04;--cell2:#021208;--dim:#0A7A3A;--glow:0 0 5px rgba(0,255,102,.45);--scan:.55}
html[data-theme=b]{--bg:#050300;--t1:#FFB000;--t1r:255,176,0;--t2:#D7981C;--t3:#A87915;--ac:#FFB000;--acr:255,176,0;--fc:#F7931A;--hl:#F7931A;--gn:#8CFF5A;--gnr:140,255,90;--rd:#FF4A2E;--mu:#E8D08A;--fgr:255,176,0;--pn:rgba(255,176,0,.025);--bd:rgba(255,176,0,.16);--bd2:rgba(255,176,0,.32);--cell:#0B0700;--cell2:#110B00;--dim:#7A5300;--glow:0 0 5px rgba(255,176,0,.42);--scan:.5}
html[data-theme=c]{--bg:#050816;--t1:#D8F7FF;--t1r:216,247,255;--t2:#8FC3D6;--t3:#6492A8;--ac:#00E5FF;--acr:0,229,255;--fc:#00E5FF;--hl:#FF2BD6;--gn:#39FF9F;--gnr:57,255,159;--rd:#FF3D7F;--mu:#C3A0FF;--fgr:0,229,255;--pn:rgba(0,229,255,.03);--bd:rgba(0,229,255,.15);--bd2:rgba(0,229,255,.3);--cell:#070C22;--cell2:#0A1130;--dim:#1B4C66;--glow:0 0 6px rgba(0,229,255,.35);--scan:.3}
html[data-theme] body{background:var(--bg);text-shadow:var(--glow)}
html[data-theme=c] body{background:radial-gradient(900px 500px at 85% -10%,rgba(255,43,214,.10),transparent 60%),radial-gradient(700px 400px at 0% 0%,rgba(0,229,255,.08),transparent 60%),var(--bg)}
html[data-theme] .big{color:var(--fc);text-shadow:0 0 14px rgba(var(--acr),.45)}
html[data-theme=b] .big{text-shadow:0 0 16px rgba(247,147,26,.55)}
html[data-theme] .big .p{color:var(--ac)}html[data-theme] .big .d{color:var(--t2)}html[data-theme] .big .c{color:var(--t2)}
html[data-theme] .tag.on{color:var(--hl);border-color:var(--hl);background:transparent}
html[data-theme] .ll li.sel{border-left-color:var(--hl)}
html[data-theme] .why{border-left-color:var(--hl)}
html[data-theme] .r2 b,html[data-theme] .why b{color:var(--hl)}
html[data-theme] .cmd span,html[data-theme] .cur{color:var(--hl)}
html[data-theme] .cur{background:var(--hl);box-shadow:0 0 8px var(--hl)}
html[data-theme] .mod.on{border-color:var(--hl);background:rgba(var(--acr),.05)}
html[data-theme] .mod.on .g{border-color:var(--hl);color:var(--hl)}
html[data-theme] .lang button.on,html[data-theme] .seg button.on,html[data-theme] .tabs button.on{text-shadow:none}
html[data-theme] .lt-v,html[data-theme] .r1 .v,html[data-theme] td.g,html[data-theme] .rl .gn{color:var(--gn)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:var(--scan);background:repeating-linear-gradient(to bottom,rgba(0,0,0,.28) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.35) 100%)}
/* theme switch */
.thm{display:flex;gap:4px;margin-left:8px}
.thm button{width:28px;height:24px;border-radius:5px;border:1px solid var(--bd2);font-family:var(--mono);font-size:13px;color:var(--t2);display:grid;place-items:center}
.thm button.on{background:var(--hl);color:var(--bg);border-color:var(--hl);text-shadow:none}
/* ================= motion ================= */
.hd{position:relative;isolation:isolate}
.hd>canvas.rain{position:absolute;inset:-12px -12px 0 -12px;width:calc(100% + 24px);height:calc(100% + 12px);z-index:-1;pointer-events:none;opacity:.16;-webkit-mask:linear-gradient(#000 55%,transparent);mask:linear-gradient(#000 55%,transparent)}
.mods{position:relative}
.mods svg.pipe{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}
.mods svg.pipe path.trk{fill:none;stroke:rgba(var(--acr),.35);stroke-width:1.2;stroke-dasharray:3 5;animation:dash 1.2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-16}}
.pk{position:absolute;left:0;top:0;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--hl);box-shadow:0 0 10px 2px var(--hl);z-index:3;pointer-events:none;offset-rotate:0deg;animation:pk 3.6s linear infinite}
.pk.s{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;opacity:.7}
@keyframes pk{0%{offset-distance:0%;opacity:0}5%{opacity:1}95%{opacity:1}100%{offset-distance:100%;opacity:0}}
.rail{display:none!important}
.mod.zap{animation:zap .5s ease-out}
@keyframes zap{0%{box-shadow:0 0 0 0 rgba(var(--acr),.6)}100%{box-shadow:0 0 0 8px rgba(var(--acr),0)}}
/* radar */
.radar{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.scope{position:relative;width:92px;height:92px;flex:none;border-radius:50%;border:1px solid var(--bd2);background:radial-gradient(circle,transparent 0 31%,rgba(var(--acr),.14) 31.5% 32.5%,transparent 33% 63%,rgba(var(--acr),.14) 63.5% 64.5%,transparent 65%),var(--cell)}
.scope:before,.scope:after{content:"";position:absolute;background:rgba(var(--acr),.14)}
.scope:before{left:50%;top:0;bottom:0;width:1px}.scope:after{top:50%;left:0;right:0;height:1px}
.scope .sw{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(var(--acr),.55),rgba(var(--acr),0) 60deg,transparent 360deg);will-change:transform;transform:rotate(var(--a,0deg))}
.scope .sw:after{content:"";position:absolute;left:50%;top:0;width:1.5px;height:50%;background:var(--ac);box-shadow:0 0 6px var(--ac)}
.scope i{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--ac);opacity:.35;transition:opacity .2s}
.scope i.off{background:var(--t3)}
.scope i.ping{opacity:1;box-shadow:0 0 8px var(--ac)}
.rinfo{font-size:13px;color:var(--t2);line-height:1.7;min-width:0}
.rinfo b{color:var(--t1);font-size:15px}
.cb.ping{box-shadow:inset 0 0 0 1px var(--ac),0 0 12px rgba(var(--acr),.35);transition:box-shadow .1s}
.cb{transition:box-shadow .6s}
/* log motion */
.ll li{animation:none}
.ll li.typ .r1,.ll li.typ .r2,.ll li.typ .r3{clip-path:inset(0 100% 0 0);animation:typ .5s steps(24,end) forwards}
.ll li.typ .r2{animation-delay:.18s}.ll li.typ .r3{animation-delay:.36s}
@keyframes typ{to{clip-path:inset(0 0 0 0)}}
.ll li.newt{animation:slide .45s ease-out}
@keyframes slide{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.ll li.bigf{animation:slide .45s ease-out,bigf 1.6s ease-out}
@keyframes bigf{0%,30%,60%{background:rgba(var(--acr),.28)}15%,45%,100%{background:transparent}}
.ll li .rp{font-size:13px;color:var(--t3)}
.big.flash{animation:bflash 1.4s ease-out}
@keyframes bflash{0%,40%{filter:brightness(1.8) drop-shadow(0 0 12px rgba(var(--acr),.9))}100%{filter:none}}
.flk{animation:flk .6s steps(2) 2}
@keyframes flk{50%{opacity:.35}}
.mx .c,.hm i{transition:background-color .6s}
.still *,.still *:before,.still *:after{animation:none!important;transition:none!important}
.still .ll li.typ .r1,.still .ll li.typ .r2,.still .ll li.typ .r3{clip-path:none}
@media (prefers-reduced-motion:reduce){.ll li.typ .r1,.ll li.typ .r2,.ll li.typ .r3{clip-path:none}.pk{display:none}}

.ll li.typ .r1{animation-delay:calc(var(--d)*1ms)}.ll li.typ .r2{animation-delay:calc(var(--d)*1ms + 180ms)}.ll li.typ .r3{animation-delay:calc(var(--d)*1ms + 360ms)}
/* 今日套利 variants */
.tvs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:-4px 0 10px}
.tvs button{font-family:var(--mono);font-size:13px;color:var(--t2);border:1px solid var(--bd);border-radius:5px;padding:3px 2px;overflow:hidden;text-overflow:ellipsis;min-height:28px;white-space:nowrap}
.tvs button.on{border-color:var(--hl);color:var(--hl)}
.tvw{position:relative;padding-top:24px}.tvw canvas{display:block}
.tvw .fl{position:absolute;top:0;transform:translateX(-50%);font-family:var(--mono);font-size:15px;font-weight:700;color:var(--fc);white-space:nowrap;background:var(--bg);padding:0 4px;border-radius:4px;text-shadow:0 0 8px rgba(var(--acr),.6)}
.t3w{padding-top:0}
.t3o{font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--t2);margin-top:8px;min-height:4.2em;white-space:pre;overflow:hidden;text-overflow:ellipsis}
.t3o span{display:block;overflow:hidden;text-overflow:ellipsis}.t3o .cur0{color:var(--t1)}.t3o .bg{color:var(--fc)}
.t4top{font-size:13px;color:var(--t3);margin-bottom:6px}
.t4g{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));font-family:var(--mono);font-size:14px;line-height:1;color:var(--ac)}
.t4c{display:flex;flex-direction:column;align-items:center}.t4c span{display:block;height:15px;line-height:15px}
.t4c.fut{opacity:.25}.t4c.now{color:var(--fc);text-shadow:0 0 8px var(--fc);animation:flk .5s steps(2) infinite}
.t4c.pr{animation:t4in .25s steps(3)}.t4c.now.pr{animation:flk .5s steps(2) infinite}
@keyframes t4in{from{opacity:0}to{opacity:1}}
.t4x{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));font-size:13px;color:var(--t3);margin-top:6px;text-align:center}
.t4x span{overflow:visible;white-space:nowrap}

/* ============ B2 琥珀＋冷色 / B3 琥珀＋模組色 (t303u) ============ */
:is(html[data-theme=b2],html[data-theme=b3]){--bg:#050403;--t1:#ECE7DF;--t1r:236,231,223;--t2:#9C958A;--t3:#8A8378;--amb:#FFB000;--ac:#FFB000;--acr:255,176,0;--fc:#F7931A;--hl:#F7931A;--gn:#3DDC84;--gnr:61,220,132;--rd:#FF5A5F;--mu:#C9B98F;--fgr:255,176,0;
 --lv:#3DDBD9;--lvr:61,219,217;--pn:rgba(255,176,0,.018);--bd:rgba(160,110,40,.24);--bd2:rgba(190,130,45,.42);--cell:#0A0806;--cell2:#100C08;--dim:#5A3E14;--glow:0 0 3px rgba(236,231,223,.12);--scan:.22;--mc:var(--amb);--mcr:255,176,0}
:is(html[data-theme=b2],html[data-theme=b3]) body{background:radial-gradient(900px 420px at 15% -8%,rgba(247,147,26,.06),transparent 60%),var(--bg)}
:is(html[data-theme=b2],html[data-theme=b3]) .big{color:var(--fc);text-shadow:0 0 12px rgba(247,147,26,.38)}
:is(html[data-theme=b2],html[data-theme=b3]) .big .p{color:var(--fc)}
/* amber = labels, section titles, prompt, cursor */
:is(html[data-theme=b2],html[data-theme=b3]) .ph b,:is(html[data-theme=b2],html[data-theme=b3]) .hero .lb,:is(html[data-theme=b2],html[data-theme=b3]) .r2 b,:is(html[data-theme=b2],html[data-theme=b3]) .why b,:is(html[data-theme=b2],html[data-theme=b3]) .cmd span,:is(html[data-theme=b2],html[data-theme=b3]) .sim .lb,:is(html[data-theme=b2],html[data-theme=b3]) .sub{color:var(--amb)}
:is(html[data-theme=b2],html[data-theme=b3]) .ph>span:first-child{color:rgba(255,176,0,.75)}
:is(html[data-theme=b2],html[data-theme=b3]) .cur{background:var(--amb);box-shadow:0 0 8px rgba(255,176,0,.6)}
:is(html[data-theme=b2],html[data-theme=b3]) .tag{color:var(--amb);border-color:rgba(255,176,0,.35)}
:is(html[data-theme=b2],html[data-theme=b3]) .tag.on{color:var(--fc);border-color:var(--fc)}
:is(html[data-theme=b2],html[data-theme=b3]) .why{border-left-color:var(--fc);background:rgba(247,147,26,.05)}
/* cool accent = live status, sweep, packets, links, hashes */
:is(html[data-theme=b2],html[data-theme=b3]) .dot{background:var(--lv);animation-name:plv}
@keyframes plv{0%{box-shadow:0 0 0 0 rgba(61,219,217,.45)}70%{box-shadow:0 0 0 7px rgba(61,219,217,0)}100%{box-shadow:0 0 0 0 rgba(61,219,217,0)}}
:is(html[data-theme=b2],html[data-theme=b3]) .dot.lag{background:var(--mu)}:is(html[data-theme=b2],html[data-theme=b3]) .dot.off{background:#5E584F}
:is(html[data-theme=b2],html[data-theme=b3]) .tag.ok{color:var(--lv);border-color:rgba(var(--lvr),.45)}
:is(html[data-theme=b2],html[data-theme=b3]) .stl .lv{color:var(--lv)}
:is(html[data-theme=b2],html[data-theme=b3]) .scope{background:radial-gradient(circle,transparent 0 31%,rgba(var(--lvr),.16) 31.5% 32.5%,transparent 33% 63%,rgba(var(--lvr),.16) 63.5% 64.5%,transparent 65%),var(--cell)}
:is(html[data-theme=b2],html[data-theme=b3]) .scope:before,:is(html[data-theme=b2],html[data-theme=b3]) .scope:after{background:rgba(var(--lvr),.16)}
:is(html[data-theme=b2],html[data-theme=b3]) .scope .sw{background:conic-gradient(from 0deg,rgba(var(--lvr),.5),rgba(var(--lvr),0) 60deg,transparent 360deg)}
:is(html[data-theme=b2],html[data-theme=b3]) .scope .sw:after{background:var(--lv);box-shadow:0 0 6px var(--lv)}
:is(html[data-theme=b2],html[data-theme=b3]) .scope i{background:var(--lv)}:is(html[data-theme=b2],html[data-theme=b3]) .scope i.off{background:#5E584F}:is(html[data-theme=b2],html[data-theme=b3]) .scope i.ping{box-shadow:0 0 8px var(--lv)}
:is(html[data-theme=b2],html[data-theme=b3]) .cb.ping{box-shadow:inset 0 0 0 1px var(--lv),0 0 12px rgba(var(--lvr),.3)}
:is(html[data-theme=b2],html[data-theme=b3]) .pk{background:var(--lv);box-shadow:0 0 10px 2px rgba(var(--lvr),.8)}
:is(html[data-theme=b2],html[data-theme=b3]) .mods svg.pipe path.trk{stroke:rgba(var(--lvr),.4)}
:is(html[data-theme=b2],html[data-theme=b3]) .r3 a,:is(html[data-theme=b2],html[data-theme=b3]) .lnk a,:is(html[data-theme=b2],html[data-theme=b3]) .r2 .k{color:var(--lv)}
:is(html[data-theme=b2],html[data-theme=b3]) .mod.on{border-color:var(--fc);background:rgba(247,147,26,.04)}
:is(html[data-theme=b2],html[data-theme=b3]) .mod.on .g{border-color:var(--fc);color:var(--fc)}
:is(html[data-theme=b2],html[data-theme=b3]) .mod .g{color:var(--amb)}
/* B3: module identity colors (icon, tag pill, header number only) */
html[data-theme=b3] .flow{--mc:#FFB000;--mcr:255,176,0}
html[data-theme=b3] .chain,html[data-theme=b3] .life{--mc:#3DDBD9;--mcr:61,219,217}
html[data-theme=b3] .sim{--mc:#B18CFF;--mcr:177,140,255}
html[data-theme=b3] .rival{--mc:#FF6FA8;--mcr:255,111,168}
html[data-theme=b3] .spread,html[data-theme=b3] .cex{--mc:#6CA8FF;--mcr:108,168,255}
html[data-theme=b3] .liq{--mc:#FF7A45;--mcr:255,122,69}
html[data-theme=b3] .pn>.ph>span:first-child{color:var(--mc);font-weight:700}
html[data-theme=b3] .pn>.ph .tag{color:var(--mc);border-color:rgba(var(--mcr),.5);background:rgba(var(--mcr),.08)}
html[data-theme=b3] .pn>.ph .tag.mock{border-style:dashed}
html[data-theme=b3] .pn>.ph>span:first-child:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--mc);margin-right:6px;vertical-align:0;box-shadow:0 0 6px rgba(var(--mcr),.6)}
html[data-theme=b3] .mod:nth-child(1){--mc:#FFB000;--mcr:255,176,0}html[data-theme=b3] .mod:nth-child(2){--mc:#3DDBD9;--mcr:61,219,217}
html[data-theme=b3] .mod:nth-child(3){--mc:#B18CFF;--mcr:177,140,255}html[data-theme=b3] .mod:nth-child(4){--mc:#6CA8FF;--mcr:108,168,255}
html[data-theme=b3] .mod .g{color:var(--mc);border-color:rgba(var(--mcr),.55);background:rgba(var(--mcr),.08)}
html[data-theme=b3] .mod>.tag{color:var(--mc);border-color:rgba(var(--mcr),.5)}
html[data-theme=b3] .mod.on{border-color:rgba(var(--mcr),.8);background:rgba(var(--mcr),.05)}
html[data-theme=b3] .mod.on .g{color:var(--mc);border-color:var(--mc)}
html[data-theme=b3] .tabs button{border-color:var(--bd2)}
