:root{--bg: #0b1020;--panel: rgba(14, 20, 40, .72);--border: rgba(140, 170, 255, .18);--text: #eaf0ff;--muted: #92a3cc;--accent: #4fc3f7;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}#scene{position:fixed;inset:0;width:100%;height:100%;display:block}#join{position:fixed;inset:0;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 50% 40%,#0b1020a6,#060914f0);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;transition:opacity .4s ease}#join.leaving{opacity:0;pointer-events:none}#join-form{width:min(26rem,100%);display:flex;flex-direction:column;gap:.75rem;padding:2rem;border:1px solid var(--border);border-radius:1rem;background:var(--panel);box-shadow:0 1.5rem 4rem #0000008c;text-align:center}#join-form h1{margin:0;font-size:1.9rem;letter-spacing:-.02em}#join-form p{margin:0;color:var(--muted);font-size:.95rem}#username{padding:.85rem 1rem;font-size:1rem;color:var(--text);background:#040814cc;border:1px solid var(--border);border-radius:.6rem;text-align:center}#username:focus{outline:2px solid var(--accent);outline-offset:1px}#join-button{padding:.85rem 1rem;font-size:1rem;font-weight:600;color:#04121c;background:linear-gradient(180deg,#7fdcff,var(--accent));border:0;border-radius:.6rem;cursor:pointer}#join-button:disabled{opacity:.55;cursor:progress}.error{min-height:1.2rem;color:#ff8a9b!important;font-size:.85rem!important}.controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;margin:.4rem 0 0;padding:.9rem 0 0;border-top:1px solid var(--border);list-style:none;font-size:.78rem;color:var(--muted)}.controls li{display:flex;align-items:center;gap:.25rem}kbd{padding:.12rem .36rem;border:1px solid var(--border);border-bottom-width:2px;border-radius:.28rem;background:#040814bf;color:var(--text);font:inherit;font-size:.72rem}#crosshair{position:fixed;top:50%;left:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#ffffff8c;box-shadow:0 0 0 1px #00000073;pointer-events:none;opacity:0;transition:opacity .25s ease;z-index:6}body.playing #crosshair{opacity:1}#resume{position:fixed;inset:0;display:grid;place-items:center;background:#0609148c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:9;cursor:pointer}#resume.visible{opacity:1;pointer-events:auto}.resume-card{padding:1.4rem 2.2rem;border:1px solid var(--border);border-radius:.8rem;background:var(--panel);text-align:center}.resume-card h2{margin:0 0 .3rem;font-size:1.1rem}.resume-card p{margin:0;color:var(--muted);font-size:.9rem}#hud{position:fixed;top:0;left:0;padding:max(1rem,env(safe-area-inset-top)) 1rem 1rem max(1rem,env(safe-area-inset-left));z-index:5;pointer-events:none}.hud-title{display:flex;align-items:center;gap:.6rem;margin-bottom:.9rem}.hud-title h1{margin:0;font-size:1.05rem;font-weight:650;letter-spacing:.01em}.mark{width:.7rem;height:.7rem;border-radius:50%;background:var(--accent);box-shadow:0 0 .75rem var(--accent)}.roster{min-width:12rem;max-width:16rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.roster h2{margin:0 0 .6rem;font-size:.7rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}#player-count{color:var(--text)}#player-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.4rem;max-height:55vh;overflow-y:auto}#player-list li{display:flex;align-items:center;gap:.55rem;font-size:.9rem;line-height:1.3}#player-list .dot{width:.6rem;height:.6rem;flex:none;border-radius:50%}#player-list .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#player-list .you{color:var(--muted);font-size:.75rem}#status{position:fixed;bottom:max(1rem,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);padding:.5rem .9rem;font-size:.85rem;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:8}#status.visible{opacity:1}@media(max-width:30rem){.roster{max-width:11rem}}@media(prefers-reduced-motion:reduce){#join,#status{transition:none}}
