@font-face{font-family:Michroma;font-style:normal;font-display:swap;font-weight:400;src:url(./michroma-latin-ext-400-normal-BeYM1uOO.woff2) format("woff2"),url(./michroma-latin-ext-400-normal-DlRaauac.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Michroma;font-style:normal;font-display:swap;font-weight:400;src:url(./michroma-latin-400-normal-4gS0VCia.woff2) format("woff2"),url(./michroma-latin-400-normal-C7Pn7qca.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #04060c;--panel: rgba(10, 16, 28, .92);--edge: #1d2b45;--text: #cdd6e4;--dim: #8090a8;--accent: #33ccff;--accent2: #ff7733;--minimap-size: 178px;--minimap-bottom: 14px}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif;user-select:none}#app{position:relative;width:100vw;height:100vh;height:var(--app-height, 100dvh)}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.admin-panel{width:min(1100px,96vw);max-height:92dvh;overflow:auto;padding:24px}.admin-panel h3{margin:18px 0 8px}.admin-panel p,.admin-panel summary{margin:10px 0}.admin-panel form,.admin-players{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.admin-panel input{padding:9px;min-width:160px;flex:1}.admin-table-scroll{overflow:auto}.admin-panel table{border-collapse:collapse;font-size:12px;user-select:text}.admin-panel th,.admin-panel td{padding:8px;border:1px solid var(--edge);text-align:left;max-width:320px;overflow-wrap:anywhere}.admin-status{color:var(--accent)}.match-chat{position:absolute;z-index:35;left:14px;bottom:calc(var(--minimap-bottom) + var(--minimap-size) + 12px);width:min(430px,calc(100vw - 28px));pointer-events:none;font-size:13px}.match-chat[hidden],.chat-form[hidden]{display:none}.chat-controls,.chat-form{display:flex;gap:6px;pointer-events:auto}.match-chat button,.match-chat input{background:#0c1522;color:var(--text);border:1px solid var(--edge);border-radius:4px;padding:7px}.match-chat button{cursor:pointer;font-size:10px}.chat-log{max-height:130px;overflow:auto;margin:5px 0;pointer-events:auto}.chat-log p{background:#04060ccc;padding:4px 7px;overflow-wrap:anywhere;user-select:text}.chat-form input{min-width:0;flex:1;font-size:14px}.chat-status{background:#04060c;color:var(--accent2)}.touch-client .match-chat{bottom:max(190px,calc(var(--minimap-bottom) + var(--minimap-size) + 12px));width:min(430px,calc(100vw - 28px))}#hud{position:absolute;inset:0;pointer-events:none;z-index:5}.fleet-panel{position:absolute;top:14px;min-width:210px;background:var(--panel);border:1px solid var(--edge);border-radius:8px;padding:10px 12px}.fleet-panel.left{left:14px}.fleet-panel.right{right:14px;text-align:right}.fp-title{font-size:11px;letter-spacing:3px;color:var(--dim);margin-bottom:8px}.ship-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;transition:opacity .3s}.fleet-panel.right .ship-row{flex-direction:row-reverse}.ship-name{font-size:11px;font-weight:600;width:84px;white-space:nowrap}.guidance-status{position:absolute;bottom:110px;left:50%;transform:translate(-50%);width:max-content;max-width:calc(100% - 30px);color:#b9f5ff;font-size:clamp(8px,1.5vw,12px);text-align:center;pointer-events:none}.bars{display:flex;flex-direction:column;gap:2px;flex:1}.bar{height:5px;background:#131b2c;border-radius:2px;overflow:hidden}.bar div{height:100%;background:#4ade80;transition:width .15s}.bar.energy div{background:#38bdf8}.bar.special div{background:#c084fc}.bar.special div.ready{box-shadow:0 0 5px #e9d5ff}.bar.special div.armed{background:#fb5a35;box-shadow:0 0 7px #ff704d}.edge-arrow{position:absolute;color:var(--accent2);font-size:26px;text-shadow:0 0 8px currentColor;display:none}.arena-status{position:absolute;top:16px;left:50%;padding:7px 12px;transform:translate(-50%);border:1px solid rgba(255,190,90,.45);border-radius:5px;color:#ffd27a;background:#080c14cc;font-size:10px;font-weight:700;letter-spacing:2px;text-shadow:0 0 8px currentColor}.arena-status.contracting{border-color:#ff5577b3;color:#ff7794}.announce{position:absolute;top:18%;left:0;right:0;text-align:center;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s}.announce.visible{opacity:1;transform:none}.announce-main{font-size:42px;font-weight:800;letter-spacing:8px;color:#fff;text-shadow:0 0 24px var(--accent)}.announce-sub{font-size:15px;color:var(--dim);margin-top:6px;letter-spacing:2px}#screens{position:absolute;inset:0;z-index:10;pointer-events:none}.screen{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,#14203ae6,#04060cf7 70%);display:flex;flex-direction:column;align-items:center;padding-top:7vh;pointer-events:auto;overflow-y:auto}.title-screen{isolation:isolate;overflow-x:hidden;background:radial-gradient(ellipse at 12% 88%,rgba(111,211,255,.06),transparent 52%),radial-gradient(ellipse at 88% 88%,rgba(255,157,92,.06),transparent 52%),radial-gradient(ellipse at 50% 25%,#1a112aeb,#050308f7 70%)}.title-screen:before,.title-screen:after{content:"";position:absolute;z-index:0;pointer-events:none;background-repeat:no-repeat;background-position:center;background-size:contain;mix-blend-mode:screen;filter:saturate(1.08) contrast(1.04);animation:title-assault-drift 8s ease-in-out infinite alternate}.title-screen:before{width:clamp(680px,60vw,980px);aspect-ratio:3 / 2;left:clamp(-360px,-18vw,-190px);top:clamp(210px,26vh,310px);background-image:url(./ballista-assault-CKGqOjaM.webp);opacity:.68;-webkit-mask-image:radial-gradient(ellipse 92% 88% at 44% 56%,#000 48%,transparent 100%);mask-image:radial-gradient(ellipse 92% 88% at 44% 56%,#000 48%,transparent 100%)}.title-screen:after{width:clamp(600px,55vw,900px);aspect-ratio:1403 / 1121;right:clamp(-170px,-8vw,-80px);top:clamp(195px,24vh,280px);background-image:url(./ember-assault-DGlUiEbi.webp);opacity:.62;animation-direction:alternate-reverse;-webkit-mask-image:radial-gradient(ellipse 92% 88% at 60% 54%,#000 48%,transparent 100%);mask-image:radial-gradient(ellipse 92% 88% at 60% 54%,#000 48%,transparent 100%)}.title-screen>*{position:relative;z-index:1}@keyframes title-assault-drift{to{transform:translate3d(0,-8px,0) scale(1.012)}}@media(max-width:1100px){.title-screen:before{left:-380px;opacity:.48}.title-screen:after{right:-350px;opacity:.44}}@media(max-width:700px){.title-screen:before,.title-screen:after{display:none}}.darkstar{position:relative;width:150px;height:150px;margin:1vh 0 -62px;border-radius:50%;background:radial-gradient(circle at 44% 40%,#0b0714,#000 68%);box-shadow:0 0 0 1px #ffd9a0bf,-22px 0 48px -8px #6fd3ff73,22px 0 48px -8px #ff9d5c73}.darkstar:after{content:"";position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,transparent 56%,rgba(255,217,160,.14) 62%,transparent 72%);animation:corona 7s ease-in-out infinite}@keyframes corona{50%{opacity:.35;transform:scale(1.03)}}@media(prefers-reduced-motion:reduce){.darkstar:after,.title-screen:before,.title-screen:after{animation:none}}.logo{position:relative;z-index:1;font-family:Michroma,sans-serif;font-weight:400;font-size:clamp(30px,5.4vw,58px);letter-spacing:.18em;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.9),0 0 34px rgba(255,217,160,.25)}.logo .duel{margin-left:.35em;letter-spacing:.3em;background:linear-gradient(90deg,#6fd3ff,#ff9d5c);-webkit-background-clip:text;background-clip:text;color:transparent}.logo .tm{position:absolute;top:.08em;right:-.9em;color:#b8c4d6;font-family:Segoe UI,system-ui,sans-serif;font-size:.24em;font-weight:600;letter-spacing:0;text-shadow:0 1px 8px #000}.tagline{margin:14px 0 34px;color:var(--dim);letter-spacing:.12em;font-size:13px;text-transform:uppercase}.beta-banner{margin:-20px 16px 20px;max-width:540px;color:#ffd9a0;font-size:12px;line-height:1.5;text-align:center}.beta-banner strong{letter-spacing:.15em}.title-screen .hint{color:#f4f7fc;font-weight:650;padding:8px 14px;border:1px solid rgba(148,176,214,.28);border-radius:7px;background:#03050ad6;box-shadow:0 8px 28px #0000008c,inset 0 0 18px #486fa014;text-shadow:0 1px 4px #000;backdrop-filter:blur(7px)}.hint{margin-top:36px;font-size:12px;color:var(--dim);max-width:720px;text-align:center;line-height:1.7}.beta-note{margin-top:8px;color:#91a5c1;font-size:9px;font-weight:700;letter-spacing:.2em}.title-legal{margin:22px 20px 16px;color:#7d8ca3;font-size:10px;line-height:1.65;text-align:center}.btn.ranked{border-color:#ffd166bf;color:#ffe4a0;box-shadow:inset 0 0 18px #ffc14c14}.btn.account-button{font-size:10px;color:#9db2cf}.panel{width:min(760px,calc(100vw - 32px));padding:24px;border:1px solid var(--edge);border-radius:9px;background:#070c16f0;box-shadow:0 18px 70px #00000073}.panel>h2{margin:4px 0 22px;text-align:center;letter-spacing:.18em}.account-content>p{color:var(--dim);line-height:1.65;text-align:center}.account-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:18px}.account-actions a{text-decoration:none}.account-actions:empty{display:none}.session-actions{flex-direction:column;align-items:center}.session-actions .btn{width:min(100%,320px);min-width:0}.title-audio{margin-top:14px;text-align:center}.account-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.account-summary>div{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid #182641;background:#101a2d8c}.account-summary span,.account-linked>span,.gamertag-form label{color:var(--dim);font-size:9px;letter-spacing:.18em}.account-summary b{color:#edf4ff;font-size:15px}.gamertag-form{margin-top:20px}.gamertag-form>div{display:flex;gap:8px;margin-top:7px}.gamertag-form input{flex:1;min-width:0;padding:10px;border:1px solid #2a3b5c;border-radius:4px;background:#080e1a;color:var(--text);font:inherit;user-select:text}.gamertag-form small{display:block;margin-top:7px;color:var(--dim);line-height:1.4}.account-linked{margin-top:18px;text-align:center;color:#d7e2f2;font-size:12px}.account-status{min-height:20px;margin-top:14px;color:#ffb36f;text-align:center}.account-legal{margin-top:10px;font-size:11px;text-align:center;color:var(--dim)}.account-legal a{color:#8ba0bd;text-underline-offset:3px}.delete-confirm{margin-top:14px;padding:12px;border:1px solid #6b2a2a;background:#3c0e0e59}.delete-confirm p{color:#f3d0d0;font-size:12px;line-height:1.55;text-align:center}.btn.danger{border-color:#f87171;color:#fca5a5}.age-form{display:flex;flex-direction:column;align-items:center;gap:14px}.age-form p{color:var(--text)}.age-form small{color:var(--dim);text-align:center;line-height:1.5;max-width:420px}.age-fields{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:center}.age-fields label{color:var(--dim);font-size:9px;letter-spacing:.18em}.age-fields select{min-width:180px;padding:8px;border:1px solid #2a3b5c;border-radius:4px;background:#080e1a;color:var(--text);font:inherit}[tabindex="-1"]:focus{outline:none}.rating-disclaimer{color:var(--dim);font-size:.72rem;line-height:1.45;margin:.8rem 0;max-width:56rem}.rating-disclaimer a{color:var(--accent)}.leaderboard-panel{width:min(860px,calc(100vw - 32px))}.leaderboard-season{color:var(--dim);text-align:center;margin-bottom:16px}.leaderboard-table{border:1px solid #182641}.leaderboard-table table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.leaderboard-row>*{padding:9px 12px;border-bottom:1px solid #14213a;text-align:left;font-weight:inherit}.leaderboard-row>:first-child{width:56px}.leaderboard-row>:nth-child(n+3){width:100px}tbody .leaderboard-row:last-child>*{border-bottom:0}.leaderboard-row.header>*{color:var(--dim);font-size:9px;letter-spacing:.14em}.leaderboard-row:not(.header)>:nth-child(2){color:#f1f6ff}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:560px){.account-summary{grid-template-columns:1fr}.leaderboard-row>*{padding:8px 5px;font-size:11px}.leaderboard-row>:first-child{width:36px}.leaderboard-row>:nth-child(n+3){width:60px}}.title-legal a{color:#8ba0bd;text-underline-offset:3px}.title-legal a:hover,.title-legal a:focus-visible{color:var(--accent)}.title-legal .terms-assent{color:#8c9bb1;font-size:11px}.title-legal .legal-links{margin-top:3px}.title-legal .build-id{margin-top:4px;color:#76859d;font-family:ui-monospace,monospace}.menu{display:flex;flex-direction:column;gap:12px;align-items:center}.matchmaking-pulse{display:flex;gap:10px;margin:42px 0 20px}.matchmaking-pulse i{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 16px #3cfc;animation:matchmaking-pulse 1.1s ease-in-out infinite}.matchmaking-pulse i:nth-child(2){animation-delay:.16s}.matchmaking-pulse i:nth-child(3){animation-delay:.32s}@keyframes matchmaking-pulse{50%{opacity:.2;transform:scale(.7)}}@media(prefers-reduced-motion:reduce){.matchmaking-pulse i{animation:none}}.btn{pointer-events:auto;background:linear-gradient(180deg,#16233c,#0d1526);color:var(--text);border:1px solid var(--edge);border-radius:6px;padding:12px 34px;font-size:15px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:all .12s;min-width:300px}.btn:hover:not(:disabled){border-color:var(--accent);color:#fff;box-shadow:0 0 18px #33ccff40;transform:translateY(-1px)}.btn:disabled{opacity:.35;cursor:default}.btn.primary{border-color:var(--accent);color:var(--accent)}.btn.small{min-width:0;padding:7px 16px;font-size:12px}.btn.toggled{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 12px #33ccff26}.select-screen{padding-top:3vh;align-items:stretch;padding-left:4vw;padding-right:4vw}.select-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.select-head h2{letter-spacing:6px;font-weight:800}.budget-box{text-align:right}.budget-num{font-size:30px;font-weight:900;color:var(--accent)}.budget-num .budget-sep{color:var(--dim);margin:0 4px}.budget-box.over .budget-num{color:#f87171}#fleet-slots{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:4px}.fleet-count{margin-top:6px;font-size:11px;color:var(--dim)}.slot{font:inherit;font-size:11px;padding:4px 10px;background:none;border:1px dashed var(--edge);border-radius:4px;color:var(--dim);cursor:pointer;min-width:90px;text-align:center}.slot.filled{border-style:solid;border-color:currentColor}.diff-row{display:flex;gap:8px;align-items:center;margin-bottom:12px}.control-choice{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.control-choice small,.control-preference-form small{color:var(--dim)}.control-preference-form{margin-top:24px}.control-preference-form>div{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.control-preference-form .key-bindings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:16px 0}.key-binding-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.key-binding{min-width:120px;max-width:65%;white-space:normal;overflow-wrap:anywhere}.key-binding.capturing{border-color:var(--accent);color:var(--accent)}.binding-status{min-height:1.3em;color:#ffb45c;font-size:12px}.control-preference-form>button{margin-bottom:12px}.control-preference-form>small{display:block}@media(max-width:600px){.control-preference-form .key-bindings{grid-template-columns:1fr}}.control-choice select,.control-preference-form select{max-width:100%;min-width:0;padding:10px;color:var(--text);background:var(--bg);border:1px solid var(--edge);border-radius:5px}.diff-label{color:var(--dim);font-size:12px;letter-spacing:2px;margin-right:6px}.roster-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;margin-bottom:14px}@media(max-width:1100px){.roster-grid{grid-template-columns:repeat(4,1fr)}}.ship-card{position:relative;background:var(--panel);border:1px solid var(--edge);border-radius:8px;padding:8px;text-align:center;cursor:pointer;transition:all .12s;color:inherit;font:inherit}.ship-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 18px #00000080}.ship-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ship-card.selected,.ship-card.selected:hover{border-color:#4ade80;box-shadow:inset 0 0 16px #4ade8024}.ship-card.selected:after{content:"SELECTED";position:absolute;top:6px;right:6px;padding:2px 5px;border-radius:3px;background:#061812eb;color:#4ade80;font-size:8px;font-weight:800;letter-spacing:1px}.ship-card.selected .ship-card-art{opacity:.55}.ship-card-art{display:block;width:88px;height:72px;max-width:100%;margin:0 auto;object-fit:contain;filter:drop-shadow(0 0 7px rgba(120,200,255,.22))}.ship-card[data-id="7"] .ship-card-art{filter:brightness(.76) contrast(1.06) drop-shadow(0 0 5px rgba(187,136,255,.16))}.ship-card[data-id="11"] .ship-card-art{filter:brightness(.58) contrast(1.1) drop-shadow(0 0 4px rgba(120,200,255,.13))}.ship-card[data-id="12"] .ship-card-art{filter:brightness(.8) contrast(1.04) drop-shadow(0 0 5px rgba(255,181,112,.16))}.ship-card[data-id="0"] .ship-card-art{filter:brightness(1.12) contrast(1.02) drop-shadow(0 0 7px rgba(255,85,51,.25))}.ship-card[data-id="9"] .ship-card-art{filter:brightness(1.42) contrast(.98) drop-shadow(0 0 8px rgba(255,51,85,.3))}.ship-card[data-id="13"] .ship-card-art{filter:brightness(1.18) contrast(1.02) drop-shadow(0 0 8px rgba(187,136,255,.28))}.sc-name{font-size:13px;font-weight:700;margin-top:2px}.sc-cost{font-size:12px;color:var(--accent);font-weight:600}.select-foot{display:flex;gap:20px;align-items:center;margin-bottom:20px}.ship-detail{flex:1;background:var(--panel);border:1px solid var(--edge);border-radius:8px;padding:12px 16px;font-size:13px;line-height:1.65;min-height:190px}.ship-detail .kv{color:var(--accent);font-weight:700;font-size:11px;letter-spacing:1px;margin-right:6px}.add-btn{margin-left:12px}.lobby-cols{display:flex;gap:40px;margin-top:20px}.lobby-col{display:flex;flex-direction:column;gap:10px;width:380px}.lobby-col h3{letter-spacing:4px;color:var(--accent)}.lobby-col textarea{height:74px;background:#0a101e;border:1px solid var(--edge);border-radius:6px;color:var(--text);font-family:monospace;font-size:10px;padding:8px;resize:none;pointer-events:auto}.lobby-status{margin-top:16px;color:var(--accent);min-height:22px}.lan-screen{padding-top:9vh}.lan-screen .hint{margin-top:12px}.lan-screen code{color:var(--text);user-select:text}.lan-share{width:min(720px,90vw);margin-top:20px;padding:14px 16px;border:1px solid var(--accent);border-radius:8px;background:#0c1c2eeb}.lan-share[hidden]{display:none}.lan-share>span{display:block;margin-bottom:8px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:2px}.lan-share>div{display:flex;gap:8px}.lan-share input{flex:1;min-width:0;padding:9px 11px;color:var(--text);background:#070d18;border:1px solid var(--edge);border-radius:5px;font:12px monospace;user-select:text}.lan-share .btn{min-width:150px}.lan-card{width:min(720px,90vw);min-height:270px;margin-top:24px;padding:22px;background:var(--panel);border:1px solid var(--edge);border-radius:10px;box-shadow:0 18px 60px #00000059}.lan-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.lan-heading h3{color:var(--accent);letter-spacing:4px}.lan-heading p{margin-top:5px;color:var(--dim);font-size:12px}.lan-live{color:#4ade80;font-size:10px;letter-spacing:2px}.lan-live i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor;animation:lan-pulse 1.4s ease-in-out infinite}.lan-live.offline{color:#f87171}.lan-live.offline i{animation:none}@keyframes lan-pulse{50%{opacity:.3}}.lan-peers{display:flex;flex-direction:column;gap:9px}.lan-empty{padding:52px 20px;text-align:center;color:var(--dim);border:1px dashed var(--edge);border-radius:7px;font-size:13px}.lan-peer{display:grid;grid-template-columns:1fr 170px 130px;align-items:center;width:100%;padding:14px 16px;color:var(--text);background:#0a101e;border:1px solid var(--edge);border-radius:7px;cursor:pointer;text-align:left;transition:border-color .12s,transform .12s,background .12s}.lan-peer:hover:not(:disabled){border-color:var(--accent);background:#101a2c;transform:translate(2px)}.lan-peer:disabled{cursor:default;opacity:.55}.lan-peer-name{font-size:15px;font-weight:700;letter-spacing:1px}.lan-peer-address{color:var(--dim);font:11px monospace}.lan-peer-action{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:1px;text-align:right}.lan-actions{display:flex;gap:12px;margin-top:14px}.lan-actions .btn{min-width:250px}@media(max-width:700px){.lan-share>div{flex-direction:column}.lan-peer{grid-template-columns:1fr auto}.lan-peer-address{display:none}.lan-actions{flex-direction:column}}.overlay{position:absolute;inset:0;background:#03050ad1;backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;pointer-events:auto;z-index:20}.overlay h2{font-size:52px;letter-spacing:12px;font-weight:900;color:#fff}.overlay h2.win{color:#4ade80;text-shadow:0 0 30px #4ade8088}.overlay h2.lose{color:#f87171;text-shadow:0 0 30px #f8717188}.overlay p{color:var(--dim);text-align:center;line-height:1.7;max-width:520px}.pick-overlay p{color:var(--dim);letter-spacing:2px;margin-top:-14px}.pick-grid{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;max-width:900px}.pick-card{min-width:120px}.ship-row.current .ship-name{text-shadow:0 0 8px currentColor}.codex-label{position:absolute;transform:translate(-50%);text-align:center;pointer-events:none;font-size:15px;letter-spacing:2px}.codex-label span{display:block;font-size:11px;color:var(--dim)}.detail-head{display:flex;align-items:baseline;gap:14px;margin-bottom:6px}.detail-head b{font-size:17px}.race-tag{font-size:10px;letter-spacing:3px;font-weight:700;border:1px solid currentColor;border-radius:3px;padding:2px 8px;opacity:.85}.cost-tag{margin-left:auto;color:var(--accent);font-weight:800;font-size:13px}.lore{font-style:italic;color:#9aa8bd;font-size:12.5px;line-height:1.55;border-left:2px solid var(--edge);padding-left:10px;margin:4px 0 10px 2px}.detail-stats{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:6px;margin:9px 0}.detail-stats>div{display:flex;justify-content:space-between;gap:10px;padding:5px 7px;border:1px solid #25344d;border-radius:4px;background:#070c169e}.detail-stats span{color:var(--dim);font-size:8px;letter-spacing:1px}.detail-stats b{color:#dce9fa;font-size:10px;white-space:nowrap}.effect-strip{display:flex;gap:8px;margin:8px 0 9px}.effect-strip figure{position:relative;margin:0;width:90px;height:48px;border:1px solid #25344d;border-radius:5px;overflow:hidden;background:radial-gradient(circle,#142238,#070b13 72%)}.effect-strip img{width:100%;height:100%;object-fit:contain;padding:3px}.effect-strip figcaption{position:absolute;left:4px;bottom:2px;max-width:calc(100% - 8px);overflow:hidden;color:#b9c9df;font-size:7px;letter-spacing:.7px;line-height:1;white-space:nowrap;text-shadow:0 1px 3px #000}.ability-block{font-size:12.5px;line-height:1.7}.ab-cost{color:var(--dim);font-size:11px}.minimap{position:absolute;left:14px;bottom:var(--minimap-bottom);width:var(--minimap-size);height:var(--minimap-size);border:1px solid var(--edge);border-radius:8px}.minimap.contracting{border-color:#ff5577b8;box-shadow:0 0 12px #ff375f47}html.touch-client,html.touch-client body{position:fixed;inset:0;-webkit-touch-callout:none}html.touch-client #game-canvas{touch-action:none}html.touch-client .screen,html.touch-client .overlay{touch-action:pan-y;-webkit-overflow-scrolling:touch}html.touch-client button,html.touch-client a,html.touch-client .slot,html.touch-client .ship-card,html.touch-client .lan-peer{touch-action:manipulation;-webkit-tap-highlight-color:transparent}html.touch-client input,html.touch-client textarea{touch-action:auto;user-select:text}.orientation-guard{display:none;position:absolute;inset:0;z-index:120;padding:max(24px,env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));place-items:center;pointer-events:auto;text-align:center;background:radial-gradient(circle at 50% 38%,rgba(51,204,255,.14),transparent 42%),#04060cfb}.orientation-guard-card{width:min(380px,90vw);padding:28px 22px;border:1px solid rgba(105,159,205,.4);border-radius:14px;background:#0a101cf0;box-shadow:0 20px 70px #000}.orientation-phone{width:52px;height:82px;margin:0 auto 24px;border:3px solid var(--accent);border-radius:9px;color:var(--accent);font-size:34px;line-height:76px;box-shadow:0 0 22px #3cf3;animation:orient-phone 1.8s ease-in-out infinite}.orientation-guard h1{color:#fff;font-family:Michroma,sans-serif;font-size:18px;letter-spacing:.14em}.orientation-guard p{margin-top:14px;color:#91a5c1;line-height:1.55}@keyframes orient-phone{50%{transform:rotate(90deg)}to{transform:rotate(90deg)}}@media(orientation:portrait){html.touch-client .orientation-guard{display:grid}}@media(prefers-reduced-motion:reduce){.orientation-phone{animation:none;transform:rotate(90deg)}}#touch-controls{display:none;position:fixed;inset:0;height:var(--app-height, 100dvh);z-index:8;pointer-events:none}#touch-controls.visible{display:block}#touch-controls button{touch-action:none}.steering-pad{position:absolute;left:max(14px,calc(env(safe-area-inset-left,0px) + 8px));bottom:max(14px,calc(env(safe-area-inset-bottom,0px) + 8px));display:flex;gap:12px}.steering-pad .touch-action{width:clamp(76px,22vh,104px);border-radius:24px;font-size:28px}.action-pad{position:absolute;right:max(14px,calc(env(safe-area-inset-right,0px) + 8px));bottom:max(18px,calc(env(safe-area-inset-bottom,0px) + 10px));display:grid;grid-template-columns:repeat(2,auto);align-items:end;justify-items:center;gap:12px}.action-pad .special{grid-column:2;grid-row:1}.action-pad .fire{grid-column:2;grid-row:2}.action-pad .thrust{grid-column:1;grid-row:2}.touch-action,.touch-utility-button{border:1px solid rgba(141,185,218,.58);color:#e2edf7;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;background:#0a1626c2;box-shadow:0 5px 24px #0000007a,inset 0 0 18px #64a9d817}.touch-action{width:clamp(72px,20vh,96px);aspect-ratio:1;border-radius:50%;font-size:clamp(8px,1.8vh,11px);font-weight:900;letter-spacing:.08em}.touch-action.fire{width:clamp(86px,24vh,112px);border-color:#ff8f5ead;background:radial-gradient(circle at 42% 35%,#bc4b2785,#371311d1);box-shadow:0 5px 28px #00000080,inset 0 0 20px #ff7a3f1f}.touch-action.thrust{width:clamp(86px,24vh,112px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:24px}.thrust-status{font-size:19px;letter-spacing:.12em}.touch-action.thrust small{font-size:7px;letter-spacing:0}.touch-action.active{color:#fff;border-color:#9fe5ff;background-color:#2a759dd1;box-shadow:0 0 24px #33ccff85,inset 0 0 24px #88dfff38;transform:scale(.94)}.touch-action.thrust.active{transform:none;background:#165575;border:2px solid #9fe5ff}.touch-action.fire.active{border-color:#ffb188;box-shadow:0 0 28px #ff683394,inset 0 0 25px #ffb58933}.touch-utility{position:absolute;top:max(7px,env(safe-area-inset-top,0px));left:50%;display:flex;gap:8px;transform:translate(-50%)}.touch-utility-button{width:38px;height:32px;border-radius:6px;font-size:14px}html.touch-client{--minimap-size: 112px;--minimap-bottom: max(8px, env(safe-area-inset-bottom, 0px))}html.touch-client .minimap{left:50%;opacity:.72;transform:translate(-50%)}html.touch-client .menu{display:grid;grid-template-columns:repeat(2,minmax(190px,1fr));width:min(680px,90vw)}html.touch-client .menu .btn{min-width:0}html.touch-client .roster-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.install-guide{position:fixed;inset:0;z-index:110;display:grid;height:var(--app-height, 100dvh);padding:max(10px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));place-items:center;overflow-y:auto;pointer-events:auto;touch-action:pan-y;background:#03050af0;backdrop-filter:blur(8px)}.install-guide[hidden]{display:none}.install-guide-card{width:min(620px,94vw);padding:24px 28px;border:1px solid rgba(76,182,231,.48);border-radius:12px;background:#09101df7;box-shadow:0 20px 70px #000,inset 0 0 28px #33ccff0f}.install-guide-kicker{color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.22em}.install-guide h1{margin-top:7px;color:#fff;font-size:21px;letter-spacing:.08em}.install-guide-card>p:not(.install-guide-kicker){margin-top:12px;color:#a8b7ca;font-size:13px;line-height:1.5}.install-guide ol{margin:13px 0 17px 22px;color:#dbe6f3;font-size:13px;line-height:1.65}.install-guide .btn{width:100%;min-width:0}.install-help-link{border:0;color:var(--accent);font:inherit;font-weight:800;letter-spacing:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;background:none}@media(orientation:landscape)and (max-height:600px){html.touch-client .screen{padding:max(7px,env(safe-area-inset-top,0px)) max(12px,calc(env(safe-area-inset-right,0px) + 6px)) max(7px,env(safe-area-inset-bottom,0px)) max(12px,calc(env(safe-area-inset-left,0px) + 6px))}html.touch-client .title-screen{justify-content:flex-start}html.touch-client .title-screen:before,html.touch-client .title-screen:after,html.touch-client .darkstar{display:none}html.touch-client .logo{font-size:clamp(25px,7vh,38px);letter-spacing:.1em}html.touch-client .tagline{margin:5px 0 9px;font-size:8px}html.touch-client .menu{display:grid;grid-template-columns:repeat(2,minmax(190px,1fr));width:min(680px,90vw);gap:6px 8px}html.touch-client .menu .btn{min-width:0;min-height:36px;padding:7px 12px;font-size:9px}html.touch-client .title-screen .hint{margin-top:8px;padding:5px 10px;font-size:9px;line-height:1.3}html.touch-client .beta-note{margin-top:5px;font-size:7px}html.touch-client .title-legal{margin:7px 12px 4px;font-size:7px;line-height:1.25}html.touch-client .title-legal>p:not(.terms-assent):not(.legal-links):not(.build-id){display:none}html.touch-client .title-legal .terms-assent{font-size:8px}html.touch-client .title-legal .legal-links,html.touch-client .title-legal .build-id{margin-top:2px}html.touch-client .select-screen{align-items:stretch}html.touch-client .select-head{gap:8px;margin-bottom:4px}html.touch-client .select-head h2{font-size:15px;letter-spacing:3px}html.touch-client .select-head .btn{min-width:0;min-height:32px;padding:5px 11px;font-size:9px}html.touch-client .budget-num{font-size:18px}html.touch-client #fleet-slots{gap:3px;margin-top:1px}html.touch-client .slot{width:25px;min-width:25px;height:17px;overflow:hidden;padding:1px;font-size:0}html.touch-client .slot.filled:after{content:"✓";font-size:9px}html.touch-client .diff-row{gap:3px;margin-bottom:4px}html.touch-client .diff-label{font-size:8px;letter-spacing:1px}html.touch-client .diff-row .btn{min-height:27px;padding:4px 8px;font-size:8px;letter-spacing:1px}html.touch-client .roster-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;margin-bottom:5px}html.touch-client .ship-card{min-width:0;padding:2px;border-radius:4px}html.touch-client .ship-card:hover{transform:none}html.touch-client .ship-card-art{width:45px;height:clamp(29px,8.5vh,39px)}html.touch-client .ship-card.selected:after{display:none}html.touch-client .ship-card.selected .ship-card-art{opacity:.72}html.touch-client .sc-name{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}html.touch-client .sc-cost{font-size:7px}html.touch-client .select-foot{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:6px;min-height:0;margin-bottom:0}html.touch-client .ship-detail{min-height:68px;max-height:90px;overflow-y:auto;padding:5px 7px;font-size:8px;line-height:1.2}html.touch-client .detail-head{gap:6px;margin-bottom:3px}html.touch-client .detail-head b{font-size:11px}html.touch-client .race-tag{padding:1px 4px;font-size:7px;letter-spacing:1px}html.touch-client .cost-tag{font-size:8px}html.touch-client .lore,html.touch-client .detail-stats,html.touch-client .effect-strip{display:none}html.touch-client .ability-block{font-size:8px;line-height:1.3}html.touch-client .ship-detail .kv,html.touch-client .ab-cost{font-size:7px}html.touch-client .add-btn{float:right;min-width:0;min-height:26px;margin:3px 0 0 6px;padding:4px 7px;font-size:7px}html.touch-client .launch{min-width:0;min-height:56px;padding:8px;font-size:10px}html.touch-client .fleet-panel{top:max(5px,env(safe-area-inset-top,0px));min-width:140px;max-width:29vw;padding:5px 7px;border-radius:5px}html.touch-client .fleet-panel.left{left:max(5px,env(safe-area-inset-left,0px))}html.touch-client .fleet-panel.right{right:max(5px,env(safe-area-inset-right,0px))}html.touch-client .fp-title{display:none}html.touch-client .ship-row{gap:4px;margin-bottom:2px}html.touch-client .ship-name{width:64px;font-size:7px}html.touch-client .bars{gap:1px}html.touch-client .bar{height:3px}html.touch-client .minimap{display:none}html.touch-client .arena-status{top:48px;padding:4px 7px;font-size:7px}html.touch-client .announce{top:15%}html.touch-client .announce-main{font-size:24px;letter-spacing:4px}html.touch-client .announce-sub{margin-top:2px;font-size:9px}html.touch-client .overlay{gap:10px;padding:10px max(16px,env(safe-area-inset-left,0px))}html.touch-client .overlay h2{font-size:25px;letter-spacing:6px}html.touch-client .overlay p{font-size:10px;line-height:1.35}html.touch-client .overlay .btn{min-width:240px;min-height:34px;padding:7px 15px;font-size:10px}html.touch-client .pick-overlay p{margin-top:-4px}html.touch-client .pick-grid{gap:5px}html.touch-client .pick-card{min-width:90px}html.touch-client .lan-screen{padding-top:max(10px,env(safe-area-inset-top,0px))}html.touch-client .lobby-screen h2{font-size:18px}html.touch-client .lobby-screen .hint{margin-top:5px;font-size:9px;line-height:1.3}html.touch-client .matchmaking-pulse{margin:16px 0 8px}html.touch-client .lobby-status{margin-top:6px;font-size:10px}html.touch-client .lan-actions{width:min(600px,100%);gap:7px;margin-top:7px}html.touch-client .lan-actions .btn{flex:1;min-width:0;min-height:34px;padding:6px;font-size:9px}html.touch-client .lan-card{min-height:120px;margin-top:7px;padding:9px}html.touch-client .lan-heading{margin-bottom:7px}html.touch-client .lan-empty{padding:12px}html.touch-client .lobby-cols{width:100%;gap:8px;margin-top:6px}html.touch-client .lobby-col{flex:1;width:auto;gap:3px}html.touch-client .lobby-col h3{font-size:10px;letter-spacing:2px}html.touch-client .lobby-col .btn{min-width:0;min-height:27px;padding:4px 7px;font-size:8px}html.touch-client .lobby-col textarea{height:32px;padding:4px;font-size:7px}html.touch-client .lobby-screen>.back2{min-width:180px;min-height:29px;padding:5px;font-size:8px}html.touch-client .install-guide-card{width:min(680px,92vw);padding:12px 18px}html.touch-client .install-guide h1{margin-top:3px;font-size:15px}html.touch-client .install-guide-card>p:not(.install-guide-kicker){margin-top:6px;font-size:9px;line-height:1.3}html.touch-client .install-guide ol{margin:6px 0 8px 18px;font-size:9px;line-height:1.45}html.touch-client .install-guide .btn{min-height:34px;padding:6px;font-size:9px}}@media(orientation:landscape)and (max-height:360px){html.touch-client .title-screen .hint{display:none}html.touch-client .menu .btn{min-height:31px;padding:5px 9px}html.touch-client .title-legal{margin-top:4px}html.touch-client .ship-detail{min-height:58px;max-height:68px}html.touch-client .launch{min-height:48px}}
