:root{--side:250px;--bg0:#07090d;--bg1:#0c1016;--bg2:#121821;--bg3:#19212d;--line:#a0bee61f;--line2:#a0bee638;--accent:#f2b144;--accent-hi:#ffd27a;--accent-lo:#8a5f1c;--accent2:#5bd4ff;--danger:#ff5a45;--ok:#6fe08a;--text:#dfe6f0;--muted:#8794a8;--dim:#56627a;--font-ui:"Barlow Semi Condensed", "Bahnschrift", "Segoe UI", Roboto, system-ui, sans-serif;--font-display:"Rajdhani", "Bahnschrift", "Segoe UI", system-ui, sans-serif;--ease:cubic-bezier(.2, .8, .2, 1);--notch:polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));--notch-sm:polygon(0 0, calc(100% - 6px) 0, 100% 6px, 100% 100%, 6px 100%, 0 calc(100% - 6px));font-family:var(--font-ui)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg0);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#app{position:fixed;inset:0}canvas{display:block}button{font-family:inherit}#sidebar{width:var(--side);background:linear-gradient(180deg, #5bd4ff0d, transparent 140px), repeating-linear-gradient(0deg, #ffffff03 0 1px, transparent 1px 3px), linear-gradient(180deg, var(--bg2), var(--bg0));border-left:1px solid var(--line2);-webkit-user-select:none;user-select:none;transition:transform .9s var(--ease);flex-direction:column;gap:8px;padding:10px 10px 8px;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-14px 0 40px #0000008c,inset 1px 0 #ffffff08}#sidebar:before{content:"";pointer-events:none;background:linear-gradient(180deg, transparent, var(--accent2) 18%, #5bd4ff26 55%, transparent);opacity:.7;width:1px;position:absolute;top:0;bottom:0;left:-1px}.hud{grid-template-columns:1.25fr 1fr 1fr;gap:5px;display:grid}.stat{border:1px solid var(--line);border-top-color:var(--line2);min-width:0;clip-path:var(--notch-sm);background:linear-gradient(#ffffff09,#ffffff02);padding:5px 7px 4px;position:relative}.stat span{letter-spacing:.16em;color:var(--muted);font-size:9px;font-weight:600;display:block}.stat b{font-family:var(--font-display);color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:22px;font-weight:700;line-height:1.05;display:block}.stat.credits b{color:var(--accent);text-shadow:0 0 14px #f2b14459}.stat.credits b:before{content:"$";opacity:.7;margin-right:1px;font-size:14px}.stat.wide{grid-column:1/-1;padding-bottom:7px}.stat.wide span{display:inline-block}.stat.wide em{float:right;font-style:normal;font-family:var(--font-display);color:var(--accent2);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;line-height:1}.bar{border:1px solid var(--line2);background:#04060a;height:9px;margin-top:5px;position:relative;overflow:hidden;box-shadow:inset 0 1px 3px #000c}.bar>div{width:100%;height:100%;transition:width .25s var(--ease), background-color .4s;background:linear-gradient(180deg, #9fe8ff, var(--accent2) 45%, #2a9fd0);box-shadow:0 0 10px #5bd4ff8c}.bar:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 9px,#04060ad9 9px 10px);position:absolute;inset:0}.stat.warn em{color:var(--accent)}.stat.warn .bar>div{background:linear-gradient(180deg, #ffe0a0, var(--accent) 45%, #b9791c);box-shadow:0 0 10px #f2b1448c}.stat.crit em{color:var(--danger)}.stat.crit .bar>div{background:linear-gradient(180deg, #ffb0a0, var(--danger) 45%, #a82a1c);box-shadow:0 0 10px #ff5a4599}button.big{cursor:pointer;width:100%;font-family:var(--font-display);letter-spacing:.14em;color:#1a1205;background:linear-gradient(180deg, var(--accent-hi), var(--accent) 48%, #d48f22);clip-path:var(--notch);text-shadow:0 1px #ffffff59;border:0;padding:10px 8px 9px;font-size:16px;font-weight:700;transition:filter .15s,transform 80ms;position:relative}button.big:hover{filter:brightness(1.12)saturate(1.05)}button.big:active{filter:brightness(.95);transform:translateY(1px)}button.big:disabled{cursor:default;filter:none;letter-spacing:.1em;text-shadow:none;color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-lo);background:linear-gradient(#1b1610,#120f0a);font-size:13px;transform:none}#waveBtn{z-index:1;position:relative}#waveBtn.nudge{animation:1.4s ease-in-out infinite waveGlow}#waveBtn.nudge button.big{animation:1.4s ease-in-out infinite waveBright}#waveBtn.nudge button.big:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 35%,#fff9 50%,#0000 65%);animation:2.8s ease-in-out infinite waveSheen;position:absolute;inset:0}@keyframes waveGlow{0%,to{filter:drop-shadow(0 0 2px #ffc86473)drop-shadow(0 0 6px #ffa02833)}50%{filter:drop-shadow(0 0 7px #ffe696)drop-shadow(0 0 22px #ffaa32)}}@keyframes waveBright{0%,to{filter:brightness(1.05)}50%{filter:brightness(1.5)saturate(1.2)}}@keyframes waveSheen{0%{transform:translate(-100%)}55%,to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){#waveBtn.nudge,#waveBtn.nudge button.big,#waveBtn.nudge button.big:after{animation:none}#waveBtn.nudge{filter:drop-shadow(0 0 9px #ffdc82f2)drop-shadow(0 0 20px #ffa028b3)}#waveBtn.nudge button.big{filter:brightness(1.3)}#waveBtn.nudge button.big:after{display:none}}.tabs{border-bottom:1px solid var(--line2);gap:0;display:flex}.tabs button{cursor:pointer;font-family:var(--font-display);letter-spacing:.2em;color:var(--dim);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:6px 0 5px;font-size:14px;font-weight:700;transition:color .15s,border-color .15s,background .15s}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);background:linear-gradient(#0000,#f2b1441a)}.cards{scrollbar-width:thin;scrollbar-color:var(--bg3) transparent;flex:auto;grid-template-columns:1fr 1fr;align-content:start;gap:6px;min-height:0;margin-right:-6px;padding-right:3px;display:grid;overflow-y:auto}.cards::-webkit-scrollbar{width:3px}.cards::-webkit-scrollbar-thumb{background:var(--line2)}.cat{letter-spacing:.24em;color:var(--muted);grid-column:1/-1;align-items:center;gap:8px;margin-top:4px;font-size:9px;font-weight:600;display:flex}.cat:before{content:"";background:var(--accent);width:3px;height:9px}.cat:after{content:"";background:linear-gradient(90deg, var(--line2), transparent);flex:1;height:1px}.cards>[hidden]{display:none}.cards .hint{letter-spacing:.04em;color:var(--muted);text-align:center;grid-column:1/-1;padding:8px 6px 4px;font-size:10px;line-height:1.4}.card{text-align:center;cursor:pointer;border:1px solid var(--line);border-top-color:var(--line2);clip-path:var(--notch-sm);background:linear-gradient(#ffffff0b,#ffffff03);padding:7px 4px 6px;transition:border-color .12s,background .12s,transform 80ms,opacity .2s;position:relative}.card .icon{background:radial-gradient(at 50% 120%,#5bd4ff29,#0000 70%),linear-gradient(#00000073,#0003);border:1px solid #00000080;justify-content:center;align-items:center;height:40px;margin:0 4px 5px;display:flex;box-shadow:inset 0 1px 4px #0009}.card .name{letter-spacing:.02em;color:var(--text);justify-content:center;align-items:center;min-height:2.3em;font-size:11.5px;font-weight:600;line-height:1.15;display:flex}.card .cost{font-family:var(--font-display);color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;line-height:1.1}.card:hover{border-color:var(--accent);background:linear-gradient(#f2b1441a,#f2b14405)}.card:active{transform:translateY(1px)}.card.active{border-color:var(--accent2);box-shadow:inset 0 0 0 1px var(--accent2), inset 0 0 18px #5bd4ff2e;background:linear-gradient(#5bd4ff29,#5bd4ff0a)}.card.active .name{color:#fff}.card.poor .cost{color:var(--danger)}.card.poor .pxicon,.card.poor .name{opacity:.55}.card.locked,.card.maxed{cursor:not-allowed}.card.locked>*,.card.maxed>*{opacity:.38}.card.locked:hover,.card.maxed:hover{border-color:var(--line2);background:linear-gradient(#ffffff0b,#ffffff03)}.card:after{font-family:var(--font-display);letter-spacing:.12em;font-size:9px;font-weight:700;position:absolute;top:3px;right:9px}.card.locked:after{content:"LOCKED";color:var(--muted)}.card .lock{pointer-events:none;filter:drop-shadow(0 1px 2px #000c);display:none;position:absolute;top:11px;left:50%;transform:translate(-50%)}.card.locked>.lock{opacity:.6;display:block}.card.locked .lock .pxicon{filter:none}.card.maxed:after{content:"BUILT";color:var(--accent2)}.card.done{cursor:default;border-color:#6fe08a80}.card.done:after{content:"ONLINE";color:var(--ok)}.card.done .cost{visibility:hidden}#desc{min-height:58px;color:var(--muted);border:1px solid var(--line);border-left:2px solid var(--accent-lo);background:#0000004d;flex:none;padding:6px 8px;font-size:11.5px;line-height:1.35}#desc:empty:before{content:"Hover a structure for intel.";color:var(--dim)}#infoPanel{clip-path:var(--notch-sm);background:linear-gradient(#5bd4ff1a,#5bd4ff05);border:1px solid #5bd4ff73;flex:none;padding:8px 9px;font-size:12px}#infoPanel h3{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--accent2);margin:0 0 5px;font-size:15px;font-weight:700}#infoPanel .hp{letter-spacing:.14em;color:var(--muted);justify-content:space-between;font-size:10px;font-weight:600;display:flex}#infoPanel .hp b{font-family:var(--font-display);color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:12px}#infoPanel .bar{height:6px;margin:3px 0 7px}#infoPanel .kills{margin:-2px 0 6px}#infoPanel .kills[hidden]{display:none}#infoPanel .bar>div{background:linear-gradient(180deg, #b6f5c4, var(--ok) 45%, #2f9a4c);transition:width .15s;box-shadow:0 0 8px #6fe08a80}#infoPanel .stats{color:var(--text);flex-direction:column;gap:2px;font-size:11.5px;line-height:1.25;display:flex}#infoPanel .stats div{padding-left:9px;position:relative}#infoPanel .stats div:before{content:"";background:var(--accent2);opacity:.7;width:4px;height:4px;position:absolute;top:.5em;left:0}#infoPanel button{cursor:pointer;width:100%;clip-path:var(--notch-sm);font-family:var(--font-display);letter-spacing:.14em;color:#ffd9d2;background:linear-gradient(#ff5a454d,#ff5a451f);border:1px solid #ff5a4599;margin-top:8px;padding:6px;font-size:13px;font-weight:700;transition:background .15s,color .15s}#infoPanel button:hover{color:#fff;background:linear-gradient(#ff6a55,#d63c28)}#infoPanel button.silo{color:#d6f4ff;background:linear-gradient(#5bd4ff42,#5bd4ff14);border-color:#5bd4ff8c}#infoPanel button.silo:hover{color:#04121a;background:linear-gradient(#6fdcff,#2a9fd0)}#infoPanel button.silo:disabled{opacity:.5;cursor:default}#infoPanel button.target{color:#ffe9c7;background:linear-gradient(#ffb0403d,#ffb04012);border-color:#ffb0408c}#infoPanel button.target:hover{color:#1a0e02;background:linear-gradient(#ffc060,#d9861c)}#infoPanel button.target.on{color:#fff;background:linear-gradient(#ff6a408c,#d63c284d);border-color:#ff7a40;box-shadow:0 0 10px #ff6a4073}#infoPanel button.sell{margin-top:5px}#dock{z-index:6;pointer-events:none;width:max(168px, calc((100% - var(--side)) / 2 - 505px));flex-direction:column;align-items:flex-start;gap:10px;display:flex;position:fixed;bottom:12px;left:14px}#log{pointer-events:none;flex-direction:column;gap:4px;width:max-content;transition:opacity .8s;display:flex}#log div{letter-spacing:.02em;border-left:2px solid var(--accent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-shadow:0 1px 2px #000;background:linear-gradient(90deg,#07090de0,#07090d99);width:fit-content;max-width:46vw;padding:5px 12px 5px 10px;font-size:12.5px;font-weight:500;animation:4s forwards toast}#log div.bad{border-color:var(--danger);color:#ffd9d2}@keyframes toast{0%{opacity:0;transform:translate(-8px)}4%,78%{opacity:1;transform:none}to{opacity:0}}#help{letter-spacing:.06em;color:var(--muted);pointer-events:none;text-shadow:0 1px 2px #000;flex-wrap:wrap;gap:4px 14px;font-size:10.5px;transition:opacity .8s;display:flex}@media (width<=1610px){#help{display:none}#dock{bottom:104px}}#help kbd{text-align:center;min-width:16px;font:700 10px/15px var(--font-display);letter-spacing:.06em;color:var(--text);border:1px solid var(--line2);background:#0c1016cc;border-bottom-width:2px;border-radius:2px;margin-right:4px;padding:0 4px;display:inline-block}#overlay{inset:0;right:var(--side);-webkit-backdrop-filter:blur(2px)saturate(.6);backdrop-filter:blur(2px)saturate(.6);background:radial-gradient(#2806048c,#000000e0);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:fixed}#overlay[hidden]{display:none}#overlay small{letter-spacing:.5em;color:var(--muted);font-size:11px;font-weight:600}#overlay h1{font-family:var(--font-display);letter-spacing:.16em;color:var(--danger);text-shadow:0 0 34px #ff5a4580,0 3px #0009;margin:0;font-size:clamp(34px,5vw,64px);font-weight:700;line-height:1}#overlay p{letter-spacing:.12em;color:var(--text);border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);margin:0 0 12px;padding:6px 22px;font-size:14px}#overlay button{width:220px}#fade{opacity:1;pointer-events:none;z-index:20;background:#000;position:fixed;inset:0}body.intro #sidebar{transform:translate(105%)}body.intro #help,body.intro #log{opacity:0}#skip{letter-spacing:.3em;color:var(--muted);text-shadow:0 1px 3px #000;opacity:0;pointer-events:none;font-size:11px;font-weight:600;transition:opacity .8s;position:fixed;bottom:14px;right:18px}body.intro #skip{opacity:1;transition-delay:1.5s}#abilities{bottom:12px;left:calc((100% - var(--side)) / 2);z-index:5;border:1px solid var(--line2);clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%,0 10px);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(#121821d1,#07090de6);border-bottom:0;gap:5px;padding:6px;transition:opacity .8s;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #0009}body.intro #abilities{opacity:0;pointer-events:none}.ability{cursor:pointer;-webkit-user-select:none;user-select:none;width:80px;height:82px;color:var(--text);border:1px solid var(--line);border-top-color:var(--line2);clip-path:var(--notch-sm);background:linear-gradient(#ffffff0f,#ffffff03);flex-direction:column;justify-content:flex-start;align-items:center;gap:3px;padding:8px 3px 6px;transition:border-color .12s,background .12s,transform 80ms;display:flex;position:relative;overflow:hidden}.ability:after{content:"";background:var(--accent);height:2px;box-shadow:0 0 8px var(--accent);transition:opacity .2s;position:absolute;bottom:0;left:22%;right:22%}.ability:hover{border-color:var(--accent);background:linear-gradient(#f2b14424,#f2b14405);transform:translateY(-2px)}.ability.active{border-color:var(--accent2);box-shadow:inset 0 0 0 1px var(--accent2), inset 0 0 20px #5bd4ff40;background:linear-gradient(#5bd4ff38,#5bd4ff0d)}.ability.active:after{background:var(--accent2);box-shadow:0 0 8px var(--accent2)}.ability.cooling{cursor:default;border-color:var(--line);background:#00000059;transform:none}.ability.cooling:after{opacity:0}.ability.cooling .name{color:var(--dim)}.ability.locked{cursor:not-allowed;border-color:var(--line);background:#00000059;transform:none}.ability.locked:after{opacity:0}.ability.locked .name,.ability.locked .key{color:var(--dim)}.ability.locked .cdtext{letter-spacing:.16em;color:var(--muted);font-size:11px;inset:0 0 26px}.ability .key{min-width:14px;font:700 10px/13px var(--font-display);text-align:center;color:var(--accent);border:1px solid var(--accent-lo);background:#0000008c;padding:0 3px;position:absolute;top:2px;left:3px}.ability .icon{filter:drop-shadow(0 2px 3px #0009);height:32px}.ability .name{letter-spacing:.03em;text-align:center;font-size:10.5px;font-weight:600;line-height:1.05}.ability .name.long{letter-spacing:0;font-size:9.3px}.ability .cd{pointer-events:none;background:linear-gradient(#5bd4ff47,#04060ac7 3px);border-top:1px solid #5bd4ffb3;height:0;position:absolute;bottom:0;left:0;right:0}.ability:not(.cooling) .cd{border-top:0}.ability.deployed .cd{background:linear-gradient(#5dff8a4d,#040c07c7 3px);border-top:1px solid #5dff8acc}.ability.deployed .cdtext{color:#c8ffd8;text-shadow:0 0 10px #5dff8abf,0 2px #000c}.ability .cdtext{pointer-events:none;font:700 26px/1 var(--font-display);color:#fff;text-shadow:0 0 8px #000,0 2px #000c;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;display:flex;position:absolute;inset:0 0 14px}#flash{opacity:0;pointer-events:none;z-index:15;background:#fff;position:fixed;inset:0}#tip{z-index:30;pointer-events:none;filter:drop-shadow(0 8px 16px #000000b3);opacity:0;width:max-content;max-width:260px;transition:opacity .12s, transform .16s var(--ease);position:fixed;top:0;left:0;transform:translateY(4px)}#tip.rich{max-width:350px}#tip.below{transform:translateY(-4px)}#tip.on{opacity:1;transform:none}#tip .box{color:#c6cfdc;border:1px solid var(--line2);border-top:2px solid var(--accent);clip-path:var(--notch-sm);background:linear-gradient(#161d28,#090c12);padding:7px 11px 8px;font-size:12px;line-height:1.4}#tip .arrow{border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);background:#090c12;width:10px;height:10px;margin-left:-5px;position:absolute;bottom:-5px;transform:rotate(45deg)}#tip.below .arrow{border:0;border-left:2px solid var(--accent);border-top:2px solid var(--accent);background:#161d28;top:-5px;bottom:auto}#tip .head{align-items:center;gap:7px;margin:1px 0 5px;display:flex}#tip .head b{font:700 15px/1.1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-hi)}#tip .key{text-align:center;min-width:16px;font:700 10px/14px var(--font-display);color:var(--accent);border:1px solid var(--accent-lo);background:#0000008c;flex:none;padding:0 4px}#tip p{margin:0}#tip .meta{border-top:1px solid var(--line);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:baseline;gap:14px;margin-top:7px;padding-top:6px;font-size:10px;font-weight:600;display:flex}#tip .meta b{font:700 12.5px/1 var(--font-display);letter-spacing:.03em;text-transform:none;color:var(--text);font-variant-numeric:tabular-nums}#tip .state{font:700 11px/1 var(--font-display);letter-spacing:.16em;white-space:nowrap;margin-left:auto;padding-left:8px}#tip .state.ready{color:var(--accent)}#tip .state.armed,#tip .state.cooling,#tip .state.cooling b{color:var(--accent2)}#tip .state.deployed,#tip .state.deployed b{color:#5dff8a}#tip .state.locked{color:var(--danger)}#tip .req{letter-spacing:.03em;margin-top:6px;padding:3px 7px;font-size:11px;font-weight:600}#tip .req.bad{color:#ffd2cb;border-left:2px solid var(--danger);background:#ff5a4521}#tip .req.ok{color:#c9f5d4;border-left:2px solid var(--ok);background:#6fe08a17}#debug{pointer-events:auto;width:176px;clip-path:var(--notch);background:linear-gradient(#121821f2,#07090df2);border:1px solid #5bd4ff80;flex-direction:column;gap:4px;padding:9px;display:flex;box-shadow:0 8px 28px #0009}#debug h4{font-family:var(--font-display);letter-spacing:.3em;color:var(--accent2);margin:0 0 3px;font-size:12px;font-weight:700}#debug button{text-align:left;cursor:pointer;letter-spacing:.03em;color:var(--text);border:1px solid var(--line);background:#ffffff0a;padding:6px 8px;font-size:12px;font-weight:600;transition:border-color .12s,color .12s,background .12s}#debug button:hover{border-color:var(--accent);color:var(--accent);background:#f2b14414}#debug small{color:var(--muted);margin-top:2px;font-size:10px}body.intro #debug{display:none}#debug button.on{color:var(--ok);border-color:#6fe08a8c}#perf{z-index:30;pointer-events:none;font-variant-numeric:tabular-nums;width:212px;color:var(--text);clip-path:var(--notch);background:linear-gradient(#121821e6,#07090de6);border:1px solid #5bd4ff59;padding:8px 10px 9px;position:fixed;top:10px;left:12px;box-shadow:0 8px 24px #00000080}#perf .top{align-items:baseline;gap:5px;display:flex}#perf .top b{font-family:var(--font-display);font-size:26px;font-weight:700;line-height:1}#perf .top span{letter-spacing:.2em;color:var(--muted);font-size:11px;font-weight:600}#perf .top em{margin-left:auto;font-size:14px;font-style:normal;font-weight:600}#perf canvas{border:1px solid var(--line);background:#0000004d;width:100%;height:40px;margin:6px 0 5px;display:block}#perf dl{grid-template-columns:auto 1fr;gap:1px 8px;margin:0;font-size:11.5px;display:grid}#perf dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600;line-height:16px}#perf dd{white-space:nowrap;margin:0;line-height:16px}#deploy{z-index:60;pointer-events:none;color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:fixed;inset:0}#deploy small{letter-spacing:.62em;color:var(--accent2);text-shadow:0 0 12px #000,0 1px 2px #000;margin-right:-.62em;font-size:12px;font-weight:600}#deploy b{font-family:var(--font-display);letter-spacing:.22em;color:#0000;background:linear-gradient(180deg, #fff1d0, var(--accent) 55%, #b9791c);filter:drop-shadow(0 0 26px #f2b14473)drop-shadow(0 4px #000000b3);-webkit-background-clip:text;background-clip:text;margin-right:-.22em;font-size:clamp(54px,8vw,112px);font-weight:700;line-height:.95}#deploy #version{letter-spacing:.12em;color:var(--muted);opacity:.7;text-shadow:0 1px 2px #000;font-size:10px;font-weight:600;position:absolute;bottom:11px;left:14px}#deploy i{background:linear-gradient(90deg, transparent, var(--accent), transparent);width:min(440px,50vw);height:1px;margin:4px 0 8px;display:block}#deploy .maps{pointer-events:auto;justify-content:center;align-items:flex-start;gap:18px;margin-top:4px;display:flex}#deploy .map{cursor:pointer;text-align:left;width:min(320px,42vw);color:var(--text);clip-path:var(--notch);background:linear-gradient(#161d28ed,#080a0ef2);border:0;padding:0;transition:box-shadow .2s,background .2s;box-shadow:inset 0 0 0 1px #f2b14461,0 10px 30px #0000008c}#deploy .map .label{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-hi);text-shadow:0 0 14px #f2b14459;justify-content:center;align-items:center;gap:12px;margin-right:-.2em;padding:13px 16px 12px;font-size:20px;font-weight:700;display:flex}#deploy .map .label:before,#deploy .map .label:after{content:"";background:var(--accent-lo);width:6px;height:6px;transition:background .2s,box-shadow .2s;transform:rotate(45deg)}#deploy .map .reveal{transition:grid-template-rows .4s var(--ease);grid-template-rows:0fr;display:grid}#deploy .map .inner{min-height:0;overflow:hidden}#deploy .map img{aspect-ratio:16/9;object-fit:cover;outline-offset:-1px;outline:1px solid #a0bee638;width:calc(100% - 16px);height:auto;margin:0 8px;display:block}#deploy .map .foot{align-items:flex-end;gap:12px;padding:9px 14px 12px;display:flex}#deploy .map em{color:var(--muted);flex:1;font-size:13px;font-style:normal;line-height:1.35}#deploy .map strong{font-family:var(--font-display);letter-spacing:.24em;color:var(--accent);white-space:nowrap;font-size:13px;font-weight:700}#deploy .map:hover,#deploy .map:focus-visible{box-shadow:inset 0 0 0 1px var(--accent), 0 14px 40px #0009;background:linear-gradient(#22201af2,#0a0a0cf5);outline:none}#deploy .map:hover .reveal,#deploy .map:focus-visible .reveal{grid-template-rows:1fr}#deploy .map:hover .label:before,#deploy .map:hover .label:after,#deploy .map:focus-visible .label:before,#deploy .map:focus-visible .label:after{background:var(--accent-hi);box-shadow:0 0 8px var(--accent)}#deploy .map:active{filter:brightness(1.1)}@media (hover:none){#deploy .map .reveal{grid-template-rows:1fr}}@media (width<=680px){#deploy .maps{flex-direction:column;align-items:center}#deploy .map{width:min(340px,100vw - 32px)}}body.demo #overlay,body.demo #skip{display:none!important}body.demo #deploy{justify-content:flex-start;padding-top:9vh}#mute{top:10px;right:calc(var(--side) + 12px);z-index:25;cursor:pointer;width:30px;height:30px;color:var(--text);border:1px solid var(--line2);clip-path:var(--notch-sm);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);transition:right .9s var(--ease), border-color .15s, background .15s;background:#0c1016d1;justify-content:center;align-items:center;padding:0;display:flex;position:fixed}#mute:hover{border-color:var(--accent);background:#f2b14424}#mute.off{opacity:.75}body.intro #mute{right:12px}body.demo #mute{display:none}.pxicon{image-rendering:pixelated;image-rendering:crisp-edges;pointer-events:none;-webkit-user-select:none;user-select:none;margin:0 auto;display:block}.card.locked .pxicon,.card.maxed .pxicon,.ability.cooling .pxicon,.ability.locked .pxicon{filter:grayscale(.85)brightness(.65)}#selbox{z-index:12;pointer-events:none;background:#5dff8a1a;border:1px solid #5dff8a;display:none;position:fixed;box-shadow:0 0 10px #5dff8a59,inset 0 0 12px #5dff8a1f}#bossbar{top:16px;left:calc(50% - var(--side) / 2);z-index:8;text-align:center;pointer-events:none;width:min(560px,46vw);position:fixed;transform:translate(-50%)}#bossbar span{font-family:var(--font-display);letter-spacing:.5em;color:#ff8a5a;text-shadow:0 0 12px #000000f2,0 0 18px #ff5a2873;align-items:center;gap:12px;margin-bottom:5px;font-size:17px;font-weight:700;display:flex}#bossbar span:before,#bossbar span:after{content:"";background:linear-gradient(90deg,#0000,#ff6a3a);flex:1;height:1px}#bossbar span:after{transform:scaleX(-1)}#bossbar .track{height:12px;clip-path:var(--notch-sm);background:#04060ad9;border:1px solid #7a3220;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0009,0 4px 16px #0009}#bossbar .track:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 27px,#04060acc 27px 28px);position:absolute;inset:0}#bossfill{background:linear-gradient(#ffb27a,#ff5a2a 45%,#a31f12);width:100%;height:100%;transition:width .15s;box-shadow:0 0 14px #ff5a28b3}body.intro #bossbar{display:none}#wavebanner{z-index:9;text-align:center;pointer-events:none;opacity:0;white-space:nowrap;position:fixed;top:24%;left:50%;transform:translate(-50%)}#wavebanner b{font-family:var(--font-display);letter-spacing:.16em;color:var(--accent);text-shadow:0 0 32px #f2b1448c,0 4px #000000a6,0 0 3px #000;margin-right:-.16em;font-size:clamp(48px,7.4vw,104px);font-weight:700;line-height:.95;display:block}#wavebanner span{font-family:var(--font-display);letter-spacing:.44em;color:#ff6a4a;text-shadow:0 0 18px #ff503280,0 3px #000000a6,0 0 3px #000;justify-content:center;align-items:center;gap:16px;margin-top:10px;font-size:clamp(18px,2.5vw,34px);font-weight:700;display:flex}#wavebanner span:before,#wavebanner span:after{content:"";background:linear-gradient(90deg,#0000,currentColor);width:clamp(40px,7vw,110px);height:2px}#wavebanner span:after{margin-left:-.44em;transform:scaleX(-1)}#wavebanner.boss span{color:#ff3a2a}body.intro #wavebanner{display:none}#strategic{z-index:26;text-align:center;pointer-events:none;opacity:0;white-space:nowrap;position:fixed;top:13%;left:50%;transform:translate(-50%)}#strategic b{font-family:var(--font-display);letter-spacing:.4em;color:#ff4a36;text-shadow:0 0 22px #ff3c2899,0 3px #000000b3,0 0 3px #000;justify-content:center;align-items:center;gap:16px;font-size:clamp(20px,2.6vw,38px);font-weight:700;display:flex}#strategic b:before,#strategic b:after{content:"";background:linear-gradient(90deg,#0000,currentColor);width:clamp(40px,7vw,120px);height:2px}#strategic b:after{margin-left:-.4em;transform:scaleX(-1)}#strategic span{font-family:var(--font-display);letter-spacing:.5em;color:var(--accent);text-shadow:0 0 16px #f2b14480,0 2px #000000b3,0 0 3px #000;margin-top:8px;margin-right:-.5em;font-size:clamp(16px,1.9vw,26px);font-weight:700;display:block}#strategic.count span{letter-spacing:.16em;color:#fff;text-shadow:0 0 30px #ff3c28cc,0 4px #000000b3,0 0 3px #000;font-variant-numeric:tabular-nums;margin-right:-.16em;font-size:clamp(40px,6vw,88px);line-height:1}body:before,body:after{content:"";z-index:24;pointer-events:none;height:0;transition:height .8s var(--ease);background:#000;position:fixed;left:0;right:0}body:before{top:0}body:after{bottom:0}body.cine:before,body.cine:after{height:9vh}body.cine #sidebar{transform:translate(105%)}#bossbar,#dock{transition:opacity .6s}body.cine #abilities,body.cine #dock,body.cine #mute,body.cine #bossbar,body.cine #wavebanner{pointer-events:none;opacity:0!important}.ability .name{-webkit-hyphens:manual;hyphens:manual}#cursorhint{z-index:27;pointer-events:none;white-space:nowrap;font-family:var(--font-display);letter-spacing:.28em;text-indent:.28em;color:#ff5a45;clip-path:var(--notch-sm);text-shadow:0 0 12px #ff3c28b3;background:linear-gradient(#280806e0,#0e0404e0);border:1px solid #ff5a45b3;padding:4px 12px 3px;font-size:15px;font-weight:700;position:fixed;transform:translate(-50%,calc(-100% - 22px))}#rotate{display:none}body.mobile{--side:clamp(178px, 25vw, 214px);--ab:clamp(36px, calc((100vw - var(--side)) / 11 - 11px), 50px);touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body.mobile #sidebar{gap:5px;padding:6px}body.mobile .hud{grid-template-columns:1.3fr .8fr 1fr;gap:3px}body.mobile .stat{padding:3px 5px 2px}body.mobile .stat span{letter-spacing:.12em;font-size:8px}body.mobile .stat b{font-size:16px}body.mobile .stat.credits b:before{font-size:11px}body.mobile .stat:has(#kills){display:none}body.mobile .stat.wide{grid-column:auto;padding-bottom:4px}body.mobile .stat.wide span{font-size:0;display:block}body.mobile .stat.wide span:after{content:"CORE";font-size:8px}body.mobile .stat.wide em{float:none;font-size:12px;line-height:1.1;display:block}body.mobile .bar{height:6px;margin-top:3px}body.mobile .stat.wide .bar{height:4px;margin-top:2px}body.mobile .stat.wide .bar:after{background:repeating-linear-gradient(90deg,#0000 0 5px,#04060ad9 5px 6px)}body.mobile button.big{letter-spacing:.1em;padding:7px 6px 6px;font-size:13px}body.mobile button.big:disabled{letter-spacing:.05em;font-size:10.5px}body.mobile .tabs button{padding:4px 0 3px;font-size:12px}body.mobile .cards{grid-template-columns:repeat(3,1fr);gap:4px;margin-right:-4px;padding-right:2px}body.mobile .cat{letter-spacing:.18em;gap:6px;margin-top:2px;font-size:8px}body.mobile .cat:before{height:7px}body.mobile .cards .hint{padding:6px 4px 2px;font-size:9.5px}body.mobile .card{padding:4px 2px 3px}body.mobile .card .icon{height:28px;margin:0 2px 3px}body.mobile .card .pxicon{width:24px;height:24px}body.mobile .card .lock{top:6px}body.mobile .card .name{min-height:2.2em;font-size:9.5px;line-height:1.1}body.mobile .card .cost{font-size:11px}body.mobile .card:after{letter-spacing:.06em;font-size:7px;top:1px;right:6px}body.mobile .card:active{transform:none}body.mobile #desc{min-height:0;padding:4px 6px;font-size:10px;line-height:1.3}body.mobile #desc:empty{display:none}body.mobile #infoPanel{grid-template-columns:1fr 1fr;column-gap:4px;padding:5px 6px 6px;display:grid}body.mobile #infoPanel>:not(button){grid-column:1/-1}body.mobile #infoPanel h3{margin-bottom:3px;font-size:12.5px}body.mobile #infoPanel .hp{font-size:8px}body.mobile #infoPanel .hp b{font-size:11px}body.mobile #infoPanel .bar{height:5px;margin:2px 0 4px}body.mobile #infoPanel .kills{margin:-1px 0 3px}body.mobile #infoPanel .stats{font-size:10px;line-height:1.3;display:block}body.mobile #infoPanel .stats div{padding-left:0;display:inline}body.mobile #infoPanel .stats div:before{display:none}body.mobile #infoPanel .stats div+div:before{content:" ·";width:auto;height:auto;color:var(--accent2);opacity:1;background:0 0;display:inline;position:static}body.mobile #infoPanel button,body.mobile #infoPanel button.sell{letter-spacing:.06em;margin-top:5px;padding:6px 2px;font-size:10.5px}body.mobile #infoPanel button.silo[hidden]+button.sell{grid-column:1/-1}body.mobile #dock{gap:6px;width:auto;top:46px;bottom:auto;left:8px}body.mobile #log div{max-width:calc(100vw - var(--side) - 70px);padding:3px 9px 3px 7px;font-size:11px}body.mobile #log div:nth-last-child(n+4){display:none}body.mobile #help,body.mobile #cursorhint{display:none!important}body.mobile #abilities{gap:3px;padding:4px;bottom:5px}body.mobile .ability{width:var(--ab);height:var(--ab);justify-content:center;padding:0}body.mobile .ability .key,body.mobile .ability .name{display:none}body.mobile .ability .icon{height:auto}body.mobile .ability .pxicon{width:calc(var(--ab) - 18px);height:calc(var(--ab) - 18px)}body.mobile .ability .cdtext{font-size:17px;inset:0}body.mobile .ability.locked .cdtext{display:none}body.mobile .ability:hover{transform:none}body.mobile #touchbar{z-index:7;left:calc((100% - var(--side)) / 2);bottom:calc(var(--ab) + 20px);max-width:calc(100% - var(--side) - 16px);border:1px solid var(--line2);clip-path:var(--notch-sm);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:linear-gradient(#121821e6,#07090deb);align-items:center;gap:5px;padding:4px 4px 4px 11px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #00000080}body.mobile #touchbar span{white-space:nowrap;text-overflow:ellipsis;letter-spacing:.03em;min-width:0;font-size:12px;font-weight:600;overflow:hidden}body.mobile #touchbar button{cursor:pointer;height:32px;clip-path:var(--notch-sm);font-family:var(--font-display);letter-spacing:.12em;border:0;flex:none;padding:0 11px;font-size:13px;font-weight:700}body.mobile #touchbar .go{color:#1a1205;background:linear-gradient(180deg, var(--accent-hi), var(--accent) 48%, #d48f22)}body.mobile #touchbar .go:disabled{color:var(--dim);background:#ffffff0f}body.mobile #touchbar .x{color:#ffd9d2;background:linear-gradient(#ff5a4557,#ff5a4524);box-shadow:inset 0 0 0 1px #ff5a4599}body.intro #touchbar,body.cine #touchbar,body.demo #touchbar{display:none}#fullscreen{top:6px;right:calc(var(--side) + 41px);z-index:25;cursor:pointer;width:30px;height:30px;color:var(--text);border:1px solid var(--line2);clip-path:var(--notch-sm);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c1016d1;justify-content:center;align-items:center;padding:0;display:flex;position:fixed}body.intro #fullscreen,body.demo #fullscreen{display:none}body.cine #fullscreen{opacity:0;pointer-events:none}body.mobile #mute{top:6px;right:calc(var(--side) + 6px)}body.mobile.intro #mute{right:8px}body.mobile #bossbar{width:min(360px,40vw);top:8px}body.mobile #bossbar span{letter-spacing:.34em;gap:8px;margin-bottom:3px;font-size:12px}body.mobile #bossbar .track{height:8px}body.mobile #wavebanner{top:20%}body.mobile #wavebanner b{font-size:clamp(36px,7vw,64px)}body.mobile #wavebanner span{gap:10px;margin-top:6px;font-size:clamp(13px,2.2vw,20px)}body.mobile #overlay small{font-size:9px}body.mobile #overlay p{margin-bottom:8px;padding:4px 14px;font-size:11px}body.mobile #overlay button{width:180px}body.mobile #skip{font-size:10px;bottom:10px;right:12px}body.mobile.demo #deploy{gap:6px;padding-top:4vh}body.mobile #deploy small{font-size:10px}body.mobile #deploy b{font-size:clamp(36px,7vw,64px)}body.mobile #deploy i{margin:1px 0 3px}body.mobile #deploy .maps{flex-direction:row;align-items:flex-start;gap:12px}body.mobile #deploy .map{width:min(250px,36vw)}body.mobile #deploy .map .label{gap:8px;padding:9px 10px 8px;font-size:14px}body.mobile #deploy .map .reveal{grid-template-rows:1fr}body.mobile #deploy .map .inner{padding-bottom:8px}body.mobile #deploy .map .foot{display:none}body.mobile #homescreen{letter-spacing:.04em;color:var(--text);border:1px solid var(--line);clip-path:var(--notch-sm);background:#07090dc7;margin:4px 0 0;padding:4px 12px;font-size:11px}@media (orientation:portrait){body.mobile #rotate{z-index:100;text-align:center;background:var(--bg0);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:fixed;inset:0}body.mobile #rotate b{font-family:var(--font-display);letter-spacing:.24em;color:var(--accent);margin-right:-.24em;font-size:24px;font-weight:700}body.mobile #rotate span{color:var(--muted);font-size:14px}}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:600;src:url(./rajdhani-latin-600-normal-CXCVEoA9.woff2)format("woff2"),url(./rajdhani-latin-600-normal-Dx02qI2_.woff)format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:700;src:url(./rajdhani-latin-700-normal-BPDUZo87.woff2)format("woff2"),url(./rajdhani-latin-700-normal-e0Uj8ZlN.woff)format("woff")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-semi-condensed-latin-400-normal-DlzeKIMS.woff2)format("woff2"),url(./barlow-semi-condensed-latin-400-normal-CwTnoNB3.woff)format("woff")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-semi-condensed-latin-500-normal-G0uxJNrM.woff2)format("woff2"),url(./barlow-semi-condensed-latin-500-normal-CFOoVYFH.woff)format("woff")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-semi-condensed-latin-600-normal-BkLiAYu4.woff2)format("woff2"),url(./barlow-semi-condensed-latin-600-normal-DyOfdMBA.woff)format("woff")}
