:root{--bg:#07060d;--panel:#0e0b18a8;--line:#ffffff17;--text:#efeaff;--muted:#9a92b8;--ember:#ff7a1a;--gold:#ffd27a;--cyan:#5ef0ff;--danger:#ff4d6d;--display:"Chakra Petch", ui-sans-serif, system-ui, sans-serif;--body:"Inter", ui-sans-serif, system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--body);margin:0;overflow:hidden}body{-webkit-font-smoothing:antialiased;touch-action:none;-webkit-user-select:none;user-select:none}#stage{position:fixed;inset:0}#stage canvas{display:block}[hidden]{display:none!important}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);border-radius:12px;position:absolute}#hud{pointer-events:none;font-family:var(--display);position:fixed;inset:0}#board{min-width:230px;padding:10px 12px;top:16px;left:16px}#board .row{grid-template-columns:10px 26px 1fr auto auto;align-items:center;gap:8px;height:26px;font-size:14px;transition:transform .25s;display:grid}#board .row.me{color:#fff}#board .row .chip{border-radius:3px;width:10px;height:10px}#board .row .nm{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}#board .row .nm .fl{color:var(--gold);margin-left:4px;font-size:12px}#board .row .sc{color:var(--cyan);font-variant-numeric:tabular-nums;text-align:right;min-width:34px}#board .row .ko{color:#ffb37a;font-variant-numeric:tabular-nums;text-align:right;min-width:28px}.lvl{background:var(--ember);color:#0b0912;border-radius:5px;place-items:center;min-width:24px;height:18px;padding:0 5px;font-size:12px;font-weight:700;display:inline-grid}.lvl.gold{background:var(--gold)}#clock{align-items:baseline;gap:12px;padding:6px 16px;display:flex;top:16px;left:50%;transform:translate(-50%)}#clock #phase{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:12px}#clock #time{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:26px}#clock.hurry #time{color:var(--danger)}#net{align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex;top:16px;right:16px}#net #dot{background:#42ffc9;border-radius:50%;width:8px;height:8px;box-shadow:0 0 10px #42ffc9}#net.bad #dot{background:var(--danger);box-shadow:0 0 10px var(--danger)}#net #ping{color:var(--muted);font-variant-numeric:tabular-nums}#me{width:250px;padding:12px 14px;bottom:16px;left:16px}#me .me-row{align-items:center;gap:8px;font-size:16px;display:flex}#me #myskin{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;margin-left:auto;font-size:12px}.xpbar{background:#ffffff14;border-radius:4px;height:6px;margin:10px 0 6px;overflow:hidden}.xpbar i{background:linear-gradient(90deg, var(--ember), var(--gold));border-radius:4px;width:0;height:100%;transition:width .8s cubic-bezier(.2,.8,.2,1);display:block}.me-sub{color:var(--muted);font-size:12px;font-family:var(--body)}#dash{border-radius:50%;place-items:center;width:104px;height:104px;display:grid;bottom:16px;right:16px}#dash svg{position:absolute;inset:10px;transform:rotate(-90deg)}#dash .track{fill:none;stroke:#ffffff14;stroke-width:5px}#dash .fill{fill:none;stroke:var(--ember);stroke-width:5px;stroke-linecap:round;stroke-dasharray:163.4;transition:stroke .15s}#dash.ready .fill{stroke:var(--gold);filter:drop-shadow(0 0 6px var(--gold))}#dash span{letter-spacing:.16em;margin-top:-10px;font-size:13px}#dash kbd{font:600 10px var(--body);color:var(--muted);position:absolute;top:58px}#banner{letter-spacing:.04em;color:#fff;text-shadow:0 0 40px #ff7a1acc;opacity:0;pointer-events:none;font-size:clamp(48px,10vw,120px);font-weight:700;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}#banner.show{animation:.9s cubic-bezier(.2,.9,.2,1) both pop}#banner.sub{letter-spacing:.2em;text-transform:uppercase;font-size:clamp(22px,4vw,40px)}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(1.6)}25%{opacity:1;transform:translate(-50%,-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(.92)}}.overlay{-webkit-backdrop-filter:blur(6px);z-index:10;background:#07060d8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.card{border:1px solid var(--line);background:#100d1ceb;border-radius:18px;width:min(440px,100%);padding:24px;animation:.35s cubic-bezier(.2,.9,.2,1) both rise;box-shadow:0 30px 80px #00000080}.card.wide{width:min(480px,100%)}@keyframes rise{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.card h2{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px;font-size:22px}.hint{color:var(--muted);margin:14px 0 0;font-size:13px}#rlist{gap:6px;margin:0;padding:0;list-style:none;display:grid}#rlist li{font-family:var(--display);background:#ffffff08;border-radius:10px;grid-template-columns:26px 10px 1fr auto auto;align-items:center;gap:10px;padding:8px 10px;animation:.4s both rise;display:grid}#rlist li.me{background:#ff7a1a1f;outline:1px solid #ff7a1a66}#rlist .place{color:var(--muted)}#rlist .xp{color:var(--gold);font-size:13px}#rme{font-family:var(--display);margin-top:14px}#rme .up{color:var(--gold);margin-top:8px;font-size:18px;animation:.5s .4s both rise}.lost-card{text-align:center;max-width:520px}.lost-card h1{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:#fff;text-shadow:0 0 30px #ff4d6d99;margin:8px 0 6px;font-size:clamp(34px,7vw,64px)}.lost-card p{color:var(--muted);margin:0 0 20px}#lost{background:radial-gradient(#3c081499,#07060deb)}.flat{width:min(420px,90vw);height:60px}.flat polyline{fill:none;stroke:var(--danger);stroke-width:3px;filter:drop-shadow(0 0 8px var(--danger))}.btn{background:var(--ember);color:#0b0912;height:46px;font:600 15px var(--body);cursor:pointer;pointer-events:auto;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;transition:transform .12s,filter .15s,background .15s;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.btn.ghost{color:var(--text);border-color:var(--line);background:0 0}.btn.ghost:hover{background:#ffffff0d}.btn[disabled]{opacity:.5;cursor:progress}.btn.block{width:100%}.signin-brand{align-items:center;gap:12px;margin-bottom:18px;display:flex}.signin-brand .mark{background:radial-gradient(circle at 50% 40%,#ff9a3d,#7a1d0b);border-radius:12px;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 0 30px #ff7a1a73}.signin-brand h1{font-family:var(--display);letter-spacing:.08em;margin:0;font-size:26px}.signin-brand p{color:var(--muted);margin:2px 0 0;font-size:13px}.signin-body p{color:var(--muted);margin:0 0 16px;font-size:14px;line-height:1.5}.stack{gap:10px;display:grid}.field{color:var(--muted);gap:6px;font-size:13px;display:grid}.field input,.field textarea{border:1px solid var(--line);color:var(--text);font:14px var(--body);background:#ffffff0a;border-radius:10px;outline:none;padding:11px 12px}.field input:focus,.field textarea:focus{border-color:#ff7a1a99}.err{color:var(--danger);min-height:18px;margin:4px 0 0;font-size:13px}details.adv summary{cursor:pointer;color:var(--muted);margin-top:6px;font-size:13px}.pill{color:var(--muted);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.stick{z-index:5;pointer-events:none;background:#ffffff0a;border:2px solid #ffffff2e;border-radius:50%;width:120px;height:120px;display:none;position:fixed;top:0;left:0}.stick-knob{background:#ff7a1a99;border-radius:50%;width:50px;height:50px;position:absolute;top:35px;left:35px;box-shadow:0 0 20px #ff7a1a99}@media (max-width:720px){#board{width:46vw;min-width:0;padding:8px}#board .row{grid-template-columns:8px 22px 1fr auto;height:22px;font-size:12px}#board .row .ko{display:none}#me{width:52vw;padding:8px 10px}#me .me-row{font-size:13px}#clock{padding:4px 10px;top:12px;left:auto;right:12px;transform:none}#net{display:none}#board{top:12px;left:12px}#me{bottom:12px;left:12px}#dash{width:92px;height:92px;bottom:12px;right:12px}#clock #time{font-size:20px}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (pointer:coarse){#dash kbd{display:none}}
