:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e9f2f7;background:radial-gradient(circle at top,#337da940,#0000 35%),linear-gradient(#07131e 0%,#0d2130 48%,#04090d 100%);font-family:Segoe UI,sans-serif}*{box-sizing:border-box}body{background:0 0;min-width:320px;min-height:100vh;margin:0}code{color:#9ad8ff;overflow-wrap:anywhere;background:#ffffff14;border-radius:10px;margin-top:.75rem;padding:.55rem .7rem;display:inline-block}.shell{width:min(1100px,100% - 2rem);margin:0 auto;padding:1.25rem 0 4rem}.shell-match{width:calc(100% - 2rem);max-width:none}.lede{color:#e9f2f7d1;max-width:42rem;font-size:1.05rem;line-height:1.7}.card-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;display:grid}.status-lights{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.status-light-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:inherit;font:inherit;cursor:pointer;background:#09141f9e;border:1px solid #9ad8ff2e;border-radius:999px;align-items:center;gap:.65rem;padding:.7rem .95rem;display:inline-flex}.status-light-pill:hover{border-color:#9ad8ff52}.status-light-pill:focus-visible{outline-offset:3px;outline:2px solid #6bd1ffe6}.status-modal{width:min(34rem,100vw - 2rem)}.status-light-label{white-space:nowrap}.status-light{background:#ffad5c;border-radius:50%;width:.75rem;height:.75rem;box-shadow:0 0 .6rem #ffad5c8c}.status-light.ok{background:#61e294;box-shadow:0 0 .7rem #61e294b3}.status-light.warning{background:#ffad5c;box-shadow:0 0 .7rem #ffad5cb3}.workspace{grid-template-columns:minmax(280px,360px) 1fr;gap:1rem;margin-top:1rem;display:grid}.control-row{margin-top:1rem}.workspace>.card{min-width:0}.match-screen{margin-top:1rem}.match-topbar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.match-topbar .status-lights{margin-bottom:0}.match-lobby-meta{min-width:0}.match-lobby-meta .context-title{margin-bottom:0}.match-topbar-actions{align-items:center;gap:.75rem;display:inline-flex}.card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#09141fb8;border:1px solid #9ad8ff2e;border-radius:18px;padding:1.25rem}.card h2,.card h3{margin-top:0}.status-line{margin-bottom:0}.helper{color:#e9f2f7b8;font-size:.92rem}.context-title{margin:0 0 .5rem;font-size:1.3rem;font-weight:700}.banner{border-radius:14px;margin:1rem 0 0;padding:.85rem 1rem}.banner.success{color:#baf2d4;background:#48b58429}.banner.error{color:#ffb9b9;background:#c44a4a24}.timer-banner{background:linear-gradient(135deg,#114260d9,#081f31eb),#09141fb8;border:1px solid #6bd1ff33;border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1rem 1.15rem;display:flex}.timer-label,.timer-value,.timer-copy{margin:0}.timer-label{text-transform:uppercase;letter-spacing:.18em;color:#e9f2f7b8;font-size:.72rem}.timer-value{font-size:clamp(1.9rem,4vw,3rem);font-weight:800;line-height:.95}.timer-copy{text-align:right;color:#e9f2f7d1;max-width:30rem}.timer-chip{background:linear-gradient(135deg,#114260d9,#081f31eb),#09141fb8;border:1px solid #6bd1ff33;border-radius:16px;min-width:120px;padding:.8rem 1rem}.timer-chip-value{margin:0;font-size:1.5rem;font-weight:800;line-height:1}.timer-warning{background:linear-gradient(135deg,#694510e0,#2f210aeb),#09141fb8;border-color:#ffc46673}.timer-critical{background:linear-gradient(135deg,#751e1ee6,#370c0cf0),#09141fb8;border-color:#ff7e7e8c}.field{gap:.35rem;margin-bottom:.9rem;display:grid}.field span{color:#e9f2f7b8;font-size:.92rem}.field input,.field select{width:100%;color:inherit;background:#ffffff0f;border:1px solid #9ad8ff33;border-radius:12px;padding:.8rem .9rem}.field select option{color:#e9f2f7;background:#0d2130}.action,.ghost,.lobby-button{font:inherit}.action,.ghost{cursor:pointer;border:0;border-radius:999px;padding:.85rem 1.1rem}.compact{padding:.55rem .9rem}.action:disabled,.ghost:disabled{opacity:.6;cursor:not-allowed}.action{color:#03131f;background:linear-gradient(135deg,#6bd1ff 0%,#1e8fd4 100%);font-weight:700}.ghost{color:inherit;background:#ffffff14}.wide{width:100%;margin-top:.75rem}.match-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem;margin-top:1rem;display:grid}.map-stack{gap:.85rem;max-width:none;display:grid}.match-info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.playback-card{margin-top:.15rem}@media (width<=900px){.match-topbar{grid-template-columns:1fr;align-items:start}.match-topbar-actions{justify-content:space-between;width:100%}}@media (width<=640px){.match-topbar{grid-template-columns:auto 1fr;align-items:center;gap:.75rem}.match-topbar .status-lights{flex-wrap:nowrap;gap:.5rem}.status-lights-compact-mobile .status-light-pill{padding:.65rem}.status-lights-compact-mobile .status-light-label,.match-lobby-meta{display:none}.match-topbar-actions{white-space:nowrap;justify-content:flex-end;gap:.5rem;width:auto}.timer-chip{min-width:0;padding:.65rem .8rem}.timer-chip-value{font-size:1.2rem}.match-topbar .ghost.compact{padding-inline:.8rem}}.match-command-box{padding:.9rem 1rem}.menu-kicker{text-transform:uppercase;letter-spacing:.18em;color:#e9f2f78f;margin:0 0 .35rem;font-size:.72rem}.compact-head-actions{gap:.5rem}.command-box-grid{grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:.75rem;margin-top:.75rem;display:grid}.command-box-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .7rem;display:grid}.command-box-stats p{background:#ffffff0a;border-radius:10px;justify-content:space-between;gap:.45rem;margin:0;padding:.45rem .6rem;font-size:.92rem;display:flex}.command-box-stats span{color:#e9f2f7b8}.compact-hull-bar{margin-top:0}.command-icon-row{gap:.6rem;margin-top:.75rem;display:flex}.icon-action-button,.weapon-chip{color:inherit;font:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #9ad8ff29;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:.6rem .8rem;display:inline-flex}.icon-action-button:disabled,.weapon-chip:disabled{opacity:.45;cursor:not-allowed}.icon-badge{color:#9ad8ff;background:#6bd1ff29;border-radius:999px;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.82rem;font-weight:700;display:inline-flex}.weapon-chip-list{flex-wrap:wrap;gap:.55rem;margin-top:.75rem;display:flex}.weapon-chip{justify-content:space-between;min-width:150px}.menu-toggle{white-space:nowrap;align-items:center;gap:.75rem;padding-inline:1rem;display:inline-flex}.hamburger-lines{gap:.2rem;display:inline-grid}.hamburger-lines span{background:currentColor;border-radius:999px;width:1rem;height:2px;display:block}.match-menu-body{margin-top:1rem}.match-menu-modal{z-index:40;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.match-menu-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#030a129e;border:0;position:absolute;inset:0}.match-menu-dialog{z-index:1;width:min(760px,100vw - 2rem);max-height:calc(100vh - 2rem);padding:1.25rem;position:relative;overflow:auto;box-shadow:0 30px 90px #0000006b}.match-menu-dialog-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.tactical-map-viewport{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;border-radius:18px;width:100%;max-height:82vh;margin-top:.85rem;overflow:auto}.tactical-map-stage{width:calc(100% * var(--map-zoom,1));position:relative}.tactical-map{background:radial-gradient(circle at 30% 25%,#3e93cc38,#0000 28%),linear-gradient(#081f31f2,#040e17fa);border:1px solid #9ad8ff24;border-radius:18px;width:100%;max-width:none;margin:0;display:block}.tactical-map.placement-active{touch-action:none}@media (width<=1000px){.tactical-map-stage{width:calc(820px * var(--map-zoom,1))}}.terrain-island{fill:#3f7a4c}.terrain-reef{fill:#4b5560}.terrain-fog{fill:#c8d6e033}.helper-warning{color:#ffb46a}.map-tools{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.section-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.playback-active-copy{background:#6bd1ff14;border:1px solid #6bd1ff29;border-radius:14px;margin:.7rem 0 0;padding:.85rem .95rem}.playback-feed{margin-top:.85rem}.button-row{flex-wrap:wrap;gap:.75rem;display:flex}.grid-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.pill{color:#9ad8ff;background:#6bd1ff24;border-radius:999px;padding:.25rem .7rem;font-size:.85rem}.lobby-list,.player-list,.feed-list{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.lobby-list li{background:#ffffff0a;border-radius:14px;padding:0;overflow:hidden}.lobby-list li.selected{outline:1px solid #6bd1ff8c}.lobby-button{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:.2rem;padding:.9rem 1rem;display:grid}.player-list li,.feed-list li{background:#ffffff0a;border-radius:14px;gap:.18rem;padding:.85rem .95rem;display:grid}.ship-picker{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin:1rem 0;display:grid}.ship-tab,.mode-button,.attack-button{font:inherit;color:inherit}.ship-tab{text-align:left;cursor:pointer;background:#ffffff0a;border:1px solid #9ad8ff24;border-radius:16px;gap:.22rem;padding:.9rem 1rem;display:grid}.ship-tab.active{background:#1a6f9d52;border-color:#6bd1ffa6}.ship-tab.destroyed{opacity:.45}.ship-details,.command-section{background:#ffffff09;border:1px solid #9ad8ff1a;border-radius:16px;margin-top:1rem;padding:1rem}.hull-card{background:#ffffff0b;border:1px solid #9ad8ff1f;border-radius:14px;margin:1rem 0 .9rem;padding:.85rem .9rem}.hull-card .section-head{align-items:baseline;gap:.75rem}.hull-bar{background:#ffffff14;border-radius:999px;height:.7rem;margin-top:.55rem;overflow:hidden}.hull-bar-fill{border-radius:inherit;height:100%;transition:width .18s}.hull-bar-fill.tone-high{background:linear-gradient(90deg,#39c778 0%,#8df0b6 100%)}.hull-bar-fill.tone-medium{background:linear-gradient(90deg,#d3a33b 0%,#ffd36f 100%)}.hull-bar-fill.tone-low{background:linear-gradient(90deg,#c74d4d 0%,#ff8b73 100%)}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.detail-grid p{background:#ffffff0a;border-radius:12px;gap:.18rem;margin:0;padding:.75rem .8rem;display:grid}.detail-grid span{color:#e9f2f7b8}.control-switch{background:#ffffff0d;border-radius:999px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;margin-top:1rem;padding:.35rem;display:inline-grid}.mode-button{cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.7rem 1rem}.mode-button.active{color:#03131f;background:linear-gradient(135deg,#6bd1ff 0%,#1e8fd4 100%);font-weight:700}.mode-button:disabled{opacity:.45;cursor:not-allowed}.attack-list{gap:.75rem;margin:1rem 0;display:grid}.attack-button{text-align:left;cursor:pointer;background:#ffffff0a;border:1px solid #9ad8ff24;border-radius:16px;gap:.2rem;padding:.9rem 1rem;display:grid}.attack-button.active{background:#a54d3747;border-color:#ff8a6cb3}.attack-button.cooling{opacity:.5}.attack-button:disabled{cursor:not-allowed}@media (width<=700px){.shell{width:min(100% - 1rem,100%);padding-top:2rem}.timer-banner{flex-direction:column;align-items:flex-start}.timer-copy{text-align:left}.workspace,.match-layout,.grid-two{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.map-stack{width:100%;max-width:none}.match-info-grid{grid-template-columns:1fr}.playback-card .section-head{align-items:flex-start}.match-command-box{padding:.8rem}.command-box-grid{grid-template-columns:1fr}.command-box-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.match-menu-header{flex-direction:column;align-items:stretch}.menu-toggle{justify-content:center;width:100%}.tactical-map-viewport{height:min(112vw,78vh)}.match-menu-dialog{width:min(100vw - 1rem,100%);max-height:calc(100vh - 1rem);padding:1rem}.match-menu-dialog-head{flex-direction:column;align-items:stretch}.ship-details,.command-section{padding:.85rem}.detail-grid p{padding:.65rem .7rem}}@media (width<=420px){.match-topbar-actions{gap:.35rem}.match-topbar-actions .action.compact,.match-topbar-actions .ghost.compact{padding-inline:.7rem}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid p strong,.detail-grid p span{font-size:.9rem}}.checkbox-row{color:#e9f2f7cc;cursor:pointer;align-items:center;gap:.45rem;font-size:.88rem;display:inline-flex}.shell-match .match-layout{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}.match-side{align-content:start;gap:1rem;display:grid}@media (width<=1100px){.shell-match .match-layout{grid-template-columns:minmax(0,1fr)}}.fleet-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.fleet-list li.selected .fleet-row{outline:1px solid #ffe46cb3}.fleet-list li.destroyed{opacity:.5}.fleet-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#ffffff0a;border:0;border-radius:14px;gap:.35rem;padding:.7rem .8rem;display:grid}.fleet-row:disabled{cursor:default}.fleet-row .hull-bar,.fleet-row .hull-bar-fill{display:block}.fleet-row-head{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.fleet-row-details{color:#e9f2f7b8;flex-wrap:wrap;gap:.35rem .8rem;font-size:.82rem;display:flex}.class-badge{background:#6bd1ff;width:12px;height:12px;display:inline-block}.class-destroyer{clip-path:polygon(50% 0,100% 100%,0 100%)}.class-cruiser{border-radius:2px}.class-submarine{border-radius:50%;height:8px}.class-support{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.order-state{border-radius:999px;margin-left:auto;padding:.1rem .5rem;font-size:.78rem}.order-ready{color:#9ff0c6;background:#58d49a2e}.order-partial{color:#ffe3a0;background:#ffd86b24}.order-none{color:#ffc2b8;background:#ff7d6b29}.playback-controls,.log-filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0;display:flex}.inline-field{align-items:center;gap:.4rem;margin:0;display:inline-flex}.inline-field select{width:auto;padding:.4rem .6rem}.filter-chip{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #9ad8ff40;border-radius:999px;padding:.3rem .75rem;font-size:.85rem}.filter-chip.active{background:#6bd1ff2e;border-color:#6bd1ff99}.log-turn h3{margin:1rem 0 0;font-size:.95rem}.legend-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.legend-list li{align-items:center;gap:.6rem;display:flex}.legend-list svg{flex:none;width:42px;height:42px}.shortcut-table{border-collapse:collapse;width:100%}.shortcut-table th,.shortcut-table td{text-align:left;border-bottom:1px solid #9ad8ff1a;padding:.45rem .6rem}kbd{border:1px solid #9ad8ff59;border-radius:6px;padding:.15rem .45rem;font-family:inherit;font-size:.85rem}.confirm-dialog{width:min(480px,100vw - 2rem)}.confirm-details{color:#e9f2f7cc;margin:0 0 1rem;padding-left:1.2rem}.confirm-actions{justify-content:flex-end;margin-top:1rem}.action.danger{background:linear-gradient(135deg,#ff9c7a 0%,#e0503a 100%)}.result-screen{margin-top:1rem}.result-win{border-color:#ffd86b99;box-shadow:0 0 40px #ffd86b1f}.result-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.result-banner{margin:.2rem 0 0;font-size:1.8rem}.result-table-wrap{margin-top:1rem;overflow-x:auto}.result-table{border-collapse:collapse;width:100%;font-size:.9rem}.result-table th,.result-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #9ad8ff1a;padding:.5rem .65rem}.result-table tr.self{background:#6bd1ff14}.room-code{letter-spacing:.08em;font-family:ui-monospace,monospace}.lobby-settings{grid-template-columns:120px minmax(0,1fr);align-items:start;gap:1rem;margin-bottom:.75rem;display:grid}.settings-list{gap:.3rem;margin:0;display:grid}.settings-list div{justify-content:space-between;gap:.75rem;display:flex}.settings-list dt{color:#e9f2f7a6}.settings-list dd{text-align:right;margin:0}.map-preview{border:1px solid #9ad8ff33;border-radius:8px;width:100%;max-width:180px;margin:0 0 .75rem;display:block}.map-preview-water{fill:#0b2536}.map-preview-zone{fill:none;stroke:#ffd86b73;stroke-width:.3px}.map-preview-spawn{fill:#6bd1ff40}.lobby-players-head{margin-top:1rem}.lobby-players-head h3{margin:0}.player-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.player-list .player-row{padding:.4rem .8rem}.lobby-players-head+.player-list{gap:.4rem;margin-top:.5rem}.player-row-state{align-items:center;gap:.6rem;display:inline-flex}.bot-badge{margin-right:.3rem}.state-ready{color:#9ff0c6}.state-waiting{color:#e9f2f7a6}@media (width<=640px){.lobby-settings{grid-template-columns:minmax(0,1fr)}}html.in-match,html.in-match body{height:100%;overflow:hidden}.shell.shell-match{width:100%;max-width:none;height:100dvh;margin:0;padding:0;overflow:hidden}.hud{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);width:100%;height:100dvh;display:grid}.hud-topbar,.hud-commandbar{z-index:30;padding-left:calc(.9rem + env(safe-area-inset-left));padding-right:calc(.9rem + env(safe-area-inset-right));background:#06121cf2;align-items:center;gap:.75rem;display:flex;position:relative}.hud-topbar{min-height:56px;padding-top:calc(.45rem + env(safe-area-inset-top));border-bottom:1px solid #9ad8ff1f;padding-bottom:.45rem}.hud-turn{white-space:nowrap;line-height:1.2;display:grid}.hud-turn strong{font-size:1.05rem}.hud-turn span{color:#e9f2f7b3;font-size:.8rem}.hud-topbar .timer-chip{border-radius:12px;min-width:0;padding:.35rem .7rem}.hud-topbar .timer-chip-value{font-size:1.15rem}.hud-popover-anchor{position:relative}.hud-players{min-height:40px;color:inherit;font:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #9ad8ff2e;border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .7rem;font-size:.85rem;display:inline-flex}.lock-dots{gap:4px;display:inline-flex}.lock-dot{border:1.5px solid #9ff0c6;border-radius:50%;width:9px;height:9px}.lock-dot.filled{background:#58d49a;border-color:#58d49a}.hud-topbar-actions{align-items:center;gap:.5rem;margin-left:auto;display:inline-flex}.hud-lock{white-space:nowrap;min-height:44px}.hud-menu-button{min-width:44px;min-height:44px;font-size:1.1rem}.connection-dot{border-radius:50%;width:10px;height:10px}.connection-dot.tone-ok{background:#58d49a}.connection-dot.tone-warning{background:#ffc466}.connection-dot.tone-error{background:#ff6b6b}.hud-popover{z-index:40;background:#081825fa;border:1px solid #9ad8ff33;border-radius:14px;padding:.7rem;position:absolute;box-shadow:0 12px 30px #00000073}.players-popover{min-width:270px;top:calc(100% + 6px);left:0}.players-popover ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.players-popover li{grid-template-columns:minmax(0,1fr) auto 3rem;align-items:center;gap:.6rem;font-size:.9rem;display:grid}.players-popover strong{text-align:right}.player-state{color:#e9f2f7b3;font-size:.78rem}.player-locked .player-state{color:#9ff0c6}.player-planning .player-state{color:#ffe3a0}.player-out,.player-left{opacity:.55}.hud-menu{gap:.15rem;min-width:240px;display:grid;top:calc(100% + 6px);right:0}.hud-menu-item{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .6rem;display:flex}.hud-menu-item:hover{background:#ffffff0f}.hud-menu-item.checkbox-row{text-align:left;justify-content:flex-start}.danger-text{color:#ff9d9d}.hud-main{min-height:0;position:relative;overflow:hidden}.map-zone{position:absolute;inset:0}.map-zone .tactical-map-viewport{border-radius:0;width:100%;height:100%;max-height:none;margin:0;display:flex}.map-zone .tactical-map-stage{flex:none;margin:auto}.map-zone .tactical-map{border-radius:6px;width:100%;height:100%}.ghost-group{cursor:pointer}.map-zone .map-tools{z-index:10;gap:.3rem;display:flex;position:absolute;bottom:.75rem;left:.75rem}.map-tool{min-width:40px;height:40px;color:inherit;font:inherit;cursor:pointer;background:#081825d9;border:1px solid #9ad8ff33;border-radius:10px;padding:0 .55rem;font-weight:700}.tile-info{z-index:10;pointer-events:none;background:#06121ce0;border-radius:8px;margin:0;padding:.3rem .6rem;font-size:.8rem;position:absolute;bottom:3.6rem;left:.75rem}.toast-stack{z-index:35;pointer-events:none;width:min(560px,100% - 7rem);position:absolute;top:.75rem;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:12px;justify-content:space-between;align-items:center;gap:.6rem;margin:0;padding:.55rem .9rem;display:flex;box-shadow:0 8px 24px #00000059}.toast-success{color:#c9f7de;background:#16543ef2}.toast-error{color:#ffd9d9;background:#6e1e22f5}.playback-caption{z-index:12;background:#06121ceb;border:1px solid #9ad8ff33;border-radius:999px;align-items:center;gap:.4rem;max-width:min(640px,100% - 20rem);padding:.3rem .4rem .3rem .9rem;display:flex;position:absolute;bottom:.75rem;left:50%;transform:translate(-50%)}.playback-caption-text{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;overflow:hidden}.playback-caption select{color:inherit;background:#ffffff0f;border-radius:8px;padding:.2rem}.map-info-card{z-index:26;width:min(300px,100% - 1.5rem);top:.75rem;left:.75rem}.map-info-card p{margin:.45rem 0 0;font-size:.88rem}.drawer-toggles{z-index:27;gap:.35rem;display:grid;position:absolute;top:.75rem;right:.75rem}.drawer-toggle{height:42px;color:inherit;font:inherit;cursor:pointer;background:#081825e0;border:1px solid #9ad8ff33;border-radius:10px;align-items:center;gap:.45rem;padding:0 .75rem;font-size:.85rem;display:inline-flex;position:relative}.drawer-toggle.active{background:#215e87eb;border-color:#80caff}.drawer-badge{background:#ffc466;border-radius:50%;width:8px;height:8px;position:absolute;top:5px;right:5px}.drawer{z-index:25;background:#06121cf7;border-left:1px solid #9ad8ff26;grid-template-rows:auto auto minmax(0,1fr);width:min(360px,100%);display:grid;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 30px #00000059}.drawer-backdrop,.drawer-handle{display:none}.drawer-head{border-bottom:1px solid #9ad8ff1f;justify-content:space-between;align-items:center;padding:.7rem .9rem;display:flex}.drawer-head h2{margin:0;font-size:1.05rem}.drawer-body{padding:.75rem;overflow:auto}.drawer-body>.card{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.drawer-body>.card>h2:first-child{display:none}@media (width>=1100px){.hud-main:has(.drawer) .drawer-toggles{right:calc(min(360px,100%) + .75rem)}}@media (width<=1099px){.drawer{border-top:1px solid #9ad8ff2e;border-left:0;border-radius:18px 18px 0 0;width:auto;height:min(70%,560px);top:auto;left:0}.drawer-backdrop{z-index:24;background:#00000073;border:0;display:block;position:absolute;inset:0}.drawer-handle{touch-action:none;cursor:grab;background:linear-gradient(#ffffff59,#ffffff59) 50%/44px 5px no-repeat;width:100%;height:22px;display:block}}.hud-commandbar{min-height:72px;padding-top:.55rem;padding-bottom:calc(.55rem + env(safe-area-inset-bottom));border-top:1px solid #9ad8ff1f}.command-line{justify-content:space-between;align-items:center;gap:.75rem;width:100%;font-size:.92rem;display:flex}.command-line.warning{color:#ffc4a0}.command-ship,.command-fleet{align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}.command-ship-head{gap:.2rem;min-width:150px;max-width:250px;display:grid}.command-ship-title{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.command-summary{color:#e9f2f7b8;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.command-actions,.fleet-strip{scrollbar-width:thin;flex:1;gap:.4rem;min-width:0;margin:0;padding:.1rem;list-style:none;display:flex;overflow-x:auto}.command-button{min-width:84px;min-height:48px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#11344dcc;border:1px solid #9ad8ff38;border-radius:12px;flex:none;gap:.1rem;padding:.35rem .75rem;display:grid}.command-button span{opacity:.75;font-size:.75rem}.command-button:disabled{opacity:.45;cursor:not-allowed}.command-button.active{background:#225a42d9;border-color:#58d49a}.command-button.ghost-button{background:0 0}.cooldown{color:#ffc466}.nav-button{min-width:40px;min-height:44px;font-size:1.2rem}.command-tools{gap:.3rem;display:inline-flex}.command-tools .ghost{min-width:44px;min-height:44px}.command-hint{flex:none;max-width:320px;margin:0;font-size:.9rem}.fleet-tile{min-width:150px;min-height:52px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#11344db3;border:1px solid #9ad8ff33;border-radius:12px;align-items:center;gap:.55rem;padding:.4rem .7rem;display:flex}.fleet-tile.selected{border-color:#80caff}.fleet-tile.sunk{opacity:.45}.fleet-tile .hull-bar,.fleet-tile .hull-bar-fill,.command-ship-head .hull-bar,.command-ship-head .hull-bar-fill{display:block}.fleet-tile-body{flex:1;gap:.25rem;min-width:70px;font-size:.88rem;display:grid}.ship-shape-icon{flex:none;width:22px;height:22px}.order-dot{border-radius:50%;flex:none;width:10px;height:10px}.order-dot.order-ready{background:#58d49a}.order-dot.order-partial{background:#ffc466}.order-dot.order-none{background:#ffffff40}.ship-details{width:min(440px,100% - 1.8rem);bottom:calc(100% + 8px);left:.9rem}.ship-details-head{align-items:center;gap:.5rem;display:flex}.ship-details-head button{margin-left:auto}.ship-details-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem .75rem;margin:.7rem 0;display:grid}.ship-details-stats dt,.result-summary dt{color:#e9f2f7a6;font-size:.72rem}.ship-details-stats dd,.result-summary dd{margin:0;font-weight:600}.ship-details-actions{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.ship-details-actions li{justify-content:space-between;gap:.5rem;font-size:.85rem;display:flex}.ship-details-actions li.muted{opacity:.6}.result-modal .result-screen{width:min(760px,100% - 2rem);max-height:calc(100dvh - 2rem);overflow:auto}.result-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:.6rem;margin:.75rem 0;display:grid}.result-ranking{gap:.3rem;margin:0 0 .9rem;padding:0;list-style:none;display:grid}.result-ranking li{background:#ffffff0a;border-radius:10px;grid-template-columns:3rem minmax(0,1fr) auto;gap:.5rem;padding:.45rem .6rem;display:grid}.result-ranking li.self{outline:1px solid #80caff80}.result-actions{margin-top:.75rem}@media (width<=700px){.hud-topbar{padding-left:calc(.6rem + env(safe-area-inset-left));padding-right:calc(.6rem + env(safe-area-inset-right));gap:.5rem}.hud-turn span,.hud-players-count,.drawer-toggle-label{display:none}.hud-lock{padding-left:.8rem;padding-right:.8rem;font-size:.9rem}.hud-topbar .timer-chip-value{font-size:1rem}.map-tool{min-width:36px;height:36px}.drawer-toggle{justify-content:center;width:42px;padding:0}.map-zone .map-tools{flex-direction:column}.tile-info{bottom:.75rem;left:3.8rem}.playback-caption{max-width:calc(100% - 7rem);top:.75rem;bottom:auto}.hud-commandbar{padding-left:calc(.6rem + env(safe-area-inset-left));padding-right:calc(.6rem + env(safe-area-inset-right))}.command-ship{flex-wrap:wrap}.command-ship-head{flex:1;max-width:none}.command-actions{flex-basis:100%;order:3}.command-fleet{flex-wrap:wrap}.command-hint{flex:100%;max-width:none}.fleet-tile{min-width:120px}.result-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}.settings-line{color:#e9f2f7d1;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.4rem 0 .6rem;font-size:.92rem;display:flex}.settings-line>span{margin-right:auto}.mode-tabs{flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .8rem;display:flex}.advanced-settings{margin:.4rem 0 .8rem}.advanced-settings summary{color:#e9f2f7d1;cursor:pointer;padding:.4rem 0}@media (width<=700px){.workspace.has-selection>.card:first-child{order:2}}.app-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.header-language{margin-left:auto}.language-select{align-items:center;gap:.35rem;display:inline-flex}.language-select-icon{opacity:.8;font-size:.95rem}.language-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.brand{letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:1.05rem;font-weight:800;display:inline-flex}.brand-mark{width:2rem;height:2rem}.brand-keel{color:#e9f2f7}.brand-storm{color:#80caff}.status-light.error{background:#ff6b6b;box-shadow:0 0 .7rem #ff6b6bbf}.connection-pill{padding:.45rem .8rem;font-size:.88rem}.home-hero{text-align:center;background:linear-gradient(#0d213099,#07131ee6);border:1px solid #80caff2e;border-radius:28px;margin-top:1.5rem;padding:3.5rem 2rem 4.5rem;position:relative;overflow:hidden}.home-waves{opacity:.5;pointer-events:none;width:100%;height:56px;position:absolute;inset:auto 0 0}.home-wave-back{fill:#1f4a66;opacity:.5;animation:14s ease-in-out infinite alternate home-drift}.home-wave-front{fill:#0d2130;animation:10s ease-in-out infinite alternate-reverse home-drift}@keyframes home-drift{0%{transform:translate(0)}to{transform:translate(-50px)}}.home-logo{filter:drop-shadow(0 12px 30px #6bd1ff40);width:132px;height:132px;position:relative}.home-hero h1{letter-spacing:.18em;text-transform:uppercase;margin:1.2rem 0 .4rem;font-size:clamp(2.4rem,7vw,4.6rem);font-weight:800;line-height:1;position:relative}.home-tagline{color:#e9f2f7d1;max-width:36rem;margin:0 auto;font-size:1.1rem;line-height:1.6;position:relative}.home-cta{flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:2rem;display:flex;position:relative}.cta-primary,.cta-secondary{font:inherit;cursor:pointer;border-radius:999px;padding:.85rem 1.5rem;font-weight:700}.cta-primary{color:#1a1205;background:linear-gradient(#ffd27a,#ff9f2e);border:0}.cta-secondary{color:#e9f2f7;background:#80caff29;border:1px solid #80caff66}.cta-primary:disabled,.cta-secondary:disabled{opacity:.6;cursor:not-allowed}.home-join{border:1px solid #80caff66;border-radius:999px;display:flex;overflow:hidden}.home-join input{color:#e9f2f7;width:9rem;font:inherit;letter-spacing:.15em;text-transform:uppercase;background:#04090d99;border:0;padding:.85rem 1rem;font-family:ui-monospace,monospace}.home-join button{color:#e9f2f7;font:inherit;cursor:pointer;background:#80caff40;border:0;padding:0 1.1rem;font-weight:700}.home-join button:disabled{cursor:not-allowed;opacity:.6}.cta-primary:focus-visible,.cta-secondary:focus-visible,.home-join:focus-within,.link-button:focus-visible{outline-offset:3px;outline:2px solid #6bd1ffe6}.home-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.home-feature{background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;padding:1.2rem 1.3rem}.home-feature svg{fill:none;stroke:#80caff;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.home-feature h2{margin:.5rem 0 .3rem;font-size:1rem}.home-feature p{color:#e9f2f7b8;margin:0;font-size:.92rem;line-height:1.5}.home-howto{text-align:center;margin:1.1rem 0 0}.link-button{color:#80caff;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.workspace.home-workspace{grid-template-columns:1fr;margin-top:2rem}.help-basics ol{padding-left:1.2rem;line-height:1.6}.help-basics p{line-height:1.6}.seat-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.seat-summary{color:#e9f2f7d1;flex-wrap:wrap;align-items:center;gap:.6rem;margin:-.3rem 0 .9rem;font-size:.92rem;display:flex}.seat-diagram{gap:.25rem;display:inline-flex}.seat-icon{border-radius:50%;place-items:center;width:1.6rem;height:1.6rem;font-size:.85rem;display:inline-grid}.seat-human{color:#80caff;background:#6bd1ff40}.seat-open{color:#e9f2f780;border:1px dashed #9ad8ff73}.seat-bot{background:#ffd27a29}.bot-seats{background:#ffffff08;border:1px solid #9ad8ff24;border-radius:14px;margin-bottom:.9rem;padding:.75rem .9rem}.bot-seats-head{color:#e9f2f7b8;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:.92rem;display:flex}.bot-seats ul{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.bot-seat{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.bot-seat-name{align-items:center;gap:.45rem;min-width:0;display:inline-flex}.bot-seats .helper{margin:.5rem 0 0}.bot-seat select,.compact-select{color:inherit;font:inherit;background:#ffffff0f;border:1px solid #9ad8ff33;border-radius:10px;padding:.4rem .6rem;font-size:.88rem}.bot-seat select option,.compact-select option{color:#e9f2f7;background:#0d2130}.rank-badge{letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.rank-sailor{color:#8ff0b6;background:#61e29429}.rank-captain{color:#9ad8ff;background:#6bd1ff2e}.rank-admiral{color:#ffd27a;background:#ff9f2e33}.player-rank{margin-left:.4rem}.add-bot-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}@media (width<=640px){.home-hero{padding:2.5rem 1rem 3.5rem}.home-logo{width:96px;height:96px}.home-cta{flex-direction:column}.cta-primary,.cta-secondary,.home-join{width:100%}.home-join input{flex:1;min-width:0}.home-features{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.home-wave-back,.home-wave-front{animation:none}}.map-layer{pointer-events:none}.map-hit-layer{fill:#0000;pointer-events:all;cursor:crosshair}.ship-group,.ghost-group{pointer-events:auto;cursor:pointer}.ship-hit-area{fill:#0000;pointer-events:all}.wave-arc{fill:none;stroke:#9ad8ff;stroke-opacity:.13;stroke-width:1.4px;stroke-linecap:round}.wave-arc-faint{stroke-opacity:.09;stroke-width:1.2px}.map-waves{animation:40s steps(92,end) infinite sea-drift}.map-grid{fill:none;stroke:#9ad8ff;stroke-opacity:.05;stroke-width:1px;transition:stroke-opacity .2s}.map-ordering .map-grid{stroke-opacity:.12}.hover-cell{fill:#6bd1ff14;stroke:#9ad8ff66;stroke-width:1px}@keyframes sea-drift{0%{transform:translate(0)}to{transform:translate(46px,24px)}}.island-shallows,.island-shallows-inner{fill:none;stroke:#5fd3d0;stroke-opacity:.35;stroke-linejoin:round}.island-shallows-inner{stroke:#8fe7df;stroke-opacity:.3}.island-foam{fill:none;stroke:#fff;stroke-opacity:.55;stroke-width:3px;stroke-linejoin:round}.island-land{fill:#3f7a4c;fill-rule:evenodd;stroke:#e2cf98;stroke-width:2.2px;stroke-linejoin:round}.island-trees circle,.island-tree{fill:#2f6340}.reef-shallow{fill:#2a86a3;opacity:.35}.reef-rock{fill:#4b5560;stroke:#e9f7ff;stroke-opacity:.7;stroke-width:1.2px;stroke-linejoin:round}.reef-foam{fill:none;stroke:#e9f7ff;stroke-opacity:.6;stroke-width:1.1px;stroke-linecap:round}.fog-banks{animation:12s steps(24,end) infinite alternate fog-drift}@keyframes fog-drift{0%{transform:translate(-3px)}to{transform:translate(3px)}}.central-zone-area{fill:#6bd1ff0d;stroke:#ffd27a;stroke-opacity:.4;stroke-width:1.5px;stroke-dasharray:2 7;stroke-linecap:round}.central-zone-tint{opacity:.13}.buoy-body{fill:#ff5a4a;stroke:#fff;stroke-width:1.8px}.buoy-band{stroke:#fff;stroke-width:1.6px}.placement-zone{fill:#6bd1ff12;stroke:#6bd1ff;stroke-opacity:.75;stroke-width:2px;stroke-dasharray:8 5}.placement-zone-glow{fill:none;stroke:#6bd1ff;stroke-opacity:.14;stroke-width:9px}.placement-cell{fill:#6bd1ff1a;stroke:#6bd1ff47;stroke-width:1px}.reachable-tile{fill:#6ce8b024;stroke:#6ce8b040;stroke-width:.5px}.detection-outside{fill:#000;fill-opacity:.3;fill-rule:evenodd}.detection-band{fill:#000;fill-opacity:.25;fill-rule:evenodd}.detection-edge{fill:none;stroke:#6bd1ff;stroke-opacity:.4;stroke-width:1.2px;stroke-dasharray:1.5 4;stroke-linecap:round}.radar-sweep{fill:#6bd1ff0a;stroke:#6bd1ff;stroke-width:2px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:1.1s ease-out forwards radar-sweep}@keyframes radar-sweep{0%{opacity:.9;transform:scale(.05)}70%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1)}}.contact-area{fill:#ffb347;fill-opacity:.12;stroke:#ffb347;stroke-opacity:.75;stroke-width:1.5px;stroke-dasharray:3 5}.contact-area.previous{opacity:.35}.contact-core{fill:#ffb347;fill-opacity:.25}.contact-pulse{fill:none;stroke:#ffb347;stroke-opacity:.55;stroke-width:2.5px;transform-box:fill-box;transform-origin:50%;animation:2s ease-out infinite contact-pulse}.contact-label{fill:#ffd9a8;text-anchor:middle;dominant-baseline:central;font-size:13px;font-weight:800}@keyframes contact-pulse{0%{opacity:.9;transform:scale(.45)}to{opacity:0;transform:scale(1)}}.pickup-extra_shot{--pickup:#ffd86b}.pickup-emergency_repair{--pickup:#58d49a}.pickup-tactical_reload{--pickup:#6bd1ff}.pickup-radar_scan{--pickup:#ff9c67}.pickup-glow{fill:var(--pickup,#ffd86b);opacity:.18}.pickup-crate{fill:var(--pickup,#ffd86b);stroke:#07131e;stroke-width:1.5px}.pickup-label{fill:#07131e;text-anchor:middle;dominant-baseline:central;font-size:9px;font-weight:800}.pickup-float{animation:3s steps(6,end) infinite alternate pickup-bob;transform:rotate(12deg)}@keyframes pickup-bob{0%{transform:translateY(-1px)rotate(12deg)}to{transform:translateY(1px)rotate(8deg)}}.ghost-label{text-anchor:middle;font-size:7.5px;font-weight:600}.range-overlay{stroke-width:1.5px}.move-range{fill:#6ce8b014;stroke:#6ce8b059}.attack-range{fill:#ffa26f14;stroke:#ffa26f61}.pending-path{fill:none;stroke:#9ad8ff8c;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.planned-path{fill:none;stroke:#9ad8ff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8 5}.pending-area{fill:#ff8a6c24;stroke:#ff8a6cb3;stroke-width:1.5px}.pending-area.preview{opacity:.6}.pending-area.friendly-fire{stroke:#ff5d5d;fill:#ff5d5d33}.pending-target-line{stroke:#ff8a6cbf;stroke-width:2px;stroke-dasharray:5 4}.waypoint-marker{fill:#9ad8ff}.ship-shadow{fill:#000;opacity:.35}.ship-hull{fill:var(--ship-color,#6bd1ff);stroke:#0b1a26;stroke-width:.045px;stroke-linejoin:round}.ship-deck{fill:#0b1a26;fill-opacity:.5;stroke:#0b1a26;stroke-opacity:.55;stroke-width:.02px}.ship-deck .deck-open{fill-opacity:.18}.deck-line{stroke:#0b1a26;stroke-opacity:.75;stroke-width:.035px;stroke-linecap:round}.ship-sprite-dived{opacity:.45}.ship-sprite-dived .ship-hull{fill:#051019;stroke:var(--ship-color,#6bd1ff);stroke-width:.035px;stroke-dasharray:.08 .05}.ship-sprite-ghost .ship-hull{fill:#05101959;stroke:var(--ship-color,#ff9f43);stroke-width:.04px;stroke-dasharray:.07 .05}.ship-sprite-wreck{opacity:.3}.ship-sprite-wreck .ship-hull{fill:#0b1a26;stroke:#000}.selection-ring{fill:#6bd1ff24;stroke:#6bd1ff;stroke-opacity:.8;stroke-width:1.5px}.target-ok{fill:none;stroke:#8dffb8;stroke-width:2px}.target-warn{fill:none;stroke:#ffb46a;stroke-width:2px;stroke-dasharray:4 3}.ship-dragging .ship-hull{stroke:#ffe46c;stroke-width:.07px}.hull-arc-back{fill:none;stroke:#00000080;stroke-width:3.2px;stroke-linecap:round}.hull-arc{fill:none;stroke-width:2.2px;stroke-linecap:round}.hull-good{stroke:#61e294}.hull-worn{stroke:#ffd27a}.hull-critical{stroke:#ff6b6b}.ship-tag{fill:#9ad8ff;text-anchor:middle;opacity:.85;font-size:7px}.ship-bob{animation:3.2s steps(6,end) infinite alternate ship-bob}@keyframes ship-bob{0%{transform:translateY(-1px)}to{transform:translateY(1px)}}.ship-smoke circle{fill:#b8c4cc;opacity:0;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-out infinite smoke-rise}.ship-smoke circle:nth-child(2){animation-delay:.8s}.ship-smoke circle:nth-child(3){animation-delay:1.6s}.ship-smoke.smoke-dark circle{fill:#3b4148}@keyframes smoke-rise{0%{opacity:.7;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(-3px,-11px)scale(1.6)}}.ship-wake{fill:#e9f7ff;opacity:.45;animation:40s steps(20,end) forwards wake-fade}@keyframes wake-fade{to{opacity:.08}}.map-effects *{pointer-events:none}.fx-late{animation-delay:calc(var(--fx-duration) * .4)!important}.fx-wake{fill:none;stroke:#e9f7ff;stroke-opacity:.45;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:fx-draw calc(var(--fx-duration) * .9) ease-in-out forwards}.fx-muzzle{transform-box:fill-box;transform-origin:50%;animation:fx-pop calc(var(--fx-duration) * .3) ease-out both}.fx-tracer,.fx-tracer-glow{fill:none;stroke-linecap:round;stroke-dasharray:.3 1.3;stroke-dashoffset:.3px;animation:fx-streak calc(var(--fx-duration) * .4) linear forwards}.fx-tracer{stroke:#fff6c8;stroke-width:2px}.fx-tracer-glow{stroke:#ffe46c;stroke-opacity:.35;stroke-width:6px}.fx-simple .fx-tracer{stroke-dasharray:none;animation:fx-fade calc(var(--fx-duration) * .6) ease-out both}.fx-missile-trail{fill:none;stroke:#e9f7ff;stroke-opacity:.4;stroke-width:1.6px;stroke-dasharray:1;stroke-dashoffset:1px;animation:fx-draw calc(var(--fx-duration) * .4) linear forwards}.fx-missile{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-dasharray:.08 1.1;stroke-dashoffset:.08px;animation:fx-streak calc(var(--fx-duration) * .4) linear forwards}.fx-bubble{fill:none;stroke:#cdefff;stroke-width:1px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:fx-bubble calc(var(--fx-duration) * .5) ease-out forwards}.fx-burst{animation:fx-burst calc(var(--fx-duration) * .55) ease-out both}.fx-sparks line{stroke:#ffe9a8;stroke-width:1.4px;stroke-linecap:round}.fx-sparks{animation:fx-sparks calc(var(--fx-duration) * .4) ease-out both}.fx-damage,.fx-pickup-label,.fx-miss-label{stroke:#07131e;stroke-width:2.5px;paint-order:stroke;stroke-linejoin:round;font-weight:800}.fx-damage{fill:#ffd27a;font-size:11px;animation:1s ease-out both fx-rise}.fx-label-start{text-anchor:start}.fx-label-middle{text-anchor:middle}.fx-label-end{text-anchor:end}.fx-miss-label{fill:#e9f7ff;animation:fx-label var(--fx-duration) ease-out both;font-size:8.5px;font-weight:700}.fx-pickup-label{fill:#ffe9a8;font-size:9px;animation:1s ease-out both fx-rise}.fx-splash-ring{fill:none;stroke:#cdefff;stroke-width:1.6px;animation:fx-ring calc(var(--fx-duration) * .5) ease-out both}.fx-splash-ring-2{animation-duration:calc(var(--fx-duration) * .7)}.fx-droplets circle{fill:#cdefff}.fx-droplets{animation:fx-sparks calc(var(--fx-duration) * .5) ease-out both}.fx-area{fill:#ffd86b;fill-opacity:.1;stroke:#ffd86b;stroke-opacity:.55;stroke-width:1.5px;stroke-dasharray:3 4;animation:fx-fade var(--fx-duration) ease-in both}.fx-shell-body{fill:#ffe9a8;animation:fx-shell calc(var(--fx-duration) * .25) ease-in both;animation-delay:var(--fx-delay,0s)}.fx-shell-splash{animation-delay:calc(var(--fx-delay,0s) + var(--fx-duration) * .22)}.fx-sinking{animation:fx-sink calc(var(--fx-duration) * .95) ease-in both}.fx-darken{opacity:0;animation:fx-appear calc(var(--fx-duration) * .6) ease-in both;animation-delay:calc(var(--fx-duration) * .2)}.fx-darken .ship-sprite-wreck{opacity:1}.fx-rising-bubble{fill:none;stroke:#cdefff;stroke-width:.8px;opacity:0;animation:fx-bubble-rise calc(var(--fx-duration) * .6) ease-out both}.fx-debris{fill:#5a4636;animation:fx-debris var(--fx-duration) ease-out both}.fx-ring{fill:none;stroke-width:2px;animation:fx-ring calc(var(--fx-duration) * .6) ease-out both}.fx-flash{stroke:#fff}.fx-foam{stroke:#e9f7ff}.fx-gold{stroke:#ffd86b}.fx-pulse{stroke:#9ad8ff;transform-box:fill-box;transform-origin:50%}.fx-sparkle{fill:#ffe9a8;animation:fx-sparkle calc(var(--fx-duration) * .6) ease-out both}.fx-scan{fill:none;stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:fx-scan calc(var(--fx-duration) * .9) ease-out both}.fx-foam-puff{fill:#e9f7ff;opacity:0;animation:fx-puff calc(var(--fx-duration) * .5) ease-out both}.fx-zone{fill-opacity:.18;stroke-width:2px;animation:fx-fade var(--fx-duration) ease-in both}@keyframes fx-draw{to{stroke-dashoffset:0}}@keyframes fx-streak{to{stroke-dashoffset:-1px}}@keyframes fx-pop{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.3)}}@keyframes fx-bubble{0%{opacity:0;transform:scale(.3)}30%{opacity:.9}to{opacity:0;transform:scale(1.4)}}@keyframes fx-burst{0%{opacity:0;transform:scale(.2)}8%{opacity:1}60%{opacity:.9;transform:scale(1.2)}to{opacity:0;transform:scale(1.6)}}@keyframes fx-sparks{0%{opacity:0;transform:scale(.2)}8%{opacity:1}to{opacity:0;transform:scale(1.3)}}@keyframes fx-rise{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translateY(-14px)}}@keyframes fx-label{0%{opacity:0}15%,85%{opacity:1}to{opacity:0}}@keyframes fx-ring{0%{opacity:0;transform:scale(.2)}8%{opacity:1}to{opacity:0;transform:scale(1.6)}}@keyframes fx-fade{0%{opacity:1}to{opacity:0}}@keyframes fx-appear{0%{opacity:0}to{opacity:1}}@keyframes fx-shell{0%{opacity:0;transform:translateY(-12px)scale(1.4)}30%{opacity:1}90%{opacity:1;transform:translateY(0)scale(.7)}to{opacity:0;transform:translateY(0)scale(.7)}}@keyframes fx-sink{0%{opacity:1;transform:none}to{opacity:.35;transform:translateY(2px)rotate(14deg)scale(.88)}}@keyframes fx-bubble-rise{0%{opacity:0;transform:translateY(0)}30%{opacity:.9}to{opacity:0;transform:translateY(-10px)}}@keyframes fx-debris{0%{opacity:0;transform:translate(0)}30%{opacity:1}to{opacity:.3;transform:translate(2px,3px)}}@keyframes fx-sparkle{0%{opacity:1;transform:scale(.2)rotate(0)}to{opacity:0;transform:scale(1.2)rotate(45deg)}}@keyframes fx-scan{0%{opacity:.9;transform:scale(.05)}to{opacity:0;transform:scale(1)}}@keyframes fx-puff{0%{opacity:.8;transform:translate(0)scale(.3)}to{opacity:0;transform:translate(-6px)scale(1.5)}}.map-shake{animation:.25s linear map-shake}@keyframes map-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-2px)}60%{transform:translate(-2px,2px)}80%{transform:translate(2px,-1px)}}.map-simple .map-waves,.map-simple .island-shallows,.map-simple .island-shallows-inner,.map-simple .island-trees,.map-simple .reef-shallow,.map-simple .pickup-glow{display:none}.map-simple .map-waves,.map-simple .fog-banks,.map-simple .ship-bob,.map-simple .pickup-float,.map-simple .contact-pulse,.map-simple .ship-wake,.map-still .map-waves,.map-still .fog-banks,.map-still .ship-bob,.map-still .pickup-float,.map-still .contact-pulse,.map-still .ship-wake,.map-still .ship-smoke circle{animation:none}.map-simple .ship-wake,.map-still .ship-wake{opacity:.3}.map-simple .contact-pulse,.map-still .contact-pulse{opacity:.35;transform:scale(.8)}.map-still .ship-smoke circle:first-child{opacity:.55;transform:translate(-1px,-4px)}.legend-sections{gap:.5rem;display:grid}.legend-list *{animation:none!important}.legend-sea{fill:#0a2740}.legend-dot{stroke:#07131e;stroke-width:1.2px}.player-dot{vertical-align:.02em;border:1px solid #00000073;border-radius:50%;flex:none;width:.62rem;height:.62rem;margin-right:.35rem;display:inline-block}
