:root{--bg: #05070d;--ink: #e9eeff;--muted: #8f9ec2;--line: rgba(160, 185, 255, .14);--line-strong: rgba(180, 205, 255, .26);--panel: rgba(8, 12, 21, .82);--panel-solid: #0a0f1a;--amber: #ffd479;--mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, monospace;--sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}:focus-visible{outline:1px solid rgba(255,212,121,.8);outline-offset:2px}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}a{color:var(--amber);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--mono);font-size:.92em;color:#cfe0ff;background:#78a0ff1a;padding:1px 4px;border-radius:2px}.app{position:fixed;inset:0;overflow:hidden}.scene{position:absolute;inset:0}.scene canvas{cursor:grab}.scene canvas:active{cursor:grabbing}.scene:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 45%,rgba(2,4,9,.55) 100%)}.ui{position:absolute;inset:0;pointer-events:none}.ui>*{pointer-events:auto}.brand{position:absolute;top:22px;left:26px;pointer-events:none}.brand-mark{display:flex;align-items:baseline;gap:10px}.brand-cn{font-size:22px;font-weight:700;letter-spacing:1px;color:#fff;text-shadow:0 0 22px rgba(255,212,121,.35)}.brand-en{font-family:var(--mono);font-size:10px;letter-spacing:4px;color:var(--amber);opacity:.85}.brand-meta{margin:6px 0 0;font-size:12px;color:var(--muted);font-family:var(--mono);letter-spacing:.2px}.brand-meta strong{color:#dbe6ff;font-weight:600}.btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:#d8e3ff;font-family:var(--sans);font-size:12.5px;padding:7px 13px;border-radius:3px;cursor:pointer;backdrop-filter:blur(9px);transition:border-color .16s,background .16s,color .16s,transform 90ms ease-out;white-space:nowrap;min-height:32px}.btn:hover{border-color:var(--line-strong);background:#141c2ee6;color:#fff}.btn:active{transform:scale(.97)}.btn.primary{border-color:#ffd47980;background:#ffd47924;color:#ffe6b8}.btn.primary:hover{background:#ffd47938}.btn.ghost{background:#ffffff08;color:var(--muted)}.btn.wide{width:100%;margin-top:10px}.icon-btn{appearance:none;border:1px solid transparent;background:transparent;color:var(--muted);width:26px;height:26px;border-radius:3px;cursor:pointer;font-size:12px;line-height:1}.icon-btn:hover{color:#fff;border-color:var(--line)}.icon-btn:active{transform:scale(.92)}.top-actions{position:absolute;top:24px;right:24px;display:flex;gap:8px}.hint{position:absolute;left:26px;bottom:24px;margin:0;font-family:var(--mono);font-size:10.5px;color:#8f9ec2bf;letter-spacing:.4px;pointer-events:none}kbd{font-family:var(--mono);font-size:9.5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:2px;padding:0 3px;color:#c8d6f5;background:#ffffff0a}.panel{position:absolute;top:78px;right:24px;width:340px;max-height:calc(100vh - 190px);overflow-y:auto;padding:16px 16px 14px;background:var(--panel);border:1px solid var(--line);border-radius:4px;backdrop-filter:blur(14px);box-shadow:0 18px 60px #0000008c;scrollbar-width:thin;opacity:0;transform:translate(16px);filter:blur(7px);pointer-events:none;transition:opacity .16s ease,transform .24s cubic-bezier(.22,.9,.3,1),filter .22s ease}.panel.is-open{opacity:1;transform:none;filter:none;pointer-events:auto}.panel:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);pointer-events:none}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.tag-state{font-size:10.5px;font-family:var(--mono);letter-spacing:.8px;color:#7ce0a8;border:1px solid rgba(124,224,168,.3);background:#7ce0a814;padding:3px 8px;border-radius:2px}.tag-state.is-dead{color:#ff9b9b;border-color:#ff9b9b4d;background:#ff9b9b14}.panel-title{margin:0 0 4px;font-size:20px;line-height:1.28;letter-spacing:-.01em;font-weight:700;word-break:break-word}.panel-host{margin:0 0 12px;font-family:var(--mono);font-size:11px;color:var(--muted);word-break:break-all}.tag-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}.tag{font-size:11px;color:#b9c8ea;border:1px solid var(--line);padding:2px 7px;border-radius:2px;background:#ffffff08}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:10px}.stat{background:#060a12db;padding:9px 10px;display:flex;flex-direction:column;gap:3px}.stat-k{font-size:10px;color:var(--muted);font-family:var(--mono);letter-spacing:.6px}.stat-v{font-size:14px;font-weight:600;color:#eef4ff}.stat-v.is-dead{color:#ff8a8a;font-size:12px}.meter{height:3px;background:#ffffff14;margin-bottom:12px;overflow:hidden}.meter span{display:block;height:100%;background:var(--amber);transition:width .4s ease}.panel-note{margin:-6px 0 12px;font-size:10.5px;line-height:1.6;color:#8f9ec2cc;font-family:var(--mono)}.note{font-size:11.5px;line-height:1.7;color:var(--muted);background:#ff78780f;border-left:2px solid rgba(255,120,120,.5);padding:8px 10px;margin:0 0 12px}.panel-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.panel-actions .btn{flex:1 1 auto;text-align:center}.credit{position:absolute;right:26px;bottom:24px;margin:0;font-size:10.5px;color:#8f9ec2b3;font-family:var(--mono);pointer-events:auto;letter-spacing:.2px}.tooltip{position:fixed;z-index:40;display:flex;flex-direction:column;gap:2px;padding:7px 10px;background:#080c15f0;border:1px solid var(--line-strong);border-radius:3px;pointer-events:none;max-width:240px;animation:tip-in 90ms ease-out}.tooltip b{font-size:12.5px;font-weight:600;color:#fff;line-height:1.35}.tooltip span{font-family:var(--mono);font-size:10px;letter-spacing:.5px}.tooltip em{font-style:normal;font-size:10px;color:var(--muted);font-family:var(--mono)}@keyframes tip-in{0%{opacity:0}}.drawer,.modal{position:fixed;inset:0;z-index:60;display:flex;justify-content:flex-end}.drawer-backdrop{position:absolute;inset:0;border:0;background:#0204099e;backdrop-filter:blur(3px);cursor:pointer;z-index:-1;opacity:0;transition:opacity .2s ease}.is-open>.drawer-backdrop{opacity:1}.drawer-card,.modal-card{position:relative;width:min(430px,100vw);height:100%;display:flex;flex-direction:column;gap:12px;padding:22px 20px;background:#080c15f5;border-left:1px solid var(--line);box-shadow:-24px 0 80px #0009;transform:translate(100%);transition:transform .26s cubic-bezier(.22,.9,.3,1)}.drawer.is-open .drawer-card{transform:none}.modal{justify-content:center;align-items:center;padding:24px}.modal-card{width:min(600px,100%);height:auto;max-height:calc(100vh - 48px);overflow-y:auto;border:1px solid var(--line);border-radius:4px;box-shadow:0 30px 90px #000000a6;opacity:0;transform:translateY(10px) scale(.985);filter:blur(8px);transition:opacity .18s ease,transform .26s cubic-bezier(.22,.9,.3,1),filter .22s ease}.modal.is-open .modal-card{opacity:1;transform:none;filter:none}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.drawer-head h2{margin:0;font-size:17px;letter-spacing:0;line-height:1.3}.drawer-head p{margin:4px 0 0;font-size:11.5px;color:var(--muted);font-family:var(--mono)}.search{width:100%;appearance:none;border:1px solid var(--line);background:#ffffff0a;color:var(--ink);font-family:var(--sans);font-size:13px;padding:9px 11px;border-radius:3px;outline:none}.search:focus{border-color:#ffd47980;background:#ffd4790f}.rows{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;border-top:1px solid var(--line)}.row{width:100%;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:9px;padding:9px 4px;background:transparent;border:0;border-bottom:1px solid rgba(160,185,255,.07);color:var(--ink);cursor:pointer;text-align:left;font-family:var(--sans)}.row:hover{background:#ffd4790f}.row:active{background:#ffd47921}.row-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-tags{font-size:10px;color:#8f9ec2bf;font-family:var(--mono);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-state{font-family:var(--mono);font-size:9.5px;letter-spacing:.6px;color:#6ee7a8;border:1px solid rgba(110,231,168,.28);border-radius:2px;padding:1px 5px}.row-state.is-dead{color:#ff9b9b;border-color:#ff9b9b42}.modal-body h3{margin:18px 0 6px;font-size:12px;letter-spacing:1.6px;color:var(--amber);font-family:var(--mono);text-transform:uppercase}.modal-body h3:first-child{margin-top:4px}.modal-body p{margin:0 0 8px;font-size:13px;line-height:1.85;color:#c6d3ee}.modal-body .muted{color:var(--muted);font-size:12px}.keys{margin:0 0 16px}.keys>div{display:grid;grid-template-columns:132px 1fr;gap:14px;align-items:baseline;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.055)}.keys>div:last-child{border-bottom:0}.keys dt{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.3px;color:#ffd479}.keys dd{margin:0;font-size:12.5px;line-height:1.65;color:#bccdee}.formula{margin:0 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:3px;background:#060a12b3;font-family:var(--mono);font-size:11.5px;line-height:1.85;color:#b9cdf2;overflow-x:auto;white-space:pre}.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.legend li{display:grid;grid-template-columns:58px 1fr;gap:10px;font-size:12.5px;line-height:1.6;color:#c6d3ee}.legend b{color:#fff;font-weight:600;font-size:12px;border-left:2px solid rgba(255,212,121,.55);padding-left:8px}@media(max-width:860px){.brand{top:14px;left:16px}.brand-cn{font-size:18px;letter-spacing:2px}.brand-meta{font-size:10.5px}.top-actions{top:14px;right:14px;gap:5px}.btn{padding:6px 9px;font-size:11.5px}.hint,.credit{display:none}.panel{inset:auto 12px 66px;width:auto;max-height:46vh}}@media(prefers-reduced-motion:reduce){.panel,.drawer-card,.modal-card,.drawer-backdrop,.btn,.row{transition:opacity .14s ease!important;transform:none!important;filter:none!important}.tooltip{animation:none}.meter span{transition:none}}
