:root{--bg: #05060f;--panel: rgba(10, 12, 28, .62);--panel-border: rgba(140, 160, 255, .16);--text: #e8ecff;--muted: #8d95b8;--cyan: #5ff2ff;--magenta: #ff6ad5;--gold: #ffc857;--violet: #7c8cff;--font: "Space Grotesk", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font);overflow:hidden;-webkit-font-smoothing:antialiased}#stage,#labels{position:fixed;top:0;right:0;bottom:0;left:0}#stage canvas{display:block}#labels{pointer-events:none}.lbl{pointer-events:auto;cursor:pointer;font-size:12px;line-height:1.2;white-space:nowrap;padding:4px 8px;border-radius:8px;background:#05060f8c;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transform:translate(14px,-50%);transition:border-color .2s,background .2s,opacity .3s;-webkit-user-select:none;user-select:none}.lbl b{display:block;font-weight:600}.lbl small{color:var(--muted);font-family:var(--mono);font-size:10px}.lbl.achieved{border-color:#5ff2ff59}.lbl.predicted{border-color:#ff6ad566}.lbl.logical{border-color:#ffc85766}.lbl.selected{background:#7c8cff40;border-color:#fff}.lbl.dim{opacity:.25}.tick{pointer-events:none;font-family:var(--mono);font-size:10px;color:var(--muted);opacity:.8;transform:translate(-50%,-50%)}.hover-tip{pointer-events:none;font-size:11px;padding:4px 8px;border-radius:6px;background:#05060fd9;border:1px solid rgba(255,255,255,.15);transform:translate(12px,-120%);white-space:nowrap}.hover-tip small{color:var(--muted);font-family:var(--mono)}#brand,#list,#detail,#model{position:fixed;z-index:5}.glass{background:var(--panel);border:1px solid var(--panel-border);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-radius:16px}#brand{top:20px;left:20px;pointer-events:none}#brand h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(90deg,var(--cyan),var(--violet) 60%,var(--magenta));-webkit-background-clip:text;background-clip:text;color:transparent}#brand p{margin:4px 0 0;color:var(--muted);font-size:13px}#brand em{font-style:normal;color:var(--text);font-family:var(--mono)}#list{top:96px;left:20px;width:270px;max-height:calc(100vh - 220px);overflow-y:auto;padding:10px;scrollbar-width:thin}#list h3{margin:10px 8px 4px;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.row{display:grid;grid-template-columns:54px 1fr auto;gap:8px;align-items:center;width:100%;padding:8px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .15s}.row:hover{background:#ffffff0d}.row.active{background:#7c8cff2e}.row .q{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--cyan)}.row.logical .q{color:var(--gold)}.row .t{font-size:13px}.row .y{font-family:var(--mono);font-size:11px;padding:2px 7px;border-radius:99px;border:1px solid currentColor}.row .y.achieved{color:var(--cyan)}.row .y.predicted{color:var(--magenta)}#right{position:fixed;top:20px;right:20px;bottom:52px;width:360px;z-index:5;display:flex;flex-direction:column;gap:12px;pointer-events:none}#right>*{pointer-events:auto}#detail{position:static;flex:0 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;padding:20px 22px}#detail .kicker{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}#detail .kicker .badge{padding:2px 8px;border-radius:99px;border:1px solid currentColor}#detail .kicker .badge.achieved{color:var(--cyan)}#detail .kicker .badge.predicted{color:var(--magenta)}#detail .count{margin:10px 0 0;font-family:var(--mono);font-size:44px;font-weight:600;line-height:1;letter-spacing:-.03em}#detail .count.physical{color:var(--cyan)}#detail .count.logical{color:var(--gold)}#detail .count span{font-size:14px;color:var(--muted);font-weight:400;margin-left:8px;letter-spacing:0}#detail h2{margin:10px 0 2px;font-size:20px;font-weight:600}#detail .tag{margin:0;color:var(--muted);font-size:13px}#detail .when{margin:16px 0;padding:12px 14px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}#detail .when div{font-size:12px;color:var(--muted)}#detail .when strong{display:block;font-family:var(--mono);font-size:18px;color:var(--text);font-weight:600}#detail .when strong.predicted{color:var(--magenta)}#detail .when strong.achieved{color:var(--cyan)}#detail .when small{display:block;font-size:10px;color:var(--muted);font-family:var(--mono)}#detail p.desc{font-size:13.5px;line-height:1.55;color:#c9cfee;margin:0 0 12px}#detail ul{margin:0;padding:0;list-style:none}#detail li{position:relative;padding-left:16px;font-size:13px;color:#c9cfee;margin:4px 0}#detail li:before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--violet)}#detail .fine{margin-top:12px;font-size:11px;color:var(--muted);line-height:1.5}#detail .fine code{font-family:var(--mono);color:var(--text)}#model{left:20px;bottom:20px;padding:12px 16px;display:flex;gap:22px;align-items:center;font-size:12px;color:var(--muted);max-width:calc(100vw - 40px);flex-wrap:wrap}#model .stat strong{display:block;font-family:var(--mono);font-size:16px;color:var(--text)}#model .stat small{font-size:10.5px}#model .stat.copy strong{font-size:13px;font-weight:500}#model a{color:var(--violet);text-decoration:none}#model a:hover{text-decoration:underline}#model .sep{width:1px;height:28px;background:var(--panel-border)}#hint{position:fixed;right:20px;bottom:20px;z-index:5;font-family:var(--mono);font-size:11px;color:var(--muted);opacity:.8}#loading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;background:var(--bg);color:var(--muted);font-family:var(--mono);font-size:12px;transition:opacity .6s}#loading.done{opacity:0;pointer-events:none}.spinner{width:34px;height:34px;border-radius:50%;border:2px solid rgba(255,255,255,.1);border-top-color:var(--cyan);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){#brand h1{font-size:20px}#brand p{font-size:12px}#list{top:auto;bottom:64px;left:12px;right:12px;width:auto;max-height:none;padding:6px;display:flex;gap:4px;overflow-x:auto;overflow-y:hidden}#list h3{display:none}.row{grid-template-columns:auto auto;flex:0 0 auto;width:auto;padding:6px 10px}.row .y{display:none}#right{display:contents}#detail{position:fixed;top:auto;bottom:160px;left:12px;right:12px;width:auto;padding:14px 16px;max-height:40vh;overflow-y:auto;z-index:5}#detail .count{font-size:30px}#detail ul{display:none}#model{left:12px;right:12px;bottom:12px;gap:12px;padding:6px 12px;flex-wrap:nowrap;justify-content:space-between}#model .stat strong{font-size:13px}#model .sep,#model .wide,#model .stat.through{display:none}#model .stat small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw;display:block}#hint,.tick{display:none}}.row.today .q,.row .y.today{color:#fff}.lbl.today{border-color:#fff9}#detail .count.today,#detail .badge.today,#detail .when strong.today{color:#fff}#detail .kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12.5px;margin:0 0 12px}#detail .kv dt{color:var(--muted)}#detail .kv dd{margin:0;font-family:var(--mono)}#detail .bar{height:6px;border-radius:99px;background:#ffffff14;overflow:hidden;margin:6px 0 2px}#detail .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--magenta))}#crypto{position:static;flex:0 1 auto;min-height:42px;display:flex;flex-direction:column}#crypto.collapsed{flex:0 0 auto}#crypto-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:0;background:transparent;color:var(--text);font:inherit;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}#crypto-toggle .dot{width:8px;height:8px;border-radius:50%;background:#ff4d6d;box-shadow:0 0 10px #ff4d6d;animation:blink 1.2s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}#crypto-toggle .chev{margin-left:auto;color:var(--muted);transition:transform .2s}#crypto.collapsed .chev{transform:rotate(-90deg)}#crypto.collapsed #crypto-body{display:none}#crypto-body{overflow-y:auto;padding:0 10px 10px;scrollbar-width:thin}.cs{padding:10px 8px;border-top:1px solid rgba(255,255,255,.06)}.cs .hd{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.cs .nm{font-size:13.5px;font-weight:600}.cs .fam{font-size:10.5px;color:var(--muted);font-family:var(--mono);white-space:nowrap}.cs .clock{margin:6px 0 2px;font-family:var(--mono);font-size:20px;font-weight:600;letter-spacing:-.01em;color:#ff4d6d;font-variant-numeric:tabular-nums}.cs .clock.safe{color:#6ee7a8;font-size:14px;font-weight:500}.cs .clock small{font-size:11px;color:var(--muted);font-weight:400;margin-left:6px}.cs .meta{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.cs .bar{height:4px;border-radius:99px;background:#ffffff14;overflow:hidden;margin:6px 0 4px}.cs .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),#ff4d6d)}.cs .use{font-size:11px;color:#a9b1d6;margin-top:2px}#crypto .foot{padding:8px 8px 2px;font-size:10.5px;color:var(--muted);line-height:1.45;border-top:1px solid rgba(255,255,255,.06)}@media(max-width:900px){#crypto{position:fixed;right:12px;left:12px;bottom:116px;width:auto;max-height:60vh;z-index:6}#detail.hidden{display:none}#crypto-toggle{padding:8px 12px;font-size:11px}.cs .clock{font-size:16px}.cs .use{display:none}}
