*{box-sizing:border-box;margin:0;padding:0}body{color:#e6edf3;-webkit-user-select:none;user-select:none;background:#0d1117;font-family:Segoe UI,system-ui,sans-serif;overflow:hidden}#gameCanvas{cursor:crosshair;background:#050814;display:block}#ui{pointer-events:none;position:absolute;inset:0}#topBar{pointer-events:auto;background:linear-gradient(#161b22,#0d1117);border-bottom:1px solid #30363d;align-items:center;gap:24px;height:48px;padding:0 16px;display:flex;position:absolute;top:0;left:0;right:0}#btnRanges{color:#e6edf3;cursor:pointer;background:#21262d;border:1px solid #30363d;border-radius:6px;margin-left:auto;padding:6px 10px;font-size:12px;font-weight:600}#btnRanges.on{color:#f0883e;background:#3d2a12;border-color:#f0883e}.resource{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.resource .icon{border-radius:3px;width:18px;height:18px}.alloy .icon{background:#58a6ff}.ore .icon{background:#3fb950}.power .icon{background:#f0883e}.units .icon{background:#3fb950}#commandDock{pointer-events:none;z-index:8;flex-direction:row;align-items:stretch;gap:10px;max-width:calc(100% - 220px);display:flex;position:absolute;bottom:16px;left:16px}.wave .icon{background:#f85149}#buildBar,#factoryBar,#hubBar,#salvageBar,#ccBar,#techBar,#cancelBar,#airfieldBar,#serviceBar{pointer-events:auto;background:#0d1117f0;border:1px solid #30363d;border-radius:10px;flex-direction:column;gap:6px;padding:8px 10px 10px;display:flex;position:relative;bottom:auto;left:auto;transform:none}#buildBar{display:flex}#factoryBar,#hubBar,#salvageBar,#ccBar,#techBar,#cancelBar,#airfieldBar,#serviceBar{display:none}.panelLabel{letter-spacing:.08em;text-transform:uppercase;color:#8b949e;padding:0 2px;font-size:10px;font-weight:700}.panelRow{flex-flow:wrap;align-items:center;gap:8px;display:flex}.buildBtn{color:#e6edf3;cursor:pointer;background:#21262d;border:2px solid #30363d;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:64px;height:64px;font-size:11px;transition:border-color .15s,background .15s;display:flex}.buildBtn:hover:not(:disabled){background:#30363d;border-color:#58a6ff}.buildBtn:disabled{opacity:.4;cursor:not-allowed}.buildBtn .cost{color:#8b949e;font-size:10px}.buildBtn.placing{background:#1c3a5a;border-color:#58a6ff;box-shadow:inset 0 0 0 1px #58a6ff}.buildBtn.wideBtn{text-align:center;width:auto;min-width:88px;height:64px;padding:0 12px;font-size:12px}.salvageBtn{color:#ffa198;background:#3d1515;border-color:#792e2e}.buildBtn.repeatOn{background:#16341c;border-color:#3fb950}#selectionInfo{pointer-events:auto;z-index:7;background:#0d1117eb;border:1px solid #30363d;border-radius:8px;min-width:280px;padding:12px 16px;display:none;position:absolute;bottom:160px;left:16px}#selectionInfo h3{color:#58a6ff;margin-bottom:6px;font-size:14px}#selectionInfo p{color:#8b949e;margin:2px 0;font-size:12px}#selProgressWrap{background:#21262d;border:1px solid #30363d;border-radius:6px;height:12px;margin-top:8px;display:none;position:relative;overflow:hidden}#selProgressFill{background:linear-gradient(90deg,#1f6feb,#58a6ff);width:0%;height:100%}#selProgressLabel{text-align:center;color:#e6edf3;font-size:10px;font-weight:600;line-height:12px;position:absolute;inset:0}#minimap{pointer-events:auto;background:#0d1117;border:2px solid #30363d;border-radius:6px;width:180px;height:140px;position:absolute;bottom:16px;right:16px}#help{color:#8b949e;background:#0d1117e0;border:1px solid #30363d;border-radius:8px;max-width:340px;padding:12px 16px;font-size:12px;line-height:1.55;position:absolute;top:60px;left:16px}#help strong{color:#e6edf3}#queueStatus{pointer-events:none;z-index:6;background:#0d1117e6;border:1px solid #30363d;border-radius:8px;padding:8px 14px;font-size:12px;display:none;position:absolute;bottom:118px;left:16px;transform:none}#btnPause{color:#e6edf3;cursor:pointer;background:#21262d;border:1px solid #30363d;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:600}#ui.hudHidden>:not(#gameCanvas){visibility:hidden}.overlay{z-index:40;pointer-events:auto;background:radial-gradient(#0d1117b8,#050814eb);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#mainMenu,#setupMenu{background:radial-gradient(#0d11171f 0%,#07142461 58%,#040e1c9e 100%)}.overlay.hidden{display:none}.menuCard{text-align:center;background:#0d1117f0;border:1px solid #30363d;border-radius:16px;min-width:360px;padding:36px 40px 28px;box-shadow:0 24px 80px #00000073}.menuCard.wide{min-width:520px}.menuKicker{letter-spacing:.22em;text-transform:uppercase;color:#8b949e;margin-bottom:10px;font-size:11px}.menuCard h1{letter-spacing:.04em;margin-bottom:12px;font-size:42px;line-height:.95}.menuCard h2{margin-bottom:16px;font-size:26px}.menuSub{color:#8b949e;margin-bottom:22px}.menuBtn{color:#e6edf3;cursor:pointer;background:#21262d;border:1px solid #30363d;border-radius:8px;width:100%;margin:8px 0;padding:12px 18px;font-size:15px;font-weight:600;display:block}.menuBtn.primary{background:#238636;border-color:#3fb950}.menuBtn:hover{filter:brightness(1.08)}#grokLogo{opacity:.92;width:auto;height:52px;margin:22px auto 0;display:block}.setupBlock{text-align:left;margin:14px 0 18px}.choiceRow,.swatchRow,.menuActions{flex-wrap:wrap;gap:8px;display:flex}.choiceBtn{color:#e6edf3;cursor:pointer;background:#21262d;border:1px solid #30363d;border-radius:8px;flex:1;min-width:110px;padding:10px 8px;font-size:12px;font-weight:600}.choiceBtn.on{background:#1c3a5a;border-color:#58a6ff}.swatch{cursor:pointer;border:2px solid #30363d;border-radius:50%;width:36px;height:36px}.swatch.on{box-shadow:0 0 0 3px #e6edf3}.menuActions{margin-top:8px}.menuActions .menuBtn{flex:1;width:auto}#toast{color:#e6edf3;letter-spacing:.02em;pointer-events:none;opacity:0;z-index:30;background:#0d1117f0;border:1px solid #f0883e;border-radius:8px;padding:10px 18px;font-size:15px;font-weight:700;transition:opacity .18s,transform .18s;position:absolute;top:64px;left:50%;transform:translate(-50%)translateY(-12px)}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}.winBanner{letter-spacing:.14em;color:#ffd33d;text-shadow:0 0 28px #ffd33d8c,0 4px #9b6b12;margin-bottom:12px;font-size:78px;font-weight:800;animation:.85s ease-in-out infinite alternate winPulse}@keyframes winPulse{0%{opacity:.82;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}
