:root{--ink:#e8edf3;--dim:#93a1b3;--panel:#0c1018c7;--accent:#ffd24a;--shard:#6ff0ff;--bad:#ff5a5a}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:#0b0f16;margin:0;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;overflow:hidden}#c{width:100vw;height:100vh;display:block;position:fixed;inset:0}#labels{pointer-events:none;position:fixed;inset:0;overflow:hidden}#hud{pointer-events:none;position:fixed;inset:0}#overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mono{font-family:IBM Plex Mono,ui-monospace,Menlo,monospace}.topbar{gap:10px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.chip{background:var(--panel);white-space:nowrap;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:8px;padding:8px 14px;font:600 20px/1.1 IBM Plex Mono,ui-monospace,monospace;display:flex}.chip small{color:var(--dim);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:500}.chip.shards b{color:var(--shard)}.chip.integrity b{color:#7cf29a}.chip.integrity.low b{color:var(--bad)}.chip.phase b{color:var(--accent)}.bar{background:#ffffff1f;border-radius:4px;width:90px;height:8px;overflow:hidden}.bar>i{background:#7cf29a;height:100%;display:block}.help{color:var(--dim);background:#0a0e1499;border-radius:8px;padding:6px 10px;font:12px/1.4 IBM Plex Mono,monospace;position:absolute;bottom:8px;left:10px}.fps{color:var(--dim);background:#0a0e1499;border-radius:8px;padding:4px 8px;font:12px IBM Plex Mono,monospace;position:absolute;bottom:8px;right:10px}.toasts{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.toast{background:var(--panel);text-align:center;border-radius:10px;max-width:70vw;padding:6px 14px;font-size:15px;animation:4s forwards fadeout}@keyframes fadeout{0%,80%{opacity:1}to{opacity:0}}.banner{letter-spacing:.04em;text-shadow:0 4px 24px #0009;white-space:nowrap;font:800 54px/1 IBM Plex Sans,system-ui;animation:2.6s forwards banner;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}@keyframes banner{0%{opacity:0;transform:translate(-50%,-40%)}12%,75%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0}}.auth{background:#781414d9;border:2px solid #ff6b6b;border-radius:12px;max-width:320px;padding:10px 14px;font-size:16px;animation:1s infinite alternate pulse;position:absolute;top:70px;right:14px}@keyframes pulse{0%{box-shadow:0 0 #ff5a5a00}to{box-shadow:0 0 24px #ff5a5acc}}.authkey{color:#ffd2d2;font:700 13px IBM Plex Mono,monospace}.lbl{white-space:nowrap;text-shadow:0 1px 3px #000;will-change:transform;font:600 12px IBM Plex Mono,monospace;position:absolute;transform:translate(-50%,-100%)}.hp{background:#000000b3;border:1px solid #ffffff59;border-radius:3px;width:42px;height:8px;position:absolute;overflow:hidden;transform:translate(-50%,-100%)}.hp>i{background:#ff5a3c;height:100%;display:block}.hp.jam>i{background:#c084fc}.q{color:#ffb86b;text-shadow:0 1px 3px #000;font:800 16px IBM Plex Mono,monospace;position:absolute;transform:translate(-50%,-100%)}.float{color:var(--shard);text-shadow:0 2px 4px #000;font:800 18px IBM Plex Mono,monospace;animation:1.2s forwards floatup;position:absolute;transform:translate(-50%,-100%)}.float.bad{color:var(--bad);font-size:22px}@keyframes floatup{0%{opacity:1;margin-top:0}to{opacity:0;margin-top:-46px}}.name{background:#0000008c;border-radius:6px;padding:1px 6px;font:700 13px IBM Plex Sans,system-ui;position:absolute;transform:translate(-50%,-100%)}.stars{color:var(--accent);text-shadow:0 1px 2px #000;font:700 13px system-ui;position:absolute;transform:translate(-50%,-100%)}.prog{background:#0009;border-radius:3px;width:40px;height:6px;position:absolute;overflow:hidden;transform:translate(-50%,-100%)}.prog>i{background:var(--accent);height:100%;display:block}.padmenu{white-space:nowrap;background:#0a0e14e0;border:1px solid #ffffff26;border-radius:10px;padding:6px 8px;font:12px/1.45 IBM Plex Mono,monospace;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.padmenu .no{color:#7a8494;text-decoration:line-through}.padmenu .hold{color:var(--accent)}.card{pointer-events:auto;background:#0a0e16e6;border:1px solid #ffffff1a;border-radius:18px;align-items:center;gap:32px;max-width:92vw;padding:28px 34px;display:flex;box-shadow:0 20px 80px #0009}.card h1{letter-spacing:.02em;margin:0 0 4px;font:800 44px/1 IBM Plex Sans,system-ui}.card h2{color:var(--dim);margin:0 0 18px;font:500 16px IBM Plex Sans,system-ui}.code{letter-spacing:.18em;color:var(--accent);font:800 64px/1 IBM Plex Mono,monospace}.url{color:var(--shard);word-break:break-all;margin:6px 0 14px;font:14px IBM Plex Mono,monospace}.qr{background:#fff;border-radius:10px;padding:10px;line-height:0}.qr svg,.qr img{width:210px;height:210px;display:block}.players{flex-wrap:wrap;gap:8px;min-height:34px;margin:10px 0;display:flex}.pl{color:#0b0f16;border-radius:999px;padding:6px 12px;font-weight:700}.keys{color:var(--dim);font:13px/1.6 IBM Plex Mono,monospace}.keys b{color:var(--ink)}.btn{pointer-events:auto;cursor:pointer;background:var(--accent);color:#111;border:0;border-radius:10px;padding:10px 18px;font:800 16px system-ui}.tut{border:1px solid #ffd24a99;border-left:5px solid var(--accent);background:#0a0e16e6;border-radius:12px;max-width:min(760px,80vw);padding:10px 16px;font:500 17px/1.35 IBM Plex Sans,system-ui;display:none;position:absolute;bottom:58px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000080}.tut small{letter-spacing:.14em;color:var(--accent);margin-bottom:2px;font:700 11px IBM Plex Mono,monospace;display:block}.tut .kh{color:var(--dim);font-size:14px}.btn.alt{color:#e8edf3;background:#26324a}.stars{font-size:14px}
