:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#05070d;--bg-panel:#0b1120;--border:#1b2740;--text:#d7e4f5;--text-dim:#7d8ba3;--accent:#22d3ee;--accent-strong:#67e8f9;--danger:#f43f5e;--warn:#facc15;--ok:#34d399;--mono:"Consolas", "SFMono-Regular", ui-monospace, Menlo, monospace;--sans:"Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);margin:0;padding:0}body.gameplay-active{overscroll-behavior:none;overflow:hidden}#root{min-height:100dvh;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);box-sizing:border-box;display:flex}button{font-family:inherit}.app-shell{width:960px;max-width:100%;margin:auto;position:relative}.game-stage{width:min(960px, 100%, calc((100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) * 1.5));aspect-ratio:960/640;margin:0 auto;position:relative}.game-canvas-container{border:1px solid var(--border);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;height:100%;line-height:0;overflow:hidden;box-shadow:0 0 40px #22d3ee14}.game-canvas-container canvas{cursor:none;display:block}.hud{font-family:var(--mono);pointer-events:none;text-shadow:0 2px 6px #0009;flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;left:16px;right:16px}.hud-top{justify-content:space-between;align-items:center;gap:24px;display:flex}.hud-top-right{align-items:center;gap:20px;display:flex}.hud-wave{text-align:right;align-items:flex-end}.hud-wave-title{letter-spacing:.1em;color:var(--text-dim);font-size:11px}.hud-wave--milestone .hud-label,.hud-wave--milestone .hud-wave-title{color:var(--danger)}.hud-badges{flex-wrap:wrap;gap:10px;display:flex}.hud-effect-badge{border:1px solid var(--border);background:#0b1120b3;border-radius:6px;flex-direction:column;gap:4px;min-width:108px;padding:6px 10px;display:flex}.hud-effect-badge--negative{background:#2808088c}.hud-streak-badge{min-width:150px;transition:border-color .15s,background-color .15s}.hud-streak-label{transition:color .15s}.hud-streak-bonus{letter-spacing:.06em;font-size:10px}.hud-streak-badge--attack-speed{border-color:var(--accent)}.hud-streak-badge--attack-speed .hud-streak-label{color:var(--accent-strong)}.hud-streak-badge--attack-speed .hud-streak-bonus{color:var(--ok)}.hud-streak-badge--lifesteal{border-color:var(--danger)}.hud-streak-badge--lifesteal .hud-streak-label,.hud-streak-badge--lifesteal .hud-streak-bonus{color:var(--danger)}.hud-streak-badge--damage{background:#040406eb;border-color:#e5e7eb}.hud-streak-badge--damage .hud-streak-label,.hud-streak-badge--damage .hud-streak-bonus{color:#f4f4f5}.hud-streak-badge--move-speed{border-color:#3b82f6}.hud-streak-badge--move-speed .hud-streak-label,.hud-streak-badge--move-speed .hud-streak-bonus{color:#60a5fa}.hud-wave-scaling{border:1px solid var(--border);letter-spacing:.06em;color:var(--text-dim);background:#0b1120b3;border-radius:6px;align-self:flex-start;gap:6px;padding:4px 10px;font-size:10px;display:flex}.hud-wave-scaling-item{color:var(--text-dim)}.hud-wave-scaling-sep{opacity:.5}.hud-effect-label{letter-spacing:.08em;font-size:10px;font-weight:700}.hud-effect-bar{background:#ffffff1a;border-radius:2px;width:100%;height:4px;overflow:hidden}.hud-effect-bar-fill{height:100%;transition:width .15s linear}.hud-modules{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.hud-modules-label{margin-right:2px}.hud-module-chip{border:1px solid var(--accent);color:var(--accent-strong);letter-spacing:.06em;background:#0b1120b3;border-radius:10px;padding:3px 8px;font-size:10px;font-weight:700}.hud-module-stacks{color:var(--text-dim);font-weight:400}.hud-secondary{border:1px solid var(--border);font-family:var(--mono);pointer-events:none;text-shadow:0 2px 6px #0009;background:#0b1120b3;border-radius:8px;flex-direction:column;align-items:flex-end;gap:4px;padding:8px 12px;display:flex;position:absolute;bottom:16px;right:16px}.hud-secondary-label{letter-spacing:.06em;color:var(--text);font-size:11px}.hud-secondary-key{color:var(--accent-strong);font-weight:700}.hud-secondary-ready{letter-spacing:.08em;color:var(--ok);font-size:13px;font-weight:700}.hud-secondary-cooldown{align-items:center;gap:8px;display:flex}.hud-secondary-cooldown-track{background:#ffffff1a;border-radius:3px;width:90px;height:6px;overflow:hidden}.hud-secondary-cooldown-fill{background:var(--accent);height:100%;transition:width .1s linear}.hud-secondary-timer{color:var(--text-dim);font-size:11px}.hud-secondary-level{letter-spacing:.04em;color:var(--text-dim);font-size:10px}.hud-ultimate{border:1px solid var(--border);font-family:var(--mono);pointer-events:none;text-shadow:0 2px 6px #0009;background:#0b1120b3;border-radius:8px;flex-direction:column;align-items:flex-end;gap:4px;padding:8px 12px;display:flex;position:absolute;bottom:96px;right:16px}.hud-ultimate-recharging{letter-spacing:.04em;color:var(--text-dim);font-size:11px}.hud-ultimate-link-readout{letter-spacing:.04em;color:#facc15;font-size:10px}.hud-block{flex-direction:column;gap:4px;display:flex}.hud-label{letter-spacing:.12em;color:var(--text-dim);font-size:11px}.hud-value{color:var(--accent-strong);font-size:20px;font-weight:700}.hud-health{min-width:220px}.hud-bar{border:1px solid var(--border);background:#ffffff14;border-radius:4px;width:220px;height:10px;overflow:hidden}.hud-bar-fill{height:100%;transition:width .12s linear}.hud-bar-fill--ok{background:var(--ok)}.hud-bar-fill--warn{background:var(--warn)}.hud-bar-fill--critical{background:var(--danger)}.overlay-screen{z-index:10;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);box-sizing:border-box;background:#05070ddb;display:flex;position:fixed;inset:0;overflow-y:auto}.overlay-card{border:1px solid var(--border);background:var(--bg-panel);text-align:center;border-radius:12px;width:min(420px,90vw);margin:auto;padding:32px;box-shadow:0 0 60px #22d3ee1f}.overlay-eyebrow{font-family:var(--mono);letter-spacing:.18em;color:var(--accent);margin:0 0 8px;font-size:12px}.overlay-title{letter-spacing:.04em;color:var(--text);margin:0 0 12px;font-size:36px}.overlay-title--danger{color:var(--danger)}.overlay-subtitle{color:var(--text-dim);margin:0 0 20px}.overlay-controls{font-family:var(--mono);color:var(--text-dim);justify-content:center;gap:20px;margin:0 0 24px;padding:0;font-size:13px;list-style:none;display:flex}.overlay-controls span{color:var(--accent-strong);font-weight:700;display:block}.overlay-stats{justify-content:center;gap:32px;margin-bottom:24px;display:flex}.overlay-stat-label{color:var(--text-dim);font-size:12px;display:block}.overlay-stat-value{color:var(--accent-strong);font-size:24px;font-weight:700;display:block}.btn-primary,.btn-secondary,.character-card{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn-primary{border:1px solid var(--accent);color:var(--accent-strong);font-family:var(--mono);letter-spacing:.08em;cursor:pointer;background:#22d3ee1f;border-radius:6px;padding:12px 28px;font-size:14px;transition:background .15s,transform .15s}.btn-primary:hover{background:#22d3ee38;transform:translateY(-1px)}.overlay-actions{justify-content:center;gap:12px;display:flex}.btn-secondary{border:1px solid var(--border);color:var(--text-dim);font-family:var(--mono);letter-spacing:.06em;cursor:pointer;background:#ffffff0a;border-radius:6px;padding:12px 22px;font-size:13px;transition:background .15s,color .15s}.btn-secondary:hover{color:var(--text);background:#ffffff14}.menu-tagline{color:var(--text-dim);margin:0;font-size:13px}.menu-actions{flex-direction:column;align-items:center;gap:12px;margin:24px 0 18px;display:flex}.menu-actions .btn-primary,.menu-actions .btn-secondary{width:220px}.menu-version{font-family:var(--mono);letter-spacing:.1em;color:var(--text-dim);opacity:.7;margin:0;font-size:10px}.menu-footer-link{font-family:var(--mono);letter-spacing:.1em;color:var(--text-dim);opacity:.7;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin:14px 0 0;padding:4px 8px;font-size:10px;text-decoration:underline;transition:opacity .15s,color .15s}.menu-footer-link:hover{opacity:1;color:var(--text)}.register-prompt{margin:20px 0 16px}.register-prompt-question{font-family:var(--mono);letter-spacing:.1em;color:var(--accent-strong);margin:0 0 10px;font-size:13px}.overlay-divider{background:var(--border);height:1px;margin:16px 0}.overlay-actions--secondary .btn-secondary{padding:9px 16px;font-size:11px}.leaderboard-card{width:min(560px,94vw)}.leaderboard-empty{font-family:var(--mono);letter-spacing:.06em;color:var(--text-dim);margin:24px 0;font-size:12px}.leaderboard-empty--error{color:var(--danger);margin-bottom:14px}.leaderboard-table-wrap{margin:16px 0 24px;overflow-x:auto}.leaderboard-table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:13px}.leaderboard-table th{text-align:left;letter-spacing:.08em;color:var(--text-dim);border-bottom:1px solid var(--border);padding:6px 8px;font-size:10px}.leaderboard-table td{color:var(--text);border-bottom:1px solid #ffffff0d;padding:7px 8px}.leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-row--new td{color:var(--accent-strong);background:#22d3ee14}.leaderboard-glyph{width:16px;height:14px;margin:0;display:inline-block}.name-entry-score{font-family:var(--mono);letter-spacing:.06em;color:var(--accent-strong);margin:4px 0;font-size:28px;font-weight:700}.name-entry-highscore{color:var(--warn)}.name-entry-input{border:1px solid var(--accent);width:100%;color:var(--accent-strong);font-family:var(--mono);letter-spacing:.5em;text-align:center;text-transform:uppercase;box-sizing:border-box;background:#22d3ee0f;border-radius:6px;margin:16px 0 20px;padding:12px;font-size:24px;font-weight:700;display:block}.name-entry-input:focus{outline:none;box-shadow:0 0 0 2px #22d3ee59}.name-entry-privacy-note{color:var(--text-dim);margin:-6px 0 16px;font-size:11px}.name-entry-error{font-family:var(--mono);letter-spacing:.04em;color:var(--danger);margin:-8px 0 16px;font-size:11px}.name-entry-error+.btn-primary{margin-bottom:10px}.name-entry-input::placeholder{color:var(--text-dim);letter-spacing:.5em}.select-card{width:min(880px,95vw)}.select-subtitle{font-family:var(--mono);letter-spacing:.16em;color:var(--text-dim);margin:0 0 20px;font-size:12px}.character-grid{flex-wrap:wrap;justify-content:center;gap:16px;margin:0 0 24px;display:flex}.select-actions{justify-content:center;align-items:center;gap:16px;margin-top:8px;display:flex}.select-actions .btn-secondary{padding:10px 20px;font-size:12px}.character-card{border:1px solid var(--border);max-width:250px;color:var(--text);font-family:var(--mono);text-align:center;cursor:pointer;background:#0b112099;border-radius:10px;flex-direction:column;flex:220px;align-items:center;gap:8px;padding:18px 16px;transition:border-color .15s,background .15s,transform .15s;display:flex}@media (height<=520px) and (orientation:landscape){.character-grid{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:4px;overflow-x:auto}.character-card{scroll-snap-align:center;flex:0 0 190px;max-width:190px}}.character-card:hover{background:#0b1120d9;transform:translateY(-2px)}.character-card--selected{border-color:var(--accent);background:#22d3ee14;box-shadow:0 0 24px #22d3ee2e}.character-glyph{width:34px;height:30px;margin-bottom:4px}.character-callsign{letter-spacing:.07em;color:var(--text);font-size:15px;font-weight:800}.character-name{letter-spacing:.03em;color:var(--text-dim);font-size:11px;font-weight:500}.character-role{color:var(--text-dim);font-size:11px}.character-ability{letter-spacing:.06em;color:var(--accent-strong);border:1px solid var(--border);border-radius:10px;padding:2px 8px;font-size:10px}.character-description{font-family:var(--sans);color:var(--text-dim);margin-top:4px;font-size:11px;line-height:1.4;display:block}.character-secondary{letter-spacing:.04em;color:var(--text-dim);border-top:1px dashed var(--border);width:100%;margin-top:6px;padding-top:6px;font-size:10px;display:block}.character-ultimate{letter-spacing:.04em;color:var(--accent-strong);width:100%;margin-top:4px;font-size:10px;display:block}.stat-bar{align-items:center;gap:8px;width:100%;display:flex}.stat-bar-label{letter-spacing:.06em;color:var(--text-dim);text-align:left;flex-shrink:0;width:44px;font-size:9px}.stat-bar-track{background:#ffffff14;border-radius:3px;flex:1;height:6px;overflow:hidden}.stat-bar-fill{background:var(--accent);border-radius:3px;height:100%;display:block}.howto-card{text-align:left;width:min(640px,94vw);max-height:86vh;overflow-y:auto}.howto-card>.overlay-eyebrow,.howto-card>.overlay-title{text-align:center}.howto-section{border-top:1px solid var(--border);margin:22px 0;padding-top:14px}.howto-section:first-of-type{border-top:none;margin-top:18px;padding-top:0}.howto-heading{font-family:var(--mono);letter-spacing:.14em;color:var(--accent);margin:0 0 10px;font-size:13px}.howto-heading--danger{color:var(--danger)}.howto-section p{color:var(--text-dim);margin:0 0 8px;font-size:13px;line-height:1.55}.howto-note{color:var(--text-dim);opacity:.85;font-size:12px;font-style:italic}.howto-controls-list{font-family:var(--mono);color:var(--text-dim);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 10px;padding:0;font-size:12px;list-style:none;display:grid}.howto-controls-list li{border:1px solid var(--border);background:#ffffff08;border-radius:6px;padding:8px 10px}.howto-controls-list span{color:var(--accent-strong);letter-spacing:.06em;margin-bottom:3px;font-weight:700;display:block}.howto-character-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.howto-character{border:1px solid var(--border);text-align:center;background:#0b112099;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:14px 12px;display:flex}.howto-character-glyph{margin-bottom:2px}.howto-character-callsign{letter-spacing:.05em;color:var(--text);margin:0;font-size:13px;font-weight:800}.howto-character-name{color:var(--text-dim);margin:0;font-size:10.5px}.howto-character-role{color:var(--accent-strong);margin:0 0 4px;font-size:11px}.howto-character-line{color:var(--text-dim);align-self:flex-start;margin:0;font-size:11.5px}.howto-character-line strong{color:var(--text)}.howto-list{color:var(--text-dim);margin:0 0 10px;padding:0;font-size:13px;line-height:1.6;list-style:none}.howto-list strong{color:var(--text)}.howto-section--danger .howto-list strong{color:var(--danger)}
