:root{--u:2px;--ink:#04050a;--txt:#c9d6e6;--hi:#f2f7ff;--muted:#7d8eab;--acc:#49e0ff;--good:#5cff9d;--bad:#ff5a70;--warn:#ffc35c;--font:"Jersey 15", monospace;--num:"Silkscreen", monospace;--outline:calc(var(--u) / 2) 0 0 var(--ink), calc(var(--u) / -2) 0 0 var(--ink), 0 calc(var(--u) / 2) 0 var(--ink), 0 calc(var(--u) / -2) 0 var(--ink), calc(var(--u) / 2) calc(var(--u) / 2) 0 var(--ink)}*{box-sizing:border-box}html,body,#root{background:#03040a;height:100%;margin:0;overflow:hidden}body{font:400 20px/1.15 var(--font);color:var(--txt);-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;padding:0}b{color:var(--hi);font-weight:400}.num{font-family:var(--num);color:var(--hi);font-size:16px}.muted{color:var(--muted)}.glyph{flex:none;display:block}.app,.game-host{position:fixed;inset:0}.game-canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.hud{pointer-events:none;position:fixed;inset:0}.hud>*,.hud button{pointer-events:auto}.hud>.log,.hud>.toasts,.hud>.banner{pointer-events:none}.f-panel,.f-strip,.f-inset,.f-well,.f-tip,.pbtn{image-rendering:pixelated;border-style:solid;border-width:var(--bw);border-image:var(--fi) var(--sl) fill / var(--bw) stretch}.f-panel{--bw:calc(8 * var(--u));--sl:8;--fi:var(--f-panel);--fs:var(--fs-panel);--fg:var(--fg-panel)}.f-strip{--bw:calc(4 * var(--u));--sl:4;--fi:var(--f-strip);--fs:var(--fs-strip);--fg:var(--fg-strip);--band:1.2%}.f-inset{--bw:calc(4 * var(--u));--sl:4;--fi:var(--f-inset);position:relative}.f-well{--bw:calc(2 * var(--u));--sl:2;--fi:var(--f-well);position:relative}.f-tip{--bw:calc(3 * var(--u));--sl:3;--fi:var(--f-tip)}.pbtn{--bw:calc(4 * var(--u));--sl:4;--fi:var(--f-btn);--fs:var(--fs-btn);position:relative}.pbtn:hover{--fi:var(--f-btn-hover);--fs:var(--fs-btn-hover)}.pbtn:active,.pbtn.on:active{--fi:var(--f-btn-down)}.pbtn:active>*{transform:translateY(var(--u))}.pbtn.on{--fi:var(--f-btn-on);--fs:var(--fs-btn-on);--fg:var(--fg-btn-on)}.f-panel:before,.f-strip:before,.pbtn:before,.f-panel:after,.f-strip:after,.pbtn.on:after{content:"";inset:calc(-1 * var(--bw));pointer-events:none;border:var(--bw) solid transparent;border-image-slice:var(--sl);border-image-width:var(--bw);image-rendering:pixelated;position:absolute}.f-panel:before,.f-strip:before,.pbtn:before{--band-mask:linear-gradient(100deg, transparent calc(50% - var(--band,6%)), #000 50%, transparent calc(50% + var(--band,6%)));border-image-source:var(--fs);-webkit-mask:var(--band-mask) 100% 0 / 300% 100% no-repeat;-webkit-mask:var(--band-mask) 100% 0 / 300% 100% no-repeat;mask:var(--band-mask) 100% 0 / 300% 100% no-repeat;opacity:.8}.f-panel:before,.f-strip:before{animation:sweep 10s steps(60) var(--sweep-delay,0s) infinite}.pbtn:hover:before{animation:.5s steps(10,end) sweep-once}.f-panel:after,.f-strip:after,.pbtn.on:after{border-image-source:var(--fg);filter:drop-shadow(0 0 calc(1.5 * var(--u)) var(--glowc)) drop-shadow(0 0 calc(5 * var(--u)) var(--glowc));animation:2.8s ease-in-out infinite pulse}:root{--glowc:#49e0ffd9}.topbar{--sweep-delay:0s}.minimap{--sweep-delay:2.5s}.selection{--sweep-delay:5s}.build{--sweep-delay:7.5s}.pbtn.icon{width:calc(15 * var(--u));height:calc(15 * var(--u));place-items:center;display:grid}.pbtn.danger{color:var(--bad);padding:0 calc(3 * var(--u));height:calc(15 * var(--u))}kbd{font:400 12px/1 var(--num);color:var(--txt);padding:calc(var(--u)) calc(2 * var(--u)) 0;border:var(--u) solid var(--ink);border-bottom-width:calc(2 * var(--u));box-shadow:inset 0 var(--u) 0 #435270;background:#161d2b}.topbar{top:calc(-4 * var(--u));left:calc(-4 * var(--u));right:calc(-4 * var(--u));align-items:center;gap:calc(8 * var(--u));padding:var(--u) calc(6 * var(--u));display:flex;position:absolute}.who{align-items:center;gap:calc(3 * var(--u));min-width:0;display:flex}.who-name{white-space:nowrap;text-shadow:0 0 calc(4 * var(--u))}.res-row{gap:calc(2 * var(--u));margin:0 auto;display:flex}.res{align-items:center;gap:calc(3 * var(--u));padding:0 calc(3 * var(--u));height:calc(12 * var(--u));min-width:calc(58 * var(--u));display:flex}.res-num{font-family:var(--num);color:var(--hi);flex:1}.res-rate{font-family:var(--num);color:var(--muted);font-size:12px}.res-rate.up{color:var(--good)}.res-rate.down{color:var(--bad)}.clock{gap:calc(8 * var(--u));white-space:nowrap;display:flex}.log{top:calc(23 * var(--u));right:calc(6 * var(--u));gap:calc(2 * var(--u));width:min(420px,40vw);text-shadow:var(--outline);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;position:absolute}.log-line{pointer-events:auto;line-height:1.25}.log-line.link{cursor:pointer}.log-line.link:hover{color:var(--hi)}.log-line.sys{color:var(--acc);text-shadow:var(--outline), 0 0 calc(4 * var(--u)) #49e0ff80}.minimap,.selection,.build{bottom:calc(-4 * var(--u));position:absolute}.minimap{left:calc(-4 * var(--u));padding:0 0 calc(2 * var(--u)) calc(2 * var(--u))}.mm-well{line-height:0;display:block}.mm-canvas{width:calc(254 * var(--u) / 2);image-rendering:pixelated;cursor:pointer}.mm-tools{align-items:center;gap:calc(2 * var(--u));margin-top:calc(3 * var(--u));display:flex}.mm-zoom{color:var(--muted);margin-right:auto;margin-left:calc(3 * var(--u));font-size:12px}.build{right:calc(-4 * var(--u));padding:0 calc(2 * var(--u)) calc(2 * var(--u)) 0}.build-grid{gap:calc(2 * var(--u));display:flex}.card{padding:0 calc(var(--u));flex-direction:column;align-items:center;display:flex;position:relative}.card.poor .sprite{filter:grayscale()brightness(.55)}.sprite{width:calc(40 * var(--u) * var(--k));height:calc(70 * var(--u) * var(--k));display:block;position:relative}.sprite>*{width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.sprite .emit{mix-blend-mode:screen}.sprite .bloom{image-rendering:auto;mix-blend-mode:screen;animation:2.8s ease-in-out infinite pulse}.sprite .glint{mix-blend-mode:screen;background:linear-gradient(100deg,#0000 44%,#fffffff2 50%,#0000 56%) 100% 0/300% 100% no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.glint-loop .glint{animation:6s steps(36,end) .4s infinite glint}.card:hover .glint{animation:.6s steps(12,end) glint-once}.card-key{top:calc(-2 * var(--u));left:calc(-2 * var(--u));font-size:10px;position:absolute}.card-name{display:none}.card-tip{right:0;bottom:calc(100% + 8 * var(--u));gap:calc(2 * var(--u));width:260px;padding:calc(var(--u)) calc(2 * var(--u));text-align:left;pointer-events:none;flex-direction:column;font-size:18px;display:none;position:absolute}.card:hover .card-tip{display:flex}.card-cost{gap:calc(2 * var(--u)) calc(5 * var(--u));font-family:var(--num);flex-wrap:wrap;font-size:12px;display:flex}.card-cost>span{align-items:center;gap:calc(var(--u));display:inline-flex}.card-cost .short{color:var(--bad)}.selection{width:min(560px, calc(100vw - 140 * var(--u) - 300px));min-height:calc(62 * var(--u));gap:calc(5 * var(--u));padding:0 calc(2 * var(--u)) calc(2 * var(--u));display:flex;left:50%;transform:translate(-50%)}.selection.idle{justify-content:center;align-items:center;min-height:0}.controls{justify-content:center;gap:calc(3 * var(--u)) calc(8 * var(--u));color:var(--muted);flex-wrap:wrap;display:flex}.controls kbd{margin-right:calc(var(--u))}.portrait{width:calc(46 * var(--u));flex:none;place-items:center;display:grid}.portrait img{width:calc(40 * var(--u));image-rendering:pixelated;display:block}.sel-body{gap:calc(2 * var(--u));flex-direction:column;flex:1;min-width:0;display:flex}.sel-title{color:var(--hi);margin:0;font-size:30px;font-weight:400;line-height:1.1}.sel-meta{gap:calc(6 * var(--u));font-size:18px;display:flex}.sel-desc{color:var(--txt);margin:0;font-size:18px}.sel-foot{justify-content:space-between;align-items:center;gap:calc(4 * var(--u));margin-top:auto;display:flex}.yields{align-items:center;gap:calc(2 * var(--u)) calc(6 * var(--u));font-family:var(--num);flex-wrap:wrap;flex:1;font-size:12px;display:flex}.yields>span{align-items:center;gap:calc(var(--u));display:inline-flex}.yields .up{color:var(--good)}.yields .down{color:var(--bad)}.yields .hint{font-family:var(--font);color:var(--acc);font-size:18px}.bar{height:calc(13 * var(--u));position:relative}.bar-fill{opacity:.55;transition:width .2s linear;position:absolute;inset:0 auto 0 0}.bar-text{padding-left:calc(3 * var(--u));font-size:18px;line-height:calc(5 * var(--u));color:var(--hi);text-shadow:var(--outline);position:relative}.tooltip{z-index:10;padding:0 calc(2 * var(--u));pointer-events:none;visibility:hidden;flex-direction:column;font-size:18px;display:flex;position:fixed;top:0;left:0}.tooltip.show{visibility:visible}.tooltip .ok{color:var(--good)}.tooltip .bad{color:var(--bad)}.banner{top:calc(24 * var(--u));padding:0 calc(4 * var(--u));white-space:nowrap;position:absolute;left:50%;transform:translate(-50%)}.banner b{color:var(--good)}.banner.pilot b{color:var(--acc)}.banner.aim b{color:var(--bad)}.game-canvas.aim{cursor:none}.toasts{top:calc(40 * var(--u));align-items:center;gap:calc(2 * var(--u));flex-direction:column;display:flex;position:absolute;left:50%;transform:translate(-50%)}.toast{text-shadow:var(--outline);font-size:22px;animation:.2s steps(3,end) both rise}.toast.bad{color:var(--bad)}.toast.good{color:var(--good)}.hangar-btn{align-items:center;gap:calc(2 * var(--u));height:calc(12 * var(--u));padding:0 calc(3 * var(--u));font-size:18px;display:flex}.hangar-btn kbd{font-size:9px}.fit-backdrop{z-index:20;pointer-events:auto;background:#0203089e;place-items:center;display:grid;position:fixed;inset:0}.fitting{gap:calc(3 * var(--u));--sweep-delay:0s;flex-direction:column;width:min(1120px,96vw);max-height:94vh;display:flex;position:relative}.fit-head{align-items:center;gap:calc(4 * var(--u));font-size:24px;display:flex}.fit-head .muted{margin-right:auto;font-size:17px}.fit-body{gap:calc(5 * var(--u));grid-template-columns:230px 1fr 290px;min-height:0;display:grid}.fit-hulls{gap:calc(2 * var(--u));flex-direction:column;display:flex}.hull-card{align-items:center;gap:calc(3 * var(--u));padding:calc(var(--u)) calc(2 * var(--u));text-align:left;display:flex}.hull-card .ship-preview{flex:none}.hc-text{flex-direction:column;min-width:0;font-size:16px;line-height:1.1;display:flex}.hc-name{color:var(--hi);font-size:20px}.hc-slots{align-items:center;gap:calc(2 * var(--u));font:400 11px/1 var(--num);margin-top:3px;display:flex}.hc-slots i{font-style:normal}.hc-active{font:400 14px/1 var(--font);color:var(--acc);text-shadow:0 0 6px #49e0ff99;margin-left:auto}.fit-center{gap:calc(2 * var(--u));flex-direction:column;min-width:0;display:flex}.fit-title h2{color:var(--hi);margin:0;font-size:30px;font-weight:400;line-height:1}.fit-title .muted{font-size:16px}.fit-stage{background:radial-gradient(at 50% 55%,#49e0ff1f,#0000 60%),repeating-linear-gradient(0deg,#78aadc0d 0 1px,#0000 1px 16px),repeating-linear-gradient(90deg,#78aadc0d 0 1px,#0000 1px 16px),#04060b;place-items:center;height:290px;display:grid;overflow:hidden}.ship-preview{display:block;position:relative}.ship-preview canvas{image-rendering:pixelated;position:absolute;inset:0}.ship-preview .emit{mix-blend-mode:screen}.ship-preview .bloom{mix-blend-mode:screen;filter:blur(5px)brightness(1.8);image-rendering:auto;opacity:.9}.slot-rows{gap:calc(2 * var(--u));flex-direction:column;display:flex}.slot-row{align-items:center;gap:calc(2 * var(--u));display:flex}.slot-label{width:44px;font-size:18px}.slot{width:calc(17 * var(--u));height:calc(17 * var(--u));cursor:pointer;place-items:center;display:grid}.slot:not(.filled):after{content:"";width:calc(5 * var(--u));height:calc(5 * var(--u));border:var(--u) dashed color-mix(in srgb, var(--slot) 45%, transparent)}.slot.focus:not(.filled):after{border-style:solid;border-color:var(--slot);box-shadow:0 0 8px var(--slot)}.slot.filled{box-shadow:inset 0 0 12px color-mix(in srgb, var(--slot) 35%, transparent)}.slot.filled:hover{filter:brightness(1.3)}.budget{align-items:center;gap:calc(3 * var(--u));grid-template-columns:52px 1fr 92px;font-size:17px;display:grid}.budget .num{text-align:right;font-size:11px}.budget-bar{--bw:calc(2 * var(--u));--sl:2;--fi:var(--f-well);height:calc(8 * var(--u));padding:0;position:relative}.budget-fill{background:linear-gradient(#6df2ff,#1f8fa8);transition:width .15s steps(4,end);position:absolute;inset:0 auto 0 0;box-shadow:0 0 8px #49e0ff99}.budget-fill.hot{background:linear-gradient(#ffd36b,#c7802a);box-shadow:0 0 8px #ffc35c99}.budget-fill.hp{background:linear-gradient(#8dffbc,#2a9c5c);box-shadow:0 0 8px #5cff9d80}.budget-fill.fuel{background:linear-gradient(#ffc47a,#c0661f);box-shadow:0 0 8px #ffa64a80}.budget-fill.cargo{background:linear-gradient(#d9e3f0,#6d7f9c);box-shadow:0 0 8px #b8c8dc66}.budget-fill.low{background:linear-gradient(#ff8a9a,#b02a3e);box-shadow:0 0 8px #ff5a7099}.shipstat{top:calc(23 * var(--u));left:calc(6 * var(--u));width:300px;padding:calc(var(--u)) calc(3 * var(--u));gap:calc(var(--u));pointer-events:none;flex-direction:column;display:flex;position:absolute}.shipstat-note{font-size:17px}.shipstat-note .ok{color:var(--good)}.shipstat-note .bad{color:var(--bad)}.fit-actions{align-items:center;min-height:32px;display:flex}.fit-head .warn{color:var(--warn);margin-right:auto;font-size:17px}.fit-head .tabs{margin-left:auto}.fit-body.inv{grid-template-columns:230px 1fr}.slot.static{cursor:default}.pbtn.wide:disabled{opacity:.45;cursor:not-allowed}.shippanel{width:min(900px,96vw)}.ship-body{gap:calc(5 * var(--u));grid-template-columns:1fr auto;min-height:0;display:grid}.ship-cargo{flex-direction:column;min-width:260px;min-height:0;display:flex}.base-view{gap:calc(4 * var(--u));flex-direction:column;display:flex;overflow-y:auto}.base-view h3{margin:0 0 calc(2 * var(--u));color:var(--hi);font-size:20px;font-weight:400}.base-grid{gap:calc(2 * var(--u));flex-wrap:wrap;display:flex}.base-card{align-items:center;gap:calc(2 * var(--u));padding:calc(var(--u)) calc(3 * var(--u)) calc(var(--u)) var(--u);font-size:17px;display:flex}.base-view .budget{grid-template-columns:110px 1fr 92px;max-width:520px}.pbtn.wide{padding:calc(var(--u)) calc(6 * var(--u));color:var(--acc);font-size:20px}.fit-modules{gap:calc(2 * var(--u));flex-direction:column;min-height:0;display:flex}.tabs{gap:calc(2 * var(--u));display:flex}.tab{height:calc(14 * var(--u));flex:1;font-size:18px}.tab-hint{font-size:15px}.mod-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.mod-row{align-items:center;gap:calc(3 * var(--u));width:100%;padding:3px calc(2 * var(--u));text-align:left;border:1px solid #0000;font-size:18px;display:flex}.mod-row:hover{background:#49e0ff12;border-color:#49e0ff40}.mod-row.blocked{opacity:.45}.mod-name{flex:1}.mod-cost{color:var(--muted);white-space:nowrap;font-size:10px}.mod-cost small{margin-left:1px;font-size:8px}.mod-info{padding:calc(2 * var(--u));flex-direction:column;gap:3px;min-height:104px;margin-top:auto;font-size:16px;display:flex}.mod-info .bad{color:var(--bad)}.cargo{--cell:calc(15 * var(--u));gap:calc(2 * var(--u));flex-direction:column;flex:1;min-height:0;display:flex}.cargo-head{justify-content:space-between;align-items:baseline;font-size:17px;display:flex}.cargo-head .num{font-size:12px}.cargo-scroll{flex:0 auto;min-height:0;overflow-y:auto}.cargo-grid{line-height:0;display:inline-block}.cargo-cells{background-color:#05070d;background-image:linear-gradient(90deg,#5d6f8e38 1px,#0000 1px),linear-gradient(#5d6f8e38 1px,#0000 1px);background-size:var(--cell) var(--cell);position:relative}.cargo-item{cursor:grab;touch-action:none;background:#b8c8dc0d;position:absolute;box-shadow:inset 0 0 0 1px #b8c8dc38}.cargo-item:hover{box-shadow:inset 0 0 0 1px var(--acc);background:#49e0ff14}.cargo-item.lifted{opacity:.25}.cargo-item img{image-rendering:pixelated;pointer-events:none;filter:drop-shadow(0 calc(var(--u) * 1.5) 0 #00000073);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cargo-ghost{pointer-events:none;box-shadow:inset 0 0 0 1px var(--good);background:#5cff9d24;position:absolute}.cargo-ghost.bad{box-shadow:inset 0 0 0 1px var(--bad);background:#ff5a7024}.cargo-float{z-index:100;pointer-events:none;position:fixed}.cargo-float .cargo-item{cursor:grabbing;box-shadow:inset 0 0 0 1px var(--acc);position:relative}.cargo-overflow{gap:var(--u);flex-direction:column;font-size:15px;display:flex}.cargo-tray{gap:var(--u);flex-wrap:wrap;display:flex}.cargo-tray .cargo-item{position:relative}.cargo-bays{gap:calc(4 * var(--u));align-items:flex-start;min-height:0;display:flex}.cargo-bay{gap:var(--u);flex-direction:column;min-height:0;display:flex}.cargo-grid.locked .cargo-item{cursor:not-allowed}.cargo-lock{padding:calc(4 * var(--u));text-align:center;color:var(--warn);pointer-events:none;background:#04050a99;place-items:center;font-size:16px;line-height:1.1;display:grid;position:absolute;inset:0}.storage-win{right:calc(6 * var(--u));top:calc(40 * var(--u));gap:calc(2 * var(--u));max-width:calc(100vw - 12 * var(--u));flex-direction:column;display:flex;position:absolute}.storage-win .cargo{--cell:calc(11 * var(--u))}.cargo>.mod-info,.cargo>.cargo-bin,.cargo-overflow{width:0;min-width:100%}.cargo-bin{text-align:center;color:var(--muted);padding:var(--u);font-size:16px}.cargo-bin.live{color:var(--bad)}.fit-stats{gap:calc(2 * var(--u));padding-top:calc(3 * var(--u));border-top:var(--u) solid #161d2b;grid-template-columns:repeat(10,1fr);display:grid}.stat-cell{flex-direction:column;align-items:center;font-size:15px;display:flex}.stat-cell .num{font-size:13px}.stat-cell .delta{font-size:10px}.delta.up{color:var(--good)}.delta.down{color:var(--bad)}@media (width<=1000px){.fit-body{grid-template-columns:1fr;overflow-y:auto}.fit-hulls{flex-direction:row;overflow-x:auto}.fit-stats{grid-template-columns:repeat(5,1fr)}}.connecting{color:var(--acc);text-shadow:var(--outline);font-size:24px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.debug{top:calc(23 * var(--u));left:calc(4 * var(--u));width:300px;padding:0 calc(2 * var(--u));pointer-events:none;flex-direction:column;gap:1px;font-size:16px;display:flex;position:absolute}.debug-row{justify-content:space-between;gap:12px;display:flex}.debug-row .num{font-size:10px}.debug-legend{color:var(--muted);align-items:center;gap:4px;margin-top:4px;font-size:14px;display:flex}.debug-legend i{width:8px;height:8px;display:inline-block}.fatal{color:var(--bad);padding:12px 20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes rise{0%{transform:translateY(calc(4 * var(--u)));opacity:0}}@keyframes sweep{0%{-webkit-mask-position:100% 0;mask-position:100% 0}15%,to{-webkit-mask-position:0 0;mask-position:0 0}}@keyframes sweep-once{0%{-webkit-mask-position:100% 0;mask-position:100% 0}to{-webkit-mask-position:0 0;mask-position:0 0}}@keyframes glint{0%{background-position:100% 0}15%,to{background-position:0 0}}@keyframes glint-once{0%{background-position:100% 0}to{background-position:0 0}}@keyframes pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important}}@media (width<=1100px){.clock,.who-sub{display:none}.selection{left:auto;right:calc(-4 * var(--u));width:auto;bottom:calc(52 * var(--u));left:calc(130 * var(--u));transform:none}.log{display:none}}@media (width<=760px){.who{display:none}.res{min-width:0}.res-rate,.minimap{display:none}.selection,.build{left:calc(-4 * var(--u))}.build-grid{justify-content:center}}
