@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(./be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2"),url(./be-vietnam-pro-latin-400-normal-bXgqVju9.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(./be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2"),url(./be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(./be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2)format("woff2"),url(./be-vietnam-pro-latin-500-normal-BJkVuMHw.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(./be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2)format("woff2"),url(./be-vietnam-pro-vietnamese-500-normal-CfdwVo8-.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(./be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2"),url(./be-vietnam-pro-latin-600-normal-5IO4e7bK.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(./be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2"),url(./be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(./be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2)format("woff2"),url(./be-vietnam-pro-latin-700-normal-C2EtzaOi.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(./be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2)format("woff2"),url(./be-vietnam-pro-vietnamese-700-normal-By_5yT39.woff)format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:500;src:url(./rajdhani-latin-500-normal-ByNUCHrt.woff2)format("woff2"),url(./rajdhani-latin-500-normal-DfvNI-Td.woff)format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:600;src:url(./rajdhani-latin-600-normal-CXCVEoA9.woff2)format("woff2"),url(./rajdhani-latin-600-normal-Dx02qI2_.woff)format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:700;src:url(./rajdhani-latin-700-normal-BPDUZo87.woff2)format("woff2"),url(./rajdhani-latin-700-normal-e0Uj8ZlN.woff)format("woff")}:root{color:#e9f0eb;font-synthesis:none;--mint:#a0f2cb;--mint-dim:#548d7c;--muted:#849797;--line:#a8cec229;--panel:#09191fde;--orange:#e9a06b;--mono:"Rajdhani",monospace;background:#08171e;font-family:Be Vietnam Pro,sans-serif;font-size:13px}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{height:100dvh}button,input,select{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.32}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button{border:0}button,select,input{-webkit-tap-highlight-color:transparent}button:not(:disabled){transition:background .18s,color .18s,border-color .18s,transform .18s}button:not(:disabled):active{transform:translateY(1px)}button .icon{flex-shrink:0}button span,svg{pointer-events:none}.icon{vertical-align:middle;flex-shrink:0;width:22px;height:22px;display:inline-block}.mono{font-family:var(--mono);letter-spacing:.1em;font-size:16px}#world{background:#102730;transition:left .3s,right .3s,top .3s,bottom .3s;position:absolute;inset:0;overflow:hidden}#world canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}#app{z-index:2;pointer-events:none;height:100dvh;position:relative}#app button,#app input,#app select,#app nav,#app .left-panel,#app .right-panel{pointer-events:auto}#overlay{z-index:20;pointer-events:none;position:fixed;inset:0}#overlay:empty{display:none}#overlay>*{pointer-events:auto}body[data-screen=menu] #app:before{content:"";z-index:-1;background:linear-gradient(90deg,#041118f0 0%,#05131acc 32%,#05131a0a 70%),linear-gradient(#0411177a,#0000 20% 66%,#041117f2);position:absolute;inset:0}body[data-screen=result] #app:before{content:"";z-index:-1;background:linear-gradient(90deg,#041119d9,#0000);position:absolute;inset:0}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;height:99px;padding:0 4.5%;display:flex}.brand{text-align:left;background:0 0;align-items:center;gap:12px;padding:8px 0;display:flex}.brand-emblem{clip-path:polygon(0 0,100% 0,100% 74%,50% 100%,0 74%);width:37px;height:45px;color:var(--mint);border:1px solid #9fdfbc6b;place-items:center;display:grid}.brand-emblem .icon{width:27px;height:32px}.brand strong{font-family:var(--mono);letter-spacing:.15em;font-size:27px;font-weight:700;line-height:1}.brand small{color:#9baaa6;letter-spacing:.2em;margin-top:7px;font-size:8px;display:block}.brand-dot{vertical-align:top;letter-spacing:0;margin-left:3px;font-size:10px}.nav-links{align-items:center;gap:36px;height:100%;margin-left:20px;display:flex}.nav-links button{color:#a3b0ad;background:0 0;height:100%;padding:0 4px;font-size:12px;position:relative}.nav-links button:hover,.nav-links button.active{color:#dcebe1}.nav-links button.active:after{content:"";background:var(--mint);height:2px;position:absolute;bottom:-1px;left:0;right:0}.top-actions{align-items:center;gap:12px;display:flex}.language-button{font-family:var(--mono);letter-spacing:.12em;background:0 0;padding:10px;font-size:16px;font-weight:600}.language-button span{color:var(--muted);margin-left:8px}.icon-button{color:#b5c2bc;background:0 0;border:1px solid #0000;border-radius:2px;place-items:center;width:44px;height:44px;display:inline-grid}.icon-button:hover{border-color:var(--line);color:var(--mint);background:#b4efcd0d}.top-actions .icon-button{border-left:1px solid var(--line);width:48px}.menu-screen{flex-direction:column;justify-content:center;height:calc(100% - 156px);padding:0 4.5%;display:flex;position:relative}.hero{max-width:700px;margin-top:-55px}.eyebrow{letter-spacing:.19em;color:var(--mint);align-items:center;gap:10px;font-size:9px;font-weight:500;line-height:1.6;display:flex}.status-dot{background:var(--mint);border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block;box-shadow:0 0 9px #a0f2cb70}.hero .eyebrow{font-size:10px}.hero h1{letter-spacing:-.055em;color:#f2f5ed;margin:28px 0 25px;font-size:clamp(49px,5.25vw,82px);font-weight:700;line-height:1.12}.hero h1 span{color:var(--mint)}html[lang=en] .hero h1{font-family:var(--mono);letter-spacing:-.015em;margin:31px 0;font-size:clamp(70px,7.9vw,118px);line-height:.9}.hero-description{color:#a7b6b3;max-width:386px;margin:0 0 29px;font-size:12px;line-height:1.95}.hero-buttons{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.button{border:1px solid var(--line);white-space:nowrap;border-radius:2px;justify-content:center;align-items:center;gap:12px;min-height:47px;padding:0 22px;font-size:11px;font-weight:500;display:inline-flex}.button .icon{width:19px;height:19px}.primary{background:var(--mint);color:#09261d;border-color:var(--mint)}.primary:hover:not(:disabled){background:#c3ffdf;box-shadow:0 0 30px #8dddbd15}.primary:has(.icon:first-child){flex-direction:row-reverse}.primary .icon{margin-left:14px}.big{min-width:239px;min-height:58px;padding:0 25px;font-size:12px}.secondary{color:#d8e9df;background:#18332b42;border-color:#a4d5be3d}.secondary:hover:not(:disabled){background:#37624e59}.quiet{color:#a6b8b0;background:0 0;border-color:#0000}.quiet:hover{color:var(--mint)}.small{min-height:43px;padding:0 13px;font-size:10px}.hero-hint{color:#688183;margin-top:19px;font-size:9px;line-height:1.7}.ship-callout{color:#c7d9d0;align-items:center;gap:14px;display:flex;position:absolute;top:41%;right:7%}.callout-cross{font-size:26px;font-family:var(--mono);color:var(--mint)}.ship-callout strong{font-family:var(--mono);letter-spacing:.13em;font-size:14px;font-weight:500;display:block}.ship-callout small{letter-spacing:.15em;color:#8ca29a;margin-top:6px;font-size:7px;display:block}.callout-line{border-top:1px solid #a0f2cb55;border-left:1px solid #a0f2cb55;width:120px;height:60px;position:absolute;top:45px;right:80%;transform:skew(-35deg)}.callout-line:after{content:"";border:1px solid #b5e9cc;border-radius:50%;width:7px;height:7px;position:absolute;bottom:-4px;left:-4px}.ocean-coordinate{font-family:var(--mono);color:#8eaaa4;letter-spacing:.13em;align-items:center;gap:15px;font-size:11px;display:flex;position:absolute;bottom:144px;right:4.5%}.ocean-coordinate i{border-left:1px solid var(--line);height:15px}.feature-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr 1fr;padding:25px 0;display:grid;position:absolute;bottom:19px;left:4.5%;right:4.5%}.feature{border-right:1px solid var(--line);align-items:center;gap:19px;padding:0 35px;display:flex;position:relative}.feature:first-child{padding-left:0}.feature:last-child{border:0}.feature>.icon{color:#8bbca7;width:28px;height:28px}.feature h3{color:#d5e0d7;margin:0 0 8px;font-size:12px;font-weight:500}.feature p{color:#829891;margin:0;font-size:10px}.feature>span{font-family:var(--mono);color:#4d6c65;margin-left:auto;font-size:14px}.menu-footer{color:#627e78;letter-spacing:.16em;justify-content:space-between;align-items:center;height:57px;padding:0 4.5%;font-size:8px;display:flex}.menu-footer>span:last-child{align-items:center;gap:8px;font-size:8px;display:flex}.menu-footer .status-dot{width:4px;height:4px}.modal-backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#020b12b5;justify-content:center;align-items:center;height:100%;padding:25px;display:flex}.modal{background:linear-gradient(145deg,#122a31,#091b23);border:1px solid #71998d40;border-radius:5px;width:min(520px,100%);max-height:calc(100dvh - 50px);padding:26px 34px 34px;animation:.2s ease-out modal-enter;overflow:auto;box-shadow:0 30px 100px #0008}.modal.wide{width:min(790px,100%)}.modal-topline{justify-content:space-between;align-items:center;gap:15px;margin-bottom:5px;display:flex}.modal-topline .icon-button{margin-right:-12px}.modal h2{letter-spacing:-.04em;margin:13px 0 10px;font-size:26px;font-weight:500}.modal-intro{color:#879e98;margin:0 0 22px;font-size:11px;line-height:1.8}.form-label{font-family:var(--mono);color:#628c7a;letter-spacing:.05em;align-items:center;gap:10px;margin:22px 0 12px;font-size:12px;display:flex}.form-label span{color:#c0d2c8;letter-spacing:0;font-family:Be Vietnam Pro,sans-serif;font-size:10px}.mode-cards{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mode-card{border:1px solid var(--line);text-align:left;background:#0c222b;border-radius:3px;min-height:155px;padding:23px 17px;position:relative}.mode-card:hover{border-color:#a0f2cb66}.mode-card.selected{border-color:var(--mint);background:#19372f7a}.mode-card>.icon{color:#a5c0b3;width:27px;height:27px}.mode-number{font-family:var(--mono);color:#567c6c;font-size:15px;position:absolute;top:18px;right:16px}.mode-card h3{margin:17px 0 8px;font-size:13px;font-weight:500}.mode-card p{color:#8aa196;margin:0;font-size:10px;line-height:1.8}.mode-card>i{color:var(--mint);display:none;position:absolute;bottom:10px;right:10px}.mode-card.selected>i{display:block}.mode-card>i .icon{width:15px;height:15px}.config-columns{grid-template-columns:1fr 1fr;gap:28px;display:grid}.segmented{border:1px solid var(--line);border-radius:3px;gap:3px;padding:4px;display:flex}.segmented button{color:#7e9990;background:0 0;flex:1;min-height:39px;padding:5px;font-size:10px}.segmented button.active{color:var(--mint);background:#a0f2cb18}.dimmed{opacity:.35;pointer-events:none}.rule-toggles{grid-template-columns:1fr 1fr;gap:25px;display:grid}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex;position:relative}.toggle-row strong{color:#c4d4cc;font-size:10px;font-weight:400;display:block}.toggle-row small{color:#789387;margin-top:7px;font-size:9px;line-height:1.6;display:block}.toggle-row input{opacity:0;cursor:pointer;z-index:2;width:36px;height:22px;position:absolute;right:0}.switch{background:#23392e;border:1px solid #567868;border-radius:20px;flex-shrink:0;width:33px;height:19px;position:relative}.switch:after{content:"";background:#779184;border-radius:50%;width:11px;height:11px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle-row input:checked+.switch{background:var(--mint);border-color:var(--mint)}.toggle-row input:checked+.switch:after{background:#1c4231;transform:translate(14px)}.toggle-row input:focus-visible+.switch{outline:2px solid var(--mint);outline-offset:4px}.modal-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:19px;padding-top:24px;display:flex}.modal-bottom small{color:#769185;max-width:260px;font-size:9px;line-height:1.8}.setting-row{color:#a3b9ad;justify-content:space-between;align-items:center;gap:24px;padding:14px 0;font-size:11px;display:flex}.setting-row select{width:170px}.setting-row input[type=range]{width:170px;accent-color:var(--mint)}select{border:1px solid var(--line);color:#d2e3d6;background:#142c2b;border-radius:3px;min-height:44px;padding:10px;font-size:11px}.section-caption{text-transform:uppercase;letter-spacing:.2em;color:var(--mint);border-top:1px solid var(--line);margin-top:10px;padding:22px 0 7px;font-size:9px}.pause-actions{flex-direction:column;gap:12px;display:flex}.stats-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin:25px 0;display:grid}.stats-grid>div{text-align:center;background:#10292b;padding:19px 13px}.stats-grid span{color:#8da899;font-size:9px;display:block}.stats-grid strong{font-family:var(--mono);color:var(--mint);margin-top:9px;font-size:36px;font-weight:500;display:block}.record-levels>div{border-bottom:1px solid var(--line);color:#92ad9e;justify-content:space-between;padding:11px 4px;font-size:11px;display:flex}.record-levels strong{font-family:var(--mono);font-size:16px}.guide-sections section{border-bottom:1px solid var(--line);padding:10px 0}.guide-sections h3{color:var(--mint);font-size:12px;font-weight:500}.guide-sections p{color:#9bb2a5;font-size:11px;line-height:1.95}body[data-screen=placement] #world,body[data-screen=battle] #world{inset:205px 245px 125px}body[data-screen=placement] #app,body[data-screen=battle] #app{background:linear-gradient(0deg,#081b22 100px,#0000 200px),linear-gradient(#081b22 190px,#0000 260px)}.game-screen{height:calc(100% - 99px);position:relative}.operation-id{letter-spacing:.1em;color:#99b0a7;align-items:center;gap:10px;font-size:9px;display:flex}.operation-id i{background:var(--mint);border-radius:50%;width:5px;height:5px}.operation-id>span{color:#4d7364}.battle-heading{justify-content:space-between;align-items:center;display:flex;position:absolute;top:28px;left:4.5%;right:4.5%}.battle-heading .eyebrow{font-size:8px}.battle-heading .eyebrow>span{color:#688d7b}.battle-heading h1{letter-spacing:-.04em;margin:10px 0;font-size:25px;font-weight:500}.battle-heading p{color:#7f9d90;margin:0;font-size:10px}.turn-badge{align-items:center;gap:14px;display:flex}.turn-badge>span{color:#88a091;letter-spacing:.15em;font-size:9px}.turn-badge>strong{font-family:var(--mono);color:#dceadd;font-size:42px;font-weight:500}.left-panel,.right-panel{flex-direction:column;gap:18px;width:200px;display:flex;position:absolute;top:137px;bottom:125px}.left-panel{left:3.2%}.right-panel{right:3.2%}.panel-heading{color:#b4c9bd;justify-content:space-between;align-items:center;margin-bottom:13px;font-size:10px;font-weight:500;display:flex}.panel-heading>.mono{color:#6b9682;font-size:13px}.fleet-list{flex-direction:column;gap:6px;display:flex}.fleet-item{text-align:left;color:#668c7d;background:linear-gradient(100deg,#122b319e,#0e23282b);border:1px solid #9adbb415;border-radius:2px;width:100%;min-height:75px;padding:9px 11px;position:relative}.fleet-item.selected{color:#b1d1b9;background:linear-gradient(90deg,#1e493d85,#183c3620);border-color:#a0f2cb98}.fleet-item.selected:before{content:"";background:var(--mint);width:2px;position:absolute;top:14px;bottom:14px;left:-1px}button.fleet-item:hover{color:#aedbbd;background:#254c3b50}.vessel-top{justify-content:space-between;align-items:center;display:flex}.vessel-code{font-family:var(--mono);letter-spacing:.12em;color:#618e79;font-size:10px}.vessel-status{color:#729785;height:12px;font-size:8px}.vessel-status .icon{width:12px;height:12px}.vessel-status.ready{color:var(--mint)}.vessel-icon{opacity:.8;width:88px;height:28px;margin:-6px auto 2px;display:block}.vessel-bottom{justify-content:space-between;align-items:center;gap:3px;display:flex}.vessel-bottom>span{color:#a4bdaf;font-size:9px;line-height:1.5}.health-dots{gap:3px;display:flex}.health-dots i{border:1px solid #6b947768;width:5px;height:5px;display:block}.health-dots i.intact{background:#7dad91;border-color:#7dad91}.health-dots i.damaged{background:#e28b5e;border-color:#e28b5e}.destroyed{opacity:.45}.destroyed .vessel-status{color:var(--orange)}.fleet-tools{gap:7px;display:flex}.fleet-tools>.button{flex:1}.board-label{letter-spacing:.1em;color:#9dbaaa;align-items:center;gap:8px;font-size:8px;display:flex;position:absolute;top:121px;left:266px;right:266px}.board-grid-info{color:#456d60;margin-left:auto;font-size:7px}.mission-card{border-top:1px solid var(--line);padding-top:25px}.mission-card h2{color:#bfcebd;margin:14px 0;font-size:17px;font-weight:500;line-height:1.8}.mission-card p{color:#819c8b;font-size:10px;line-height:1.95}.radar-art{background:repeating-radial-gradient(circle,#80c99a00 0 20px,#80c99a1c 21px,#80c99a00 22px),linear-gradient(90deg,#0000 49.5%,#80c99a22 50%,#0000 50.5%),linear-gradient(#0000 49.5%,#80c99a22 50%,#0000 50.5%);border:1px solid #98cda627;border-radius:50%;width:128px;height:128px;margin:4px auto 33px;position:relative}.radar-art>div{background:conic-gradient(#0000 0deg 280deg,#a0f2cb22 355deg,#a0f2cb99 360deg);border-radius:50%;animation:8s linear infinite radar;position:absolute;inset:0}.radar-art i{background:#a0f2cb;border-radius:50%;width:4px;height:4px;position:absolute;top:31px;left:39px;box-shadow:0 0 8px #a0f2cb}.radar-art span{background:#a0f2cb;border-radius:50%;width:3px;height:3px;position:absolute;top:75px;left:88px}.rule-summary{flex-wrap:wrap;gap:6px;margin-top:20px;display:flex}.rule-summary>span{border:1px solid var(--line);color:#8bb496;padding:6px 7px;font-size:8px}.battle-footer{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;background:#0a1d24d9;justify-content:space-between;align-items:center;gap:20px;min-height:102px;padding:20px 4.5%;display:flex;position:absolute;bottom:0;left:0;right:0}.placement-controls{align-items:center;gap:17px;display:flex}.key-hint{color:#729785;align-items:center;gap:8px;font-size:9px;display:flex}kbd{color:#95b49e;font-family:var(--mono);border:1px solid #8eaf9440;border-radius:2px;padding:2px 5px;font-size:11px;font-weight:500}.ready-count{font-family:var(--mono);letter-spacing:.12em;color:#84ac94;font-size:14px}.battle-footer>.primary{min-width:179px}.grid-bottom{justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:123px;left:266px;right:266px}.legend{color:#648775;gap:14px;font-size:8px;display:flex}.legend>span{align-items:center;gap:6px;display:flex}.legend i{border:1px solid #c0d4c8;border-radius:50%;width:5px;height:5px}.legend>span:nth-child(2) i{border-color:#f19067}.legend>span:nth-child(3) i{background:#e4ad69;border-color:#e4ad69}.target-coordinate{color:var(--mint);min-height:26px;font-size:21px}.minimap{border:1px solid var(--line);color:#87aa94;text-align:left;background:#10262a88;width:136px;margin-top:0;padding:11px}.mini-grid{grid-template-columns:repeat(10,1fr);gap:2px;width:110px;height:110px;display:grid}.mini-grid i{background:#95d0ab08;border:1px solid #88bb9821}.mini-grid i.mini-ship{background:#82bc9677}.mini-grid i.mini-miss{background:#b7cec1}.mini-grid i.mini-hit{background:#e68b5e}.minimap>span{justify-content:space-between;align-items:center;gap:5px;margin-top:9px;font-size:7px;display:flex}.minimap .icon{width:12px;height:12px}.combat-stats{gap:26px;display:flex}.combat-stats>div{flex-direction:column;gap:1px;display:flex}.combat-stats strong{font-family:var(--mono);color:#d4e6d7;font-size:29px;font-weight:500;line-height:1.1}.combat-stats strong small{margin-left:2px;font-size:16px}.combat-stats span{color:#749985;white-space:nowrap;font-size:8px}.combat-controls{flex:1;justify-content:center;display:flex}.aim-hint{color:#779a86;max-width:320px;font-size:10px;line-height:1.8}.log-panel{border-top:1px solid var(--line);padding-top:14px}.log-panel .panel-heading{font-size:9px}.live-dot{background:#74a78b;border-radius:50%;width:4px;height:4px}.log-line{color:#7c9c87;border-bottom:1px solid #9aceaa0d;grid-template-columns:23px 25px 1fr;gap:6px;padding:6px 0;font-size:8px;line-height:1.6;display:grid}.log-who{color:#547d66;font-size:7px}.log-coord{font-family:var(--mono);color:#afc6b6;font-size:12px}.log-line.hit-log>span:last-child{color:#e0a47b}.empty-log{color:#618471;font-size:10px;line-height:1.8}.weapons{align-items:center;gap:5px;display:flex}.weapon-button{border:1px solid var(--line);color:#9bbb9f;background:0 0;align-items:center;gap:7px;min-height:49px;padding:8px 10px;font-size:8px;display:flex;position:relative}.weapon-button .icon{width:18px;height:18px}.weapon-button.active{border-color:var(--mint);color:var(--mint);background:#a0f2cb14}.weapon-button kbd{border:0;padding:0;font-size:8px;position:absolute;top:0;right:2px}.weapon-button>.icon{margin:0}.weapons>.icon-button{width:35px}.privacy-screen{text-align:center;background:#08191e;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:25px;display:flex;position:fixed;inset:0}.privacy-symbol{border:1px solid #92c7a83b;place-items:center;width:90px;height:90px;margin-bottom:36px;display:grid;transform:rotate(45deg)}.privacy-symbol .icon{width:32px;height:32px;color:var(--mint);transform:rotate(-45deg)}.privacy-screen h1{margin:18px 0;font-size:32px;font-weight:500}.privacy-screen p{color:#aec9b6;font-size:16px}.privacy-screen small{color:#709882;max-width:360px;margin:5px 0 32px;font-size:11px;line-height:1.8}.result-screen{align-items:center;height:calc(100% - 99px);padding:30px 6%;display:flex;overflow:auto}.result-card{text-align:center;border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0b2229c7;width:100%;max-width:490px;padding:31px}.result-card>.eyebrow{justify-content:center}.result-medal{color:var(--mint);margin:25px auto 15px}.result-medal .icon{width:48px;height:48px}.stars{color:#3e5c4b;justify-content:center;gap:12px;display:flex}.stars .earned{fill:#edbd7480;color:#edbd74}.result-card h1{letter-spacing:-.04em;font-size:26px;font-weight:500;line-height:1.5}.result-card>p{color:#86a28e;font-size:11px;line-height:1.8}.result-score{flex-direction:column;gap:4px;padding:17px 0;display:flex}.result-score>span{text-transform:uppercase;letter-spacing:.2em;color:#8eb79a;font-size:9px}.result-score strong{font-family:var(--mono);color:var(--mint);font-size:65px;font-weight:500;line-height:1.1}.result-metrics{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:5px 0 25px;padding:16px 0;display:flex}.result-metrics>div{flex-direction:column;flex:1;gap:5px;display:flex}.result-metrics strong{font-family:var(--mono);font-size:25px;font-weight:500}.result-metrics span{color:#7e9e88;font-size:8px}.result-card>.button{width:100%;margin-top:8px}.result-card>.quiet{min-height:32px}#toast{z-index:50;opacity:0;pointer-events:none;color:#dbebdd;text-align:center;background:#152e2dec;border:1px solid #a0f2cb77;border-radius:3px;max-width:90%;padding:15px 24px;font-size:12px;line-height:1.7;transition:opacity .2s,transform .2s;position:fixed;bottom:125px;left:50%;transform:translate(-50%,15px);box-shadow:0 10px 35px #0005}#toast.visible{opacity:1;transform:translate(-50%)}#loading{z-index:100;color:var(--mint);background:#08191f;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-mark{font-family:var(--mono);border:1px solid #8ac8ab55;place-items:center;width:110px;height:110px;font-size:62px;font-weight:700;display:grid;position:relative}.loading-mark>span{font-size:12px;position:absolute;bottom:2px;right:5px}.load-track{background:#20362e;width:220px;height:2px;margin:19px 0}#load-bar{background:var(--mint);width:0;height:2px;transition:width .15s}#loading>p{font-family:var(--mono);letter-spacing:.4em;margin:24px 0 0;font-size:16px}#load-label{font-family:var(--mono);color:#759b85;font-size:12px}#loading.error{text-align:center;gap:16px;padding:30px}#loading.error h1{font-size:24px}#loading.error p{letter-spacing:0;max-width:500px;font-family:inherit;font-size:13px;line-height:1.8}#loading.hidden{display:none}.context-message{z-index:80;text-align:center;color:var(--mint);background:#091b25ee;place-items:center;padding:40px;font-size:18px;display:grid;position:fixed;inset:0}body.privacy #world,body.privacy #app{visibility:hidden}body.reduced *,body.reduced :before,body.reduced :after{transition:none!important;animation:none!important}@keyframes radar{to{transform:rotate(360deg)}}@keyframes modal-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1600px){.hero{margin-top:-60px}.hero-description{max-width:440px;font-size:14px}.hero-hint{font-size:10px}.feature-strip{padding:33px 0}.feature h3{font-size:14px}.feature p{font-size:11px}.ship-callout{right:14%}body[data-screen=placement] #world,body[data-screen=battle] #world{left:290px;right:290px}.left-panel,.right-panel{width:220px}.board-label,.grid-bottom{left:310px;right:310px}.fleet-item{min-height:89px}.vessel-icon{width:108px;height:35px}.vessel-bottom>span{font-size:10px}}@media (max-width:1150px){.topbar{gap:15px;padding:0 3%}.nav-links{gap:20px}.nav-links button{font-size:10px}.hero h1{font-size:57px}.hero{max-width:570px}.hero-description{max-width:340px;font-size:11px}.ship-callout{top:44%;right:6%}.ship-callout strong{font-size:11px}.ship-callout small{font-size:6px}.feature{gap:12px;padding:0 18px}.feature h3{font-size:10px}.feature p{font-size:9px}.feature>span{display:none}.left-panel,.right-panel{width:172px;left:2%}.right-panel{left:auto;right:2%}body[data-screen=placement] #world,body[data-screen=battle] #world{top:210px;left:195px;right:195px}.board-label,.grid-bottom{left:213px;right:213px}.vessel-bottom>span{font-size:8px}.health-dots{gap:2px}.health-dots i{width:4px;height:4px}.battle-heading{left:3%;right:3%}.battle-heading h1{font-size:22px}.battle-heading p{font-size:9px}.operation-id{font-size:8px}.battle-footer{padding:20px 3%}.weapon-button{padding:9px}.weapon-button>span{display:none}.ready-count{font-size:12px}.key-hint,.board-grid-info{display:none}.combat-stats{gap:15px}}@media (max-height:800px) and (min-width:761px){.topbar{height:78px}.menu-screen{height:calc(100% - 128px)}.menu-footer{height:50px}.hero{margin-top:-48px}.hero h1{margin:23px 0 20px;font-size:58px}html[lang=en] .hero h1{font-size:84px}.hero-description{margin-bottom:21px}.hero-hint{margin-top:15px}.hero .eyebrow{font-size:8px}.feature-strip{padding:20px 0;bottom:10px}.ocean-coordinate{bottom:119px}.game-screen{height:calc(100% - 78px)}.battle-heading{top:18px}.battle-heading h1{margin:7px 0}.left-panel,.right-panel{gap:10px;top:122px;bottom:98px}.board-label{top:108px}.fleet-item{min-height:60px;padding:6px 10px}.vessel-icon{width:75px;height:22px}.fleet-list{gap:4px}.panel-heading{margin-bottom:8px}.battle-footer{min-height:86px;padding-top:14px;padding-bottom:14px}.grid-bottom{bottom:100px}.minimap{width:105px;padding:7px}.mini-grid{gap:1px;width:89px;height:89px}.minimap>span{margin-top:5px;font-size:6px}.log-panel{padding-top:9px}.log-line{padding:3px 0}.log-panel .panel-heading{margin-bottom:5px}.mission-card{padding-top:17px}.radar-art{width:98px;height:98px;margin-bottom:23px}.mission-card h2{font-size:15px}.mission-card p{font-size:9px}body[data-screen=placement] #world,body[data-screen=battle] #world{top:185px;bottom:108px}.result-card{max-width:430px;padding:24px}.result-medal{margin:13px auto}.result-score{padding:10px}.result-score strong{font-size:48px}.result-card h1{margin:15px 0;font-size:22px}.result-metrics{margin-bottom:13px;padding:11px 0}}@media (max-width:760px){.topbar{gap:8px;height:78px;padding:0 22px}.brand strong{font-size:23px}.brand small{letter-spacing:.16em;font-size:6px}.brand-emblem{width:29px;height:37px}.brand-emblem .icon{width:23px}.top-actions{gap:2px}.top-actions .icon-button{border-left:0;width:39px}.top-actions .icon-button:first-of-type{display:none}.language-button{padding:10px 6px;font-size:14px}.language-button span{margin-left:3px}.nav-links{display:none}.menu-screen{justify-content:flex-start;height:calc(100% - 126px);padding:0 25px}.hero{z-index:1;max-width:100%;margin-top:48px}.hero .eyebrow{letter-spacing:.13em;font-size:8px}.hero h1{margin:23px 0 21px;font-size:clamp(39px,9vw,66px);line-height:1.2}html[lang=en] .hero h1{margin:26px 0;font-size:clamp(62px,12vw,85px);line-height:.95}.hero-description{max-width:300px;font-size:11px;line-height:1.85}.hero-buttons{gap:3px}.big{min-width:215px;min-height:51px;padding:0 18px;font-size:11px}.hero-hint{max-width:245px;font-size:8px;line-height:1.8}.hero-buttons>.quiet{min-height:39px;padding-left:0;font-size:10px}.ship-callout{display:none}.ocean-coordinate{letter-spacing:.04em;gap:8px;font-size:8px;bottom:107px;right:25px}.ocean-coordinate>span:first-child,.ocean-coordinate i{display:none}.feature-strip{gap:8px;padding:17px 0;bottom:0;left:25px;right:25px}.feature{padding:0 10px;display:block}.feature:first-child{padding-left:0}.feature>.icon{width:21px;height:21px;margin-bottom:10px}.feature h3{margin:0;font-size:8px;line-height:1.5}.feature p{display:none}.menu-footer{height:48px;padding:0 25px;font-size:6px}.menu-footer>span:nth-child(2){display:none}.menu-footer>span:last-child{font-size:6px}body[data-screen=menu] #app:before{background:linear-gradient(90deg,#041119de,#0000),linear-gradient(#04111990 15%,#04111930 62%,#041119 100%)}.operation-id{display:none}.battle-heading{top:19px;left:22px;right:22px}.battle-heading h1{margin:7px 0;font-size:20px}.battle-heading p{max-width:300px;font-size:8px;line-height:1.6}.battle-heading .eyebrow{font-size:7px}.turn-badge{gap:7px}.turn-badge>span{font-size:7px}.turn-badge>strong{font-size:32px}.game-screen{height:calc(100% - 78px)}.left-panel{flex-direction:row;gap:0;width:auto;height:48px;inset:108px 22px auto}.fleet-panel{width:100%}.left-panel .panel-heading{display:none}.fleet-list{flex-direction:row;gap:5px;width:100%}.fleet-item{flex:1;min-width:0;min-height:48px;padding:4px 5px}.vessel-top{height:8px}.vessel-code{font-size:7px}.vessel-status{height:8px;font-size:6px}.vessel-status .icon{width:9px;height:9px}.vessel-icon{width:50px;max-width:90%;height:16px;margin:0 auto 1px}.vessel-bottom>span{display:none}.vessel-bottom{justify-content:center}.health-dots i{width:4px;height:4px}.fleet-tools{gap:6px;position:absolute;top:calc(100dvh - 380px);left:0}.fleet-tools>.button{background:#10242b;min-height:40px;font-size:9px}.fleet-tools>.icon-button{background:#10242b;width:40px;height:40px}.right-panel{display:none}.board-label{font-size:7px;top:169px;left:23px;right:23px}.board-label>.status-dot{width:4px;height:4px}.board-grid-info{font-size:6px;display:block}.grid-bottom{bottom:105px;left:23px;right:23px}.legend{gap:12px;font-size:7px}.target-coordinate{font-size:19px}.left-panel .minimap{display:none}body[data-screen=placement] #world,body[data-screen=battle] #world{inset:261px 0 145px}body[data-screen=placement] #app,body[data-screen=battle] #app{background:linear-gradient(0deg,#081b22 110px,#0000 175px),linear-gradient(#081b22 250px,#0000 275px)}.battle-footer{gap:10px;min-height:91px;padding:13px 21px}.battle-footer>.primary{min-width:132px;min-height:46px;padding:0 14px;font-size:10px}.primary .icon{margin-left:4px}.ready-count{display:none}.placement-controls>.button{min-height:44px;padding:0 14px;font-size:10px}.combat-controls{display:none}.combat-stats{gap:16px}.combat-stats strong{font-size:25px}.combat-stats span{font-size:7px}.battle-footer:has(.weapons){padding-top:67px}.battle-footer:has(.weapons) .combat-controls{display:flex;position:absolute;top:7px;left:21px;right:21px}.weapons{justify-content:space-between;gap:4px;width:100%}.weapon-button{flex:1;justify-content:center;min-height:43px;padding:7px 12px}.weapon-button>span{display:none}.weapons>.icon-button{width:33px}.game-screen:has(.weapons) .grid-bottom{bottom:159px}body:has(.weapons) #world{bottom:194px}.modal-backdrop{padding:14px}.modal{max-height:calc(100dvh - 28px);padding:20px 23px 25px}.modal h2{font-size:24px}.modal-intro{font-size:10px}.mode-cards{gap:7px}.mode-card{min-height:147px;padding:19px 11px}.mode-card h3{margin-top:15px;font-size:12px}.mode-card p{font-size:8px;line-height:1.7}.mode-card>.icon{width:24px}.mode-number{font-size:11px;top:12px;right:9px}.mode-card>i .icon{width:11px}.config-columns{grid-template-columns:1fr;gap:0}.config-columns .form-label{margin-top:17px}.segmented button{min-height:38px;font-size:10px}.rule-toggles{grid-template-columns:1fr;gap:0}.toggle-row{padding:11px 0}.form-label{margin-top:19px}.toggle-row small{margin-top:5px;font-size:8px}.modal-bottom{margin-top:12px;padding-top:18px;display:block}.modal-bottom small{max-width:100%;margin-bottom:14px;font-size:8px;display:block}.modal-bottom>.button{width:100%}.setting-row{gap:15px}.setting-row select,.setting-row input[type=range]{width:150px}.privacy-screen h1{font-size:25px}.privacy-screen p{font-size:14px}.privacy-screen small{font-size:10px}.result-screen{justify-content:center;height:calc(100% - 78px);padding:20px}.result-card{max-width:400px;padding:23px}.result-medal{margin:19px auto 12px}.result-card h1{font-size:22px}.result-score strong{font-size:52px}.result-metrics{margin-bottom:18px}.result-card>p{font-size:10px}#toast{width:max-content;max-width:90vw;padding:12px 17px;font-size:10px;bottom:164px}.stats-grid strong{font-size:30px}.stats-grid span{font-size:8px}.stats-grid>div{padding:17px 9px}}@media (max-width:760px) and (max-height:740px){.hero{margin-top:31px}.hero h1{margin:18px 0 16px;font-size:40px}html[lang=en] .hero h1{margin:20px 0;font-size:61px}.hero-description{margin-bottom:18px;font-size:10px}.hero-hint{display:none}.feature-strip{padding:13px 0}.ocean-coordinate{bottom:90px}.feature>.icon{margin-bottom:6px}.battle-heading{top:12px}.battle-heading h1{font-size:18px}.left-panel{top:98px}.board-label{top:157px}body[data-screen=placement] #world,body[data-screen=battle] #world{top:245px;bottom:133px}.grid-bottom{bottom:95px}.battle-footer{min-height:83px;padding:10px 20px}.fleet-tools{top:calc(100dvh - 356px)}.result-medal{margin:8px auto}.result-medal .icon{width:33px;height:33px}.result-score{padding:9px}.result-card h1{font-size:20px}.result-card{padding:20px}}@media (max-height:520px) and (orientation:landscape){.topbar{height:59px}.game-screen{height:calc(100% - 59px)}.battle-heading{top:9px}.battle-heading h1{font-size:18px}.battle-heading p{display:none}.battle-heading .eyebrow{font-size:6px}.left-panel,.right-panel{width:140px;top:81px}.right-panel .fleet-panel{display:none}.fleet-list{gap:3px}.fleet-item{min-height:39px;padding:4px 8px}.vessel-icon{width:55px;height:15px;margin-top:-6px}.vessel-bottom>span{font-size:6px}.vessel-code{font-size:7px}.panel-heading{font-size:8px}.fleet-tools{gap:3px}.fleet-tools>.button{min-height:32px;font-size:8px}.fleet-tools>.icon-button{height:32px}.board-label{top:74px;left:175px;right:175px}.battle-footer{min-height:65px;padding:9px 3%}.battle-footer .button{min-height:40px}.grid-bottom{bottom:76px;left:175px;right:175px}.minimap{display:none}body[data-screen=placement] #world,body[data-screen=battle] #world{inset:129px 160px 84px}.mission-card{padding-top:10px}.radar-art{display:none}.mission-card h2{font-size:13px}.mission-card p{font-size:8px}.menu-screen{height:calc(100% - 97px)}.hero{margin-top:18px}.hero h1{margin:12px 0;font-size:35px}.hero-description{margin-bottom:14px;font-size:9px}.hero-hint,.feature-strip,.ocean-coordinate{display:none}html[lang=en] .hero h1{margin:17px 0;font-size:53px}.hero .eyebrow{font-size:7px}.big{min-height:44px}.menu-footer{height:38px}.result-screen{align-items:flex-start;height:calc(100% - 59px)}.result-card{max-width:500px}.result-medal,.result-card>p{display:none}.result-score{padding:0}.result-score strong{font-size:38px}.result-metrics{margin:5px 0;padding:6px}.result-card h1{margin:9px 0}.result-card .stars{margin-top:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.button.small{color:#bcd5c6;background:#142c2d}body[data-screen=placement] #world,body[data-screen=battle] #world{-webkit-mask-image:linear-gradient(90deg,#0000,#000 26px calc(100% - 26px),#0000);mask-image:linear-gradient(90deg,#0000,#000 26px calc(100% - 26px),#0000)}@media (max-width:760px){.placing-screen .fleet-tools{z-index:4;gap:6px;position:fixed;top:auto;bottom:23px;left:75px}.placing-screen .fleet-tools>.button{flex:none;width:40px;min-height:44px;padding:0}.placing-screen .fleet-tools>.button span,.placement-controls>.button span{display:none}.placing-screen .fleet-tools>.icon-button{width:40px;height:44px}.placement-controls>.button{width:44px;padding:0}.game-screen:not(.placing-screen):has(.aim-hint) .combat-controls{pointer-events:none;display:flex;position:absolute;bottom:99px;left:22px;right:22px}.game-screen:not(.placing-screen):has(.aim-hint) .aim-hint{text-align:center;background:#091c22d9;border-radius:2px;padding:5px 8px;font-size:8px}.grid-bottom{bottom:127px}}@media (max-height:520px) and (orientation:landscape){body[data-screen=placement] #app,body[data-screen=battle] #app{background:linear-gradient(0deg,#081b22 62px,#0000 94px),linear-gradient(#081b22 124px,#0000 147px)}.left-panel,.right-panel{bottom:75px;overflow-y:auto}.fleet-item{min-height:31px;padding:3px 7px}.vessel-icon{width:45px;height:12px;margin-top:-8px}.vessel-bottom>span{font-size:6px}.vessel-status{height:8px;font-size:6px}.fleet-list{gap:3px}.vessel-code{font-size:6px}.fleet-item .health-dots i{width:3px;height:3px}}@media (max-width:760px){.top-actions .icon-button{width:44px}.language-button{min-width:44px;min-height:44px}.placing-screen .fleet-tools>.button,.placing-screen .fleet-tools>.icon-button{width:44px}.weapon-button,.segmented button{min-height:44px}}
