:root{--paper:#f0eee7;--ink:#202c30;--muted:#727b7b;--navy:#112d3b;--sea:#13394a;--gold:#eac184;--line:rgba(180,214,218,.17);--ice:#dce9e9;--hit:#f49e7d;--accent:#b17d3e;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#faf9f5,transparent 70%),var(--paper)}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button,a,select{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #bb8443;outline-offset:4px}button:focus{outline-color:var(--gold)}[hidden]{display:none!important}.game-shell{max-width:1120px;padding:0 30px;margin:0 auto}.site-header{display:flex;align-items:center;height:76px;border-bottom:1px solid #d9dcd5;gap:18px;font-size:13px}.site-header a{text-decoration:none;color:var(--ink)}.brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:16px;letter-spacing:-.3px}.brand img{border-radius:8px}.brand-light{font-weight:400}.nav-divider{height:18px;width:1px;background:#c9cfca}.category-link{color:#67726e!important}.back-link{margin-left:auto}.back-link span{margin-left:12px}.page-heading{display:flex;justify-content:space-between;align-items:center;padding:28px 0 25px;gap:20px}.eyebrow{font:600 10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.7px;margin:0;color:var(--muted)}h1{font:800 58px/.99 "Arial Black",Inter,system-ui,sans-serif;letter-spacing:-3.3px;margin:6px 0 0}h1 span{color:#b58b56}.stats{display:flex;gap:28px}.stats>div{display:flex;flex-direction:column;border-left:1px solid #d4d7cf;padding-left:23px}.stat-label{font:600 9px/1.6 ui-monospace,monospace;letter-spacing:1px;color:#72796e;white-space:nowrap}.stat-label span{display:block;letter-spacing:.5px;font-size:8px}.stats strong{font:500 25px/1.25 ui-monospace,monospace;margin-top:4px;letter-spacing:-1px}.console{background:var(--navy);color:var(--ice);border-radius:14px;border:1px solid #071e2a;box-shadow:0 30px 50px -30px #1c333e77,0 2px 3px #0003;overflow:hidden;position:relative}.command-bar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;background:#0e2632;border-bottom:1px solid var(--line);gap:16px}.command-title{display:flex;align-items:center;gap:12px}.command-title>span:last-child{display:flex;flex-direction:column;gap:4px}.command-title b{font:600 10px ui-monospace,monospace;letter-spacing:2px;color:var(--gold)}#phase-detail{font-size:11px;color:#9eb4bd}.signal-light{width:7px;height:7px;background:#98cbb7;border-radius:50%;box-shadow:0 0 0 4px #98cbb710;flex-shrink:0}.toolbar-actions{display:flex;gap:4px}.quiet{background:transparent;color:#b7c8cc;border:1px solid transparent;border-radius:6px;padding:9px 10px;font-size:11px;min-height:36px}.quiet:hover{background:#ffffff0a;border-color:var(--line);color:#fff}.quiet[aria-pressed=true]{color:var(--gold)}.battle-layout{display:grid;grid-template-columns:1fr 1fr}.board-panel{padding:21px 25px 19px;min-width:0}.own-panel{border-right:1px solid var(--line)}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}.panel-heading .eyebrow{color:#8baeb8;font-size:9px;letter-spacing:1.6px}.panel-heading h2{font-size:22px;font-weight:550;letter-spacing:-.6px;margin:3px 0 0}.panel-counter{font:10px ui-monospace,monospace;color:#8eaab4;border:1px solid var(--line);padding:6px 8px;border-radius:4px;white-space:nowrap}.board-fit{position:relative;margin:0 auto}.board-frame{width:460px;height:460px;padding:26px 6px 6px 26px;position:relative;transform-origin:top left}.axis{position:absolute;display:grid;color:#7898a6;font:10px/1 ui-monospace,monospace;text-align:center;pointer-events:none}.axis-top{left:26px;right:6px;top:6px;grid-template-columns:repeat(10,1fr)}.axis-left{left:6px;top:26px;bottom:6px;grid-template-rows:repeat(10,1fr);align-items:center}.ocean{position:relative;width:428px;height:428px;border:1px solid #729fac55;background:radial-gradient(ellipse at 25% 75%,#22566666,transparent 55%),radial-gradient(ellipse at 90% 10%,#32667322,transparent 50%),#123545;box-shadow:inset 0 0 45px #041d2b55,0 0 0 5px #0a263440;isolation:isolate}.sea-contours{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='428' height='428' viewBox='0 0 428 428'%3E%3Cg fill='none' stroke='%238ab4ba' opacity='.09'%3E%3Cpath d='M-30 290C40 210 70 340 170 240S270 130 460 170M-30 310C40 230 70 360 170 260S270 150 460 190M-30 330C40 250 70 380 170 280S270 170 460 210M-30 350C40 270 70 400 170 300S270 190 460 230M-30 370C40 290 70 420 170 320S270 210 460 250'/%3E%3Ccircle cx='60' cy='40' r='130'/%3E%3Ccircle cx='60' cy='40' r='150'/%3E%3Ccircle cx='60' cy='40' r='170'/%3E%3C/g%3E%3C/svg%3E");background-size:100% 100%;pointer-events:none}.grid{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.cell{display:flex;align-items:center;justify-content:center;position:relative;min-width:0;padding:0;border:0;border-right:1px solid #9ec6cc1c;border-bottom:1px solid #9ec6cc1c;border-radius:0;background:transparent;color:#e8f5ed;font:500 26px ui-monospace,monospace;cursor:crosshair;outline-offset:-3px!important}.cell:nth-child(10n){border-right:0}.cell:nth-child(n+91){border-bottom:0}.cell:focus{outline:2px solid var(--gold);z-index:3}.cell:hover{background:#cbe8eb12}.cell.miss:after{content:'';width:7px;height:7px;border:1.5px solid #9cb9c3;border-radius:50%;background:#b8d8dd18}.cell.hit:after,.cell.sunk:after{content:'×';color:#ffc09c;text-shadow:0 0 12px #f07c46;font-size:27px;font-weight:400}.cell.sunk{background:#ed89541c}.cell.sunk:after{color:#e49c75;text-shadow:none}.cell.selected{background:#edc17c27;box-shadow:inset 0 0 0 2px var(--gold)}.cell.selected:before{content:'+';color:var(--gold);font-size:35px;font-weight:300}.cell.preview{background:#80d9c33b;box-shadow:inset 0 0 0 1px #80d9c3}.cell.invalid{background:#ff86633b;box-shadow:inset 0 0 0 1px #ff8663}.cell.last-shot{box-shadow:inset 0 0 0 2px #e6c48a80}.cell[aria-disabled=true]{cursor:default}.ship-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.ship{position:absolute;filter:drop-shadow(2px 4px 2px #00101899);transition:opacity .3s}.ship > svg{display:block;width:100%;height:100%;overflow:visible}.ship.vertical > svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg)}.ship.destroyed{opacity:.45;filter:sepia(.7) drop-shadow(0 0 4px #ff5b2344)}.ship.editing{opacity:.45}.effects{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4}.impact{position:absolute;width:10%;height:10%;display:flex;align-items:center;justify-content:center}.impact:before,.impact:after{content:'';position:absolute;width:50%;height:50%;border:2px solid #b4e6ef;border-radius:50%;animation:ripple .8s ease-out forwards}.impact:after{animation-delay:.1s}.impact.explosion:before{border-color:#ffb078;background:#ffc795;box-shadow:0 0 24px #ff9456}.impact.explosion:after{border-color:#ffcb98}.map-key{display:flex;gap:13px;align-items:center;font:9px/1.4 ui-monospace,monospace;color:#9bb3bc;padding:11px 3px 12px}.map-key>span{display:flex;align-items:center;gap:5px}.map-key i{font-style:normal;font-size:17px;line-height:10px}.key-ship{height:5px;width:15px;background:#98afb5;display:inline-block;border-radius:50% 2px 2px 50%}.key-hit,.key-sunk{color:#f5aa85}.key-miss{color:#b6d9e3}.map-key .chart-id{margin-left:auto;font-size:8px;color:#668b9a;letter-spacing:.5px}.fleet-list{display:flex;gap:5px;justify-content:space-between}.fleet-item{flex:1;min-width:0;padding:8px 3px 6px;background:#0b263363;border:1px solid var(--line);border-radius:5px;color:#9db4be;display:flex;align-items:center;flex-direction:column;gap:6px;font-size:9px}.fleet-item > svg{width:62px;max-width:100%;height:18px;display:block}.fleet-item.selected{border-color:var(--gold);background:#e5bf8220;color:var(--gold)}.fleet-item:hover:not(:disabled){border-color:#c8d9d9}.fleet-item:disabled{opacity:1}.fleet-item.destroyed{opacity:.5}.fleet-item.destroyed .ship-name{text-decoration:line-through}.hull-pips{display:flex;gap:3px;height:4px}.hull-pips i{width:6px;height:3px;background:#7b9faa;border-radius:1px}.hull-pips i.damaged{background:#e59978}.fleet-item.unplaced .hull-pips i{background:transparent;border:1px solid #6a8b98}.placement-tools{display:flex;align-items:center;gap:8px;margin:13px 0 0}.secondary{background:#ffffff06;border:1px solid #819aa84d;border-radius:5px;color:#c7d8dd;padding:10px 12px;font-size:11px;min-height:38px}.secondary:hover{background:#ffffff0f;border-color:#c0d5d7}.secondary kbd{font:9px ui-monospace,monospace;padding:2px 3px;border:1px solid #8099a55c;border-radius:2px;margin-left:6px;color:#89a3ad}.text-button{background:transparent;border:0;color:#c4d4d7;font-size:12px;padding:10px;min-height:38px;text-decoration:underline;text-underline-offset:3px}.placement-tools .text-button{margin-left:auto}.placement-tip,.target-tip{font-size:10px;color:#8eabb6;line-height:1.5;min-height:15px;margin:10px 0 0}.briefing{height:100%;min-height:575px;position:relative;display:flex;flex-direction:column;padding:12px 10px 0}.briefing-art{position:absolute;top:5px;right:-15px;width:240px;height:280px;pointer-events:none;opacity:.8;overflow:hidden}.briefing-art:before{content:'';position:absolute;width:260px;height:260px;top:0;left:0;border:1px solid #7aa5ae20;border-radius:50%;box-shadow:0 0 0 35px #7aa5ae08,0 0 0 70px #7aa5ae06}.briefing-art > svg{position:absolute;width:260px;height:72px;top:85px;left:3px;transform:rotate(-53deg);filter:drop-shadow(-12px 20px 6px #00121f66);opacity:.75}.briefing-copy{position:relative;z-index:1}.briefing-copy .eyebrow{color:var(--gold);font-size:9px}.briefing-copy h2{font:500 43px/1.1 Georgia,serif;letter-spacing:-1.2px;margin:16px 0}.briefing-copy h2 em{font-weight:400;color:var(--gold)}.briefing-copy>p:last-child{color:#9bb7c2;font-size:13px;line-height:1.8;margin:15px 0 25px}.deployment-menu{margin-top:auto;position:relative;z-index:1;padding-top:25px;border-top:1px solid var(--line)}.deployment-menu label{display:block;font:10px ui-monospace,monospace;letter-spacing:1.5px;color:#b8c7c9;margin-bottom:10px}.deployment-menu select{width:100%;padding:13px 12px;background:#183847;border:1px solid #67869766;color:#e7ece6;border-radius:6px;font-size:13px}.deployment-menu select option{background:#183847}.deployment-menu #difficulty-note{font-size:11px;color:#8faab6;margin:10px 0 22px;line-height:1.5;min-height:17px}.primary{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;background:var(--gold);color:#23333a;border:1px solid #f3d7ae;border-radius:6px;min-height:48px;padding:14px 18px;font-weight:750;font-size:14px;box-shadow:inset 0 1px 0 #fff5,0 4px 12px #0001;transition:background .15s,transform .15s}.primary:hover:not(:disabled){background:#f7d5a2;transform:translateY(-1px)}.primary:active:not(:disabled){transform:translateY(1px)}.primary span{font-size:20px;font-weight:400;line-height:1}.deploy-note{font-size:10px;color:#93aeb8;text-align:center;line-height:1.5;margin:12px 0 0}.firing-panel{display:flex;gap:16px;align-items:center;margin-top:13px}.firing-panel>div{min-width:130px}.firing-panel .eyebrow{display:block;letter-spacing:1px;font-size:8px;color:#9fb9c2}.firing-panel strong{display:block;font:26px/1.2 ui-monospace,monospace;color:var(--gold)}.firing-panel .primary{min-height:44px;padding:11px 16px}.status-strip{display:flex;align-items:center;gap:12px;padding:14px 25px;border-top:1px solid var(--line);background:#0d2633;min-height:57px}.status-icon{font-size:20px;color:var(--gold);flex-shrink:0}.status-strip p{font-size:12px;line-height:1.5;margin:0;color:#c3d4d8}#shot-stat{margin-left:auto;white-space:nowrap;font:9px ui-monospace,monospace;color:#7899a8;letter-spacing:.8px}.battle-log{display:flex;gap:15px;align-items:center;padding:12px 25px;background:#0a222e;border-top:1px solid #7ea9bb12;min-height:48px}.battle-log>.eyebrow{font-size:8px;color:#688c9c;white-space:nowrap}.battle-log ol{display:flex;list-style:none;gap:17px;margin:0;padding:0;font:10px ui-monospace,monospace;color:#8ba8b4;overflow:hidden}.battle-log li{white-space:nowrap}.battle-log li:first-child{color:#d1dfdf}.battle-log li.hit{color:#edb28f}.how-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:22px 0 16px;border-bottom:1px solid #d7dcd5}.how-strip p{margin:0;font-size:11px;color:#687773;line-height:1.7}.how-strip span{font:10px ui-monospace,monospace;color:#a98450;margin-right:10px}.how-strip b{font-weight:600;color:#394a47}.game-overview{padding:0 0 28px}.game-overview details{border-top:1px solid #d7dcd5;border-bottom:1px solid #d7dcd5}.game-overview summary{display:flex;justify-content:space-between;padding:20px 0;cursor:pointer;font:500 18px Georgia,serif;list-style:none}.game-overview summary span{font:11px/1.7 Inter,system-ui,sans-serif;color:#6c7872}.guide-content{max-width:780px;color:#52645d;font-size:14px;line-height:1.8;padding-bottom:20px}.guide-content h2,.guide-content h3{color:#263e36;font-size:17px}.guide-content a{color:#315f5b}footer{display:flex;justify-content:space-between;padding:0 0 28px;font:9px ui-monospace,monospace;letter-spacing:1px;color:#88918a}footer a{color:#65786f;letter-spacing:0;text-decoration:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#041823c9;display:flex;align-items:flex-start;justify-content:center;padding:30px 16px;overflow-y:auto;overscroll-behavior:contain}.modal-card{position:relative;background:#f4f1e9;color:#263d41;border:1px solid #d8c7ab;border-radius:15px;box-shadow:0 30px 100px #0005;width:480px;max-width:100%;margin:auto;padding:32px;outline:0;flex-shrink:0}.modal-card h2{font:500 34px/1.15 Georgia,serif;letter-spacing:-.8px;margin:0 0 16px}.modal-card h3{font-size:15px;margin:22px 0 6px}.modal-card p{font-size:13px;line-height:1.7;color:#61716d}.modal-card .text-button{color:#536861}.modal-close{position:absolute;top:10px;right:12px;width:36px;height:36px;font-size:25px;line-height:1;border:0;background:transparent;color:#61716d}.modal-card .primary{margin-top:20px}.modal-actions{display:flex;gap:10px}.modal-actions button{flex:1}.modal-actions .secondary{color:#263d41;border-color:#80958c}.result-card{text-align:center}.result-card>.eyebrow{color:#9d7847;font-size:9px;letter-spacing:2px}.result-medal{width:66px;height:66px;margin:20px auto;border-radius:50%;border:1px solid #ba965d;color:#ac8447;display:flex;align-items:center;justify-content:center;font-size:33px;background:#dec08c20;box-shadow:0 0 0 5px #b9925b0d}.result-card h2{margin:0 0 10px;font-size:38px}.result-stats{display:flex;justify-content:space-around;border-top:1px solid #d8d9ce;border-bottom:1px solid #d8d9ce;padding:18px 0;margin:20px 0}.result-stats>div{display:flex;flex-direction:column;gap:6px}.result-stats strong{font:500 27px ui-monospace,monospace}.result-stats span{font:8px ui-monospace,monospace;letter-spacing:1px;color:#7a8577}.result-card .primary{justify-content:center}.result-card .text-button{margin:5px 0 0}.mobile-tabs{display:none}.battle-layout[data-phase=battle] .own-panel .placement-tip{display:none}
@keyframes ripple{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:scale(3)}}
@media(min-width:761px) and (max-height:850px){.site-header{height:55px}.page-heading{padding:19px 0}h1{font-size:46px}.command-bar{height:54px}.board-panel{padding-top:15px;padding-bottom:14px}.panel-heading{margin-bottom:8px}.panel-heading h2{font-size:19px}.briefing{min-height:490px}.briefing-copy h2{font-size:36px}.briefing-copy>p:last-child{margin:10px 0 14px}.deployment-menu{padding-top:18px}.status-strip{padding-top:10px;padding-bottom:10px;min-height:48px}.map-key{padding:8px 3px}.fleet-item{padding:6px 3px}.placement-tools{margin-top:10px}.placement-tip,.target-tip{margin-top:7px}}
@media(max-width:1000px){.game-shell{padding:0 22px}.board-panel{padding-left:18px;padding-right:18px}.stats{gap:19px}.stats>div{padding-left:18px}.briefing-copy h2{font-size:39px}.chart-id{display:none!important}.firing-panel>div{min-width:115px}.how-strip{gap:10px}.how-strip p{font-size:10px}}
@media(max-width:760px){.game-shell{padding:0 14px;max-width:570px}.site-header{height:58px;gap:12px}.brand{font-size:14px;gap:7px}.brand img{width:26px;height:26px}.back-link{font-size:0}.back-link span{font-size:18px;margin:0}.category-link{font-size:12px}.page-heading{padding:22px 0 20px;align-items:flex-start;gap:12px}h1{font-size:41px;letter-spacing:-2.5px;margin-top:6px}.page-heading .eyebrow{font-size:7px;letter-spacing:1.1px}.stats{gap:12px;padding-top:3px}.stats>div{padding-left:11px}.stats>div:last-child{display:none}.stat-label{font-size:7px;letter-spacing:.4px}.stats strong{font-size:22px;margin-top:6px}.command-bar{height:58px;padding:0 15px;gap:7px}.command-title{gap:9px}.command-title b{font-size:8px;letter-spacing:1.3px}#phase-detail{font-size:9px}.toolbar-actions{gap:0}.quiet{font-size:10px;padding:8px 7px;min-height:38px}.battle-layout{display:flex;flex-direction:column}.board-panel{padding:18px 18px 15px}.own-panel{border-right:0}.panel-heading{margin-bottom:10px}.panel-heading h2{font-size:21px}.panel-heading .eyebrow{font-size:8px}.panel-counter{font-size:9px}.briefing{min-height:0;padding:4px 0 0;display:block}.briefing-art,.briefing-copy{display:none}.enemy-panel{padding-top:0}.deployment-menu{padding-top:16px}.deployment-menu label{font-size:9px}.deployment-menu #difficulty-note{margin-bottom:14px}.deploy-note{font-size:9px;margin-bottom:3px}.placement-tip,.target-tip{font-size:10px}.fleet-item{font-size:8px;gap:6px}.fleet-item > svg{height:16px}.map-key{padding:9px 2px;font-size:8px;gap:12px}.placement-tools{margin-top:12px}.secondary{font-size:10px;padding:9px 11px}.status-strip{padding:12px 15px;gap:9px}.status-strip p{font-size:11px}#shot-stat{display:none}.how-strip{display:flex;flex-direction:column;gap:7px;padding:18px 0}.how-strip p{font-size:11px}.game-overview summary{font-size:17px;gap:15px}.game-overview summary span{font-size:10px}.mobile-tabs:not([hidden]){display:flex;background:#0b2634;border-bottom:1px solid var(--line)}.mobile-tabs button{width:50%;padding:13px 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:#819fae;font-size:11px}.mobile-tabs button[aria-selected=true]{color:var(--gold);border-bottom-color:var(--gold);background:#ebc38c08}.mobile-tabs span{display:inline-block;margin-left:7px;font:9px ui-monospace,monospace;padding:2px 5px;border-radius:3px;background:#63869b25}.battle-layout[data-phase=battle] .enemy-panel,.battle-layout[data-phase=over] .enemy-panel{padding-top:18px}.battle-layout[data-phase=battle][data-view=enemy] .own-panel,.battle-layout[data-phase=over][data-view=enemy] .own-panel,.battle-layout[data-phase=battle][data-view=own] .enemy-panel,.battle-layout[data-phase=over][data-view=own] .enemy-panel{display:none}.battle-log{padding:10px 15px;gap:10px;min-height:43px}.battle-log ol{gap:15px;font-size:9px}.firing-panel{gap:15px;margin-top:14px}.firing-panel>div{min-width:126px}.firing-panel strong{font-size:25px}.firing-panel .primary{min-height:46px}.modal{padding:14px}.modal-card{padding:28px 23px}.result-card h2{font-size:34px}.result-card .result-medal{margin:16px auto}.result-stats{padding:15px 0;margin:16px 0}.result-stats strong{font-size:24px}}
@media(max-width:360px){.game-shell{padding:0 9px}.stats{gap:8px}.stats>div{padding-left:8px}h1{font-size:36px}.board-panel{padding-left:12px;padding-right:12px}.command-bar{padding:0 11px}.quiet{font-size:9px;padding-left:5px;padding-right:5px}.firing-panel>div{min-width:115px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.impact{display:none}}

/* The briefing stretches to the chart; it never imposes a taller game stage. */
.briefing{min-height:0}
@media(min-width:761px) and (max-height:850px){
 .site-header{height:48px}.page-heading{padding:14px 0}h1{font-size:40px}.page-heading .eyebrow{font-size:8px}.stats strong{font-size:22px}
 .command-bar{height:46px}.board-panel{padding-top:12px;padding-bottom:12px}.panel-heading h2{font-size:18px}.panel-heading .eyebrow{font-size:8px}.panel-heading{margin-bottom:6px}
 .fleet-item{padding:5px 3px;gap:4px}.fleet-item > svg{height:14px}.map-key{padding:7px 3px}.firing-panel{margin-top:9px}.firing-panel .primary{min-height:38px;padding:8px 15px}.firing-panel strong{font-size:22px}.target-tip{display:none}
 .briefing{padding-top:4px}.briefing-copy h2{font-size:31px;margin:10px 0}.briefing-copy>p:last-child{font-size:11px;margin:10px 0 16px;line-height:1.7}.briefing-art{height:200px;width:180px;opacity:.6}.briefing-art > svg{width:200px;top:55px;left:0}.deployment-menu{padding-top:14px}.deployment-menu label{font-size:9px;margin-bottom:7px}.deployment-menu select{padding:10px}.deployment-menu #difficulty-note{font-size:10px;margin:8px 0 13px}.deployment-menu .primary{min-height:42px;padding:11px 15px}.deploy-note{font-size:9px;margin-top:9px}
 .status-strip{min-height:40px;padding:9px 22px}.status-strip p{font-size:11px}.battle-log{min-height:33px;padding:9px 22px}.placement-tools{margin-top:9px}.secondary{min-height:34px;padding:8px 10px}.placement-tip{font-size:9px;margin-top:7px}
}

.grid-row{display:contents}.grid-row:last-child .cell{border-bottom:0}

/* Detailed fleet models replace the original diagram-style silhouettes. */
.ship{filter:drop-shadow(1px 3px 2px #001019b0) drop-shadow(0 0 1px #a6ccd244)}
.ship.editing{opacity:.7;filter:drop-shadow(0 0 3px #edcb91aa)}
.ship.destroyed{opacity:.58;filter:grayscale(.8) brightness(.65) drop-shadow(0 2px 2px #001018)}
.fleet-item > svg{width:76px;height:22px;filter:drop-shadow(0 2px 1px #0008)}
.briefing-copy h2{font-size:38px;line-height:1.12;margin:11px 0 0}
.fleet-showcase{position:relative;margin:22px 0 24px;padding:13px 0 10px;border-top:1px solid #7899a62e;border-bottom:1px solid #7899a62e;background:radial-gradient(ellipse at 50% 55%,#42768522,transparent 72%)}
.showcase-caption{display:flex;justify-content:space-between;gap:8px;font:8px/1.5 ui-monospace,monospace;letter-spacing:1.2px;color:#96b1bd}
.showcase-caption span:first-child{color:var(--gold)}
.briefing .briefing-art{position:relative;top:auto;right:auto;width:100%;height:126px;opacity:1;overflow:visible;margin:4px 0}
.briefing .briefing-art:before{top:50%;left:50%;transform:translate(-50%,-50%);height:115px;width:115px;border:1px solid #aac8ce15;box-shadow:0 0 0 24px #a5c3cd06,0 0 0 48px #a5c3cd04}
.briefing .briefing-art > svg{top:50%;left:0;width:100%;height:102px;transform:translateY(-50%);opacity:1;filter:drop-shadow(0 8px 5px #001723bb)}
#showcase-description{font-size:10px;color:#97b0ba;line-height:1.6;margin:0}
.deployment-menu{border-top:0;padding-top:0}
@media(min-width:761px) and (max-height:850px){
 .briefing-copy h2{font-size:28px;line-height:1.08;margin-top:6px}.briefing-copy .eyebrow{font-size:8px}
 .fleet-showcase{margin:13px 0 15px;padding:9px 0 8px}.briefing .briefing-art{height:89px}.briefing .briefing-art > svg{height:81px}.showcase-caption{font-size:7px}
 #showcase-description{font-size:9px}.fleet-item > svg{height:18px}.deployment-menu{padding-top:0}
}
@media(max-width:760px){.fleet-showcase{display:none}.fleet-item > svg{height:20px}.deployment-menu{border-top:1px solid var(--line);padding-top:16px}}

/* Sunken hulls remain only as faint underwater chart silhouettes. */
.ship.destroyed{opacity:.09;filter:grayscale(1) brightness(.55);transition:none}
.effects{overflow:hidden;border-radius:1px}
.battle-effects{display:block;width:100%;height:100%}
@media(prefers-reduced-motion:reduce){.battle-effects{display:none}.ship.destroyed{opacity:.2}}

.ship.firing{animation:hull-recoil .42s ease-out}
@keyframes hull-recoil{0%{transform:translateX(0)}18%{transform:translateX(-3px)}55%{transform:translateX(1px)}100%{transform:translateX(0)}}

/* Two cached texture planes drift independently beneath the tactical grid. */
.ocean{background:radial-gradient(ellipse at 18% 75%,#22647570,transparent 65%),radial-gradient(ellipse at 90% 15%,#477f8740,transparent 55%),linear-gradient(155deg,#173f52,#0c2e43 55%,#16495b)}
.sea-contours{background-image:none;z-index:0}
.sea-contours:before,.sea-contours:after{content:'';position:absolute;top:-64px;left:-64px;right:-64px;bottom:-64px;pointer-events:none;background:url('assets/ocean-surface.svg') repeat;background-size:320px 320px;will-change:transform}
.sea-contours:before{opacity:.28;animation:ocean-current 22s ease-in-out infinite alternate}
.sea-contours:after{opacity:.11;background-size:245px 245px;animation:ocean-crosscurrent 31s ease-in-out infinite alternate}
.ocean:after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 30% 10%,#b7e4de0a,transparent 60%);box-shadow:inset 0 0 38px #031d2c40}
.ship:not(.destroyed):not(.editing){filter:drop-shadow(5px 8px 4px #00101cc4) drop-shadow(0 1px 1px #001422bb)}
@keyframes ocean-current{from{transform:translate(-14px,-12px)}to{transform:translate(23px,18px)}}
@keyframes ocean-crosscurrent{from{transform:translate(18px,-15px) rotate(-11deg) scale(1.12)}to{transform:translate(-22px,22px) rotate(-11deg) scale(1.12)}}
.ocean-paused .sea-contours:before,.ocean-paused .sea-contours:after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.sea-contours:before,.sea-contours:after{animation:none;will-change:auto}.sea-contours:after{transform:rotate(-11deg) scale(1.12)}}

.cell{border-right-color:#9ec6cc29;border-bottom-color:#9ec6cc29}
