:root{color-scheme:light;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;font-weight:700;color:#3c2b20;background:#f6e8bd}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button{border:0;font:inherit}.game-shell{position:relative;width:100%;height:100%;background:#f6e8bd}.game-shell:after{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(8deg,rgb(63 45 34 / 5%) 0 1px,transparent 1px 18px),repeating-linear-gradient(96deg,rgb(63 45 34 / 4%) 0 1px,transparent 1px 24px);content:"";mix-blend-mode:multiply;pointer-events:none}.game-canvas{display:block;width:100%;height:100%;outline:none}.hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.resource-bar{position:absolute;top:12px;left:50%;display:flex;max-width:min(860px,calc(100vw - 28px));min-height:38px;transform:translate(-50%) rotate(-.18deg);align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;padding:6px;border:3px solid #3f2d22;border-radius:8px 11px 7px 10px;background:#fff4c9;box-shadow:3px 4px #3f2d22,0 12px 30px #3f2d2229}.resource-pill{display:grid;min-width:78px;grid-template-columns:auto 1fr;align-items:center;gap:6px;padding:6px 8px;border:2px solid #3f2d22;border-radius:8px 6px 9px 7px;color:#3c2b20;background:#ffeeb2}.resource-pill:nth-child(2n){transform:rotate(.45deg)}.resource-pill:nth-child(odd){transform:rotate(-.3deg)}.resource-pill span:first-child{display:grid;width:23px;height:23px;place-items:center;border:2px solid #3f2d22;border-radius:50% 46% 53% 44%;color:#2f2118;font-size:.76rem;font-weight:950;line-height:1}.resource-pill.credits span:first-child{background:#ffd342}.resource-pill.wood span:first-child{background:#d79a53}.resource-pill.stone span:first-child{background:#c0a27c}.resource-pill.research span:first-child{background:#72cdf7}.resource-pill.food span:first-child{background:#a8df62}.resource-pill.power span:first-child{background:#80df65}.resource-pill.workers span:first-child{background:#72cdf7}.resource-pill.threat span:first-child{background:#f26955}.resource-pill.shortage{background:#ffd8ca}.resource-value{display:flex;flex-direction:column;line-height:1.04}.resource-value strong{color:#2e2119;font-size:.92rem;font-weight:950}.resource-value small{color:#6c513b;font-size:.62rem}.build-dock{position:absolute;bottom:18px;left:50%;display:grid;width:min(1000px,calc(100vw - 480px));min-width:820px;grid-template-columns:minmax(220px,3fr) minmax(260px,4fr) minmax(140px,2fr) minmax(78px,1fr);gap:10px;transform:translate(-50%) rotate(-.1deg);pointer-events:auto}.build-group{display:grid;gap:6px;padding:8px;border:3px solid #3f2d22;border-radius:8px 11px 7px 10px;background:#fff4c9;box-shadow:3px 4px #3f2d22,0 12px 28px #3f2d2226}.build-group h3{margin:0;color:#6c513b;font-size:.64rem;font-weight:950;letter-spacing:0;line-height:1}.build-group-grid{display:grid;gap:7px}.build-group:nth-child(1) .build-group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.build-group:nth-child(2) .build-group-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.build-group:nth-child(3) .build-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.build-group:nth-child(4) .build-group-grid{grid-template-columns:minmax(0,1fr)}.build-button{display:grid;min-height:78px;grid-template-rows:28px auto 15px;align-items:center;justify-items:center;gap:3px;padding:7px 5px 6px;border:2px solid #3f2d22;border-radius:8px 11px 7px 10px;color:#3c2b20;background:#fff0b8;box-shadow:2px 3px #3f2d22;cursor:pointer;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.build-button:nth-child(2n){transform:rotate(.65deg)}.build-button:nth-child(odd){transform:rotate(-.55deg)}.build-button:hover{background:#fff7d5;box-shadow:2px 3px #3f2d22,0 8px 18px #3f2d2224}.build-button.selected{background:#ffd342;box-shadow:2px 3px #3f2d22}.build-button:disabled{transform:none;opacity:.46;cursor:not-allowed}.build-icon{display:grid;width:28px;height:28px;place-items:center;border:2px solid #3f2d22;border-radius:46% 54% 48% 52%;color:#2e2119;font-size:.78rem;font-weight:950;line-height:1}.build-button[data-kind=hab] .build-icon{background:#72cdf7}.build-button[data-kind=generator] .build-icon{background:#80df65}.build-button[data-kind=pylon] .build-icon{background:#72cdf7}.build-button[data-kind=farm] .build-icon{background:#a8df62}.build-button[data-kind=sawmill] .build-icon{background:#d79a53}.build-button[data-kind=quarry] .build-icon{background:#d0a06a}.build-button[data-kind=workshop] .build-icon{background:#72cdf7}.build-button[data-kind=wall] .build-icon{background:#e4b060}.build-button[data-kind=turret] .build-icon{background:#ffd342}.build-button[data-kind=sniper] .build-icon{background:#f4d77a}.build-name{overflow:hidden;max-width:100%;color:#2e2119;font-size:.74rem;font-weight:950;line-height:1.08;text-align:center;text-overflow:ellipsis;white-space:nowrap}.build-cost{color:#76563b;font-size:.58rem;line-height:1}.command-panel{position:absolute;top:86px;left:18px;display:grid;width:332px;gap:9px;padding:12px;transform:rotate(.18deg);border:3px solid #3f2d22;border-radius:10px 7px 11px 8px;background:#fff4c9;box-shadow:4px 5px #3f2d22,0 14px 34px #3f2d222e;pointer-events:auto}.wave-row{display:grid;grid-template-columns:1fr;gap:10px}.wave-title{margin:0;color:#2e2119;font-size:1rem;font-weight:950;line-height:1.15}.wave-subtitle{margin:3px 0 0;color:#6c513b;font-size:.72rem;line-height:1.22}.control-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.pause-button,.launch-button,.scout-button,.rally-button,.recruit-button,.overdrive-button,.repair-button,.demolish-button,.help-button,.restart-button,.share-button{min-height:36px;border:2px solid #3f2d22;border-radius:8px 10px 7px 11px;color:#2e2119;cursor:pointer;box-shadow:2px 3px #3f2d22;font-size:.78rem}.pause-button{background:#b6d9e8}.help-button{background:#ffeeb2}.launch-button{background:#ff8a5f}.scout-button{background:#ffe070}.scout-button.cannot-afford{background:#d8c48d}.rally-button{background:#7fc8ef}.rally-button.active{background:#ffe070}.recruit-button{background:#9fdc7a}.recruit-button.cannot-afford{background:#d8c48d}.overdrive-button{background:#ffd166}.overdrive-button.active{background:#7fc8ef}.overdrive-button.cannot-afford{background:#d8c48d}.repair-button{background:#b7dfa5}.repair-button.cannot-afford{background:#d8c48d}.demolish-button{background:#f5b36f}.demolish-button.active{background:#f26955}.share-button{position:absolute;right:16px;bottom:18px;z-index:5;min-width:118px;padding:0 12px;transform:rotate(.25deg);background:#fff4c9;pointer-events:auto}.pause-button:hover,.launch-button:hover,.scout-button:hover,.rally-button:hover,.recruit-button:hover,.overdrive-button:hover,.repair-button:hover,.demolish-button:hover,.help-button:hover,.restart-button:hover,.share-button:hover{transform:translateY(-1px)}.share-button:hover{transform:translateY(-1px) rotate(.25deg)}.pause-button:disabled,.launch-button:disabled,.scout-button:disabled,.rally-button:disabled,.recruit-button:disabled,.overdrive-button:disabled,.repair-button:disabled,.demolish-button:disabled,.share-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.wave-compass{display:inline-flex;width:fit-content;max-width:100%;align-items:center;gap:7px;padding:6px 9px;border:2px solid #3f2d22;border-radius:999px;color:#3c2b20;background:#ffeeb2;font-size:.72rem;line-height:1}.wave-compass span{display:grid;width:22px;height:22px;place-items:center;border:2px solid #3f2d22;border-radius:50%;background:#f26955;color:#2e2119;font-size:.86rem;font-weight:950}.health-track,.progress-track{overflow:hidden;height:12px;border:2px solid #3f2d22;border-radius:999px;background:#f6df9a}.health-fill{width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#80df65,#ffd342,#f26955);transform-origin:left}.progress-fill{width:0%;height:100%;border-radius:inherit;background:repeating-linear-gradient(-45deg,#f26955 0,#f26955 9px,#ffd342 9px,#ffd342 18px);transform-origin:left}.event-feed{display:grid;gap:6px;min-height:42px}.event-line{min-height:18px;color:#4f3828;font-size:.74rem;line-height:1.2}.tactical-sidebar{position:absolute;top:86px;right:16px;display:grid;width:238px;gap:10px;pointer-events:auto}.sidebar-card{display:grid;gap:8px;padding:9px;border:3px solid #3f2d22;border-radius:8px 11px 7px 10px;color:#2e2119;background:#fff4c9;box-shadow:4px 5px #3f2d22,0 14px 32px #3f2d2229}.minimap-panel{transform:rotate(.22deg)}.research-panel{transform:rotate(-.18deg)}.sidebar-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;line-height:1}.sidebar-title span{font-size:.76rem;font-weight:950}.sidebar-title small{color:#6c513b;font-size:.58rem}.minimap{display:block;width:100%;max-height:188px;height:auto;aspect-ratio:1;border:2px solid #3f2d22;border-radius:7px 9px 6px 8px;background:#f5dfad}.research-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#2e2119;font-size:.76rem;line-height:1}.research-head strong{display:grid;min-width:34px;height:25px;place-items:center;border:2px solid #3f2d22;border-radius:999px;background:#72cdf7;font-size:.76rem}.research-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.research-button{display:grid;min-height:50px;grid-template-columns:22px 1fr auto;align-items:center;justify-items:start;gap:5px;padding:6px;border:2px solid #3f2d22;border-radius:8px 10px 7px 9px;color:#2e2119;background:#fff0b8;box-shadow:3px 4px #3f2d22;cursor:pointer}.research-button:hover{transform:translateY(-1px);background:#fff7d5}.research-button:disabled{cursor:not-allowed;opacity:.58;transform:none}.research-button.researched{background:#80df65;opacity:1}.research-button.cannot-afford:not(.researched){background:#d8c48d}.research-button span{display:grid;width:22px;height:22px;place-items:center;border:2px solid #3f2d22;border-radius:50%;background:var(--research-color, #72cdf7);font-size:.68rem;font-weight:950}.research-button strong{overflow:hidden;max-width:100%;font-size:.64rem;line-height:1.05;text-align:left;text-overflow:ellipsis;white-space:nowrap}.research-button small{color:#6c513b;font-size:.52rem;line-height:1}.reticle{position:absolute;inset:auto 50% 50% auto;display:none;width:14px;height:14px;transform:translate(50%,50%);border:2px solid rgb(242 105 85 / 74%);border-radius:50%}.banner{position:absolute;top:78px;left:50%;min-width:min(440px,calc(100vw - 32px));transform:translate(-50%) rotate(-.45deg);padding:11px 15px;border:3px solid #3f2d22;border-radius:9px 7px 12px 8px;color:#2e2119;background:#ffd342;box-shadow:4px 5px #3f2d22,0 16px 34px #3f2d222e;font-size:.88rem;line-height:1.25;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.banner.visible{transform:translate(-50%) translateY(4px) rotate(-.45deg);opacity:1}.game-tooltip{position:absolute;z-index:8;display:block;width:max-content;max-width:min(430px,calc(100vw - 28px));padding:11px 14px;transform:translateY(4px) rotate(-.18deg);border:3px solid #3f2d22;border-radius:8px 10px 7px 11px;color:#2e2119;background:#fff4c9;box-shadow:4px 5px #3f2d22,0 14px 30px #3f2d2238;font-size:.82rem;font-weight:850;line-height:1.38;opacity:0;pointer-events:none;transition:opacity .11s ease,transform .11s ease}.game-tooltip.visible{transform:translateY(0) rotate(-.18deg);opacity:1}.tutorial-panel{position:absolute;top:0;right:0;bottom:0;left:0;display:none;place-items:center;padding:24px;background:#3f2d223d;pointer-events:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tutorial-panel.visible{display:grid}.tutorial-card{display:grid;width:min(620px,calc(100vw - 48px));gap:14px;padding:18px;transform:rotate(-.18deg);border:3px solid #3f2d22;border-radius:9px 12px 8px 11px;color:#2e2119;background:#fff4c9;box-shadow:6px 7px #3f2d22,0 18px 46px #3f2d2247}.tutorial-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.tutorial-head p{margin:0;color:#f26955;font-size:.76rem;font-weight:950;line-height:1}.tutorial-head button{min-height:36px;padding:0 14px;border:2px solid #3f2d22;border-radius:8px 10px 7px 11px;color:#2e2119;background:#ff8a5f;box-shadow:2px 3px #3f2d22;cursor:pointer}.tutorial-card h2{margin:0;font-size:1.35rem;font-weight:950;letter-spacing:0;line-height:1.12}.tutorial-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tutorial-steps div{display:grid;align-content:start;gap:8px;min-height:132px;padding:12px;border:2px solid #3f2d22;border-radius:8px 11px 7px 10px;background:#fff0b8}.tutorial-steps strong{display:grid;width:30px;height:30px;place-items:center;border:2px solid #3f2d22;border-radius:50%;background:#ffd342;font-size:.86rem}.tutorial-steps span{color:#4f3828;font-size:.76rem;line-height:1.34}.tutorial-note{margin:0;color:#6c513b;font-size:.76rem;line-height:1.35}.upgrade-panel{position:absolute;top:0;right:0;bottom:0;left:0;display:none;place-items:center;padding:24px;background:#3f2d2247;pointer-events:auto;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.upgrade-panel.visible{display:grid}.upgrade-card{display:grid;width:min(720px,calc(100vw - 48px));gap:13px;padding:18px;transform:rotate(-.25deg);border:3px solid #3f2d22;border-radius:9px 12px 8px 11px;color:#2e2119;background:#fff4c9;box-shadow:6px 7px #3f2d22,0 18px 46px #3f2d2247}.upgrade-kicker{margin:0;color:#f26955;font-size:.76rem;font-weight:950;line-height:1}.upgrade-card h2{margin:0;font-size:1.28rem;font-weight:950;letter-spacing:0;line-height:1.15}.upgrade-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.upgrade-choice{display:grid;min-height:142px;align-content:start;gap:8px;padding:12px;border:3px solid #3f2d22;border-radius:8px 11px 7px 10px;color:#2e2119;background:#fff0b8;box-shadow:4px 5px #3f2d22;cursor:pointer;text-align:left}.upgrade-choice:hover{transform:translateY(-2px);background:#fff7d5}.upgrade-icon{display:grid;width:34px;height:34px;place-items:center;border:2px solid #3f2d22;border-radius:50%;background:var(--upgrade-color, #ffd342);font-size:.86rem;font-weight:950}.upgrade-choice strong{font-size:.96rem;font-weight:950;line-height:1.08}.upgrade-choice small{color:#6c513b;font-size:.72rem;line-height:1.28}.end-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:none;place-items:center;padding:24px;background:#3f2d226b;pointer-events:auto;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.end-card{display:grid;width:min(440px,calc(100vw - 48px));gap:13px;padding:22px;transform:rotate(-.35deg);border:3px solid #3f2d22;border-radius:9px 12px 8px 11px;color:#2e2119;background:#fff4c9;box-shadow:6px 7px #3f2d22,0 18px 46px #3f2d2247;text-align:center}.end-card h1{margin:0;font-size:1.8rem;font-weight:950;letter-spacing:0}.end-card p{margin:0;color:#6c513b;line-height:1.45}.restart-button{justify-self:center;min-width:132px;background:#80df65}@media(max-width:780px){.resource-bar{left:14px;display:grid;width:calc(100vw - 28px);max-width:none;grid-template-columns:repeat(4,minmax(0,1fr));transform:rotate(-.2deg)}.resource-pill{min-width:0;padding:6px}.resource-value strong{font-size:.86rem}.resource-value small{font-size:.62rem}.build-dock{right:12px;bottom:12px;left:12px;width:auto;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px}.build-button{min-height:68px;grid-template-rows:25px auto 15px;padding:5px 2px;box-shadow:3px 4px #3f2d22}.build-icon{width:27px;height:27px;font-size:.68rem}.build-name{font-size:.58rem}.build-cost{font-size:.48rem}.command-panel{right:12px;bottom:84px;left:12px;width:auto;transform:rotate(.18deg)}.research-panel{top:126px;right:12px;left:12px;width:auto;padding:8px;transform:rotate(-.12deg)}.research-head{font-size:.72rem}.research-grid{gap:5px}.research-button{min-height:52px;grid-template-rows:20px auto 12px;padding:4px 2px;box-shadow:2px 3px #3f2d22}.research-button span{width:20px;height:20px;font-size:.58rem}.research-button strong{font-size:.52rem}.research-button small{font-size:.48rem}.wave-row{grid-template-columns:1fr auto;gap:8px}.pause-button,.launch-button,.scout-button,.rally-button,.recruit-button,.overdrive-button,.repair-button,.help-button{min-width:76px;min-height:34px;font-size:.72rem}.wave-compass{font-size:.68rem}.minimap{display:none}.tutorial-card{gap:10px;padding:14px}.tutorial-card h2{font-size:1.08rem}.tutorial-steps{grid-template-columns:1fr;gap:8px}.tutorial-steps div{min-height:0;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:10px}.upgrade-panel{padding:14px}.upgrade-card{gap:10px;padding:14px}.upgrade-card h2{font-size:1.02rem}.upgrade-choices{grid-template-columns:1fr;gap:8px}.upgrade-choice{min-height:94px;grid-template-columns:auto 1fr;align-items:center;gap:7px 10px;padding:10px}.upgrade-choice small{grid-column:2;font-size:.68rem}}
