:root{--bg:#07151f;--panel:#08121bc7;--panel2:#0c1b27e0;--text:#e8f4ff;--muted:#94a8b8;--accent:#71d7ff;--line:#ffffff1f;--good:#9dffce;--warn:#ffd37b;--ui-font-scale:1;--hud-left:14px;--hud-top:14px;--hud-width:260px;--hud-scale:1;--topbar-left:50%;--topbar-top:14px;--topbar-scale:1;--minimap-right:18px;--minimap-bottom:18px;--minimap-size:190px;--banner-left:50%;--banner-top:70px;--banner-scale:1;--game-over-scale:1}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font-family:system-ui,Segoe UI,Arial,sans-serif;overflow:hidden}canvas{width:100%;height:100%;display:block}#minimap{right:var(--minimap-right);bottom:var(--minimap-bottom);width:var(--minimap-size);height:var(--minimap-size);z-index:8;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020c12b8;border:1px solid #ffffff38;border-radius:12px;position:fixed;box-shadow:0 10px 26px #00000047}#hud{top:var(--hud-top);left:var(--hud-left);width:var(--hud-width);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-user-select:none;user-select:none;z-index:10;transform:scale(var(--hud-scale));transform-origin:0 0;font-size:calc(12px * var(--ui-font-scale));border-radius:14px;padding:12px 14px;position:fixed;box-shadow:0 10px 30px #00000040}#hud h1{letter-spacing:.08em;color:#dff7ff;margin:0 0 10px;font-size:14px}.readrow{grid-template-columns:92px 1fr 54px;align-items:center;gap:8px;margin:5px 0;font-size:12px;display:grid}.bar{background:#ffffff1c;border-radius:999px;height:8px;overflow:hidden}.fill{background:linear-gradient(90deg,#63e2ff,#b8ffd9);border-radius:999px;width:0%;height:100%}.value{color:var(--good);text-align:right;font-variant-numeric:tabular-nums}#panel{background:var(--panel2);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;border-radius:14px;width:360px;max-height:calc(100vh - 70px);padding:12px;position:fixed;top:56px;right:14px;overflow:auto;box-shadow:0 10px 30px #00000040}#pauseBtn{z-index:22;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050f17b8;border-color:#fff3;min-width:82px;margin:0;position:fixed;top:92px;right:58px;box-shadow:0 10px 26px #0000003d}body.panelCollapsed #panel,body.helpCollapsed #help{display:none}#pauseSlidersSlot #panel,#pauseHelpSlot #help{width:auto;max-width:none;max-height:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;margin-top:10px;display:block;position:static;overflow:visible}#pauseSlidersSlot #panel{padding:12px}#pauseHelpSlot #help{padding:12px;font-size:12px;line-height:1.45}#panel h2{margin:0 0 8px;font-size:15px}#panel h3{color:#bfefff;letter-spacing:.08em;text-transform:uppercase;margin:14px 0 8px;font-size:12px}.subnote{color:#9cb6c7;margin:4px 0 9px;font-size:11px;line-height:1.35}.settingsTabBar{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.settingsTabBtn{margin:0;padding:7px 10px;font-size:11px}.settingsTabBtn.active{border-color:var(--accent);color:#eafcff;background:#71d7ff33}.settingsTabPanel.hidden{display:none}.colorInput{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:7px;width:100%;height:26px;padding:0}.modeTag{color:#8ddfff;border:1px solid #8ddfff59;border-radius:999px;margin-left:6px;padding:2px 6px;font-size:10px;display:inline-block}.ctrl{grid-template-columns:112px 1fr 72px;align-items:center;gap:8px;margin:7px 0;font-size:12px;display:grid}input[type=range]{width:100%}input.num{box-sizing:border-box;color:#cdefff;border:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;background:#00000038;border-radius:7px;width:68px;padding:4px 5px}input.num:focus{outline:1px solid var(--accent);background:#0000005c}.speedBox{align-items:center;gap:4px;display:flex}.speedBox input.num{width:58px}.speedBox select{border-radius:7px;width:54px;margin:0;padding:4px 3px;font-size:11px}button,select{color:var(--text);border:1px solid var(--line);cursor:pointer;background:#ffffff14;border-radius:10px;margin:3px 2px;padding:8px 9px;font-weight:600}button:hover{background:#ffffff24}textarea{box-sizing:border-box;color:#dff7ff;border:1px solid var(--line);resize:vertical;background:#00000042;border-radius:10px;width:100%;height:96px;padding:8px;font-size:11px}#help{z-index:10;border:1px solid var(--line);color:#c6d8e5;background:#040a1099;border-radius:14px;max-width:520px;padding:10px 12px;font-size:12px;line-height:1.45;position:fixed;bottom:14px;left:14px}.pill{border:1px solid var(--line);color:#eaffff;background:#ffffff0f;border-radius:999px;margin:2px;padding:2px 7px;display:inline-block}#status{color:var(--warn);margin-top:6px;font-size:12px}#alignBadge{color:#fff;text-align:center;pointer-events:none;background:#0000007a;border:1px solid #ffffff2e;border-radius:16px;padding:14px 18px;font-weight:700;display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#debugPanel{border:1px solid var(--line);color:#d8f7ff;white-space:pre;pointer-events:none;background:#00000094;border-radius:14px;width:330px;max-height:calc(100vh - 240px);padding:10px 12px;font:12px/1.42 ui-monospace,SFMono-Regular,Consolas,monospace;display:none;position:fixed;top:190px;left:14px;overflow:auto;box-shadow:0 10px 30px #00000040}#streakPanel{color:#d7fff4;text-align:center;pointer-events:none;letter-spacing:.03em;background:#0a1822bd;border:1px solid #a8ffee59;border-radius:16px;padding:10px 18px;font-weight:800;display:none;position:fixed;bottom:86px;left:50%;transform:translate(-50%);box-shadow:0 14px 38px #0000004d}#streakPanel .small{color:#8debdc;letter-spacing:0;margin-top:3px;font-size:12px;font-weight:700;display:block}#accelCurvePanel{background:#00000021;border:1px solid #ffffff1a;border-radius:12px;margin:10px 0 8px;padding:9px}#accelCurvePanel h4{color:#bfefff;letter-spacing:.04em;margin:0 0 4px;font-size:12px}#accelCurvePanel canvas{background:#0003;border:1px solid #ffffff1a;border-radius:10px;width:100%;height:118px;display:block}#accelCurveSliders{margin-top:8px}#accelCurveSliders .ctrl{grid-template-columns:86px 1fr 58px;margin:5px 0}#combatTopbar{top:var(--topbar-top);left:var(--topbar-left);transform:translateX(-50%) scale(var(--topbar-scale));transform-origin:top;z-index:12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:calc(12px * var(--ui-font-scale));letter-spacing:.03em;background:#050f17a8;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:10px;padding:8px 12px;font-weight:800;display:flex;position:fixed;box-shadow:0 10px 26px #00000038}#combatTopbar .chip{color:#dcf6ff;background:#ffffff14;border:1px solid #ffffff1a;border-radius:999px;padding:3px 8px}#combatTopbar button.chip{cursor:pointer;font:inherit}#combatTopbar .hp{color:#9dffce}#combatTopbar .danger{color:#ff8f7e}#missileLockBanner{right:18px;bottom:calc(var(--minimap-bottom) + var(--minimap-size) + 304px);z-index:13;box-sizing:border-box;color:#ffd37b;text-align:center;letter-spacing:.04em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050f17c7;border:1px solid #ffffff2e;border-radius:8px;width:190px;padding:8px 10px;font-size:12px;font-weight:900;display:none;position:fixed;box-shadow:0 10px 26px #0000003d}#missileLockBanner.visible{display:block}#missileLockBanner.locked{color:#9dffce;border-color:#9dffce6b}#missileLockBanner.warn{color:#ff8f7e;border-color:#ff8f7e7a}#weaponCorner{right:18px;bottom:calc(var(--minimap-bottom) + var(--minimap-size) + 12px);z-index:12;width:156px;transform:scale(var(--topbar-scale));transform-origin:100% 100%;grid-template-columns:1fr;gap:8px;display:grid;position:fixed}#weaponCorner .weaponReadout,#weaponCorner button{color:#e8f4ff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050f17b8;border:1px solid #ffffff2e;border-radius:8px;margin:0;padding:10px 12px;box-shadow:0 10px 26px #0000003d}#weaponCorner .weaponReadout{grid-template-columns:1fr auto;align-items:end;gap:2px 8px;display:grid}#weaponCorner .healthReadout{gap:4px 8px}#weaponCorner .weaponLabel,#weaponCorner button span{color:#9fb7c6;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900}#weaponCorner b{color:#fff;font-variant-numeric:tabular-nums;font-size:24px;line-height:1}#weaponCorner .weaponMeter{background:#ffffff1f;border-radius:999px;grid-column:1/-1;height:7px;overflow:hidden}#playerHpWeaponBar{background:linear-gradient(90deg,#9dffce,#63e2ff);border-radius:999px;width:100%;height:100%}#reloadText{color:#aefbd5;grid-column:1/-1;font-size:12px;font-weight:800}#weaponCorner .danger,#reloadText.danger{color:#ff8f7e}#missileBtn,#mineBtn,#torpedoBtn{justify-content:space-between;align-items:center;gap:10px;display:flex}#missileBtn b,#mineBtn b,#torpedoBtn b{font-size:18px}#mineTimersText,#torpedoStatusText{color:#a8bfcd;background:#050f1794;border:1px solid #ffffff1f;border-radius:8px;padding:8px 10px;font-size:11px;font-weight:800;line-height:1.35;box-shadow:0 10px 26px #0000002e}#reticle{z-index:11;pointer-events:none;opacity:.9;width:30px;height:30px;margin:-15px 0 0 -15px;display:none;position:fixed}#reticle:before,#reticle:after{content:"";background:#fff2a0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #fff0a0e6}#reticle:before{width:30px;height:2px}#reticle:after{width:2px;height:30px}#reticle .ring{border:2px solid #fff2a0;border-radius:50%;position:absolute;inset:5px;box-shadow:0 0 14px #fff0a0cc}#reticle.locked:before,#reticle.locked:after{background:#69ff98;box-shadow:0 0 12px #69ff98f2}#reticle.locked .ring{border-color:#69ff98;box-shadow:0 0 16px #69ff98f2}#reticle.enemyHover:before,#reticle.enemyHover:after{background:#ff4b3e;box-shadow:0 0 13px #ff4b3ef2}#reticle.enemyHover .ring{border-color:#ff4b3e;box-shadow:0 0 17px #ff4b3ef2}#hitBanners{top:var(--banner-top);left:var(--banner-left);transform:translateX(-50%) scale(var(--banner-scale));transform-origin:top;z-index:13;pointer-events:none;flex-direction:column;align-items:center;gap:7px;display:flex;position:fixed}.combatBanner{letter-spacing:.04em;font-weight:900;font-size:calc(13px * var(--ui-font-scale));color:#f8ffff;background:#081620b8;border:1px solid #ffffff2e;border-radius:999px;padding:8px 14px;animation:.9s ease-out forwards bannerPop;box-shadow:0 10px 28px #00000047}.combatBanner.hit{background:#194e2fd1;border-color:#7affa373}.combatBanner.warn{background:#692519d1;border-color:#ff846380}.combatBanner.wave{background:#18345ed6;border-color:#74bfff8c}@keyframes bannerPop{0%{opacity:0;transform:translateY(-8px)scale(.96)}12%{opacity:1}78%{opacity:1}to{opacity:0;transform:translateY(-24px)scale(1.02)}}#damageVignette{z-index:9;pointer-events:none;opacity:0;background:radial-gradient(circle,#0000 48%,#ff361e5c 100%);transition:opacity .18s ease-out;position:fixed;inset:0}#damageVignette.flash{opacity:1;transition:opacity 50ms ease-out}#screenDroplets{z-index:14;pointer-events:none;position:fixed;inset:0;overflow:hidden}.screenDrop{opacity:0;filter:blur(.2px);background:#d2f5ff4d;border-radius:50%;width:9px;height:9px;animation:1.15s ease-out forwards screenDropFade;position:absolute;box-shadow:0 0 7px #d2f5ff5c,inset 0 0 5px #fff6}@keyframes screenDropFade{0%{opacity:0;transform:scale(.35)translateY(0)}18%{opacity:.52}to{opacity:0;transform:scale(1.45)translateY(18px)}}#gameOverOverlay{z-index:45;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(circle at 50% 42%,#8f261a3d,#00080ec7 62%,#00050ae6);justify-content:center;align-items:center;display:none;position:fixed;inset:0}#gameOverOverlay.visible{display:flex}#gameOverOverlay .gameOverCard{text-align:center;width:min(680px,100vw - 44px);transform:scale(var(--game-over-scale));background:#07131de8;border:1px solid #fff3;border-radius:18px;padding:26px;box-shadow:0 34px 90px #00000094,inset 0 1px #ffffff12}#gameOverOverlay .gameOverEyebrow{color:#ffb39f;letter-spacing:.18em;text-transform:uppercase;font-size:13px;font-weight:900}#gameOverOverlay h2{letter-spacing:0;color:#fff4ef;text-shadow:0 0 24px #ff533659;margin:6px 0 20px;font-size:48px;line-height:1}#gameOverOverlay .gameOverStats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 22px;display:grid}#gameOverOverlay .gameOverStats div{background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;min-width:0;padding:14px 10px}#gameOverOverlay .gameOverStats span{color:#a8bfcd;text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800;display:block}#gameOverOverlay .gameOverStats b{color:#aefbd5;font-variant-numeric:tabular-nums;margin-top:6px;font-size:26px;display:block}#gameOverRestartBtn{color:#fff4ef;background:#ff5b4138;border-color:#ff917680;border-radius:10px;min-width:180px;padding:12px 18px;font-size:15px;font-weight:900}#gameOverRestartBtn:hover{background:#ff5b4152}@media (width<=680px){#gameOverOverlay h2{font-size:38px}#gameOverOverlay .gameOverStats{grid-template-columns:repeat(2,minmax(0,1fr))}}#pauseOverlay{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00090f85;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#pauseOverlay .pauseCard{background:#07141fdb;border:1px solid #ffffff2e;border-radius:20px;width:min(760px,100vw - 56px);max-height:calc(100vh - 56px);padding:18px;overflow:auto;box-shadow:0 30px 80px #00000073}#pauseOverlay h2{letter-spacing:.09em;margin:0 0 8px;font-size:18px}#pauseOverlay .pauseGrid{grid-template-columns:280px 1fr;align-items:start;gap:16px;display:grid}#pauseMap{background:#020c12b8;border:1px solid #fff3;border-radius:14px;width:280px;height:280px}#pauseOverlay .pauseStats{color:#d7edf7;font-size:13px;line-height:1.55}#pauseOverlay .pauseStats b{color:#aefbd5}.pauseSettingsPanel{background:#00000038;border:1px solid #ffffff24;border-radius:14px;margin-top:12px;padding:12px}.pauseSettingsTabs{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.uiEditorPanel{background:#0000003d;border:1px solid #ffffff24;border-radius:12px;margin-top:12px;padding:12px}.uiEditorPanel h3{letter-spacing:.08em;color:#bfefff;text-transform:uppercase;margin:0 0 8px;font-size:13px}.uiEditRow{grid-template-columns:132px 1fr 52px;align-items:center;gap:8px;margin:7px 0;display:grid}.uiEditRow label{color:#c8dde8;font-size:12px}.uiEditRow output{color:#aefbd5;text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.uiEditorActions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}
