:root{--bg-dark: #070913;--panel-bg: rgba(16, 23, 41, .85);--panel-border: rgba(56, 189, 248, .2);--accent-cyan: #00f0ff;--accent-gold: #ffd700;--accent-coral: #ff3366;--accent-green: #10b981;--text-main: #f1f5f9;--text-muted: #94a3b8;--font-display: "Outfit", sans-serif;--font-mono: "JetBrains Mono", monospace}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--bg-dark);background-image:radial-gradient(circle at 50% 10%,rgba(0,240,255,.08),transparent 40%),radial-gradient(circle at 90% 80%,rgba(255,51,102,.06),transparent 50%),linear-gradient(180deg,#070913,#0c1222);color:var(--text-main);font-family:var(--font-display);min-height:100vh;display:flex;flex-direction:column;align-items:center;overflow-x:hidden}#app{width:100%;max-width:860px;padding:12px;display:flex;flex-direction:column;gap:12px}.game-header{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 32px #0006}.logo-group{display:flex;flex-direction:column}.badge-satire{font-size:.65rem;font-weight:700;letter-spacing:1.5px;color:var(--accent-cyan);text-transform:uppercase}.logo-title{font-size:1.5rem;font-weight:900;letter-spacing:.5px;color:#fff;line-height:1.1;text-shadow:0 0 16px rgba(0,240,255,.4)}.logo-title .sub{font-size:.8rem;font-weight:600;color:var(--text-muted);margin-left:6px}.connection-bar{display:flex;align-items:center;gap:10px}.session-info{display:flex;align-items:center;gap:8px;background:#0f172acc;padding:4px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.user-badge{font-weight:700;color:var(--accent-cyan);font-size:.82rem}.user-email{color:var(--text-muted);font-family:var(--font-mono);font-size:.72rem}.btn-secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:4px 8px;font-size:.72rem;border-radius:6px;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:#fff3}.btn-primary{background:linear-gradient(135deg,#00f0ff,#07f);color:#050b14;font-weight:800;font-size:.82rem;padding:8px 18px;border:none;border-radius:6px;cursor:pointer;letter-spacing:.5px;transition:all .2s ease;box-shadow:0 4px 15px #00f0ff4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #00f0ff80}.canvas-wrapper{position:relative;width:100%;max-width:800px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:10px}#game-container{width:100%;max-width:800px;height:600px;max-height:72vh;border-radius:12px;overflow:hidden;box-shadow:0 12px 40px #0009,0 0 0 2px #38bdf833;background:#070913;display:flex;justify-content:center;align-items:center;position:relative}#game-container canvas{max-width:100%;max-height:100%;display:block}.legend-panel{width:100%;max-width:800px;background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;font-size:.78rem;color:var(--text-muted);flex-wrap:wrap;gap:8px}.legend-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:5px}.legend-divider{width:1px;height:18px;background:#ffffff1f}.key-cap{background:#1e293b;border:1px solid rgba(255,255,255,.2);padding:2px 5px;border-radius:4px;color:#fff;font-family:var(--font-mono);font-size:.72rem;box-shadow:0 2px #0006}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.coin-25{background:#f59e0b;box-shadow:0 0 6px #f59e0b}.coin-50{background:#06b6d4;box-shadow:0 0 6px #06b6d4}.coin-100{background:#eab308;box-shadow:0 0 8px #facc15}.enemy-hazard{background:#ef4444;box-shadow:0 0 8px #ef4444}.danger-text{color:#f87171}.audio-controls-group{display:flex;gap:6px}.btn-sound{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;border-radius:6px;padding:4px 8px;font-size:.72rem;cursor:pointer;transition:all .2s ease}.btn-sound:hover{background:#ffffff26}.touch-overlay{position:absolute;bottom:50px;left:0;width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding:0 16px;box-sizing:border-box;pointer-events:none;z-index:50;user-select:none;-webkit-user-select:none}.touch-dpad,.touch-action{pointer-events:auto;display:flex;flex-direction:column;align-items:center}.touch-row-vert{display:flex;justify-content:center}.touch-row-horiz{display:flex;gap:8px;margin:3px 0}.touch-btn{background:#0f172acc;border:1.5px solid rgba(0,240,255,.45);color:#fff;font-family:var(--font-display);font-weight:800;border-radius:12px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);touch-action:manipulation;box-shadow:0 4px 15px #00000080;transition:transform .06s ease,background .06s ease;-webkit-user-select:none;user-select:none}.touch-btn:active{transform:scale(.92);background:#00f0ff59;border-color:#00f0ff}.touch-btn-horiz{width:58px;height:50px;font-size:1.3rem;display:flex;align-items:center;justify-content:center}.touch-btn-vert{padding:4px 12px;font-size:.68rem;letter-spacing:.5px;border-radius:6px;background:#0f172ab3}.touch-btn-fire{width:78px;height:78px;border-radius:50%;background:linear-gradient(135deg,#ef4444d9,#b91c1cf2);border:2px solid #f87171;box-shadow:0 0 20px #ef444480;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.touch-btn-fire:active{transform:scale(.9);background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:0 0 30px #ef4444d9}.fire-icon{font-size:1.4rem}.fire-label{font-size:.68rem;letter-spacing:.5px;font-weight:900}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#030712e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px;box-sizing:border-box;transition:opacity .3s ease}.modal-card{background:#0f172a;border:1px solid rgba(0,240,255,.4);box-shadow:0 0 40px #00f0ff40,0 20px 40px #000c;border-radius:16px;width:100%;max-width:410px;padding:26px;display:flex;flex-direction:column;gap:16px}.modal-header h2{font-size:1.35rem;font-weight:800;color:#fff;margin-top:4px}.modal-header p{font-size:.78rem;color:var(--text-muted);margin-top:4px}.login-form{display:flex;flex-direction:column;gap:12px}.input-group{display:flex;flex-direction:column;gap:4px}.input-group label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.input-group input{background:#0f172ae6;border:1px solid rgba(255,255,255,.15);color:#fff;padding:8px 12px;border-radius:6px;font-family:var(--font-mono);font-size:.82rem;transition:all .2s ease;width:100%}.input-group input:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 10px #00f0ff4d}.input-addon-wrapper{display:flex;align-items:center;background:#0f172ae6;border:1px solid rgba(255,255,255,.15);border-radius:6px;overflow:hidden;transition:all .2s ease}.input-addon-wrapper:focus-within{border-color:var(--accent-cyan);box-shadow:0 0 10px #00f0ff4d}.input-addon-wrapper input{border:none!important;box-shadow:none!important;background:transparent!important;flex:1;padding:8px 12px!important}.input-addon{background:#1e293bcc;color:var(--accent-cyan);font-family:var(--font-mono);font-size:.72rem;padding:8px 10px;border-left:1px solid rgba(255,255,255,.1);white-space:nowrap;-webkit-user-select:none;user-select:none}.input-hint{font-size:.68rem;color:var(--text-muted);margin-top:2px}.btn-block{width:100%;padding:11px;font-size:.88rem;margin-top:4px}.login-alert{background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#fca5a5;padding:8px 12px;border-radius:6px;font-size:.76rem;line-height:1.3}@media (max-width: 860px){#app{padding:6px}.game-header{flex-direction:column;align-items:flex-start;gap:8px}.connection-bar{width:100%;justify-content:space-between}}@media (max-width: 500px){.touch-overlay{bottom:55px;padding:0 8px}.touch-btn-horiz{width:50px;height:46px;font-size:1.2rem}.touch-btn-fire{width:70px;height:70px}.input-addon{font-size:.62rem;padding:6px 8px}}.user-score-badge{background:#a855f733;border:1px solid rgba(168,85,247,.4);color:#d8b4fe;font-family:var(--font-mono);font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:4px}.btn-leaderboard{background:linear-gradient(135deg,#f59e0b33,#d977064d);border:1px solid rgba(245,158,11,.5);color:#fef08a;font-weight:700}.btn-leaderboard:hover{background:linear-gradient(135deg,#f59e0b59,#d9770680);border-color:gold}.modal-leaderboard{max-width:540px!important}.leaderboard-table-container{max-height:280px;overflow-y:auto;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#07091399}.leaderboard-table{width:100%;border-collapse:collapse;font-size:.78rem;text-align:left}.leaderboard-table th{background:#1e293bd9;color:var(--accent-cyan);padding:8px 10px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:5}.leaderboard-table td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.05);font-family:var(--font-mono)}.leaderboard-table tr:hover{background:#00f0ff0f}.leaderboard-table .rank-gold{color:gold;font-weight:800}.leaderboard-table .rank-silver{color:#cbd5e1;font-weight:800}.leaderboard-table .rank-bronze{color:#f59e0b;font-weight:800}.modal-lobby{max-width:680px!important;max-height:90vh;overflow-y:auto;gap:14px!important;padding:22px!important}.storyboard-panel{background:linear-gradient(135deg,#0f172af2,#1e293bd9);border:1px solid rgba(0,240,255,.35);border-radius:12px;padding:14px 18px;display:flex;flex-direction:column;gap:8px;box-shadow:0 4px 20px #00f0ff1a}.storyboard-header h2{font-size:1.25rem;font-weight:900;color:#fff;letter-spacing:.5px}.storyboard-narrative{font-size:.82rem;color:#cbd5e1;line-height:1.45}.storyboard-alert{background:#ef444426;border-left:3px solid #ef4444;padding:8px 12px;border-radius:4px;font-size:.76rem;color:#fca5a5;line-height:1.35}.lobby-profile-card{background:#0f172ad9;border:1px solid rgba(168,85,247,.35);border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.profile-info-main{display:flex;align-items:center;gap:10px}.profile-avatar{font-size:2rem}.profile-username{font-size:1.15rem;font-weight:800;color:#00f0ff}.profile-role{font-size:.72rem;color:var(--text-muted)}.profile-stats-grid{display:flex;gap:8px;flex-wrap:wrap}.stat-box{background:#1e293bb3;border:1px solid rgba(255,255,255,.1);padding:6px 12px;border-radius:6px;display:flex;flex-direction:column;align-items:center;min-width:85px}.stat-label{font-size:.62rem;font-weight:700;color:var(--text-muted);letter-spacing:.5px}.stat-value{font-family:var(--font-mono);font-size:.85rem;font-weight:800;color:gold;margin-top:2px}.rooms-section{display:flex;flex-direction:column;gap:10px}.rooms-header{display:flex;align-items:center;justify-content:space-between}.rooms-header h3{font-size:.95rem;font-weight:800;color:#fff}.rooms-header p{font-size:.72rem;color:var(--text-muted)}.rooms-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.room-card{background:#0f172ae6;border:1.5px solid rgba(56,189,248,.25);border-radius:10px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:all .2s ease;position:relative;-webkit-user-select:none;user-select:none}.room-card:hover{transform:translateY(-2px);border-color:var(--accent-cyan);box-shadow:0 6px 20px #00f0ff4d;background:#1e293bf2}.room-card.room-full{opacity:.55;cursor:not-allowed;border-color:#ef444466}.room-title{font-size:.82rem;font-weight:800;color:#fff}.room-badge-status{font-size:.62rem;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.room-badge-available{background:#10b98133;color:#34d399;border:1px solid rgba(16,185,129,.4)}.room-badge-active{background:#38bdf833;color:#38bdf8;border:1px solid rgba(56,189,248,.4)}.room-badge-full{background:#ef444433;color:#fca5a5;border:1px solid rgba(239,68,68,.4)}.room-capacity{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.btn-join-room{width:100%;padding:5px 0;font-size:.7rem;font-weight:800;border-radius:6px;border:none;background:linear-gradient(135deg,#00f0ff,#07f);color:#050b14;cursor:pointer;transition:all .15s ease}.btn-join-room:hover{filter:brightness(1.15)}@media (max-width: 650px){.rooms-grid{grid-template-columns:repeat(2,1fr)}.lobby-profile-card{flex-direction:column;align-items:flex-start}.profile-stats-grid{width:100%;justify-content:space-between}}
