:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f4f1e8;--paper:#101010;--accent:#50d1c0;--danger:#f05a4f;--panel:#0a0a0ab8}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--paper);width:100%;height:100%;color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:hidden}button{font:inherit}.game-shell{overscroll-behavior:none;touch-action:none;background:#101010;width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}.render-root{position:absolute;inset:0}.render-root canvas{width:100%;height:100%;display:block}.hud{z-index:3;align-items:center;gap:10px;display:flex;position:absolute;top:18px;left:18px}.hud-pill{background:var(--panel);text-transform:uppercase;min-width:92px;animation:hud-wobble var(--hud-wobble-period,1.7s) ease-in-out infinite;will-change:transform;border:1px solid #f4f1e833;border-radius:6px;padding:8px 10px;font-size:13px;line-height:1.2}.hud-pill:nth-child(2n){animation-direction:alternate-reverse}.hud-pill:nth-child(3n){animation-delay:.22s}@keyframes hud-wobble{0%{transform:translate3d(calc(var(--hud-wobble-px,.55px) * -1), 0, 0) rotate(calc(var(--hud-wobble-deg,.32deg) * -1))}50%{transform:translate3d(var(--hud-wobble-px,.55px), calc(var(--hud-wobble-px,.55px) * .5), 0) rotate(var(--hud-wobble-deg,.32deg))}to{transform:translate3d(calc(var(--hud-wobble-px,.55px) * -1), 0, 0) rotate(calc(var(--hud-wobble-deg,.32deg) * -1))}}@media (prefers-reduced-motion:reduce){.hud-pill{animation:none;transform:none}.hud-grain{animation:none}}.hud-grain{z-index:1;pointer-events:none;opacity:var(--hud-grain-opacity,.06);mix-blend-mode:overlay;background-image:radial-gradient(#f4f1e88c 1px,#0000 1.4px),radial-gradient(#1010108c 1px,#0000 1.4px);background-position:0 0,1px 2px;background-size:3px 3px,5px 5px;animation:.48s steps(2,end) infinite hud-grain-drift;position:absolute;inset:0}@keyframes hud-grain-drift{0%{background-position:0 0,1px 2px}50%{background-position:1px 2px,2px 0}to{background-position:2px 1px,0 1px}}.hud-splatter{z-index:2;pointer-events:none;opacity:calc(var(--hud-splatter-intensity,0) * .85);filter:blur(.4px);background-image:radial-gradient(circle at 4% 8%,#100404d9 0,#1004048c 5vmin,#10040400 13vmin),radial-gradient(circle at 96% 6%,#100404d9 0,#1004048c 4vmin,#10040400 11vmin),radial-gradient(circle at 6% 96%,#100404c7 0,#10040466 6vmin,#10040400 14vmin),radial-gradient(circle at 94% 94%,#100404c7 0,#10040466 5vmin,#10040400 12vmin),radial-gradient(60vmin 24vmin at 50% 0,#10040480 0,#10040426 60%,#10040400 100%),radial-gradient(60vmin 24vmin at 50% 100%,#10040480 0,#10040426 60%,#10040400 100%);position:absolute;inset:0}.hud-pill strong{color:var(--accent);margin-top:3px;font-size:18px;display:block}.hud-pill span{color:#f4f1e8b8;text-transform:none;margin-top:2px;font-size:12px;display:block}.combo-pill strong{color:#ffb04f}.weapon-ready-pill strong{color:#8fe6d9}.weapon-ready-pill.weapon-recovering strong{color:#ffb04f}.debug-pill{min-width:126px}.crosshair{z-index:2;pointer-events:none;width:24px;height:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair:before,.crosshair:after{content:"";background:#f4f1e8eb;position:absolute;box-shadow:0 0 8px #50d1c073}.crosshair:before{width:2px;height:20px;top:2px;left:11px}.crosshair:after{width:20px;height:2px;top:11px;left:2px}.damage-flash{z-index:2;pointer-events:none;border:12px solid #f05a4f00;animation:.42s ease-out damage-flash;position:absolute;inset:0}@keyframes damage-flash{0%{background:#f05a4f29;border-color:#f05a4fb8}to{background:#f05a4f00;border-color:#f05a4f00}}.damage-indicator{z-index:2;pointer-events:none;transform-origin:50%;background:conic-gradient(from -45deg,#f05a4f00 0deg,#f05a4f52 22deg,#f05a4fd1 45deg,#f05a4f52 68deg,#f05a4f00 90deg 360deg);border-radius:50%;width:min(96vmin,720px);height:min(96vmin,720px);animation:.72s ease-out forwards damage-indicator;position:absolute;top:50%;left:50%;-webkit-mask-image:radial-gradient(circle,#0000 38%,#000 50%,#0000 64%);mask-image:radial-gradient(circle,#0000 38%,#000 50%,#0000 64%)}@keyframes damage-indicator{0%{opacity:.95}60%{opacity:.55}to{opacity:0}}.weapon{z-index:2;pointer-events:none;background-position:bottom;background-repeat:no-repeat;background-size:contain;width:min(38vw,384px);height:min(32vh,256px);position:absolute;bottom:0;left:50%;transform:translate(-50%)}.weapon-peashooter{background-image:url(/assets/weapons/peashooter-idle.png)}.weapon-peashooter.weapon-firing{background-image:url(/assets/weapons/peashooter-fire.png)}.weapon-boomstick{background-image:url(/assets/weapons/boomstick-idle.png)}.weapon-boomstick.weapon-firing{background-image:url(/assets/weapons/boomstick-fire.png)}.weapon-inkblaster{background-image:url(/assets/weapons/inkblaster-idle.png)}.weapon-inkblaster.weapon-firing{background-image:url(/assets/weapons/inkblaster-fire.png)}.weapon.weapon-firing{animation:weapon-recoil var(--weapon-recoil-duration,.14s) ease-out forwards}@keyframes weapon-recoil{0%{transform:translate(-50%)translateY(0)rotate(0)}35%{transform:translateX(-50%) translateY(var(--weapon-recoil-kick,6px)) rotate(var(--weapon-recoil-rotate,-1.2deg))}to{transform:translate(-50%)translateY(0)rotate(0)}}.muzzle-flash{z-index:3;width:calc(min(22vw, 220px) * var(--muzzle-scale,1));height:calc(min(22vw, 220px) * var(--muzzle-scale,1));pointer-events:none;background:radial-gradient(circle at center, var(--muzzle-color,#ffdc8cf2) 0%, #ffdc8c52 38%, #ffdc8c00 70%);filter:blur(2px);mix-blend-mode:screen;animation:muzzle-flash var(--muzzle-duration,.11s) ease-out forwards;border-radius:50%;position:absolute;bottom:min(28vh,220px);left:50%;transform:translate(-50%,50%)scale(.4)}.muzzle-flash-inkblaster{background:radial-gradient(circle at center, var(--muzzle-color,#50d1c0eb) 0%, #50d1c047 42%, #50d1c000 72%)}@keyframes muzzle-flash{0%{opacity:0;transform:translate(-50%,50%)scale(.4)}35%{opacity:1;transform:translate(-50%,50%)scale(1.05)}to{opacity:0;transform:translate(-50%,50%)scale(.85)}}.start-panel{z-index:4;background:radial-gradient(circle at 50% 42%,#50d1c029,#101010e0 48%,#101010 100%);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.start-panel-inner{text-align:center;width:min(520px,100%)}.start-panel h1{color:var(--ink);letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:clamp(54px,9vw,104px);line-height:.9}.start-panel p{color:#f4f1e8c2;max-width:420px;margin:0 auto 22px;font-size:16px;line-height:1.5}.summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:360px;margin:0 auto 22px;display:grid}.summary p{color:var(--ink);background:#0a0a0aad;border:1px solid #f4f1e833;border-radius:6px;margin:0;padding:8px}.settings-panel{background:#0a0a0a9e;border:1px solid #f4f1e82e;border-radius:6px;gap:10px;max-width:360px;margin:0 auto 18px;padding:10px;display:grid}.settings-panel label{color:#f4f1e8cc;text-align:left;grid-template-columns:92px 1fr;align-items:center;gap:8px;font-size:13px;display:grid}.settings-panel input[type=range]{width:100%}.audio-toggle{grid-template-columns:20px 1fr}.practice-panel{background:#0a0a0a9e;border:1px solid #f4f1e82e;border-radius:6px;gap:10px;max-width:360px;margin:0 auto 18px;padding:10px;display:grid}.practice-panel label{color:#f4f1e8cc;text-align:left;grid-template-columns:110px 1fr;align-items:center;gap:8px;font-size:13px;display:grid}.practice-panel select,.practice-panel input[type=range]{width:100%}.practice-panel select{min-width:0;color:var(--ink);font:inherit;background:#0000008c;border:1px solid #f4f1e83d;border-radius:6px;padding:6px 8px}.practice-panel fieldset{border:1px solid #f4f1e829;border-radius:6px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:8px;display:grid}.practice-panel legend{color:#f4f1e8b8;padding:0 4px;font-size:12px}.practice-panel .toggle-row{align-items:center;gap:6px;display:flex}.daily-schedule{text-align:left;background:#0a0a0a9e;border:1px solid #f4f1e82e;border-radius:6px;gap:8px;max-width:420px;margin:0 auto 18px;padding:10px;display:grid}.schedule-row,.schedule-hazards li{color:#f4f1e8c7;grid-template-columns:1fr auto;align-items:center;gap:12px;font-size:13px;display:grid}.schedule-row strong,.schedule-hazards strong{color:var(--accent);font-size:14px}.schedule-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.schedule-strip span{min-width:0;color:var(--ink);text-align:center;border:1px solid #50d1c042;border-radius:6px;padding:6px;font-size:12px}.schedule-hazards{gap:6px;margin:0;padding:0;list-style:none;display:grid}.leaderboard{max-width:360px;margin:0 auto 18px;padding:0;list-style:none}.leaderboard li{color:#f4f1e8d6;border-bottom:1px solid #f4f1e81f;grid-template-columns:1fr auto;gap:12px;padding:7px 8px;font-size:13px;display:grid}.shared-leaderboard,.submit-panel{background:#0a0a0a9e;border:1px solid #f4f1e82e;border-radius:6px;max-width:360px;margin:0 auto 18px;padding:10px}.shared-leaderboard p{color:#f4f1e8c2;margin:8px 0 0;font-size:13px}.leaderboard-tabs{grid-template-columns:1fr 1fr;gap:6px;display:grid}.leaderboard-tabs button,.secondary-button{color:var(--ink);cursor:pointer;background:#f4f1e814;border:1px solid #f4f1e83d;border-radius:6px;padding:8px 10px;font-weight:700}.leaderboard-tabs button.active,.secondary-button{background:var(--accent);color:#061412}.secondary-button:disabled{cursor:default;opacity:.72}.submit-panel{grid-template-columns:1fr auto;align-items:end;gap:10px;display:grid}.submit-panel label{color:#f4f1e8cc;text-align:left;gap:5px;font-size:13px;display:grid}.submit-panel input{width:100%;color:var(--ink);font:inherit;text-transform:uppercase;background:#0000008c;border:1px solid #f4f1e83d;border-radius:6px;padding:8px 10px}.pause-panel{z-index:5;background:#060606b8;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.pause-panel-inner{text-align:center;width:min(420px,100%)}.pause-panel h2{text-transform:uppercase;margin:0 0 14px;font-size:44px;line-height:1}.start-button{background:var(--accent);color:#061412;cursor:pointer;text-transform:uppercase;border:1px solid #f4f1e857;border-radius:6px;min-width:190px;padding:12px 18px;font-weight:700}.status-line{z-index:3;background:var(--panel);color:#f4f1e8d1;border:1px solid #f4f1e829;border-radius:6px;max-width:min(380px,100vw - 36px);padding:8px 10px;font-size:13px;position:absolute;bottom:18px;right:18px}.touch-controls{z-index:4;pointer-events:none;position:absolute;inset:0}.touch-stick,.touch-knob{pointer-events:none;border-radius:50%;position:fixed}.touch-stick{background:#00000038;border:2px solid #50d1c0d1;place-items:center;display:grid;box-shadow:0 0 18px #50d1c033}.touch-stick span{color:#f4f1e8ad;text-transform:uppercase;font-size:11px;font-weight:700}.touch-stick-look{border-color:#ffb04fdb;box-shadow:0 0 18px #ffb04f38}.touch-knob{background:#50d1c0d6;width:48px;height:48px;box-shadow:0 3px 12px #0000005c}.touch-knob-look{background:#ffb04fdb}.touch-zone-label{bottom:max(18px, env(safe-area-inset-bottom));z-index:4;color:#f4f1e875;text-transform:uppercase;background:#0a0a0a6b;border:1px solid #f4f1e824;border-radius:6px;padding:6px 8px;font-size:11px;font-weight:700;position:fixed}.touch-zone-label-left{left:max(12px, env(safe-area-inset-left))}.touch-zone-label-right{right:max(12px, env(safe-area-inset-right))}@media (pointer:fine){.touch-zone-label{display:none}}@media (max-width:720px){.hud{top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.hud-pill{min-width:0;padding:6px 7px;font-size:10px}.hud-pill strong{font-size:14px}.hud-pill span{font-size:10px}.debug-pill{display:none}.weapon{width:min(54vw,270px);height:min(24vh,180px)}.status-line{right:max(8px, env(safe-area-inset-right));left:max(8px, env(safe-area-inset-left));bottom:calc(max(8px, env(safe-area-inset-bottom)) + 34px);max-width:none;font-size:12px}.start-panel,.pause-panel{padding:max(14px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));overflow:hidden}.start-panel h1{font-size:clamp(44px,15vw,72px)}.start-panel-inner,.pause-panel-inner{overscroll-behavior:contain;touch-action:pan-y;max-height:calc(100dvh - 28px);overflow:auto}.settings-panel,.practice-panel,.shared-leaderboard,.daily-schedule{max-width:min(360px,100vw - 24px)}}
