:root{color-scheme:dark;--bg:#081a25;--panel:#0f2835;--ink:#edf3eb;--muted:#a6bec6;--gold:#ebc487;--teal:#75d9cb;--border:#294655;--danger:#ffb2a0}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#183847 0,var(--bg) 60%);color:var(--ink);font:15px/1.55 system-ui,-apple-system,sans-serif;padding-bottom:88px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--teal);outline-offset:3px}[hidden]{display:none!important}a{color:var(--gold)}.header{height:78px;display:flex;align-items:center;justify-content:space-between;max-width:1260px;padding:0 30px;margin:auto;border-bottom:1px solid var(--border)}.brand{font-size:26px;line-height:1.05;font-weight:900;letter-spacing:-1px;color:var(--ink);text-decoration:none}.brand span{color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:2px;font-weight:600;margin-top:6px;color:var(--muted)}.header-tools{display:flex;align-items:center;gap:12px}.chip{font-size:9px;letter-spacing:1.5px;border:1px solid var(--border);padding:6px 9px;border-radius:20px;color:var(--teal)}.icon{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--border);background:transparent;color:var(--ink);border-radius:50%;font-size:18px}.view{max-width:1200px;margin:24px auto}.battle-layout{display:grid;grid-template-columns:minmax(180px,1fr) minmax(300px,420px) minmax(180px,1fr);gap:26px;align-items:center;padding:0 25px}.panel{background:linear-gradient(130deg,#13303d,#0d2330);border:1px solid var(--border);border-radius:18px;padding:25px}.brief h1{font-size:33px;line-height:1.18}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--gold);margin:0 0 15px}h1,h2,p{margin-top:0}h1{font-size:clamp(32px,5vw,54px);letter-spacing:-1.5px;line-height:1.1}h2{font-size:23px;line-height:1.15;letter-spacing:-.5px}p{color:var(--muted)}b,strong{color:var(--ink)}em{font-style:normal;color:var(--gold)}.small{font-size:12px}.micro{font-size:10px;line-height:1.5}.divider{height:1px;background:var(--border);margin:24px 0}.primary,.secondary{width:100%;min-height:47px;border-radius:9px;padding:11px 16px;font-size:12px;letter-spacing:.7px;font-weight:800;display:flex;justify-content:center;align-items:center;gap:12px}.primary{background:var(--gold);border:1px solid var(--gold);color:#132b37}.primary span{margin-left:auto}.secondary{background:#132e3c;color:var(--ink);border:1px solid #436371}.text-button{border:0;background:transparent;color:var(--muted);font-size:12px;padding:13px 5px;min-height:42px}.primary:hover:not(:disabled){background:#f7dab0}.secondary:hover:not(:disabled){border-color:var(--teal)}.arena-shell{position:relative;width:100%;aspect-ratio:420/690;border:1px solid #4a6571;border-radius:20px;overflow:hidden;background:#0d2936;box-shadow:0 18px 70px #0004}#arena{display:block;width:100%;height:100%;touch-action:none;outline:0}.overlay{position:absolute;inset:0;padding:26px;background:linear-gradient(180deg,#0a202ddd,#0b263555 45%,#0a202ded 80%);display:flex;flex-direction:column}.home{justify-content:flex-start}.rank-pill{display:flex;gap:12px;align-items:center;margin-bottom:32px}.rank-pill>span{font-size:26px;color:var(--gold)}.rank-pill small{display:block;font-size:8px;letter-spacing:2px;color:var(--muted)}.rank-pill b{font-size:14px}.home h2{font-size:45px;line-height:1.05;letter-spacing:-2px;margin-bottom:12px}.home>p:not(.eyebrow){font-size:13px}.home .selection{margin-top:auto;margin-bottom:14px}.home .secondary{margin-top:9px}.home .micro{margin:0;text-align:center}.selection{display:flex;gap:10px}label{display:block;font-size:11px;color:var(--muted);flex:1}input,select{display:block;width:100%;min-height:42px;background:#09202d;color:var(--ink);border:1px solid #46616c;border-radius:7px;padding:8px;margin:6px 0 12px;font-size:14px}select{font-size:12px}.centered{justify-content:center;align-items:stretch;text-align:center;background:#0a202df2}.centered h2{font-size:38px}.centered .secondary{margin-top:12px}.big-score{font-size:54px;color:var(--gold);letter-spacing:-3px}.result-stats{display:flex;justify-content:center;gap:20px;padding:20px 0}.result-stats b{display:block;font-size:24px}.result-stats small{font-size:10px;color:var(--muted)}.promotion{color:var(--gold);font-weight:700;font-size:13px}.hud-top{position:absolute;left:16px;right:16px;top:15px;display:flex;gap:25px;align-items:center;background:#09202dba;border:1px solid #325060;padding:8px 12px;border-radius:10px}.hud-top small{font-size:8px;letter-spacing:1.5px;color:var(--muted);display:block}.hud-top b{font-size:22px}.hud-top .icon{margin-left:auto}.hud-sub{position:absolute;top:89px;left:20px;right:20px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:var(--gold)}.shield{position:absolute;bottom:47px;right:12px;background:#143d45;color:#bcf5e7;border:1px solid #7accb6;border-radius:20px;padding:10px;font-size:10px;font-weight:800}#hull{position:absolute;bottom:17px;left:20px;color:var(--teal);font-size:10px;letter-spacing:2px}#network-warning{position:absolute;top:120px;left:15px;right:15px;background:#7b433de8;color:#fff;padding:9px;font-size:12px;text-align:center;border-radius:7px}.floating{position:absolute;top:36%;left:12px;right:12px;font-size:20px;letter-spacing:2px;text-align:center;color:var(--gold);font-weight:900;pointer-events:none;text-shadow:0 2px 6px #000}.command{text-align:center}.insignia{font-size:60px;color:var(--gold);margin:10px}.stat{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:12px 0;font-size:12px}.track{height:4px;border-radius:4px;background:#334b56;margin:20px 0 10px;overflow:hidden}.track span{height:100%;display:block;background:var(--gold)}.content{padding:15px 30px;max-width:1060px}.lead{max-width:650px;font-size:16px;line-height:1.7}.cards{display:grid;gap:18px;margin:26px 0}.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}.step-number{display:block;color:var(--gold);font-size:30px;margin-bottom:20px}.button-row{display:flex;gap:12px}.lobby{max-width:650px;margin:24px auto}.panel-head{display:flex;align-items:center;justify-content:space-between}.panel-head .eyebrow{margin:0}.crew-slots{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:24px 0}.crew-slots>div{text-align:center;padding:15px;background:#091e2a;border-radius:12px}.crew-slots small,.crew-slots b{display:block}.crew-slots small{font-size:11px;color:var(--muted)}.crew-icon{font-size:32px;color:var(--teal)}.crew-icon.ally{color:#cdb2ed}.harbor-banner{position:relative;max-width:780px;border-radius:20px;overflow:hidden;border:1px solid var(--border);margin:20px 0}#harbor-art{width:100%;display:block}.star-balance{position:absolute;left:20px;top:18px;background:#0a2230db;border-radius:20px;padding:8px 15px;color:var(--gold);font-size:13px;font-weight:700}.customization{max-width:780px}.weapon-symbol{font-size:38px;color:var(--gold);margin-bottom:20px}.equipped{border-color:var(--gold)}.weapon-tags{font-size:10px;color:var(--teal);letter-spacing:1px;margin-bottom:12px}.notice{border-left:3px solid var(--gold);padding:20px;margin-top:20px;background:#17313c;border-radius:0 12px 12px 0}.notice p{font-size:13px}.notice .secondary{width:auto}.setting{display:flex;align-items:center;justify-content:space-between;font-size:14px}.setting input{width:22px;min-height:22px;margin:0;accent-color:var(--gold)}.import-label{margin-top:15px}.rank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}.rank-row{padding:18px;border:1px solid var(--border);border-radius:10px;background:#0d2532}.rank-row.earned{border-color:#698770}.rank-row small{display:block;color:var(--muted);font-size:10px}.nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:12px;background:#091c29f2;border-top:1px solid var(--border);padding:9px 10px calc(9px + env(safe-area-inset-bottom));z-index:20;backdrop-filter:blur(15px)}.nav button{background:transparent;border:0;color:#a7bbc2;width:90px;min-height:45px;font-size:22px;border-radius:8px}.nav button span{display:block;font-size:8px;letter-spacing:1px;font-weight:700}.nav button.active{color:var(--gold);background:#29414a77}.toast{position:fixed;bottom:92px;left:50%;transform:translateX(-50%);max-width:min(90vw,500px);padding:13px 20px;background:#dfc392;color:#142a34;border-radius:12px;z-index:60;font-size:13px;box-shadow:0 8px 30px #0006}.toast:empty{display:none}dialog{color:var(--ink);background:#102c3a;border:1px solid #4a6371;border-radius:18px;max-width:550px;width:calc(100% - 30px);max-height:85vh;overflow:auto;padding:30px}dialog::backdrop{background:#0009}.close-dialog.icon{float:right}.return-page{max-width:550px;margin:10vh auto;padding:25px}.return-page .primary{margin-top:18px;text-decoration:none}
@media(max-width:960px){.battle-layout{grid-template-columns:minmax(300px,420px) minmax(200px,260px);justify-content:center}.brief{display:none}.cards.three{grid-template-columns:repeat(2,minmax(0,1fr))}.header{padding:0 20px}.home h2{font-size:42px}}
@media(max-width:680px){.header{height:64px;padding:0 16px}.brand{font-size:24px}.chip{font-size:8px;padding:5px}.header-tools{gap:8px}.view{margin:14px auto}.battle-layout{display:block;padding:0 12px}.command{display:none}.arena-shell{max-width:390px;margin:auto;width:min(100%,calc((100dvh - 153px)*.6087));min-width:285px}.overlay{padding:20px}.rank-pill{margin-bottom:20px}.home h2{font-size:36px}.home>.eyebrow{font-size:8px;margin-bottom:10px}.home>p:not(.eyebrow){font-size:11px;margin-bottom:10px}.home .selection{gap:7px;margin-bottom:7px}.home select{margin-bottom:5px;font-size:11px;min-height:36px}.home .primary,.home .secondary{min-height:42px;font-size:11px}.home .text-button{padding:9px 0;min-height:36px}.home .micro{font-size:8px}.content{padding:12px 18px}.cards.two,.cards.three{grid-template-columns:1fr}.panel{padding:20px}.content h1{font-size:40px}.lead{font-size:14px}.rank-grid{grid-template-columns:1fr}.button-row{flex-wrap:wrap}.button-row>*{flex:1;min-width:130px}.nav{gap:2px}.nav button{width:20%;max-width:85px}.nav button span{font-size:7px}.centered h2{font-size:30px}.big-score{font-size:44px}.result-stats{padding:10px 0}.result-stats b{font-size:20px}.centered p{font-size:12px}.centered .primary,.centered .secondary{min-height:40px;font-size:10px}.hud-top{left:12px;right:12px;top:12px;padding:5px 10px}.hud-top b{font-size:19px}.hud-sub{top:76px;font-size:8px}.shield{bottom:40px;padding:9px;font-size:9px}.floating{font-size:17px}.hero-copy{margin-top:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media(max-height:740px) and (max-width:680px){.arena-shell{min-width:280px}.rank-pill{margin-bottom:12px}.home h2{font-size:31px}.home .micro{display:none}.home .eyebrow{font-size:7px}.home .selection{margin-top:10px}.home>p:not(.eyebrow){margin-bottom:8px}}

/* Signal Rescue and shared mission feedback. */
.signal-overlay{z-index:8;inset:56px 10px 12px;padding:22px 20px;background:rgba(7,26,39,.98);overflow:auto;text-align:center;justify-content:center}.signal-overlay h2{font-size:clamp(25px,6vw,37px);margin:5px 0 12px}.signal-caption{font-size:14px;line-height:1.45;margin:4px 0 14px}.signal-codes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.signal-codes>div{padding:12px 5px;background:#143442;border:1px solid #47747d;border-radius:12px}.signal-codes small{display:block;font-size:9px;letter-spacing:.08em;color:#aec6cf}.signal-codes b{display:block;font-size:20px;margin-top:8px;color:#efd396}.signal-overlay button{min-height:48px;flex-shrink:0;margin-top:8px}.signal-summary{font-size:13px;padding:9px;background:#173b43;border-radius:10px;width:100%;margin:8px 0}.signal-summary p{margin:4px 0}.pack-card h2{font-size:32px}.pack-price{font-size:30px;font-weight:750;color:#efcd88}.pack-price small{font-size:14px;font-weight:400}.pack-swatches{display:flex;gap:10px;margin:18px 0;flex-wrap:wrap}.pack-swatches span{border-radius:8px;padding:18px 12px;font-size:11px;font-weight:800;color:#142736;flex:1;text-align:center}.pack-swatches .gold{background:#f4cf77}.pack-swatches .arctic{background:#d9f1fa}.pack-swatches .sunset{background:#ee88a0}.supporter-crest{color:#f4cf77}.header .chip{max-width:160px;white-space:normal;font-size:9px;text-align:center}.result-stats{margin:8px 0!important}#result-overlay{overflow:auto;justify-content:flex-start;padding-top:28px}#result-overlay h2{font-size:30px}#result-overlay .big-score{font-size:43px}#next-goal{margin:6px 0}#signal-summary+button{margin:4px 0}#signal-instruction{font-size:14px;line-height:1.4;margin:10px 0}#signal-time{margin:4px 0}#signal-status{min-height:18px;margin:7px 0}.signal-overlay[hidden]{display:none!important}@media(max-height:750px){.signal-overlay{padding:12px 14px}.signal-overlay h2{font-size:25px}.signal-caption{font-size:12px;margin-bottom:8px}.signal-codes>div{padding:8px 4px}.signal-overlay .micro{font-size:10px}.signal-overlay button{padding:10px;min-height:44px}}

/* Fleet 0.6 permanent equipment catalogue */
.upgrade-card{display:flex;flex-direction:column;gap:8px}.upgrade-card .primary{margin-top:auto}.upgrade-price{font-size:28px;font-weight:800;margin:4px 0}.upgrade-price small{font-size:13px;font-weight:400}.upgrade-detail{min-height:52px}.upgrade-card .weapon-tags{min-height:24px}.upgrade-card p{overflow-wrap:anywhere}#demo-banner{position:absolute;top:74px;left:8px;right:8px;text-align:center;background:#112e3b;color:#ffda94;padding:8px;font-size:11px;border-radius:8px;z-index:12}#result-upgrade{font-size:12px;margin:8px 0}#shop-status{margin-top:0}.upgrade-card.equipped{border-color:#dfb670}

/* Public account controls; normal scrolling stays inside the mobile main panel. */
.signup-consent{display:block;margin:14px 0;font-size:.88rem;line-height:1.6}.signup-consent input{width:auto;display:inline-block;margin-right:8px}.legal-links{padding:24px 0 18px;font-size:.85rem;line-height:1.8}.policy{max-width:900px;margin:auto;padding:28px 22px 64px}.policy h2{margin-top:28px}.policy p,.policy li{line-height:1.65}.policy table{width:100%;border-collapse:collapse}.policy td,.policy th{padding:10px;text-align:left;border-bottom:1px solid #46606b}.policy a{overflow-wrap:anywhere}.account-note{border-left:3px solid #70d5c3;padding:12px 16px}.support-actions{display:flex;gap:12px;flex-wrap:wrap}@media print{.policy{color:#000;background:#fff}.policy a{color:#000}}

.offline-panel{margin:0 0 20px}.offline-panel h2{margin-top:0}#offline-status{font-weight:700}#offline-pack-info{font-variant-numeric:tabular-nums}

/* 0.9 launch poster */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body.launch-open{overflow:hidden;overscroll-behavior:none}
.launch-screen{position:fixed;inset:0;z-index:10000;background:#061625;display:grid;place-items:center;overflow:hidden;isolation:isolate;transition:opacity .22s ease,transform .22s ease}
.launch-screen::before{content:"";position:absolute;inset:-5%;background:url('./assets/launch-poster.png?v=0.9.0') center/cover no-repeat;filter:blur(32px) brightness(.34);transform:scale(1.08);z-index:-2}
.launch-screen::after{content:"";position:absolute;inset:0;background:rgba(2,14,24,.28);z-index:-1}
.launch-poster{position:relative;height:min(100svh,177.68vw);width:min(100vw,56.28svh);aspect-ratio:941/1672;max-width:100vw;max-height:100svh;filter:drop-shadow(0 0 34px rgba(0,0,0,.55))}
.launch-poster>img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.launch-play{position:absolute;left:14.6%;top:76.6%;width:70.8%;height:8.9%;border:0;border-radius:1.2rem;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 0 0 0 rgba(255,199,75,0);transition:box-shadow .15s ease,transform .15s ease}
.launch-play:hover,.launch-play:focus-visible{outline:3px solid rgba(255,233,169,.95);outline-offset:4px;box-shadow:0 0 32px 12px rgba(255,190,44,.28);transform:scale(1.012)}
.launch-play:active{transform:scale(.99)}
.launch-leave{opacity:0;transform:scale(1.015);pointer-events:none}
