@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@700;900&display=swap');
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{background:#0a0a0f;color:#e8e8ff;font-family:sans-serif;overflow:hidden;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;user-select:none}
canvas{display:block}
#ui{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;pointer-events:none;overflow:hidden}
.screen{display:none;flex-direction:column;align-items:center;gap:16px;padding:24px;pointer-events:all;width:100%;max-width:480px;text-align:center}
.screen.active{display:flex}
.logo{font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(22px,5vw,42px);color:#ff00ff;text-shadow:0 0 20px #ff00ff,0 0 40px rgba(255,0,255,0.3);letter-spacing:3px}
.sub{color:#555;font-family:'Orbitron',monospace;font-size:10px;letter-spacing:5px;margin-top:-8px}
.room-box{background:rgba(255,0,255,0.05);border:1px solid rgba(255,0,255,0.2);border-radius:12px;padding:20px;width:100%;display:flex;flex-direction:column;gap:12px}
.label{color:#555;font-family:'Orbitron',monospace;font-size:10px;letter-spacing:3px;text-align:left}
input{background:rgba(255,255,255,0.04);border:1px solid #2a2a4e;border-radius:8px;padding:12px 16px;color:#e8e8ff;font-family:'Orbitron',monospace;font-size:14px;width:100%;outline:none;transition:border-color 0.2s}
input:focus{border-color:rgba(255,0,255,0.5)}
.btn{padding:14px 24px;font-family:'Orbitron',monospace;font-size:12px;font-weight:700;border:none;border-radius:8px;cursor:pointer;letter-spacing:2px;transition:all 0.2s;width:100%}
.btn-pink{background:linear-gradient(135deg,#ff00ff,#aa00aa);color:#fff;box-shadow:0 4px 20px rgba(255,0,255,0.3)}
.btn-pink:hover{box-shadow:0 4px 40px rgba(255,0,255,0.5)}
.btn-cyan{background:linear-gradient(135deg,#00f5ff,#0088aa);color:#0a0a0f;box-shadow:0 4px 20px rgba(0,245,255,0.3)}
.btn-cyan:hover{box-shadow:0 4px 40px rgba(0,245,255,0.5)}
.btn-outline{background:transparent;border:1px solid #2a2a4e;color:#555;font-family:'Orbitron',monospace;font-size:11px;letter-spacing:2px;padding:10px 20px;border-radius:8px;cursor:pointer;transition:all 0.2s}
.btn-outline:hover{border-color:#555;color:#888}
#roomCode{font-family:'Orbitron',monospace;font-size:22px;letter-spacing:8px;color:#ff00ff;text-shadow:0 0 10px #ff00ff;background:rgba(255,0,255,0.05);border:1px solid rgba(255,0,255,0.2);padding:12px 24px;border-radius:8px}
#playerList{display:flex;flex-direction:column;gap:6px;width:100%}
.player-entry{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.03);border-radius:6px;padding:8px 12px;font-family:'Orbitron',monospace;font-size:11px}
.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.crown{margin-left:auto;opacity:0.6;font-size:12px}
#statusMsg{color:#555;font-family:'Orbitron',monospace;font-size:10px;letter-spacing:2px;min-height:20px}
#hud{position:fixed;top:0;left:0;width:100%;padding:8px 16px;display:none;align-items:center;justify-content:space-between;z-index:5;background:linear-gradient(to bottom,rgba(10,10,15,0.8),transparent)}
.hud-item{font-family:'Orbitron',monospace;font-size:11px;color:#555;display:flex;flex-direction:column;align-items:center;gap:2px}
.hud-val{font-size:14px;color:#e8e8ff;font-variant-numeric:tabular-nums;min-width:3ch;text-align:center;display:block}
.score-board{position:fixed;right:8px;top:50px;display:none;flex-direction:column;gap:4px;z-index:5;will-change:transform}
.sb-row{font-family:'Orbitron',monospace;font-size:10px;padding:4px 8px;border-radius:4px;display:flex;align-items:center;gap:6px;background:rgba(0,0,0,0.4)}
#announceOverlay{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:20;display:none;font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(16px,4.2vw,40px);text-align:center;pointer-events:none;white-space:normal;max-width:90vw;overflow-wrap:break-word;line-height:1.25}
#countdownEl{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:20;display:none;font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(60px,15vw,120px);color:#fff;text-shadow:0 0 40px currentColor;pointer-events:none}
#touchOverlay{position:fixed;inset:0;display:none;z-index:4;touch-action:none}
#steerDot{position:fixed;width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,0,255,0.4);background:rgba(255,0,255,0.1);display:none;pointer-events:none;transform:translate(-50%,-50%);z-index:6;transition:border-color 0.1s}
#deathMsg{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:25;display:none;font-family:'Orbitron',monospace;text-align:center;pointer-events:all;background:rgba(5,5,12,0.88);border:1px solid rgba(255,0,85,0.35);border-radius:16px;padding:28px 32px;box-shadow:0 0 40px rgba(0,0,0,0.6);backdrop-filter:blur(3px);max-width:90vw}
#shareSection{display:flex;flex-direction:column;gap:8px;width:100%;background:rgba(0,245,255,0.05);border:1px solid rgba(0,245,255,0.15);border-radius:8px;padding:12px}
#shareUrl{font-size:11px;color:#00f5ff;word-break:break-all;font-family:monospace}
a.hub-link{color:#555;font-size:11px;font-family:'Orbitron',monospace;letter-spacing:1px;text-decoration:none;margin-top:8px;display:block}
a.hub-link:hover{color:#888}
.name-row{display:flex;gap:8px;width:100%}
.name-row input{flex:1}
.dice-btn{background:rgba(255,0,255,0.08);border:1px solid rgba(255,0,255,0.25);border-radius:8px;padding:12px 14px;cursor:pointer;font-size:18px;flex-shrink:0;transition:all 0.2s}
.dice-btn:hover{background:rgba(255,0,255,0.18)}
#nameToast{display:none;background:#ff2244;color:#fff;font-family:'Orbitron',monospace;font-size:12px;padding:10px 16px;border-radius:6px;text-align:center;width:100%}
#nameSug{color:#444;font-family:'Orbitron',monospace;font-size:9px;letter-spacing:1px;min-height:14px;text-align:left}
#topScoresLobby{width:100%;max-width:420px}
#qrSection{display:none;flex-direction:column;align-items:center;gap:6px;background:rgba(255,0,255,0.04);border:1px solid rgba(255,0,255,0.15);border-radius:10px;padding:12px}
#qrSection img{border-radius:6px;border:2px solid rgba(255,0,255,0.3)}
#qrLabel{font-family:'Orbitron',monospace;font-size:9px;letter-spacing:2px;color:#555}
body.arena-active #hud{top:22px!important}
body.arena-active .score-board{top:72px!important}
body.arena-active #hudScore{top:30px!important}
body.arena-active #powersHud{top:82px!important}
#hudScore{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:5;font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(22px,5vw,36px);color:#ffd700;text-shadow:0 0 16px #ffd700,0 0 32px rgba(255,215,0,0.4);display:none;pointer-events:none;text-align:center;line-height:1;font-variant-numeric:tabular-nums;min-width:5ch}
#hudScoreSub{font-size:9px;letter-spacing:3px;color:#886600;display:block;margin-top:2px}
.lb-tabs{display:flex;gap:8px;margin-bottom:8px;width:100%;max-width:420px}
.lb-tab{background:transparent;color:#555;border:1px solid #333;padding:8px 20px;font-family:'Orbitron',monospace;font-size:12px;border-radius:4px;cursor:pointer}
.lb-tab.active{color:#ff00ff;border-color:#ff00ff}
.lb-entry{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;margin:4px 0;background:#0d0d18;border-radius:4px;border-left:3px solid #ff00ff;width:100%;max-width:420px}
.lb-entry.gold{border-color:#ffd700}.lb-entry.silver{border-color:#c0c0c0}.lb-entry.bronze{border-color:#cd7f32}
.lb-entry.me{background:#160d20;border-color:#ff00ff}
.lb-rank{font-family:'Orbitron',monospace;font-size:12px;color:#666;width:30px}
.lb-name{flex:1;text-align:left;margin-left:10px;font-family:'Orbitron',monospace;font-size:11px;color:#888}
.lb-score{font-family:'Orbitron',monospace;color:#ffd700;font-size:11px;font-variant-numeric:tabular-nums;min-width:5ch;text-align:right;display:inline-block}
#leaderboardList{width:100%;max-width:420px;max-height:52vh;overflow-y:auto;padding-right:4px}
#topScores{width:100%;max-width:420px}
.lb-loading{color:#555;font-family:'Orbitron',monospace;font-size:12px;margin-top:20px;text-align:center}
#dimOverlay{position:fixed;inset:0;z-index:9;background:rgba(5,5,10,0.82);display:none;backdrop-filter:blur(2px)}
#screenOver{background:rgba(8,8,18,0.96);border:1px solid rgba(255,0,255,0.2);border-radius:20px;max-height:90dvh;overflow-y:auto;box-shadow:0 0 60px rgba(255,0,255,0.15),0 0 120px rgba(0,0,0,0.8);padding:28px 24px}
#screenWaiting{gap:10px;padding:18px 16px;max-height:95dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}
