:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101826;--bg-panel:#1b2a41;--accent:#4fa8ff;--accent-dark:#2f7fd6;--text:#eaf2ff;--text-dim:#9db3cc;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%;background:var(--bg);width:100%;height:100%;color:var(--text);margin:0;padding:0;overflow:hidden}#app{width:100%;height:100%}button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn{border:none;border-radius:12px;min-height:52px;padding:14px 26px;font-size:1.05rem;font-weight:700;transition:transform 80ms,filter .15s}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn:disabled{filter:grayscale(.6);opacity:.6}.btn-primary{background:linear-gradient(180deg, var(--accent), var(--accent-dark));color:#041322}.btn-secondary{color:var(--text);background:#24374f}.btn-ghost{color:var(--text-dim);background:0 0;border:2px solid #2c435f}@media (hover:hover){.btn:hover{filter:brightness(1.1)}}.screen{width:100%;height:100%;padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;overflow-y:auto}.panel{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(560px,100%);padding:18px;display:flex}.panel-title{margin:0;font-size:clamp(1.4rem,4.5vw,2.2rem)}.panel-text{color:var(--text-dim);max-width:44ch;margin:0;font-size:clamp(.95rem,2.6vw,1.05rem)}.panel-note{color:var(--text-dim);min-height:1.1em;margin:0;font-size:.85rem}.start-screen .game-title{letter-spacing:.02em;background:linear-gradient(180deg, #fff, var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2rem,9vw,4rem)}.button-stack{flex-direction:column;gap:12px;width:min(340px,100%);display:flex}.button-row{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;display:flex}.field{text-align:left;flex-direction:column;gap:6px;width:min(340px,100%);display:flex}.field-label{color:var(--text-dim);font-size:.85rem}.field-input{font:inherit;min-height:52px;color:var(--text);background:#0d1624;border:2px solid #2c435f;border-radius:12px;padding:12px 14px}.field-input:focus{border-color:var(--accent);outline:none}.field-code{letter-spacing:.35em;text-align:center;text-transform:uppercase;font-size:1.6rem}.color-picker{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.color-swatch{background:var(--swatch);border:3px solid #0000;border-radius:14px;width:48px;height:48px;padding:0}.color-swatch.is-selected{border-color:#fff;transform:scale(1.08)}.lobby-code-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.room-code{letter-spacing:.25em;background:#0d1624;border-radius:14px;padding:10px 18px;font-size:clamp(2rem,8vw,3rem);font-weight:800}.qr{width:108px;height:108px;image-rendering:pixelated;background:#fff;border-radius:10px;padding:4px}.share-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.share-feedback{color:var(--text-dim);word-break:break-all;font-size:.85rem}.roster{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.roster-item{background:#0d1624;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:8px 14px;display:flex}.roster-item.is-you{outline:2px solid var(--accent)}.roster-dot{background:var(--dot);border-radius:50%;width:14px;height:14px}.roster-you{color:var(--text-dim);font-size:.75rem}.roster-ready{color:var(--accent);text-transform:uppercase;font-size:.75rem;font-weight:700}.spinner{border:4px solid #24374f;border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}@media (max-height:460px){.panel{gap:10px;padding:10px}.panel-title{font-size:1.3rem}.start-screen .game-title{font-size:2rem}.qr{width:84px;height:84px}.room-code{font-size:1.8rem}}.podium{flex-direction:column;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.podium-row{background:#0d1624;border-radius:12px;grid-template-columns:28px 14px 1fr auto auto;align-items:center;gap:10px;min-height:48px;padding:10px 14px;display:grid}.podium-row.is-you{outline:2px solid var(--accent)}.podium-place{color:var(--text-dim);font-size:1.1rem;font-weight:800}.podium-name{text-align:left;font-weight:600}.podium-stat{color:var(--text-dim);white-space:nowrap;font-size:.85rem}.session-root{width:100%;height:100%;position:relative}.game-canvas{cursor:crosshair;width:100%;height:100%;display:block}.session-hint{color:var(--text-dim);pointer-events:none;text-align:center;background:#101826a6;border-radius:8px;padding:8px 16px;font-size:.9rem;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.debug-overlay{color:#b6ffb6;white-space:pre;pointer-events:none;z-index:20;background:#0000008c;border-radius:8px;padding:10px 14px;font-family:Consolas,Courier New,monospace;font-size:.8rem;position:absolute;top:12px;left:12px}.session-root{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.hud-buttons{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:15;gap:8px;display:flex;position:absolute}.hud-button{min-width:48px;min-height:48px;color:var(--text);touch-action:manipulation;background:#101826c7;border:none;border-radius:12px;padding:0 16px;font-size:.95rem;font-weight:600}.hud-button:active{transform:scale(.96)}.hud-leave{background:#782028d1}.session-hint{bottom:max(16px, env(safe-area-inset-bottom));max-width:min(90vw,520px)}.rotate-prompt{text-align:center;z-index:30;background:#080e18eb;justify-content:center;align-items:center;padding:24px;font-size:1.3rem;font-weight:700;display:none;position:absolute;inset:0}.rotate-prompt.is-visible{display:flex}@media (pointer:coarse){.game-canvas{cursor:default}}.combat-hud{pointer-events:none;z-index:12;position:absolute;inset:0}.health-bar{left:max(16px, env(safe-area-inset-left));bottom:max(16px, env(safe-area-inset-bottom));background:#101826b3;border-radius:11px;align-items:center;width:min(220px,40vw);height:22px;display:flex;position:absolute;overflow:hidden}.health-fill{background:linear-gradient(90deg,#3fae4a,#6fd66a);width:100%;transition:width .15s ease-out;position:absolute;inset:0}.health-fill.is-low{background:linear-gradient(90deg,#b23a2f,#e8593f)}.health-label{text-align:center;color:#fff;text-shadow:0 1px 2px #0009;width:100%;font-size:.85rem;font-weight:700;position:relative}.hit-marker{opacity:0;width:26px;height:26px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hit-marker.is-visible{opacity:1}.hit-marker:before,.hit-marker:after{content:"";background:#fff;width:100%;height:3px;position:absolute;top:50%;left:50%;box-shadow:0 0 3px #000000b3}.hit-marker:before{transform:translate(-50%,-50%)rotate(45deg)}.hit-marker:after{transform:translate(-50%,-50%)rotate(-45deg)}.damage-numbers{position:absolute;inset:0}.damage-number{color:#ff8f7a;text-shadow:0 1px 3px #000000b3;font-size:1.1rem;font-weight:700;animation:.7s ease-out forwards damage-number-rise;position:absolute;top:50%;transform:translate(-50%)}@keyframes damage-number-rise{0%{opacity:1;top:50%}to{opacity:0;top:calc(50% - 40px)}}.damage-indicator{width:140px;height:140px;transform:translate(-50%, -50%) rotate(var(--bearing,0deg));opacity:0;position:absolute;top:50%;left:50%}.damage-indicator.is-visible{opacity:1}.damage-indicator:before{content:"";border-bottom:16px solid #ff5a44;border-left:10px solid #0000;border-right:10px solid #0000;width:0;height:0;position:absolute;top:4px;left:50%;transform:translate(-50%)}.kill-feed{top:max(12px, env(safe-area-inset-top));z-index:15;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.kill-feed-entry{color:var(--text);white-space:nowrap;background:#101826b8;border-radius:8px;padding:6px 14px;font-size:.85rem;font-weight:600}.countdown-overlay{pointer-events:none;z-index:30;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.countdown-overlay.is-hidden{display:none}.countdown-digit{color:var(--text);text-shadow:0 4px 24px #0009;font-size:clamp(4rem,20vw,9rem);font-weight:800}.scoreboard-overlay{top:max(12px, env(safe-area-inset-top));z-index:25;background:#0d1624d9;border-radius:12px;min-width:min(320px,90vw);padding:10px 14px;position:absolute;left:50%;transform:translate(-50%)}.scoreboard-overlay.is-hidden{display:none}.scoreboard-list{flex-direction:column;gap:6px;display:flex}.scoreboard-row{color:var(--text);grid-template-columns:14px 1fr 32px 32px 64px;align-items:center;gap:10px;font-size:.85rem;display:grid}.scoreboard-row.is-you{font-weight:700}.scoreboard-dot{background:var(--dot);border-radius:50%;width:12px;height:12px}.scoreboard-stat{text-align:right}.scoreboard-ping{color:var(--text-dim);text-align:right}.touch-controls{z-index:20;pointer-events:none;position:absolute;inset:0}.touch-controls.is-left-handed,.touch-controls.is-left-handed .touch-buttons,.touch-controls.is-left-handed .touch-stick-base,.touch-controls.is-left-handed .touch-settings-row,.touch-controls.is-left-handed .touch-debug{transform:scaleX(-1)}.touch-stick-base{opacity:0;pointer-events:none;background:#ffffff14;border:2px solid #fff3;border-radius:50%;width:110px;height:110px;margin-top:-55px;margin-left:-55px;transition:opacity .15s;position:absolute}.touch-stick-base.is-active{opacity:1}.touch-stick-knob{background:#ffffff59;border-radius:50%;width:48px;height:48px;margin-top:-24px;margin-left:-24px;position:absolute;top:50%;left:50%}.touch-buttons{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:8px;display:flex;position:absolute}.touch-row{pointer-events:none;align-items:flex-end;gap:8px;display:flex}.touch-btn{pointer-events:auto;min-width:56px;min-height:56px;color:var(--text);touch-action:none;-webkit-user-select:none;user-select:none;background:#101826b8;border:none;border-radius:50%;font-size:.85rem;font-weight:700}.touch-btn-attack{background:#ff5a44bf;min-width:72px;min-height:72px}.touch-btn-sprint.is-on{background:#4fa8ffbf}.touch-slots{pointer-events:none;gap:8px;display:flex}.touch-slots .touch-btn{pointer-events:auto;min-width:44px;min-height:44px}.touch-settings-row{left:max(14px, env(safe-area-inset-left));top:max(14px, env(safe-area-inset-top));pointer-events:none;align-items:center;gap:6px;display:flex;position:absolute}.touch-btn-settings{pointer-events:auto;border-radius:10px;min-width:40px;min-height:40px}.touch-btn-wide{min-width:96px;padding:0 10px;font-size:.75rem}.touch-btn-settings.is-on{background:#4fa8ffbf}.touch-settings-label,.touch-settings-value{color:var(--text-dim);white-space:nowrap;background:#101826b8;border-radius:8px;padding:6px 8px;font-size:.75rem}.touch-debug{left:max(14px, env(safe-area-inset-left));bottom:max(60px, env(safe-area-inset-bottom));z-index:40;color:#0f0;pointer-events:none;word-break:break-all;background:#000000bf;max-width:70vw;padding:4px 8px;font-family:monospace;font-size:11px;position:absolute}
