:root{color:#e0eaf3;font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent:#79e6cf;--line:#8edbd530;--panel:#08132299;--panel-solid:#081322;--muted:#8b9caf;--weapon:#e2aaff;background:#070e20;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}main{background:radial-gradient(at 80% 35%,#14284170,#0000 55%);flex-direction:column;min-height:100vh;display:flex}header,footer{border-bottom:1px solid #8edbd51c;align-items:center;gap:24px;padding:22px 4vw;display:flex}.brand{color:#e0eaf3;letter-spacing:3px;font-weight:750;text-decoration:none}.brand span,em{color:var(--accent)}.tag,.status,.eyebrow,footer,label,.hud-stat,.hud-bottom,.ordnance-status{letter-spacing:1.5px;font:11px/1.7 ui-monospace,Consolas,monospace}.status{color:var(--accent);margin-left:auto}.tag,.muted,footer{color:var(--muted)}.launch{width:min(1100px,90vw);margin:auto;padding:70px 0}.eyebrow{color:var(--accent)}h1{letter-spacing:-3px;margin:24px 0;font-size:clamp(42px,6vw,82px);font-weight:500;line-height:1.08}em{font-style:normal}p{line-height:1.7}.menu{gap:18px;max-width:410px;margin:38px 0;display:grid}button,input,select{font:inherit;border:1px solid #79e6cf50;border-radius:3px}select{color:#e0eaf3;background:#070e20;padding:12px}button{cursor:pointer;background:var(--accent);color:#081d23;padding:12px 18px;font-weight:650}button span{float:right}button:hover{filter:brightness(1.15)}button:disabled{cursor:default;opacity:.4}button:focus-visible,input:focus-visible{outline-offset:4px;outline:2px solid #cce783}.secondary{color:#c6d9e4;background:#12253b80;border-color:#7ba3b340}input{color:#e0eaf3;background:#070e20;min-width:0;padding:12px}.join{gap:8px;margin-top:8px;display:flex}.join input{flex:1}footer{border-top:1px solid #8edbd51c;border-bottom:0;justify-content:space-between;margin-top:auto;font-size:10px}.title-screen{background:radial-gradient(at 25%,#1a3a5a80,#0000 60%),radial-gradient(at 90% 100%,#2b1a4a80,#0000 55%),#050a16;flex:1;grid-template-columns:1fr minmax(300px,400px);align-items:center;gap:4vw;min-height:100vh;padding:0 8vw;display:grid;position:relative;overflow:hidden}.starfield{pointer-events:none;opacity:.7;background-image:radial-gradient(1px 1px at 20px 30px,#fff,#0000),radial-gradient(1px 1px at 140px 90px,#bfe,#0000),radial-gradient(1.5px 1.5px at 80px 160px,#fff,#0000),radial-gradient(1px 1px at 200px 200px,#9cf,#0000);background-size:240px 240px;animation:240s linear infinite drift;position:absolute;inset:-50%}@keyframes drift{to{transform:translate(240px,480px)}}.title-logo,.title-menu{position:relative}.title-logo h1{letter-spacing:8px;text-shadow:0 0 40px #79e6cf40;margin:20px 0;font-size:clamp(54px,9vw,130px);font-weight:800;line-height:.95}.title-logo h1 em{text-shadow:0 0 30px #79e6cf90}.title-menu{border-left:2px solid var(--line);flex-direction:column;gap:6px;padding:28px 0 28px 28px;display:flex}.title-menu form{display:contents}.title-menu button{text-align:left;text-transform:uppercase;letter-spacing:3px;color:#c6d9e4;background:0 0;border:1px solid #0000;border-left-width:3px;padding:14px 20px;font-weight:600;transition:transform .12s,background .12s,border-color .12s}.title-menu button span{letter-spacing:1.5px;color:var(--muted);font:10px/1.9 ui-monospace,Consolas,monospace}.title-menu button:hover:not(:disabled),.title-menu button:focus-visible,.title-menu button.active{filter:none;color:#fff;border-left-color:var(--accent);background:linear-gradient(90deg,#79e6cf30,#0000);outline:none;transform:translate(10px)}.title-menu input{margin-bottom:8px;padding:14px 16px}.title-menu .eyebrow{margin-bottom:8px}.title-status{letter-spacing:1.5px;color:var(--accent);min-height:1.7em;margin-top:16px;font:11px/1.7 ui-monospace,Consolas,monospace}.title-footer{border:0;padding:18px 4vw;position:absolute;bottom:0;left:0;right:0}@media (width<=760px){.title-screen{grid-template-columns:1fr;align-content:center;gap:12px;padding:0 6vw}.title-menu{border-left:0;padding-left:0}.title-footer{position:static}}@media (prefers-reduced-motion:reduce){.starfield{animation:none}.title-menu button{transition:none}}main.in-game{background:#070e20;height:100vh;min-height:0;position:relative;overflow:hidden}.arena{position:absolute;inset:0}canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}canvas:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.loading{place-items:center;margin:0;display:grid;position:absolute;inset:0}.hud-top{z-index:3;pointer-events:none;background:linear-gradient(#070e20ee,#070e2000);align-items:center;gap:20px;padding:8px 16px;display:flex;position:absolute;top:0;left:0;right:0}.hud-top>*{pointer-events:auto}.hud-top .brand{font-size:13px}.hud-top button{padding:6px 12px;font-size:12px}.hud-stat strong{color:#fff}.hud-timer{color:#ffbc68;min-width:72px;font:700 20px ui-monospace,Consolas,monospace}.dock{z-index:2;background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-direction:column;gap:12px;width:270px;padding:14px;display:flex;position:absolute;top:52px;bottom:12px;overflow-y:auto}.dock-left{left:12px}.dock-hint{margin:0;font-size:13px}.fleet{gap:6px;display:grid}.fleet button{text-transform:capitalize;text-align:left;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.fleet button span{float:none;font:11px ui-monospace,Consolas,monospace}.maneuver{border-top:1px solid var(--line);gap:10px;padding-top:10px;display:grid}.maneuver label{gap:4px;display:grid}input[type=range]{width:100%;accent-color:var(--accent);padding:0}.ordnance-status{color:#aec5dc}.maneuver,.maneuver label{grid-template-columns:minmax(0,1fr);min-width:0}.execute{letter-spacing:1px;text-transform:uppercase;padding:16px;font-size:16px}.view-controls{z-index:2;gap:6px;display:grid;position:absolute;top:96px;right:12px}.view-controls button{width:40px;height:40px;padding:0;font-size:18px}.hud-bottom{z-index:2;pointer-events:none;text-shadow:0 1px 3px #070e20;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 18px;padding:4px 14px;display:flex;position:absolute;top:52px;left:294px;right:64px}.combat-log{overflow-wrap:anywhere;border-top:1px solid var(--line);padding-top:10px;font:12px/1.7 ui-monospace,Consolas,monospace}.error{z-index:10;background:#482e32;border:1px solid #ff907e60;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex;position:fixed;top:52px;left:50%;transform:translate(-50%)}.error button{color:#fff;background:0 0;padding:4px 10px}@media (width<=1000px){.tag{display:none}.dock{width:220px}.hud-bottom,.weapon-dock{left:244px}.hud-top{flex-wrap:wrap;gap:10px}}.weapon-dock{z-index:2;pointer-events:none;justify-content:center;align-items:stretch;gap:8px;display:flex;position:absolute;bottom:12px;left:294px;right:12px}.weapon-dock>*{pointer-events:auto}.weapon-dock button span{float:none}.weapon-bar{background:#081322ee;border:1px solid #ac8add55;border-radius:6px;flex-direction:column;flex:0 860px;gap:6px;min-width:0;padding:8px 10px;display:flex;box-shadow:0 10px 40px #00000080}.weapon-bar .dock-hint{text-align:center;padding:18px 6px}.weapon-strip{letter-spacing:1.2px;color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 14px;font:500 11px ui-monospace,Consolas,monospace;display:flex}.weapon-strip strong{color:#e0eaf3}.weapon-strip .meter{align-items:center;gap:6px;display:flex}.weapon-strip .meter i{background:#ffffff1a;border-radius:3px;width:64px;height:6px;display:block;overflow:hidden}.weapon-strip .meter b{background:var(--accent);height:100%;display:block}.weapon-strip .shield b{background:#6cc4ff}.weapon-strip .strip-end{margin-left:auto}.lanes{flex-direction:column;gap:2px;display:flex}.lane-scale{height:12px;color:var(--muted);justify-content:space-between;margin-left:30px;font:500 10px ui-monospace,Consolas,monospace;display:flex}.lane-row{align-items:center;gap:8px;height:14px;display:flex}.lane-letter{text-align:right;width:22px;font:700 10px ui-monospace,Consolas,monospace}.lane{cursor:copy;touch-action:none;background:#ffffff06 linear-gradient(90deg,#0000 calc(33.33% - 1px),#8edbd530 calc(33.33% - 1px) 33.33%,#0000 33.33% calc(66.66% - 1px),#8edbd530 calc(66.66% - 1px) 66.66%,#0000 66.66%);border-radius:3px;flex:1;height:14px;position:relative}.lane:hover:not(.off){background-color:#ffffff10}.lane:focus-visible{outline-offset:1px;outline:2px solid #cce783}.lane.off{cursor:default;opacity:.45}.lane-lock{background:repeating-linear-gradient(135deg,#ffbc6830 0 4px,#0000 4px 8px);border-radius:3px 0 0 3px;position:absolute;top:0;bottom:0;left:0}.lane-trail{opacity:.45;background:currentColor;height:2px;position:absolute;top:6px}.lane .chip{cursor:grab;background:currentColor;border:1.5px solid;border-radius:3px;width:12px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 8px}.lane .chip.repeat{background:var(--panel-solid);width:8px;height:8px;box-shadow:none}.slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.slot{background:#ffffff05;border:1.5px solid #ffffff1f;border-radius:5px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.slot.armed{border-color:color-mix(in srgb, var(--slot) 60%, transparent);background:color-mix(in srgb, var(--slot) 10%, transparent)}.slot.active{border-color:var(--slot);box-shadow:0 0 0 2px color-mix(in srgb, var(--slot) 25%, transparent), 0 0 22px color-mix(in srgb, var(--slot) 25%, transparent)}.slot.empty{opacity:.5}.slot button{font:inherit;color:#e0eaf3;background:0 0;border:0;border-radius:0}.slot button:hover:not(:disabled){filter:none;background:#ffffff10}.slot button:disabled{opacity:1}.slot-main{text-align:left;flex-direction:column;gap:4px;padding:6px 8px 4px;font-weight:400;display:flex}.slot-head{align-items:center;gap:8px;width:100%;display:flex}.slot-head kbd{background:#00000040;border:1px solid #ffffff40;border-radius:3px;flex:none;place-items:center;width:20px;height:20px;font:700 11px ui-monospace,Consolas,monospace;display:grid}.slot-icon{color:var(--slot);display:flex}.slot-name{letter-spacing:1.2px;font-size:12px;font-weight:700}.pips{align-items:center;gap:3px;margin-left:auto;display:flex}.pips i{background:var(--slot);border:1px solid var(--slot);border-radius:1px;width:6px;height:12px}.pips i.spending{background:#fff}.pips i.spent{background:0 0}.pips .infinite{color:var(--muted);font:600 13px ui-monospace,Consolas,monospace}.slot-status{white-space:nowrap;gap:6px;width:100%;font:600 12px ui-monospace,Consolas,monospace;display:flex}.slot-status>:first-child{text-overflow:ellipsis;overflow:hidden}.slot-status .muted{color:var(--muted)}.slot-status .warn{color:#ffbc68}.slot-status .mark{margin-left:auto}.slot-status .ok{color:var(--accent)}.slot-shots{border-top:1px solid #ffffff14;align-items:center;height:26px;display:flex}.slot-shots span{text-align:center;color:#c6d9e4;letter-spacing:1px;white-space:nowrap;flex:1;font:600 11px ui-monospace,Consolas,monospace;overflow:hidden}.slot .step{width:44px;height:26px;padding:0;font:700 15px ui-monospace,Consolas,monospace}.slot .step:disabled{opacity:.3}.turn-controls{flex-direction:column;flex:0 0 150px;gap:8px;display:flex}.ship-nav{flex:1;gap:6px;display:flex}.ship-nav button{background:#081322ee;border-color:#8edbd540;border-radius:6px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:0;display:flex}.ship-nav button span{letter-spacing:1px;color:var(--muted);font:600 10px ui-monospace,Consolas,monospace}.turn-controls .execute{letter-spacing:2px;text-transform:uppercase;border-radius:6px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:0 8px;font-size:15px;font-weight:800;display:flex;box-shadow:0 0 30px #79e6cf40}.turn-controls .execute span{letter-spacing:1px;opacity:.75;text-transform:none;font:600 10px ui-monospace,Consolas,monospace}.ship-labels{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.ship-label{white-space:nowrap;letter-spacing:1px;background:#070e20b0;border:1px solid #0000;border-radius:2px;padding:2px 5px;font:600 10px/1.2 ui-monospace,Consolas,monospace;position:absolute;top:0;left:0}.ship-label.team-0{color:#69eddb}.ship-label.team-1{color:#ff907e}.ship-label.selected{color:#fff;border-color:#ffffffa0}.ready-chip{border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:2px 8px}.ready-chip.is-ready{color:#081d23;background:var(--accent);border-color:var(--accent)}.ship-card{color:#d6e4ee;font-size:13px}.modal{z-index:20;background:#040914c0;place-items:center;display:grid;position:fixed;inset:0}.modal-card{background:var(--panel-solid);border:1px solid var(--line);gap:14px;width:min(420px,90vw);padding:24px;display:grid}.modal-card h2{letter-spacing:1px;margin:0 0 4px;font-weight:500}.modal-card label{gap:6px;display:grid}.modal-card .check{align-items:center;gap:10px;display:flex}.modal-card .check input{width:18px;height:18px;padding:0}.modal-card p{margin:0;font-size:12px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.module-list{flex-wrap:wrap;gap:6px;display:flex}.module-chip{color:#c9d4e2;border:1px solid #8b9caf60;border-radius:4px;padding:2px 6px;font-size:11px}.module-weapon{border-color:#ac8add80}.module-shield{color:#9fd9ff;border-color:#6cc4ff90}.module-utility{color:#ffe9a3;border-color:#ffdf7580}.fleet-screen{z-index:5;background:radial-gradient(at 20% 0,#1a3a5a80,#0000 60%),#050a16;flex-direction:column;gap:14px;padding:24px 5vw;display:flex;position:absolute;inset:0;overflow-y:auto}.fleet-head{border:0;flex-wrap:wrap;align-items:baseline;gap:6px 20px;padding:0;display:flex}.fleet-head h2{letter-spacing:2px;text-transform:uppercase;margin:0;font-weight:500}.fleet-head .hud-timer.urgent{color:#ff907e}.fleet-body{grid-template-columns:minmax(220px,280px) 1fr;align-items:start;gap:20px;display:grid}.fleet-list{gap:6px;display:grid}.fleet-list button{text-align:left;gap:2px;display:grid}.fleet-list button span{float:none;font:11px ui-monospace,Consolas,monospace}.fleet-list .selected{background:var(--accent)}.fleet-detail{gap:14px;display:grid}.fleet-title{flex-wrap:wrap;align-items:center;gap:12px 24px;display:flex}.fleet-title h3{margin:0;font-weight:500}.fleet-title input{width:min(320px,100%);font-size:18px}.budget{letter-spacing:1px;gap:4px;min-width:240px;font:12px ui-monospace,Consolas,monospace;display:grid}.budget strong{color:#fff;font-size:16px}.budget-bar{border:1px solid var(--line);background:#12253b;height:8px}.budget-bar div{background:var(--accent);height:100%}.budget.over{color:#ff907e}.budget.over .budget-bar div{background:#ff907e}.fleet-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fleet-actions .spacer{flex:1}.fleet-actions .execute{padding:12px 28px}.fleet-error{color:#ff907e;font-size:13px}@media (width<=760px){.fleet-body{grid-template-columns:1fr}}.fleet-list .mini-fleet{gap:2px;margin-top:4px;display:flex}.thumb{object-fit:contain;background:radial-gradient(circle,#1b3350,#0a1424);border-radius:4px;display:block}.thumb-pending{background:#0d1b2e;animation:1.2s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.45}}.thumb.mini{width:34px;height:34px}.ship-stage{grid-template-columns:minmax(280px,1.1fr) minmax(300px,1fr);align-items:stretch;gap:16px;display:grid}.viewer-frame{border:1px solid var(--line);background:#050a16;min-height:340px;position:relative}.ship-viewer{cursor:grab;position:absolute;inset:0}.viewer-caption{letter-spacing:1.5px;color:var(--muted);pointer-events:none;font:11px ui-monospace,Consolas,monospace;position:absolute;bottom:8px;left:10px}.ship-config{align-content:start;gap:8px;display:grid}.ship-config-head{align-items:center;gap:10px;display:flex}.ship-config-head select{flex:1;padding:8px}.cost{color:#ffbc68;margin-left:auto;font:700 14px ui-monospace,Consolas,monospace}.module-list-3d{gap:6px;display:grid}.module-row{letter-spacing:0;background:#08132266;border:1px solid #8b9caf40;border-radius:4px;align-items:center;gap:10px;padding:4px 10px 4px 4px;font:13px Segoe UI,system-ui,sans-serif;display:flex}.module-row.pick{cursor:pointer}.module-row.pick:hover{border-color:var(--accent)}.module-row.on{border-color:var(--accent);background:#79e6cf1c}.module-row .module-thumb{flex:none;width:52px;height:52px}.module-text{flex:1;min-width:0;display:grid}.module-text small{color:var(--muted);font-size:11px}.module-row em{color:#ffbc68;font:700 13px ui-monospace,Consolas,monospace}.module-row input{width:18px;height:18px;padding:0}.ship-strip{flex-wrap:wrap;gap:10px;display:flex}.ship-tab{border:1px solid var(--line);background:var(--panel);cursor:pointer;grid-template-columns:56px 1fr;align-items:center;column-gap:10px;min-width:190px;padding:6px 34px 6px 6px;display:grid;position:relative}.ship-tab .strip-thumb{grid-row:span 2;width:56px;height:56px}.ship-tab span{color:var(--muted);font:11px ui-monospace,Consolas,monospace}.ship-tab.active{border-color:var(--accent);background:#79e6cf1c}.ship-tab button{padding:2px 8px;position:absolute;top:4px;right:4px}.ship-tab:focus-visible{outline-offset:2px;outline:2px solid #cce783}.add-ship{min-width:120px}@media (width<=900px){.ship-stage{grid-template-columns:1fr}}
