@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-700-normal-CqTg7A15.woff2) format("woff2"),url(/assets/baloo-2-latin-700-normal-Ld3Zm3l2.woff) format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-ext-700-normal-Mlh7kdab.woff2) format("woff2"),url(/assets/baloo-2-latin-ext-700-normal-D6LeXASg.woff) format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2) format("woff2"),url(/assets/baloo-2-latin-800-normal-B8BXfZF7.woff) format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-ext-800-normal-C_Iwmf1s.woff2) format("woff2"),url(/assets/baloo-2-latin-ext-800-normal-D-iCxxqE.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2) format("woff2"),url(/assets/nunito-latin-ext-600-normal-BKUpuB78.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2) format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff")}@font-face{font-family:Kaushan Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kaushan-script-latin-400-normal-DtTcRpVb.woff2) format("woff2"),url(/assets/kaushan-script-latin-400-normal-DZZZR3n8.woff) format("woff")}@font-face{font-family:Kaushan Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kaushan-script-latin-ext-400-normal-CW-Pyyvv.woff2) format("woff2"),url(/assets/kaushan-script-latin-ext-400-normal-Dmz6mG63.woff) format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/chakra-petch-latin-600-normal-DVQm9bgb.woff2) format("woff2"),url(/assets/chakra-petch-latin-600-normal-DQKfcdKo.woff) format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/chakra-petch-latin-ext-600-normal-CdGvbdDU.woff2) format("woff2"),url(/assets/chakra-petch-latin-ext-600-normal-nL80L4xU.woff) format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/chakra-petch-latin-700-normal-CnDBPjkL.woff2) format("woff2"),url(/assets/chakra-petch-latin-700-normal-D1s_c2du.woff) format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/chakra-petch-latin-ext-700-normal-DAkvJhej.woff2) format("woff2"),url(/assets/chakra-petch-latin-ext-700-normal-BeviJPUl.woff) format("woff")}:root{--font-display: "Baloo 2", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-sails-coord: "Kaushan Script", cursive, serif;--font-tech-coord: "Chakra Petch", ui-monospace, monospace;--ink: #1b2236;--ink-soft: #3a4560;--ink-mute: #66708a;--cream: #fff8e7;--cream-2: #ffefc9;--paper: #fffdf6;--gold: #ffc93c;--gold-deep: #f59e0b;--orange: #ff8a1f;--green: #3ddc6a;--green-deep: #1fa34a;--blue: #2ea3e6;--blue-deep: #0c6bb0;--red: #ff5a5f;--red-deep: #d83a40;--cyan: #22d3ee;--outline: 3px solid var(--ink);--chunky-shadow: 0 5px 0 var(--ink);--panel-shadow: 0 6px 0 rgba(27, 34, 54, .85), 0 14px 30px rgba(6, 18, 40, .28);--radius-lg: 24px;--radius-md: 18px;--radius-sm: 12px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;min-height:100dvh;font-family:var(--font-body);color:var(--ink);background:#0b5d97;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;-webkit-tap-highlight-color:transparent}button,input{font-family:inherit}button{cursor:pointer;border:none;background:none;color:inherit;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.app-shell{min-height:100dvh;width:100%;position:relative;isolation:isolate}.app-shell>.screen-anim{position:relative;z-index:1}.screen-anim{animation:screenIn .42s cubic-bezier(.2,.9,.25,1.05)}@keyframes screenIn{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.btn-primary,.btn-secondary,.btn-play-giant,.btn-kreni-giant,.harbor-big-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--font-display);font-weight:800;line-height:1.1;border:var(--outline);border-radius:var(--radius-md);color:#fff;text-shadow:0 2px 0 rgba(27,34,54,.45);box-shadow:inset 0 -5px #00000029,inset 0 3px #ffffff73,var(--chunky-shadow);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;user-select:none}.btn-primary:hover:not(:disabled),.btn-secondary:hover:not(:disabled),.btn-play-giant:hover,.btn-kreni-giant:hover,.harbor-big-btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.06) saturate(1.05);box-shadow:inset 0 -5px #00000029,inset 0 3px #ffffff73,0 7px 0 var(--ink)}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-play-giant:active,.btn-kreni-giant:active,.harbor-big-btn:active:not(:disabled){transform:translateY(4px);box-shadow:inset 0 -3px #00000029,inset 0 3px #fff6,0 1px 0 var(--ink)}.btn-primary:disabled,.btn-secondary:disabled,.harbor-big-btn:disabled{filter:grayscale(.75) brightness(.95);opacity:.7}.btn-primary{font-size:1.1rem;padding:.7rem 1.35rem;background:linear-gradient(180deg,#6cf08f 0%,var(--green) 45%,var(--green-deep) 100%)}.btn-secondary{font-size:1.02rem;padding:.66rem 1.2rem;color:var(--ink);text-shadow:0 1px 0 rgba(255,255,255,.6);background:linear-gradient(180deg,#fff3c4 0%,var(--gold) 55%,#f0a92a 100%)}.full-w{width:100%}.btn-ghost-back{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-weight:800;font-size:1rem;color:var(--ink);background:var(--cream);border:var(--outline);padding:.38rem .95rem;border-radius:999px;box-shadow:0 4px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease}.btn-ghost-back:hover{transform:translateY(-1px)}.btn-ghost-back:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.btn-icon-round,.btn-circle-top{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(180deg,#ffffff 0%,var(--cream-2) 100%);color:var(--ink);border:var(--outline);box-shadow:inset 0 -3px #0000001a,0 4px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease}.btn-icon-round{width:42px;height:42px}.btn-circle-top{width:50px;height:50px}.btn-icon-round:hover,.btn-circle-top:hover{transform:translateY(-2px)}.btn-icon-round:active,.btn-circle-top:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.btn-circle-top.btn-help{background:linear-gradient(180deg,#fff3c4 0%,var(--gold) 100%)}.btn-icon-round.muted,.btn-circle-top.is-off{background:linear-gradient(180deg,#e8ecf3,#c3cad8);color:#6b7488}.btn-icon-round.muted:after,.btn-circle-top.is-off:after{content:"";position:absolute;width:62%;height:4px;background:var(--red);border:1.5px solid var(--ink);border-radius:3px;transform:rotate(-42deg)}.menu-screen{min-height:100dvh;display:flex;flex-direction:column;padding:1rem 1.3rem 1.6rem}.menu-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.profile-rank-badge{display:flex;align-items:center;gap:.7rem;background:linear-gradient(180deg,var(--paper) 0%,var(--cream-2) 100%);border:var(--outline);border-radius:22px;padding:.45rem 1rem .45rem .5rem;box-shadow:var(--panel-shadow)}.profile-rank-details{display:flex;flex-direction:column;gap:.15rem}.rank-title-line{display:flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-size:1.08rem;line-height:1.1}.rank-medal-icon{font-size:1.2rem}.rank-stars-bar-row{display:flex;align-items:center;gap:.5rem}.mini-rank-track{width:104px;height:12px;background:#24304a;border:2px solid var(--ink);border-radius:999px;overflow:hidden}.mini-rank-fill{height:100%;background:linear-gradient(180deg,#ffe680 0%,var(--gold) 50%,var(--orange) 100%);border-radius:999px;box-shadow:inset 0 2px #ffffff80;transition:width .6s cubic-bezier(.2,.9,.3,1.2)}.rank-star-total{font-family:var(--font-display);font-weight:800;font-size:.95rem;color:#b45309}.rank-next-hint{font-size:.74rem;font-weight:800;color:var(--ink-mute)}.menu-top-actions{display:flex;align-items:center;gap:.55rem}.portal-pill-link{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;font-family:var(--font-display);font-weight:800;font-size:1rem;color:var(--ink);background:linear-gradient(180deg,#fff,#d8f1ff);border:var(--outline);padding:.42rem .95rem;border-radius:999px;box-shadow:0 4px 0 var(--ink);transition:transform .12s ease}.portal-pill-link:hover{transform:translateY(-2px)}.menu-hero-center{flex:1;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;width:100%;max-width:720px;padding:.4rem 0 1rem}.game-logo{width:min(640px,92vw);animation:logoDrop .9s cubic-bezier(.2,1.3,.4,1) both}.game-logo-svg{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 10px 14px rgba(6,22,48,.35))}.gl-title-text{font-family:var(--font-display);font-weight:800;font-size:74px;letter-spacing:1px}.gl-sub-text{font-family:var(--font-display);font-weight:800;font-size:25px;letter-spacing:4px}.gl-compass-rose,.gl-wheel-spin{transform-box:fill-box;transform-origin:center}.gl-compass-rose{animation:slowSpin 60s linear infinite}.gl-wheel-spin{animation:wheelRock 4s ease-in-out infinite alternate}.gl-anchor{animation:anchorSwing 3.4s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 0%}@keyframes logoDrop{0%{opacity:0;transform:translateY(-40px) scale(.85) rotate(-2deg)}to{opacity:1;transform:none}}@keyframes wheelRock{0%{transform:rotate(-25deg)}to{transform:rotate(25deg)}}@keyframes anchorSwing{0%{transform:rotate(-6deg)}to{transform:rotate(6deg)}}@keyframes slowSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.menu-captain-lineup{display:flex;align-items:flex-end;justify-content:center;gap:clamp(.6rem,4vw,2.4rem);margin:-.2rem 0 .6rem}.lineup-slot{display:flex;flex-direction:column;align-items:center;gap:.35rem;animation:lineupBob 3.2s ease-in-out infinite alternate,lineupIn .7s cubic-bezier(.2,1.3,.4,1) both}.lineup-slot.slot-1{animation-delay:-1.2s,.15s;transform-origin:bottom center}.lineup-slot.slot-0{animation-delay:0s,.3s}.lineup-slot.slot-2{animation-delay:-2.1s,.45s}@keyframes lineupBob{0%{translate:0 0}to{translate:0 -7px}}@keyframes lineupIn{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}.lineup-era-tag{font-family:var(--font-display);font-weight:800;font-size:.82rem;color:var(--ink);background:var(--cream);border:2.5px solid var(--ink);border-radius:999px;padding:.05rem .7rem;box-shadow:0 3px 0 var(--ink);white-space:nowrap}.btn-play-giant{overflow:hidden;font-size:clamp(2rem,5vw,2.6rem);letter-spacing:.06em;padding:.6rem 3.6rem .7rem;border-width:4px;border-radius:28px;background:linear-gradient(180deg,#8ff7a8 0%,var(--green) 40%,var(--green-deep) 100%);box-shadow:inset 0 -7px #0000002e,inset 0 4px #ffffff80,0 7px 0 var(--ink),0 18px 30px #08281459;animation:playPulse 1.6s ease-in-out infinite}.btn-play-giant svg{filter:drop-shadow(0 2px 0 rgba(27,34,54,.45))}.btn-play-shine{position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);transform:skew(-20deg);animation:shineSweep 3.2s ease-in-out infinite;pointer-events:none}@keyframes shineSweep{0%,55%{left:-60%}85%,to{left:130%}}@keyframes playPulse{0%,to{scale:1}50%{scale:1.045}}.settings-screen{max-width:1160px;width:100%;margin:0 auto;padding:.85rem 1.1rem 1.3rem;display:flex;flex-direction:column;gap:.75rem;min-height:100dvh}.settings-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.settings-heading{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(1.4rem,3.2vw,2rem);color:#fff;text-align:center;-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink);letter-spacing:.01em}.settings-top-icons{display:flex;align-items:center;gap:.45rem}.settings-content-grid{display:flex;flex-direction:column;gap:.75rem;flex:1;justify-content:center}.settings-section{background:linear-gradient(180deg,#fffdf6f5,#ffefc9f5);border:var(--outline);border-radius:var(--radius-lg);padding:.75rem .85rem;box-shadow:var(--panel-shadow)}.section-label{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.4rem;font-family:var(--font-display);font-weight:800;font-size:1.05rem;margin:0 .2rem .55rem}.section-label small{font-family:var(--font-body);font-weight:800;color:#b45309;font-size:.82rem}.mode-selector-row{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.mode-card,.size-pick-card,.diff-pill,.autoplace-checkbox-card{position:relative;border:var(--outline);background:#fff;box-shadow:0 4px 0 var(--ink);transition:transform .14s ease,box-shadow .14s ease,background .14s ease;text-align:left}.mode-card:hover,.size-pick-card:hover,.diff-pill:hover,.autoplace-checkbox-card:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--ink)}.mode-card:active,.size-pick-card:active,.diff-pill:active,.autoplace-checkbox-card:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.mode-card{border-radius:var(--radius-md);padding:.65rem .95rem}.mode-card.selected,.size-pick-card.selected,.diff-pill.active{background:linear-gradient(180deg,#fff6cf,#ffd960)}.mode-card.selected:after,.size-pick-card.selected:after{content:"✓";position:absolute;top:-10px;right:-8px;width:26px;height:26px;display:grid;place-items:center;font-weight:900;font-size:.9rem;color:#fff;background:var(--green);border:2.5px solid var(--ink);border-radius:50%;box-shadow:0 2px 0 var(--ink);animation:popIn .3s cubic-bezier(.2,1.4,.4,1)}.mode-card-main{display:flex;align-items:center;gap:.75rem}.mode-card-main svg{flex-shrink:0;width:44px;height:44px;padding:8px;border-radius:14px;border:2.5px solid var(--ink);background:linear-gradient(180deg,#8fd8ff 0%,var(--blue) 100%);color:#fff}.mode-card.selected .mode-card-main svg{background:linear-gradient(180deg,#ffd27a 0%,var(--orange) 100%)}.mode-card-main strong{display:block;font-family:var(--font-display);font-size:1.15rem;line-height:1.1}.mode-card-main span{font-size:.82rem;font-weight:700;color:var(--ink-mute)}.ai-difficulty-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-top:.65rem}.diff-pill{display:flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap;border-radius:14px;padding:.4rem .6rem;text-align:center}.diff-stars{display:inline-flex;gap:1px}.diff-pill strong{font-family:var(--font-display);font-size:.95rem}.diff-pill small{font-size:.74rem;font-weight:800;color:var(--ink-mute)}.era-cards-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.era-pick-card{position:relative;border-radius:22px;padding:.7rem .8rem;cursor:pointer;border:var(--outline);display:flex;flex-direction:column;justify-content:space-between;gap:.5rem;overflow:hidden;box-shadow:0 5px 0 var(--ink);transition:transform .18s cubic-bezier(.2,1.2,.4,1),box-shadow .18s ease;user-select:none;isolation:isolate}.era-pick-card:before{content:"";position:absolute;inset:auto 0 0;height:42%;z-index:-1;border-top:2px solid rgba(255,255,255,.5)}.era-card-sails{background:linear-gradient(180deg,#ffd59a,#ffe9c4 55%,#fff4dc)}.era-card-sails:before{background:linear-gradient(180deg,#4cc0ec,#1a86c2)}.era-card-steel{background:linear-gradient(180deg,#a9b8cc,#d4dce7 55%,#e9eef4)}.era-card-steel:before{background:linear-gradient(180deg,#3f6f96,#24486b)}.era-card-modern{background:linear-gradient(180deg,#0b1838,#12305a 60%,#16406e);color:#e6fbff}.era-card-modern:before{background:repeating-linear-gradient(90deg,rgba(34,211,238,.25) 0 1px,transparent 1px 22px),linear-gradient(180deg,#062b45,#031426)}.era-pick-card:hover{transform:translateY(-3px) rotate(-.4deg)}.era-pick-card.selected{transform:translateY(-6px) scale(1.02);box-shadow:0 8px 0 var(--ink),0 0 0 5px var(--gold),0 18px 30px #06163059}.era-card-modern.selected{box-shadow:0 8px 0 var(--ink),0 0 0 5px var(--cyan),0 0 28px #22d3ee8c}.era-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem}.era-card-header h3{margin:0;font-family:var(--font-display);font-weight:800;font-size:1.25rem;line-height:1.05}.era-century-sub{font-size:.72rem;font-weight:800;opacity:.75}.swap-captain-btn{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-display);font-weight:800;font-size:.82rem;padding:.22rem .6rem;border-radius:999px;background:linear-gradient(180deg,#fff3c4 0%,var(--gold) 100%);color:var(--ink);border:2.5px solid var(--ink);box-shadow:0 3px 0 var(--ink);flex-shrink:0;transition:transform .12s ease}.swap-captain-btn:hover{transform:translateY(-1px) rotate(-4deg)}.swap-captain-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.era-visual-showcase{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.1rem .1rem 0}.era-ship-sample{flex:1;height:52px;max-width:150px;animation:shipFloat 2.8s ease-in-out infinite alternate}@keyframes shipFloat{0%{transform:translateY(0) rotate(-1.5deg)}to{transform:translateY(-4px) rotate(1.5deg)}}.era-captain-footer{display:flex;flex-direction:column;gap:.25rem}.era-captain-name{font-family:var(--font-display);font-weight:800;font-size:1rem;line-height:1.1;color:#fff;text-shadow:0 2px 0 var(--ink),0 0 6px rgba(27,34,54,.5)}.era-power-pill{font-size:.76rem;font-weight:800;padding:.28rem .55rem;border-radius:10px;background:#fffdf6f2;color:var(--ink);border:2px solid var(--ink)}.era-card-modern .era-power-pill{background:#031426d9;color:#a5f3fc;border-color:var(--cyan)}.era-power-pill em{font-style:normal;color:#b45309}.era-card-modern .era-power-pill em{color:#67e8f9}.board-size-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.size-pick-card{display:flex;align-items:center;gap:.65rem;border-radius:var(--radius-md);padding:.55rem .8rem}.size-emoji{font-size:1.7rem;line-height:1;width:46px;height:46px;display:grid;place-items:center;border-radius:14px;border:2.5px solid var(--ink);background:linear-gradient(180deg,#bfeaff,#6cc6f2);flex-shrink:0}.size-text-col{display:flex;flex-direction:column;gap:.1rem;min-width:0}.size-title-line{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.size-title-line strong{font-family:var(--font-display);font-size:1.05rem}.size-speed-tag{font-size:.7rem;font-weight:900;padding:.08rem .45rem;border-radius:999px;background:#d8f1ff;color:var(--blue-deep);border:1.5px solid var(--blue-deep)}.size-pick-card.selected .size-speed-tag{background:#fff;color:#b45309;border-color:#b45309}.size-text-col small{font-size:.76rem;font-weight:800;color:var(--ink-mute)}.settings-launch-bar{display:grid;grid-template-columns:1.15fr .85fr;gap:.85rem;align-items:stretch}.autoplace-checkbox-card{display:flex;align-items:center;gap:.8rem;border-radius:20px;padding:.65rem 1rem;background:linear-gradient(180deg,var(--paper) 0%,var(--cream-2) 100%)}.autoplace-checkbox-card.checked{background:linear-gradient(180deg,#ecfff1,#b9f5c9)}.checkbox-square{width:36px;height:36px;border-radius:11px;border:var(--outline);background:#fff;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:inset 0 3px #1b22361f}.autoplace-checkbox-card.checked .checkbox-square{background:linear-gradient(180deg,#6cf08f 0%,var(--green-deep) 100%);box-shadow:inset 0 2px #ffffff80}.autoplace-checkbox-card.checked .checkbox-square svg{animation:popIn .3s cubic-bezier(.2,1.4,.4,1);filter:drop-shadow(0 1.5px 0 rgba(27,34,54,.6))}.autoplace-label-text strong{display:block;font-family:var(--font-display);font-size:1.08rem}.autoplace-label-text small{font-size:.8rem;font-weight:800;color:var(--ink-mute)}.btn-kreni-giant{overflow:hidden;font-size:clamp(1.45rem,3vw,1.9rem);letter-spacing:.03em;padding:.75rem 1.4rem;border-radius:22px;background:linear-gradient(180deg,#ffd27a 0%,var(--orange) 50%,#e8590c 100%);animation:playPulse 1.8s ease-in-out infinite}.btn-kreni-giant:after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skew(-20deg);animation:shineSweep 3.6s ease-in-out infinite}.kreni-fast-badge{font-size:1rem;background:#1b223640;border:2px solid rgba(27,34,54,.5);padding:.05rem .5rem;border-radius:999px;text-shadow:none}@keyframes popIn{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.tactical-board-frame{--frame-pad: 10px;--coord: 26px;position:relative;display:grid;grid-template-columns:var(--coord) 1fr;grid-template-rows:var(--coord) 1fr;padding:var(--frame-pad);padding-top:calc(var(--frame-pad) - 2px);padding-left:calc(var(--frame-pad) - 2px);border-radius:22px;width:min(100%,470px,max(300px,calc(100dvh - 300px)));aspect-ratio:1 / 1;user-select:none;border:var(--outline);box-shadow:0 7px 0 var(--ink),0 18px 34px #04102461;transition:box-shadow .25s ease}.own-column .tactical-board-frame{width:min(100%,420px,max(280px,calc(100dvh - 340px)))}.harbor-frame{width:min(100%,470px,max(300px,calc(100dvh - 330px)))}.tactical-board-frame.era-sails{background:repeating-linear-gradient(90deg,#0000 0 46px,#461e0840 46px 48px),linear-gradient(180deg,#c27a3f,#9a5526,#7a3f17)}.tactical-board-frame.era-sails .coord-top-letters,.tactical-board-frame.era-sails .coord-left-numbers{font-family:var(--font-sails-coord);color:#fff3d0;text-shadow:0 2px 0 rgba(60,25,5,.7)}.tactical-board-frame.era-sails .sea-grid{background:radial-gradient(ellipse at 30% 20%,#5fd0f5,#2aa6d9 40%,#127fb8 75%,#0b5f93);box-shadow:0 0 0 3px #e8c27a,0 0 0 6px var(--ink),inset 0 0 22px #041e3c59}.tactical-board-frame.era-steel{background:radial-gradient(circle at 12px 12px,#dfe6ef 2.5px,#3c475a 3px,transparent 3.5px) 0 0 / 100% 100% no-repeat,repeating-linear-gradient(0deg,#ffffff0d 0 2px,#0000000d 2px 4px),linear-gradient(160deg,#9aa8bb,#6d7b90 45%,#4c586b)}.tactical-board-frame.era-steel .coord-top-letters,.tactical-board-frame.era-steel .coord-left-numbers{font-family:var(--font-tech-coord);font-weight:700;color:#f4f7fb;text-shadow:0 2px 0 rgba(20,28,40,.7)}.tactical-board-frame.era-steel .sea-grid{background:radial-gradient(ellipse at 30% 20%,#3c7fae,#22567f,#143754);box-shadow:0 0 0 3px #c6d0dc,0 0 0 6px var(--ink),inset 0 0 26px #020c1a80}.tactical-board-frame.era-modern{background:linear-gradient(160deg,#10284a,#0a1a33 55%,#06111f);border-color:#0b1220;box-shadow:0 7px #0b1220,0 0 0 2px #22d3ee8c,0 0 30px #22d3ee47,0 18px 34px #00000073}.tactical-board-frame.era-modern .coord-top-letters,.tactical-board-frame.era-modern .coord-left-numbers{font-family:var(--font-tech-coord);font-weight:700;color:#67e8f9;text-shadow:0 0 6px rgba(34,211,238,.7)}.tactical-board-frame.era-modern .sea-grid{background:linear-gradient(rgba(34,211,238,.07) 1px,transparent 1px) 0 0 / 100% 12.5%,radial-gradient(ellipse at 50% 40%,#0a3a5c,#062844 55%,#031627);box-shadow:0 0 0 2px #22d3ee,0 0 14px #22d3ee73,inset 0 0 26px #0000008c}.board-frame-ornaments{position:absolute;inset:0;pointer-events:none;z-index:3}.orn{position:absolute;width:14px;height:14px;border-radius:50%;border:2.5px solid var(--ink)}.orn.tl{top:5px;left:5px}.orn.tr{top:5px;right:5px}.orn.bl{bottom:5px;left:5px}.orn.br{bottom:5px;right:5px}.era-sails .orn{background:radial-gradient(circle at 35% 35%,#fff2b0,#e7b440 55%,#a86d14)}.era-steel .orn{background:radial-gradient(circle at 35% 35%,#fff,#b9c4d2 55%,#6b778a)}.era-modern .orn{width:18px;height:18px;border-radius:0;border:none;background:transparent}.era-modern .orn.tl{border-top:3px solid var(--cyan);border-left:3px solid var(--cyan)}.era-modern .orn.tr{border-top:3px solid var(--cyan);border-right:3px solid var(--cyan)}.era-modern .orn.bl{border-bottom:3px solid var(--cyan);border-left:3px solid var(--cyan)}.era-modern .orn.br{border-bottom:3px solid var(--cyan);border-right:3px solid var(--cyan)}.tactical-board-frame.can-fire{box-shadow:0 7px 0 var(--ink),0 0 0 5px #3ddc6ad9,0 0 26px #3ddc6a8c,0 18px 34px #04102461}.tactical-board-frame.is-targeting{box-shadow:0 7px 0 var(--ink),0 0 0 5px #ffc93cf2,0 0 30px #ffc93c99,0 18px 34px #04102461}.tactical-board-frame.board-shake{animation:boardShake .48s cubic-bezier(.36,.07,.19,.97)}@keyframes boardShake{0%,to{transform:translate(0)}15%{transform:translate(-6px,3px) rotate(-.6deg)}30%{transform:translate(6px,-3px) rotate(.6deg)}45%{transform:translate(-4px,2px)}60%{transform:translate(4px,-1px)}80%{transform:translate(-2px,1px)}}.coord-corner{display:flex;align-items:center;justify-content:center;font-size:.95rem}.coord-top-letters,.coord-left-numbers{display:grid;align-items:center;justify-items:center;font-size:.9rem}.tactical-board-frame.size-12{--coord: 22px}.tactical-board-frame.size-12 .coord-top-letters,.tactical-board-frame.size-12 .coord-left-numbers{font-size:.7rem}.sea-grid{position:relative;display:grid;width:100%;height:100%;border-radius:10px;overflow:hidden;isolation:isolate}.water-caustics{position:absolute;inset:-50%;z-index:0;pointer-events:none;background-image:radial-gradient(ellipse 18px 8px at 30% 40%,rgba(255,255,255,.16) 40%,transparent 70%),radial-gradient(ellipse 14px 6px at 75% 70%,rgba(255,255,255,.12) 40%,transparent 70%),radial-gradient(ellipse 22px 9px at 60% 20%,rgba(255,255,255,.1) 40%,transparent 70%);background-size:90px 70px,120px 90px,150px 110px;animation:causticDrift 14s linear infinite;will-change:transform}.era-modern .water-caustics{background-image:radial-gradient(circle 1.5px at 50% 50%,rgba(103,232,249,.35) 60%,transparent 70%);background-size:28px 28px;animation-duration:30s}@keyframes causticDrift{0%{transform:translate(0)}to{transform:translate(90px,70px)}}.sea-cell{position:relative;z-index:1;border:0;box-shadow:inset 0 0 0 .5px #ffffff38;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;transition:background-color .15s ease}.era-sails .sea-cell{box-shadow:inset 0 0 0 .5px #fff6dc4d}.era-modern .sea-cell{box-shadow:inset 0 0 0 .5px #22d3ee38}.sea-cell.targetable:not(:disabled):after{content:"";position:absolute;inset:12%;border-radius:50%;border:2.5px solid #fff;background:radial-gradient(circle,#fff 0 9%,transparent 11%),linear-gradient(#fff,#fff) center / 2.5px 100% no-repeat,linear-gradient(#fff,#fff) center / 100% 2.5px no-repeat;opacity:0;transform:scale(1.4) rotate(-45deg);transition:opacity .12s ease,transform .18s cubic-bezier(.2,1.3,.4,1);pointer-events:none;filter:drop-shadow(0 1px 0 rgba(27,34,54,.6))}@media(hover:hover){.sea-cell.targetable:not(:disabled):hover{background-color:#ffdc6e59}.sea-cell.targetable:not(:disabled):hover:after{opacity:1;transform:scale(1) rotate(0)}.era-modern .sea-cell.targetable:not(:disabled):hover{background-color:#22d3ee38}.era-modern .sea-cell.targetable:not(:disabled):after{border-color:#67e8f9}}.sea-cell.targetable:not(:disabled):active{background-color:#ffdc6e8c}.sea-cell.targetable:disabled{cursor:default}.tactical-board-frame.is-locked .sea-grid{filter:saturate(.85) brightness(.96)}.sea-cell.mark-miss{background-color:#041e3c24}.sea-cell.mark-hit{background:radial-gradient(circle,rgba(255,170,60,.55) 0%,rgba(255,90,50,.25) 70%,transparent 100%)}.sea-cell.mark-sunk{background-color:#3c0a0e47}.sea-cell.mark-autoCleared{background-color:#dcebfa1f}.sea-cell.cleared-reveal .mk-cleared{animation:clearedReveal .5s ease both;animation-delay:.35s}@keyframes clearedReveal{0%{opacity:0;transform:scale(2.2)}to{opacity:1;transform:scale(1)}}.sea-cell.mark-barrel{background:radial-gradient(circle,rgba(255,220,90,.55) 0%,transparent 75%)}.sea-cell.scout-ship-glow{background-color:#ffd65052;box-shadow:inset 0 0 0 2.5px #ffe066;animation:scoutPulse 1.4s ease-in-out infinite alternate}@keyframes scoutPulse{0%{background-color:#ffd65038}to{background-color:#ffd6506b}}.sea-cell.power-zone-highlight{background-color:#ffc93c8c!important;box-shadow:inset 0 0 0 2.5px #fff3b0}.era-modern .sea-cell.power-zone-highlight{background-color:#22d3ee66!important;box-shadow:inset 0 0 0 2.5px #a5f3fc}.sea-cell.recent-impact-pop .mk{animation:markSlam .42s cubic-bezier(.2,1.5,.4,1) both}@keyframes markSlam{0%{transform:scale(2);opacity:0}to{transform:scale(1);opacity:1}}.mk{position:relative;z-index:6;width:76%;height:76%;overflow:visible;pointer-events:none}.size-12 .mk{width:86%;height:86%}.mk-cleared{width:60%;height:60%}.mk-flame{transform-box:fill-box;transform-origin:50% 100%;animation:flameFlicker .55s ease-in-out infinite alternate}.mk-hit.is-sunk .mk-flame{animation-duration:.8s;opacity:.92}.mk-hit.is-sunk{width:62%;height:62%}@keyframes flameFlicker{0%{transform:scale(1) skew(0)}50%{transform:scale(.94,1.06) skew(-3deg)}to{transform:scale(1.04,.95) skew(3deg)}}.mk-ember{animation:emberRise 1.6s ease-out infinite}.mk-ember.e2{animation-delay:-.8s}@keyframes emberRise{0%{transform:translateY(6px);opacity:0}40%{opacity:1}to{transform:translateY(-8px);opacity:0}}.mk-miss{opacity:.95}.mk-barrel{animation:barrelBob 2.2s ease-in-out infinite alternate}.mk-barrel.is-hidden{opacity:.38;width:58%;height:58%}@keyframes barrelBob{0%{transform:translateY(1px) rotate(-4deg)}to{transform:translateY(-2px) rotate(4deg)}}.mk-twinkle{animation:sbTwinkleMk 1s ease-in-out infinite alternate}@keyframes sbTwinkleMk{0%{opacity:.3}to{opacity:1}}.mk-feather{animation:barrelBob 1.6s ease-in-out infinite alternate}.mk-needle{transform-box:view-box;transform-origin:20px 20px}.sunk-ship-silhouette,.own-ship-overlay,.placed-ship-overlay{position:absolute;z-index:4;padding:1px;pointer-events:none}.sunk-ship-silhouette{animation:sunkReveal .7s cubic-bezier(.2,1.2,.4,1) both}@keyframes sunkReveal{0%{opacity:0;transform:scale(1.25)}60%{opacity:1}to{opacity:1;transform:scale(1)}}.own-ship-overlay.is-sunk{opacity:.95}.own-ship-overlay.shield-selectable{pointer-events:auto;cursor:pointer;z-index:9;border-radius:10px;box-shadow:0 0 0 3px #4ade80,0 0 18px #4ade80cc;animation:shieldPick .9s ease-in-out infinite alternate}@keyframes shieldPick{0%{transform:scale(1)}to{transform:scale(1.05)}}.board-power-fx{position:absolute;inset:0;z-index:15;pointer-events:none;overflow:hidden}.biplane-shadow,.parrot-flyover{position:absolute;top:38%;left:0;font-size:clamp(2.2rem,7vw,3.4rem);filter:drop-shadow(0 16px 4px rgba(0,0,0,.35));animation:flyover 1.2s cubic-bezier(.45,0,.55,1) both}@keyframes flyover{0%{transform:translate(-80px) scale(.8) rotate(-6deg)}to{transform:translate(560px) scale(1.15) rotate(6deg)}}.laser-beam-overlay{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 40%,rgba(165,243,252,.85) 48% 52%,transparent 60% 100%),linear-gradient(0deg,transparent 0 40%,rgba(165,243,252,.85) 48% 52%,transparent 60% 100%);animation:laserFlash .9s ease-out both}.volley-flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(255,230,150,.6),transparent 60%);animation:laserFlash .7s ease-out both}@keyframes laserFlash{0%{opacity:0}15%{opacity:1}to{opacity:0}}.modern-radar-sweep{position:absolute;inset:calc(var(--coord) + 8px) 10px 10px calc(var(--coord) + 8px);pointer-events:none;z-index:5;border-radius:10px;overflow:hidden}.modern-radar-sweep:before{content:"";position:absolute;left:0;right:0;height:30%;top:-30%;background:linear-gradient(180deg,#4ade8000,#4ade802e 85%,#86efac99);animation:radarSweepY 4.2s linear infinite}@keyframes radarSweepY{0%{transform:translateY(0)}to{transform:translateY(440%)}}.impact-fx-layer{position:absolute;inset:0;z-index:20;pointer-events:none}.impact-fx{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.impact-fx>span{position:absolute;animation-fill-mode:both}.fx-flash{inset:-40%;border-radius:50%;background:radial-gradient(circle,#fffbe0,#ffd34d 30%,#ff8a1f 55%,#ff5a2800 72%);animation:fxFlash .5s ease-out}.fx-sunk .fx-flash{inset:-90%;animation-duration:.7s}.fx-era-modern .fx-flash{background:radial-gradient(circle,#fff,#a5f3fc 30%,#f472b6 55%,#f472b600 72%)}@keyframes fxFlash{0%{transform:scale(.2);opacity:1}60%{opacity:.9}to{transform:scale(1.2);opacity:0}}.fx-ring{inset:0;border-radius:50%;border:4px solid #fff3b0;animation:fxRing .55s ease-out}.fx-sunk .fx-ring{border-width:5px;animation-duration:.8s}@keyframes fxRing{0%{transform:scale(.3);opacity:1}to{transform:scale(2.4);opacity:0}}.fx-spark{left:45%;top:45%;width:10%;height:10%;border-radius:50%;background:#ffe066;box-shadow:0 0 0 1.5px #ff8a1f;animation:fxSpark .6s cubic-bezier(.1,.8,.3,1)}.fx-sunk .fx-spark{width:13%;height:13%;animation-name:fxSparkBig;animation-duration:.85s}@keyframes fxSpark{0%{transform:rotate(var(--a)) translateY(0) scale(1);opacity:1}to{transform:rotate(var(--a)) translateY(-520%) scale(.2);opacity:0}}@keyframes fxSparkBig{0%{transform:rotate(var(--a)) translateY(0) scale(1.2);opacity:1}to{transform:rotate(var(--a)) translateY(-720%) scale(.2);opacity:0}}.fx-smoke{left:20%;top:10%;width:60%;height:60%;border-radius:50%;background:radial-gradient(circle,#5a606ebf,#5a606e00 70%);animation:fxSmoke 1.2s ease-out}@keyframes fxSmoke{0%{transform:translateY(0) scale(.5);opacity:0}30%{opacity:.85}to{transform:translateY(-120%) scale(1.8);opacity:0}}.fx-splash-ring{left:-10%;top:20%;width:120%;height:60%;border-radius:50%;border:3px solid rgba(255,255,255,.95);animation:fxSplashRing .7s ease-out}.fx-splash-ring.r2{border-width:2px}@keyframes fxSplashRing{0%{transform:scale(.2);opacity:1}to{transform:scale(1.7);opacity:0}}.fx-drop{left:44%;top:40%;width:12%;height:16%;border-radius:50%/60% 60% 40% 40%;background:#dff6ff;box-shadow:0 0 0 1.5px #1b223699;animation:fxDrop .65s cubic-bezier(.2,.7,.4,1)}@keyframes fxDrop{0%{transform:rotate(var(--a)) translateY(0) scale(.6);opacity:1}55%{transform:rotate(var(--a)) translateY(-360%) scale(1);opacity:1}to{transform:rotate(var(--a)) translateY(-260%) scale(.5);opacity:0}}.fx-era-modern .fx-drop{background:#67e8f9;border-radius:2px}.fx-glow{inset:-30%;border-radius:50%;background:radial-gradient(circle,rgba(255,245,180,.95) 0%,rgba(255,201,60,.4) 45%,transparent 70%);animation:fxFlash .8s ease-out}.fx-scout .fx-glow,.fx-compass .fx-glow{background:radial-gradient(circle,rgba(220,255,230,.95) 0%,rgba(74,222,128,.35) 45%,transparent 70%)}.fx-star{left:42%;top:42%;width:16%;height:16%;background:#ffe066;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);animation:fxSpark .8s cubic-bezier(.1,.8,.3,1)}.fx-shield-ripple{inset:-20%;border-radius:30%;border:4px solid #86efac;background:#4ade8040;animation:fxRing .7s ease-out}.game-stage{min-height:100dvh}.harbor-screen{max-width:1020px;width:100%;margin:0 auto;padding:.75rem 1rem 1.2rem;display:flex;flex-direction:column;align-items:center;gap:.7rem;min-height:100dvh}.harbor-top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.harbor-captain-banner{display:flex;align-items:center;gap:.7rem;background:linear-gradient(180deg,var(--paper) 0%,var(--cream-2) 100%);border:var(--outline);border-radius:var(--radius-md);padding:.4rem .95rem .4rem .45rem;box-shadow:var(--panel-shadow);flex:1;min-width:260px}.harbor-captain-banner h2{margin:0;font-family:var(--font-display);font-weight:800;font-size:1.2rem;line-height:1.1}.harbor-captain-banner p{margin:.1rem 0 0;font-size:.8rem;font-weight:800;color:var(--ink-mute)}.online-opp-status{font-family:var(--font-display);font-weight:800;font-size:.92rem;padding:.4rem .9rem;border-radius:999px;background:var(--cream);color:#b45309;border:var(--outline);box-shadow:0 4px 0 var(--ink)}.online-opp-status.ready{background:linear-gradient(180deg,#8ff7a8 0%,var(--green) 100%);color:var(--ink)}.harbor-dock-panel{width:100%;background:repeating-linear-gradient(90deg,#0000 0 58px,#461e0838 58px 60px),linear-gradient(180deg,#c98447,#a5612f);border:var(--outline);border-radius:var(--radius-lg);padding:.6rem .85rem .7rem;box-shadow:var(--panel-shadow)}.dock-header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.dock-label{font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:#fff;text-shadow:0 2px 0 var(--ink)}.dock-orient-btn{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-weight:800;font-size:.86rem;padding:.25rem .75rem;border-radius:999px;background:linear-gradient(180deg,#fff3c4 0%,var(--gold) 100%);color:var(--ink);border:2.5px solid var(--ink);box-shadow:0 3px 0 var(--ink)}.dock-ships-list{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.dock-ship-card{position:relative;display:flex;align-items:center;gap:.55rem;background:linear-gradient(180deg,#8fdcff,#3aa9e0);border:var(--outline);border-radius:14px;padding:.35rem .75rem .35rem .55rem;cursor:grab;user-select:none;touch-action:none;box-shadow:0 4px 0 var(--ink);transition:transform .14s ease,box-shadow .14s ease}.dock-ship-card:hover:not(.depleted){transform:translateY(-3px);box-shadow:0 7px 0 var(--ink)}.dock-ship-card.selected{background:linear-gradient(180deg,#fff6cf,#ffd960);box-shadow:0 4px 0 var(--ink),0 0 0 4px #ffffffd9}.dock-ship-card.depleted{opacity:.45;filter:grayscale(.8);cursor:default}.dock-ship-art-wrap{height:34px;flex-shrink:0}.dock-ship-meta{display:flex;flex-direction:column}.dock-ship-name{font-family:var(--font-display);font-weight:800;font-size:.88rem;line-height:1.05}.dock-ship-hp{font-size:.72rem;font-weight:800;color:var(--ink-soft)}.dock-count-badge{position:absolute;top:-10px;right:-8px;min-width:28px;height:26px;display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:.9rem;background:var(--red);color:#fff;border:2.5px solid var(--ink);border-radius:999px;padding:0 .35rem;box-shadow:0 2px 0 var(--ink)}.dock-ship-card.depleted .dock-count-badge{background:#94a3b8}.harbor-board-stage{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%}.harbor-grid{touch-action:none}.sea-cell.safety-buffer-cell{background:repeating-linear-gradient(-45deg,#bac8de80 0 5px,#bac8de33 5px 10px);box-shadow:inset 0 0 0 1px #e2ecfa8c}.sea-cell.preview-valid{background:#3ddc6a99!important;box-shadow:inset 0 0 0 2.5px #d6ffe0}.sea-cell.preview-invalid{background:#ff5a5f9e!important;box-shadow:inset 0 0 0 2.5px #ffd4d6}.placed-ship-overlay{pointer-events:auto;z-index:6;cursor:grab;touch-action:none;border-radius:8px;transition:transform .14s ease;animation:shipDrop .35s cubic-bezier(.2,1.4,.4,1)}.placed-ship-overlay:hover{transform:scale(1.04)}@keyframes shipDrop{0%{transform:scale(1.25) translateY(-8px);opacity:.4}to{transform:none;opacity:1}}.placed-ship-overlay.is-selected{box-shadow:0 0 0 3px #fff,0 0 0 5.5px var(--gold)}.placed-ship-overlay.shake-error{animation:shipErrorShake .38s ease-in-out}@keyframes shipErrorShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.floating-rotate-btn{font-family:var(--font-display);font-weight:800;font-size:.98rem;padding:.4rem 1.1rem;border-radius:999px;background:linear-gradient(180deg,#fff3c4 0%,var(--gold) 100%);color:var(--ink);border:var(--outline);box-shadow:0 4px 0 var(--ink);animation:popIn .25s cubic-bezier(.2,1.4,.4,1)}.floating-rotate-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.harbor-action-buttons{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;width:100%}.harbor-big-btn{font-size:1.1rem;padding:.65rem 1.3rem}.harbor-big-btn svg{filter:drop-shadow(0 2px 0 rgba(27,34,54,.4))}.btn-dice{color:var(--ink);text-shadow:0 1px 0 rgba(255,255,255,.55);background:linear-gradient(180deg,#fff3c4 0%,var(--gold) 55%,#f0a92a 100%)}.btn-clear{background:linear-gradient(180deg,#ff9a9d 0%,var(--red) 55%,var(--red-deep) 100%)}.btn-battle-ready{background:linear-gradient(180deg,#8ff7a8 0%,var(--green) 45%,var(--green-deep) 100%);padding-inline:1.7rem}.btn-battle-ready.pulse-ready{animation:playPulse 1.4s ease-in-out infinite}.drag-ghost-ship{position:fixed;pointer-events:none;transform:translate(-50%,-50%) rotate(-3deg) scale(1.08);z-index:999;filter:drop-shadow(0 14px 8px rgba(4,16,36,.4))}.battle-screen{max-width:1200px;width:100%;margin:0 auto;padding:.6rem 1rem 1.2rem;display:flex;flex-direction:column;gap:.6rem;min-height:100dvh}.battle-topbar{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.battle-turn-pill{font-family:var(--font-display);font-weight:800;font-size:clamp(.92rem,2.2vw,1.12rem);padding:.35rem 1.15rem;border-radius:999px;background:var(--cream);border:var(--outline);box-shadow:0 4px 0 var(--ink);text-align:center;transition:background .25s ease}.battle-turn-pill.is-mine{background:linear-gradient(180deg,#d9ffe3,#9ff0b6)}.turn-mine{color:#136b32}.turn-thinking,.turn-theirs{color:#a1530a;display:inline-flex;align-items:center;gap:.45rem}.turn-dots{display:inline-flex;gap:3px}.turn-dots i{width:7px;height:7px;border-radius:50%;background:#a1530a;animation:dotBounce .9s ease-in-out infinite}.turn-dots i:nth-child(2){animation-delay:.15s}.turn-dots i:nth-child(3){animation-delay:.3s}@keyframes dotBounce{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-5px);opacity:1}}.battle-audio-controls{display:flex;align-items:center;gap:.45rem}.room-pill-mini{font-family:var(--font-tech-coord);font-weight:700;font-size:.85rem;padding:.28rem .7rem;border-radius:999px;background:var(--ink);color:#ffe066;border:2.5px solid #ffe066}.captains-duel-strip{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.6rem;position:relative;z-index:30}.captain-hud-card{display:flex;align-items:center;gap:.7rem;background:linear-gradient(180deg,var(--paper) 0%,var(--cream-2) 100%);border:var(--outline);border-radius:22px;padding:.45rem .8rem .45rem .5rem;box-shadow:var(--panel-shadow);transition:box-shadow .25s ease,transform .25s ease}.captain-hud-card.is-opp{justify-content:flex-end;padding:.45rem .5rem .45rem .8rem}.captain-hud-card.active-turn{transform:translateY(-2px);box-shadow:0 6px #1b2236d9,0 0 0 4px var(--gold),0 14px 30px #0612284d}.vs-emblem{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#ffe680 0%,var(--gold) 45%,var(--orange) 100%);border:var(--outline);box-shadow:0 4px 0 var(--ink);font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:#fff;text-shadow:0 2px 0 var(--ink);animation:vsPulse 2.4s ease-in-out infinite}@keyframes vsPulse{0%,to{transform:rotate(-6deg) scale(1)}50%{transform:rotate(6deg) scale(1.06)}}.captain-hud-info{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:0}.captain-hud-info.align-right{align-items:flex-end;text-align:right}.captain-hud-name-row{display:flex;align-items:center;gap:.45rem;min-width:0;max-width:100%}.captain-hud-name-row.right{justify-content:flex-end}.captain-hud-name-row strong{font-family:var(--font-display);font-weight:800;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ships-left-pill{flex-shrink:0;font-family:var(--font-display);font-size:.82rem;font-weight:800;padding:0 .5rem;border-radius:999px;background:linear-gradient(180deg,#bfeaff,#6cc6f2);border:2px solid var(--ink)}.opp-power-sub{font-size:.76rem;font-weight:800;color:var(--ink-mute)}.energy-battery{display:inline-flex;align-items:center;gap:.35rem;padding:3px 8px 3px 5px;border-radius:999px;background:#24304a;border:2.5px solid var(--ink);box-shadow:inset 0 2px #00000059;width:fit-content}.energy-bolt{color:#ffe066;fill:#ffe066;flex-shrink:0}.energy-battery.opp .energy-bolt{color:#7dd3fc;fill:#7dd3fc}.energy-cells{display:flex;gap:3px}.energy-cell{width:13px;height:13px;border-radius:4px;background:#3b4866;box-shadow:inset 0 -2px #00000040;transition:background .3s ease,transform .3s cubic-bezier(.2,1.5,.4,1)}.energy-cell.filled{background:linear-gradient(180deg,#fff2a0 0%,var(--gold) 50%,var(--orange) 100%);box-shadow:inset 0 2px #ffffff8c,0 0 6px #ffc93c99;animation:cellCharge .4s cubic-bezier(.2,1.5,.4,1)}.energy-battery.opp .energy-cell.filled{background:linear-gradient(180deg,#d4f3ff 0%,#4cc0ec 50%,var(--blue-deep) 100%);box-shadow:inset 0 2px #ffffff8c,0 0 6px #2ea3e699}@keyframes cellCharge{0%{transform:scale(.4)}to{transform:scale(1)}}.energy-battery.me.is-full .energy-cell.filled{animation:cellGlow .8s ease-in-out infinite alternate}@keyframes cellGlow{0%{filter:brightness(1)}to{filter:brightness(1.3)}}.size-12 .energy-cell,.env-ocean .energy-cell,.env-more .energy-cell{width:11px}.energy-num{font-family:var(--font-display);font-size:.78rem;font-weight:800;color:#e2e8f0}.power-activate-btn{position:relative;display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-display);font-weight:800;font-size:.9rem;line-height:1.05;padding:.3rem .75rem .3rem .35rem;border-radius:14px;background:linear-gradient(180deg,#eef1f6,#cbd3df);color:#5b6478;border:2.5px solid var(--ink);box-shadow:0 3px 0 var(--ink);width:fit-content;max-width:100%;text-align:left;transition:transform .12s ease,box-shadow .12s ease}.power-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#1b22361f;font-size:1.05rem;flex-shrink:0}.power-label{display:flex;flex-direction:column;min-width:0}.power-label small{font-family:var(--font-body);font-size:.7rem;font-weight:800;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.power-activate-btn.ready-pulse{background:linear-gradient(180deg,#fff2a0 0%,var(--gold) 50%,var(--orange) 100%);color:var(--ink);box-shadow:0 3px 0 var(--ink),0 0 0 3px #ffffffe6,0 0 18px #ffc93ce6;animation:powerReady .9s ease-in-out infinite alternate}.power-activate-btn.ready-pulse .power-icon{background:#ffffff8c}.power-sparkle{position:absolute;top:-8px;right:-8px;color:#fff;fill:#ffe066;filter:drop-shadow(0 1px 0 var(--ink));animation:slowSpin 3s linear infinite}.power-activate-btn.targeting-active{background:linear-gradient(180deg,#ff9a9d 0%,var(--red) 100%);color:#fff;animation:none}.power-activate-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}@keyframes powerReady{0%{transform:scale(1) rotate(-.5deg)}to{transform:scale(1.05) rotate(.5deg)}}.battle-toast-zone{position:relative;height:0;z-index:40}.energy-gain-toast{position:absolute;left:50%;top:-4px;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(180deg,#fff6c4 0%,var(--gold) 100%);color:var(--ink);border:var(--outline);border-radius:999px;padding:.25rem 1rem;font-family:var(--font-display);font-weight:800;font-size:.95rem;box-shadow:0 4px 0 var(--ink),0 10px 20px #00000040;animation:toastIn 2.5s cubic-bezier(.2,1.3,.4,1) both}@keyframes toastIn{0%{transform:translate(-50%,10px) scale(.6);opacity:0}12%{transform:translate(-50%) scale(1);opacity:1}85%{transform:translate(-50%) scale(1);opacity:1}to{transform:translate(-50%,-12px) scale(.95);opacity:0}}.power-targeting-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem;background:linear-gradient(180deg,#fff6cf,#ffe08a);border:var(--outline);border-radius:var(--radius-md);padding:.45rem .85rem;font-size:.88rem;font-weight:800;box-shadow:0 4px 0 var(--ink);animation:popIn .25s cubic-bezier(.2,1.3,.4,1)}.ptb-text{display:flex;align-items:center;gap:.5rem}.ptb-icon{font-size:1.4rem}.power-orient-toggle,.shield-ship-chip{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-weight:800;font-size:.86rem;padding:.25rem .75rem;border-radius:999px;background:#fff;color:var(--ink);border:2.5px solid var(--ink);box-shadow:0 3px 0 var(--ink)}.shield-ship-chip{background:linear-gradient(180deg,#d9ffe3,#86efac)}.shield-quick-picks{display:flex;gap:.45rem;flex-wrap:wrap}.mobile-grid-tabs{display:none;gap:.5rem;padding:4px;border-radius:18px;background:#1b22368c;border:var(--outline)}.mob-tab{flex:1;font-family:var(--font-display);font-weight:800;font-size:.98rem;padding:.42rem .6rem;border-radius:13px;color:#fff;transition:background .2s ease,color .2s ease}.mob-tab.active{background:linear-gradient(180deg,#fff6cf 0%,var(--gold) 100%);color:var(--ink);box-shadow:inset 0 -3px #0000001f}.battle-boards-arena{display:grid;grid-template-columns:1.06fr .94fr;gap:1.1rem;align-items:start;justify-items:center}.board-column{width:100%;display:flex;flex-direction:column;align-items:center;gap:.5rem}.board-col-header{width:min(100%,470px);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.board-col-header h3{margin:0;font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:#fff;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink)}.env-tag{font-family:var(--font-display);font-size:.8rem;font-weight:800;padding:.05rem .65rem;border-radius:999px;background:var(--cream);border:2.5px solid var(--ink);box-shadow:0 2px 0 var(--ink)}.turn-banner{position:absolute;inset:0;z-index:40;display:grid;place-items:center;pointer-events:none}.turn-banner span{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,6vw,2.8rem);color:#fff;-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink);background:linear-gradient(90deg,transparent 0%,rgba(27,34,54,.6) 15%,rgba(27,34,54,.6) 85%,transparent 100%);padding:.3rem 2.6rem;white-space:nowrap;animation:turnBanner 1.2s cubic-bezier(.2,1.2,.4,1) both}@keyframes turnBanner{0%{transform:scale(2.2);opacity:0}18%{transform:scale(.95);opacity:1}26%{transform:scale(1.03)}78%{transform:scale(1);opacity:1}to{transform:scale(.9) translateY(-10px);opacity:0}}.fleet-tracker-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem;max-width:470px}.fleet-mini-pill{display:inline-flex;align-items:center;gap:.35rem;background:var(--cream);border:2px solid var(--ink);border-radius:999px;padding:.12rem .55rem .12rem .35rem;font-family:var(--font-display);font-size:.76rem;font-weight:800;box-shadow:0 2px 0 var(--ink);transition:background .3s ease}.fleet-mini-pill.is-sunk{background:#4a2228;color:#ffb4b6}.fleet-mini-pill.is-sunk .mini-ship-name{text-decoration:line-through;text-decoration-thickness:2px}.fleet-mini-pill.is-shielded{background:#d9ffe3}.mini-ship-blocks{display:inline-flex;gap:2px}.mini-ship-blocks i{width:8px;height:8px;border-radius:2.5px;background:var(--green);border:1.5px solid var(--ink)}.mini-ship-blocks i.hit,.fleet-mini-pill.is-sunk .mini-ship-blocks i{background:var(--red)}.modal-backdrop{position:fixed;inset:0;background:#081226a8;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:200;overflow-y:auto;animation:fadeIn .25s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tutorial-card,.lobby-modal-card,.victory-card{position:relative;background:linear-gradient(180deg,var(--paper) 0%,var(--cream-2) 100%);color:var(--ink);border:4px solid var(--ink);border-radius:28px;padding:1.4rem 1.5rem;width:100%;max-width:560px;margin:auto;box-shadow:0 8px 0 var(--ink),0 30px 60px #00000073;animation:modalIn .42s cubic-bezier(.2,1.3,.4,1) both}@keyframes modalIn{0%{opacity:0;transform:translateY(30px) scale(.85)}to{opacity:1;transform:none}}.tutorial-close-btn{position:absolute;top:-14px;right:-14px;width:44px;height:44px;border-radius:50%;background:linear-gradient(180deg,#ff9a9d 0%,var(--red) 100%);color:#fff;border:var(--outline);box-shadow:0 4px 0 var(--ink);display:inline-flex;align-items:center;justify-content:center;z-index:5;transition:transform .12s ease}.tutorial-close-btn:hover{transform:rotate(90deg) scale(1.05)}.tutorial-title{margin:0 0 .8rem;font-family:var(--font-display);font-weight:800;font-size:1.55rem;line-height:1.1;padding-right:1.5rem}.tutorial-slide{animation:screenIn .35s ease both}.tutorial-scene{position:relative;background:radial-gradient(ellipse at 30% 20%,#6fd3f7,#2aa6d9 55%,#127fb8);border:var(--outline);border-radius:22px;padding:1.1rem;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;box-shadow:inset 0 0 0 4px #ffffff40;overflow:hidden}.tut-mini-grid{position:relative;display:grid;grid-template-columns:repeat(4,36px);grid-template-rows:repeat(4,36px);gap:3px;background:#0a46788c;padding:5px;border-radius:12px;border:2.5px solid var(--ink)}.tut-cell{background:#ffffff2e;border-radius:6px}.tut-cell.is-ship{background:linear-gradient(180deg,#c7783a,#8b4a1f);border:2px solid var(--ink)}.tut-cell.is-buffer{background:repeating-linear-gradient(-45deg,#bac8de99 0 4px,#bac8de40 4px 8px)}.tut-floating-ship{position:absolute;right:-50px;bottom:8px;font-size:1.5rem;animation:lineupBob 1.4s ease-in-out infinite alternate}.tut-hand-anim{position:absolute;right:-36px;bottom:-16px;font-size:1.7rem;animation:lineupBob .7s ease-in-out infinite alternate}.tut-dice-pill{font-family:var(--font-display);font-weight:800;font-size:.92rem;background:linear-gradient(180deg,#fff3c4 0%,var(--gold) 100%);border:2.5px solid var(--ink);padding:.15rem .85rem;border-radius:999px;box-shadow:0 3px 0 var(--ink)}.tut-shot-demo{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center}.tut-demo-box{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.55rem .85rem;border-radius:16px;background:#fff;font-family:var(--font-display);font-weight:800;font-size:.9rem;border:var(--outline);box-shadow:0 4px 0 var(--ink);animation:popIn .4s cubic-bezier(.2,1.4,.4,1) both}.tut-demo-box.is-hit{background:#fff1e0;animation-delay:.12s}.tut-demo-box.is-sunk{background:#ffe1e2;animation-delay:.24s}.tut-big-icon{font-size:1.7rem}.tut-hp-hint{font-size:.85rem;font-weight:700;text-align:center;background:#fffdf6f2;border:2.5px solid var(--ink);padding:.4rem .75rem;border-radius:14px}.tut-battery-demo{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;justify-content:center}.tut-battery-bars{display:flex;gap:5px;background:#24304a;padding:8px 10px;border-radius:14px;border:var(--outline)}.tut-battery-bars .bar{width:20px;height:26px;border-radius:6px;background:linear-gradient(180deg,#fff2a0 0%,var(--gold) 50%,var(--orange) 100%);box-shadow:inset 0 2px #ffffff8c}.tut-battery-bars .bar.pulse{animation:cellGlow .6s ease-in-out infinite alternate}.tut-power-arrow{font-size:1.5rem}.tut-power-burst{font-size:1.9rem;letter-spacing:3px}.tutorial-caption{margin:.9rem 0;font-size:1.04rem;font-weight:800;text-align:center;color:var(--ink-soft)}.tutorial-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tutorial-dots{display:flex;gap:.45rem}.tut-dot{width:16px;height:16px;border-radius:999px;background:#d5dbe6;border:2.5px solid var(--ink);transition:width .25s cubic-bezier(.2,1.3,.4,1),background .2s ease}.tut-dot.active{width:36px;background:var(--gold)}.lobby-modal-card{max-width:660px}.lobby-header{margin-bottom:.9rem}.lobby-badge{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-size:.85rem;font-weight:800;background:linear-gradient(180deg,#bfeaff,#6cc6f2);border:2.5px solid var(--ink);padding:.05rem .7rem;border-radius:999px}.lobby-header h2{margin:.4rem 0 0;font-family:var(--font-display);font-weight:800;font-size:1.6rem;line-height:1.1}.lobby-name-row{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}.lobby-name-row label,.join-box label{font-weight:800;font-size:.88rem;color:var(--ink-soft)}.lobby-input,.lobby-code-input{width:100%;padding:.6rem .9rem;border-radius:14px;border:var(--outline);font-size:1rem;font-weight:800;background:#fff;color:var(--ink);box-shadow:inset 0 3px #1b22361a}.lobby-input:focus,.lobby-code-input:focus{outline:none;box-shadow:inset 0 3px #1b22361a,0 0 0 4px #ffc93cb3}.lobby-code-input{font-family:var(--font-tech-coord);font-size:1.35rem;text-align:center;letter-spacing:.18em;text-transform:uppercase}.lobby-two-cols{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:center}.lobby-box{background:#fff;border:var(--outline);border-radius:18px;padding:.85rem;display:flex;flex-direction:column;gap:.7rem;box-shadow:0 4px 0 var(--ink)}.lobby-char-preview{display:flex;align-items:center;gap:.65rem}.lobby-meta{font-size:.78rem;font-weight:800;color:var(--ink-mute)}.lobby-divider{font-family:var(--font-display);font-weight:800;color:var(--ink-mute)}.lobby-error-banner{margin-top:.8rem;background:#ffe1e2;color:#a51d24;border:var(--outline);border-radius:14px;padding:.5rem .85rem;font-weight:800;font-size:.9rem;animation:shipErrorShake .4s ease}.lobby-waiting-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.9rem}.lobby-instruction{margin:0;font-weight:800;color:var(--ink-soft)}.room-code-showcase{font-family:var(--font-tech-coord);font-weight:700;font-size:2.7rem;letter-spacing:.22em;padding:.4rem 1.4rem .4rem 1.7rem;border-radius:20px;background:var(--ink);color:#ffe066;border:4px solid #ffe066;box-shadow:0 6px #0b0f1a,0 0 24px #ffe06659;animation:popIn .45s cubic-bezier(.2,1.4,.4,1)}.lobby-share-buttons{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}.lobby-radar-wait{display:flex;align-items:center;gap:.6rem;font-weight:800;background:#d8f1ff;border:2.5px solid var(--ink);padding:.45rem 1rem;border-radius:999px}.radar-spinner{width:18px;height:18px;border-radius:50%;border:3px solid #7dd3fc;border-top-color:var(--ink);animation:slowSpin .9s linear infinite}.victory-backdrop{overflow:hidden auto}.victory-backdrop:before{content:"";position:fixed;left:50%;top:50%;width:180vmax;height:180vmax;margin:-90vmax 0 0 -90vmax;background:repeating-conic-gradient(from 0deg,rgba(255,220,110,.16) 0deg 10deg,transparent 10deg 20deg);animation:slowSpin 40s linear infinite;pointer-events:none}.victory-card{max-width:640px;text-align:center;display:flex;flex-direction:column;gap:.85rem;padding-top:2rem}.victory-banner-badge{position:absolute;top:-26px;left:50%;transform:translate(-50%);white-space:nowrap;font-family:var(--font-display);font-weight:800;font-size:clamp(1.2rem,3.4vw,1.75rem);color:#fff;text-shadow:0 3px 0 var(--ink);background:linear-gradient(180deg,#ffd27a 0%,var(--orange) 55%,#e8590c 100%);padding:.3rem 1.6rem;border:var(--outline);border-radius:14px;box-shadow:0 5px 0 var(--ink);animation:bannerDrop .6s cubic-bezier(.2,1.4,.4,1) .15s both}.victory-card.is-loss .victory-banner-badge{background:linear-gradient(180deg,#8fdcff 0%,var(--blue) 55%,var(--blue-deep) 100%)}@keyframes bannerDrop{0%{opacity:0;transform:translate(-50%,-30px) scale(.6) rotate(-6deg)}to{opacity:1;transform:translate(-50%) scale(1)}}.victory-captains-stage{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:.6rem;background:radial-gradient(ellipse at 50% 0%,#fff,#fff3d6);border:var(--outline);border-radius:20px;padding:.85rem .7rem .7rem}.vic-captain-col{display:flex;flex-direction:column;align-items:center;gap:.3rem}.vic-captain-col strong{font-family:var(--font-display);font-size:1rem}.vic-captain-col.winner-bounce .captain-avatar-wrap{animation:winnerHop .9s cubic-bezier(.3,1.6,.5,1) infinite alternate}@keyframes winnerHop{0%{translate:0 0}to{translate:0 -8px}}.vic-quote{margin:0;font-size:.78rem;font-weight:700;color:var(--ink-soft);font-style:italic}.vic-captains-divider{font-size:1.8rem;align-self:center}.earned-stars-showcase{display:flex;flex-direction:column;align-items:center;gap:.35rem}.stars-row{display:flex;gap:.4rem;align-items:flex-end}.star-medal{display:inline-flex;color:#b9c2d3}.star-medal svg{width:52px;height:52px;stroke:var(--ink);stroke-width:2.2;fill:#d5dbe6}.star-medal:nth-child(2) svg{width:64px;height:64px}.star-medal.earned svg{fill:var(--gold);filter:drop-shadow(0 3px 0 var(--ink)) drop-shadow(0 0 10px rgba(255,201,60,.8))}.star-medal.earned{animation:starPop .55s cubic-bezier(.2,1.6,.4,1) both}@keyframes starPop{0%{transform:scale(0) rotate(-60deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.star-reason-text{margin:0;font-weight:800;font-size:.95rem}.vic-mini-stats{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}.vic-mini-stats span{font-family:var(--font-display);font-size:.86rem;font-weight:800;background:#fff;border:2.5px solid var(--ink);border-radius:999px;padding:.05rem .7rem}.rank-chest-panel{background:#fff;border:var(--outline);border-radius:18px;padding:.65rem .9rem}.rank-chest-panel.rank-up-celebrate{background:linear-gradient(180deg,#fff6cf,#ffd960);animation:rankGlow 1.2s ease-in-out infinite alternate}@keyframes rankGlow{0%{box-shadow:0 0 #ffc93c99}to{box-shadow:0 0 0 8px #ffc93c00}}.rank-up-ribbon{font-family:var(--font-display);font-weight:800;font-size:1rem;color:#b45309;margin-bottom:.4rem}.chest-progress-row{display:flex;align-items:center;gap:.7rem;text-align:left}.chest-big-icon{font-size:2.3rem;animation:barrelBob 1.6s ease-in-out infinite alternate}.chest-progress-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.chest-top-labels{display:flex;justify-content:space-between;font-family:var(--font-display);font-size:.92rem;font-weight:800}.chest-bar-track{height:16px;background:#24304a;border-radius:999px;border:2.5px solid var(--ink);overflow:hidden}.chest-bar-fill{height:100%;background:linear-gradient(180deg,#a6f7bb 0%,var(--green) 50%,var(--green-deep) 100%);box-shadow:inset 0 2px #ffffff80;border-radius:999px;transition:width 1s cubic-bezier(.2,.9,.3,1.1) .8s}.chest-progress-info small{font-size:.76rem;font-weight:800;color:var(--ink-mute)}.victory-actions{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}.btn-rematch-giant{font-size:1.2rem;padding:.75rem 1.7rem}.confetti-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:1}.confetti-piece{position:absolute;top:-24px;width:11px;height:18px;border-radius:3px;border:1.5px solid rgba(27,34,54,.6);animation:confettiFall 3.4s linear infinite}.confetti-piece.c-0{background:var(--gold)}.confetti-piece.c-1{background:var(--green)}.confetti-piece.c-2{background:var(--blue)}.confetti-piece.c-3{background:#ff7aa8}.confetti-piece.c-4{background:#a78bfa}.confetti-piece.c-5{background:var(--orange)}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0) rotateY(0)}to{transform:translateY(108vh) rotate(540deg) rotateY(720deg)}}@media(max-width:900px){.era-cards-row{grid-template-columns:1fr}.era-pick-card{flex-direction:row;align-items:center;flex-wrap:wrap}.era-card-header{width:100%}.era-visual-showcase{flex:0 0 auto}.era-captain-footer{flex:1;min-width:160px}.board-size-row,.settings-launch-bar,.lobby-two-cols{grid-template-columns:1fr}.lobby-divider{text-align:center}.mobile-grid-tabs{display:flex}.battle-boards-arena{grid-template-columns:1fr}.board-column.mob-hidden{display:none}.tactical-board-frame,.own-column .tactical-board-frame{width:min(100%,470px,max(290px,calc(100dvh - 330px)))}.battle-turn-pill{font-size:.86rem;padding:.3rem .8rem}}@media(max-width:640px){.menu-screen{padding:.7rem .75rem 1.2rem}.profile-rank-badge{padding:.35rem .7rem .35rem .4rem}.rank-next-hint{display:none}.btn-circle-top{width:44px;height:44px}.portal-pill-link span:last-child{display:none}.mode-selector-row{grid-template-columns:1fr}.ai-difficulty-strip{grid-template-columns:repeat(3,1fr)}.diff-pill small{display:none}.captains-duel-strip{grid-template-columns:1fr 1fr;gap:.4rem}.vs-emblem{display:none}.captain-hud-card{padding:.35rem .45rem;gap:.4rem;border-radius:18px}.captain-hud-card .captain-avatar-wrap{width:54px!important;height:54px!important}.captain-hud-name-row strong{font-size:.88rem}.power-label small,.opp-power-sub{display:none}.energy-cell{width:8px!important;height:11px}.energy-num{display:none}.battle-audio-controls .btn-icon-round{width:38px;height:38px}.room-pill-mini{display:none}.victory-captains-stage{grid-template-columns:1fr 1fr}.vic-captains-divider{display:none}.settings-heading{font-size:1.25rem}.harbor-big-btn{font-size:.98rem;padding:.55rem .95rem}}@media(max-height:760px)and (min-width:901px){.menu-captain-lineup .captain-avatar-wrap{width:84px!important;height:84px!important}.game-logo{width:min(540px,80vw)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.dock-ship-card{flex-shrink:0;padding-right:1.1rem}.dock-ship-name{white-space:nowrap}.captains-duel-strip{align-items:stretch}.captain-hud-card{align-self:stretch}.vs-emblem{align-self:center}.battle-toast-zone{position:fixed;left:0;right:0;bottom:22px;height:0;z-index:150;pointer-events:none}.energy-gain-toast{top:auto;bottom:0}@media(max-width:640px){.captains-duel-strip{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.captain-hud-card,.captain-hud-info{min-width:0}.captain-hud-card .energy-battery{max-width:100%;overflow:hidden}.power-activate-btn{padding:.2rem .45rem .2rem .2rem;font-size:.76rem}.power-icon{width:24px;height:24px;font-size:.9rem}.battle-turn-pill{font-size:.8rem;padding:.28rem .7rem;line-height:1.15}.battle-screen{padding:.5rem .6rem 1rem;gap:.5rem}.settings-screen{padding:.6rem .6rem 1rem;gap:.6rem}.settings-heading{font-size:1.12rem;white-space:nowrap;-webkit-text-stroke-width:4px}.settings-topbar .btn-ghost-back{font-size:.9rem;padding:.3rem .7rem}.settings-top-icons .btn-icon-round{width:36px;height:36px}.settings-section{padding:.6rem}.mode-card{padding:.5rem .7rem}.mode-card-main svg{width:38px;height:38px;padding:6px}.mode-card-main span{display:none}.diff-pill{flex-direction:column;gap:.1rem;padding:.3rem}.diff-pill strong{font-size:.78rem;line-height:1.05}.section-label small{display:none}.era-cards-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.7rem;padding:.5rem .3rem .9rem;margin:-.3rem -.3rem -.4rem;scrollbar-width:none}.era-cards-row::-webkit-scrollbar{display:none}.era-pick-card{flex:0 0 82%;flex-direction:column;align-items:stretch;scroll-snap-align:center}.era-pick-card.selected{transform:translateY(-3px)}.board-size-row{grid-template-columns:repeat(3,1fr);gap:.45rem}.size-pick-card{flex-direction:column;align-items:center;text-align:center;padding:.45rem .3rem;gap:.25rem}.size-emoji{width:38px;height:38px;font-size:1.4rem}.size-title-line{justify-content:center}.size-title-line strong{font-size:.86rem}.size-text-col small{display:none}.size-speed-tag{font-size:.64rem}.harbor-screen{padding:.5rem .6rem 1rem;gap:.55rem}.harbor-top-bar{flex-wrap:nowrap}.harbor-captain-banner{min-width:0;padding:.3rem .6rem .3rem .35rem}.harbor-captain-banner .captain-avatar-wrap{display:none}.harbor-captain-banner h2{font-size:1rem}.harbor-captain-banner p{font-size:.72rem}.harbor-dock-panel{padding:.45rem .55rem .55rem}.dock-ships-list{flex-wrap:nowrap;overflow-x:auto;padding:12px 6px 6px;margin:-8px -4px 0;scrollbar-width:none}.dock-ships-list::-webkit-scrollbar{display:none}.dock-ship-card{flex-direction:column;align-items:center;gap:.2rem;padding:.35rem .55rem}.dock-ship-art-wrap{max-width:92px;height:26px}.dock-ship-name{font-size:.74rem}.dock-ship-hp{display:none}}@media(max-width:640px){.settings-top-icons .btn-icon-round:not(:last-child){display:none}.settings-topbar .btn-ghost-back{white-space:nowrap}}.captain-avatar-wrap{position:relative;flex-shrink:0;display:inline-block;vertical-align:middle;line-height:0;--cap-ink: #1b2236;--cap-blink-delay: 0s}.captain-avatar-frame{position:relative;box-sizing:border-box;width:100%;height:100%;padding:7.5%;border-radius:50%;background:linear-gradient(160deg,#fff6c2,#ffd54f 22%,#f0a91c 50%,#b8700b 74%,#ffd977);box-shadow:0 0 0 2px var(--cap-ink),inset 0 2px #ffffffbf,inset 0 -2px #783c0073,0 4px #1b223659,0 7px 14px #00000047;transform-origin:50% 60%;transition:transform .3s cubic-bezier(.3,1.5,.5,1);will-change:transform}.captain-avatar-wrap.era-modern .captain-avatar-frame{background:linear-gradient(160deg,#e8fdff,#7ff0ff 24%,#22b8e0 52%,#1a5fa8,#9ff6ff);box-shadow:0 0 0 2px var(--cap-ink),inset 0 2px #fffc,inset 0 -2px #0a285a80,0 4px #1b223659,0 7px 14px #00000047}.captain-avatar-wrap.size-sm .captain-avatar-frame{padding:8.5%}.captain-avatar-disc{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#2a3550;box-shadow:0 0 0 1.5px var(--cap-ink);isolation:isolate}.captain-avatar-disc:after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;box-shadow:inset 0 3px 6px #00000059,inset 0 -3px 5px #0000002e;background:radial-gradient(120% 70% at 30% 0%,#ffffff38,#fff0 45%)}.captain-svg{display:block;width:100%;height:100%;overflow:hidden}.captain-avatar-wrap.is-mirrored .captain-svg{transform:scaleX(-1)}.captain-avatar-wrap.no-ring .captain-avatar-frame{padding:0;background:none;box-shadow:none}.captain-avatar-wrap.no-ring .captain-avatar-disc{box-shadow:none}.captain-avatar-frame:before{content:"";position:absolute;inset:-3px;border-radius:50%;pointer-events:none;opacity:0;box-shadow:0 0 0 3px #5ef0ff,0 0 14px 5px #38dcffd9,inset 0 0 10px 2px #78f0ff99}.captain-avatar-wrap.state-power .captain-avatar-frame:before{animation:capPowerRing .9s ease-in-out infinite alternate}.captain-avatar-wrap.state-victory .captain-avatar-frame:before{box-shadow:0 0 0 3px #ffe27a,0 0 14px 5px #ffcc40d9;animation:capPowerRing 1.1s ease-in-out infinite alternate}@keyframes capPowerRing{0%{opacity:.55;transform:scale(1)}to{opacity:1;transform:scale(1.07)}}.captain-avatar-wrap.state-thinking .captain-avatar-frame{transform:rotate(-6deg)}.captain-avatar-wrap.state-power .captain-avatar-frame{transform:scale(1.05)}.captain-avatar-wrap.state-laugh .captain-avatar-frame{animation:capBounce .5s ease-in-out infinite}.captain-avatar-wrap.state-victory .captain-avatar-frame{animation:capBounce .62s ease-in-out infinite}.captain-avatar-wrap.state-surprised .captain-avatar-frame{animation:capPop .45s cubic-bezier(.3,1.6,.5,1) 1}.captain-avatar-wrap.state-sunk .captain-avatar-frame{animation:capShake .42s ease-in-out 2}.captain-avatar-wrap.state-defeat .captain-avatar-frame{transform:translateY(2px) rotate(4deg)}@keyframes capBounce{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-7%) scale(.97,1.04)}60%{transform:translateY(0) scale(1.04,.96)}}@keyframes capPop{0%{transform:scale(1)}40%{transform:scale(1.16)}70%{transform:scale(.96)}to{transform:scale(1)}}@keyframes capShake{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-4%) rotate(-7deg)}40%{transform:translate(4%) rotate(6deg)}60%{transform:translate(-3%) rotate(-4deg)}80%{transform:translate(2%) rotate(2deg)}}.captain-svg .cap-figure,.captain-svg .cap-pose,.captain-svg .cap-eyes,.captain-svg .vd-feather,.captain-svg .mia-parrot,.captain-svg .mia-sabre,.captain-svg .mia-patch,.captain-svg .zel-monocle,.captain-svg .zel-bubble,.captain-svg .vj-scarf,.captain-svg .kb-visor-glow,.captain-svg .kb-blip,.captain-svg .nova-holo{transform-box:fill-box;transform-origin:center}.captain-svg .cap-figure{transform-origin:50% 100%;animation:capBreathe 3.6s ease-in-out infinite}@keyframes capBreathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.8px) scale(1.012)}}.captain-avatar-wrap.state-idle .cap-eyes,.captain-avatar-wrap.state-thinking .cap-eyes,.captain-avatar-wrap.state-power .cap-eyes{animation:capBlink 4.2s linear infinite;animation-delay:var(--cap-blink-delay)}@keyframes capBlink{0%,91%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}97%{transform:scaleY(1)}}.captain-svg .vd-feather{transform-origin:0% 100%;animation:capFeather 2.8s ease-in-out infinite}@keyframes capFeather{0%,to{transform:rotate(0)}50%{transform:rotate(-5deg)}}.captain-svg .vd-spyglass{transition:transform .45s cubic-bezier(.3,1.4,.5,1)}.captain-svg .mia-parrot{transform-origin:50% 100%;animation:capParrot 1.9s ease-in-out infinite}.captain-avatar-wrap.state-laugh .mia-parrot,.captain-avatar-wrap.state-victory .mia-parrot,.captain-avatar-wrap.state-surprised .mia-parrot{animation-duration:.5s}@keyframes capParrot{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-1.8px) rotate(-5deg)}}.captain-svg .mia-patch{transition:transform .35s cubic-bezier(.3,1.6,.5,1)}.captain-svg .mia-sabre{transform-origin:50% 100%}.captain-avatar-wrap.state-victory .mia-sabre,.captain-avatar-wrap.state-power .mia-sabre{animation:capSabre .5s ease-in-out infinite alternate}@keyframes capSabre{0%{transform:rotate(-6deg)}to{transform:rotate(8deg)}}.captain-svg .zel-monocle{transform-origin:50% 0%;transition:transform .35s cubic-bezier(.3,1.5,.5,1)}.captain-svg .zel-bubble{opacity:0;animation:capPipeBubble 2.7s ease-out infinite}.captain-svg .zel-bubble.b2{animation-delay:.9s}.captain-svg .zel-bubble.b3{animation-delay:1.8s}@keyframes capPipeBubble{0%{opacity:0;transform:translate(0) scale(.4)}15%{opacity:1}70%{opacity:.9}to{opacity:0;transform:translate(-8px,-18px) scale(1.15)}}.captain-svg .vj-scarf{transform-origin:0% 50%;animation:capScarf 1.5s ease-in-out infinite}@keyframes capScarf{0%,to{transform:rotate(0) scaleY(1)}33%{transform:rotate(-5deg) scaleY(1.08)}66%{transform:rotate(3deg) scaleY(.92)}}.captain-svg .kb-visor-glow{animation:capVisor 1.6s ease-in-out infinite alternate}@keyframes capVisor{0%{opacity:.2;transform:scale(1)}to{opacity:.75;transform:scale(1.18)}}.captain-avatar-wrap.state-power .kb-visor-glow{animation-duration:.5s}.captain-svg .kb-blip{animation:capBlip 1.2s steps(2,jump-none) infinite}@keyframes capBlip{0%{opacity:1}to{opacity:.15}}.captain-svg .nova-holo{transform-origin:50% 100%;animation:capHolo 2s ease-in-out infinite}@keyframes capHolo{0%,to{opacity:.65;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-1px) scale(1.05)}}.captain-avatar-wrap.state-power .nova-holo{animation-duration:.7s}.captain-speech-bubble{position:absolute;top:calc(100% + 10px);left:0;z-index:80;box-sizing:border-box;min-width:180px;max-width:260px;width:max-content;display:flex;align-items:flex-start;gap:.45rem;padding:.5rem .75rem .55rem .55rem;background:#fff;color:#1b2236;border:2.5px solid #1b2236;border-radius:16px;box-shadow:0 4px #1b223640,0 10px 20px #00000038;font-size:.86rem;font-weight:800;line-height:1.3;text-align:left;white-space:normal;pointer-events:none;transform-origin:24px -10px;animation:capBubblePop .34s cubic-bezier(.2,1.6,.45,1) both;--bubble-bg: #ffffff;--bubble-border: #1b2236}.captain-speech-bubble:before,.captain-speech-bubble:after{content:"";position:absolute;left:18px;width:0;height:0;border-style:solid}.captain-speech-bubble:before{top:-13px;border-width:0 10px 13px 10px;border-color:transparent transparent var(--bubble-border) transparent}.captain-speech-bubble:after{top:-8.5px;left:21px;border-width:0 7px 9.5px 7px;border-color:transparent transparent var(--bubble-bg) transparent}.captain-avatar-wrap.is-mirrored .captain-speech-bubble{left:auto;right:0;transform-origin:calc(100% - 24px) -10px}.captain-avatar-wrap.is-mirrored .captain-speech-bubble:before{left:auto;right:18px}.captain-avatar-wrap.is-mirrored .captain-speech-bubble:after{left:auto;right:21px}.captain-speech-bubble.mood-sunk{--bubble-bg: #fff0f1;--bubble-border: #d63447;background:var(--bubble-bg);border-color:var(--bubble-border)}.captain-speech-bubble.mood-power{--bubble-bg: #e9fdff;--bubble-border: #0891b2;background:var(--bubble-bg);border-color:var(--bubble-border)}.captain-speech-bubble.mood-victory{--bubble-bg: #fff8db;--bubble-border: #d99a06;background:var(--bubble-bg);border-color:var(--bubble-border)}.captain-speech-bubble.mood-surprised{--bubble-bg: #f3f0ff;--bubble-border: #1b2236;background:var(--bubble-bg)}.captain-speech-bubble.mood-laugh,.captain-speech-bubble.mood-defeat{--bubble-bg: #ffffff;background:var(--bubble-bg)}.captain-speech-bubble .bubble-emoji{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;background:#1b223612;font-size:1.05rem;line-height:1}.captain-speech-bubble .bubble-text{flex:1;min-width:0;padding-top:.15rem;overflow-wrap:break-word}@keyframes capBubblePop{0%{opacity:0;transform:scale(.6) translateY(-6px)}60%{opacity:1}to{opacity:1;transform:scale(1) translateY(0)}}@media(prefers-reduced-motion:reduce){.captain-avatar-wrap *,.captain-avatar-wrap *:before,.captain-avatar-wrap *:after{animation:none!important;transition:none!important}.captain-avatar-wrap.state-power .captain-avatar-frame:before,.captain-avatar-wrap.state-victory .captain-avatar-frame:before{opacity:1}.captain-svg .zel-bubble{opacity:.8}}.ship-artwork-svg{width:100%;height:100%;display:block;overflow:visible;pointer-events:none}.ship-artwork-svg g,.ship-artwork-svg circle,.ship-artwork-svg ellipse,.ship-artwork-svg rect,.ship-artwork-svg path{transform-box:fill-box;transform-origin:center}.ship-artwork-svg .ship-bob{animation:ship-bob 3.6s ease-in-out infinite}.ship-artwork-svg .ship-wake__trail{animation:ship-wake-trail 1.8s linear infinite}.ship-artwork-svg .ship-wake__bow{animation:ship-wake-pulse 2.2s ease-in-out infinite}.ship-artwork-svg .ship-wake__foam{animation:ship-wake-pulse 1.6s ease-in-out infinite}.ship-artwork-svg .ship-glow{animation:ship-glow 2.4s ease-in-out infinite}.ship-artwork-svg .ship-lights{animation:ship-lights 1.8s steps(2,jump-none) infinite}.ship-artwork-svg .ship-radar{animation:ship-radar 3.2s linear infinite}.ship-artwork-svg .ship-shield{animation:ship-shield-pulse 2.6s ease-in-out infinite}.ship-artwork-svg .ship-shield__ring{animation:ship-shield-ring 2.6s ease-in-out infinite}.ship-artwork-svg .ship-shield__shine{animation:ship-shield-shine 3.4s ease-in-out infinite}.ship-artwork-svg.is-sunk .ship-bob{animation:none}.ship-artwork-svg .ship-ember{animation:ship-ember 1.4s ease-in-out infinite}.ship-artwork-svg .ship-ember--1{animation-delay:-.5s}.ship-artwork-svg .ship-ember--2{animation-delay:-.95s}.ship-artwork-svg .ship-smoke__puff{opacity:0;animation:ship-smoke 3.6s ease-out infinite}.ship-artwork-svg .ship-smoke__puff--1{animation-delay:-1.2s}.ship-artwork-svg .ship-smoke__puff--2{animation-delay:-2.4s}@keyframes ship-bob{0%,to{transform:translateY(0)}50%{transform:translateY(2.4px)}}@keyframes ship-wake-trail{0%{transform:translate(0);opacity:.65}to{transform:translate(-6px);opacity:.35}}@keyframes ship-wake-pulse{0%,to{opacity:.9}50%{opacity:.5}}@keyframes ship-glow{0%,to{opacity:.18}50%{opacity:.45}}@keyframes ship-lights{0%{opacity:1}to{opacity:.45}}@keyframes ship-radar{to{transform:rotate(360deg)}}@keyframes ship-shield-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.012)}}@keyframes ship-shield-ring{0%,to{opacity:.15}50%{opacity:.45}}@keyframes ship-shield-shine{0%,to{opacity:.35}50%{opacity:1}}@keyframes ship-ember{0%,to{opacity:1}50%{opacity:.35}}@keyframes ship-smoke{0%{opacity:0;transform:translate(0) scale(.5)}15%{opacity:.7}to{opacity:0;transform:translate(6px,-30px) scale(1.5)}}@media(prefers-reduced-motion:reduce){.ship-artwork-svg .ship-bob,.ship-artwork-svg .ship-wake__trail,.ship-artwork-svg .ship-wake__bow,.ship-artwork-svg .ship-wake__foam,.ship-artwork-svg .ship-glow,.ship-artwork-svg .ship-lights,.ship-artwork-svg .ship-radar,.ship-artwork-svg .ship-shield,.ship-artwork-svg .ship-shield__ring,.ship-artwork-svg .ship-shield__shine,.ship-artwork-svg .ship-ember,.ship-artwork-svg .ship-smoke__puff{animation:none}.ship-artwork-svg .ship-smoke__puff{opacity:.35}.ship-artwork-svg .ship-smoke__puff--1{transform:translate(3px,-12px)}.ship-artwork-svg .ship-smoke__puff--2{opacity:.2;transform:translate(-2px,-22px) scale(1.2)}}.ship-artwork-svg g.ship-rot{transform-box:view-box;transform-origin:0 0}.scene-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict}.scene-svg{width:100%;height:100%;display:block}.scene-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(4,14,32,.38) 100%)}.scene-bg.is-calm .scene-vignette{background:radial-gradient(ellipse at 50% 35%,#040e2014 30%,#040e2080)}.scene-modern .scene-vignette{background:radial-gradient(ellipse at 50% 40%,transparent 45%,rgba(0,0,0,.55) 100%)}.sb-wave{will-change:transform}.sb-wave.w1{animation:sbWaveSlide 38s linear infinite}.sb-wave.w2{animation:sbWaveSlide 26s linear infinite reverse}.sb-wave.w3{animation:sbWaveSlide 18s linear infinite}@keyframes sbWaveSlide{0%{transform:translate(0)}to{transform:translate(-1600px)}}.sb-cloud{animation:sbCloudDrift 70s linear infinite}.sb-cloud.c2{animation-duration:95s;animation-delay:-30s}.sb-cloud.c3{animation-duration:85s;animation-delay:-50s}.sb-cloud.c4{animation-duration:120s;animation-delay:-20s}@keyframes sbCloudDrift{0%{transform:translate(-400px)}to{transform:translate(1900px)}}.sb-sun-glow{transform-box:fill-box;transform-origin:center;animation:sbSunPulse 6s ease-in-out infinite alternate}@keyframes sbSunPulse{0%{transform:scale(.94);opacity:.85}to{transform:scale(1.06);opacity:1}}.sb-reflect{animation:sbReflect 4s ease-in-out infinite alternate}@keyframes sbReflect{0%{opacity:.55}to{opacity:.9}}.sb-sparkle{opacity:0;animation:sbSparkle 3.6s ease-in-out infinite}@keyframes sbSparkle{0%,to{opacity:0}50%{opacity:.85}}.sb-star{animation:sbTwinkle 3.2s ease-in-out infinite alternate}@keyframes sbTwinkle{0%{opacity:.25}to{opacity:1}}.sb-window{animation:sbTwinkle 2.4s ease-in-out infinite alternate}.sb-beacon{animation:sbBeacon 1.4s steps(2,jump-none) infinite}@keyframes sbBeacon{0%{opacity:1}to{opacity:.15}}.sb-lighthouse-beam{transform-box:view-box;transform-origin:1298px 345px;animation:sbBeam 5s ease-in-out infinite alternate}@keyframes sbBeam{0%{opacity:.12}to{opacity:.45}}.sb-gull{animation:sbGull 9s ease-in-out infinite}.sb-gull.g2{animation-delay:-2s}.sb-gull.g3{animation-duration:12s;animation-delay:-5s}@keyframes sbGull{0%,to{transform:translate(0)}50%{transform:translate(60px,-22px)}}.sb-smoke{transform-box:fill-box;transform-origin:center;animation:sbSmoke 4s ease-out infinite}.sb-smoke.s2{animation-delay:-1.3s}.sb-smoke.s3{animation-delay:-2.6s}@keyframes sbSmoke{0%{transform:translateY(6px) scale(.6);opacity:0}30%{opacity:.8}to{transform:translate(26px,-26px) scale(1.4);opacity:0}}.sb-far-ship{animation:sbFarShip 60s linear infinite alternate}@keyframes sbFarShip{0%{transform:translate(560px,448px)}to{transform:translate(860px,448px)}}.sb-neon-grid{animation:sbReflect 3s ease-in-out infinite alternate}.scene-bg.is-calm .sb-wave.w1,.scene-bg.is-calm .sb-wave.w2{animation-duration:60s}@media(prefers-reduced-motion:reduce){.scene-bg *{animation:none!important}}
