:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--bg:#050911;--panel:#09111dd6;--panel-solid:#09111d;--line:#a4b8d62e;--line-strong:#b4c9e75c;--text:#eef6ff;--muted:#8fa2b9;--faint:#607187;--blue:#27a7ff;--red:#ff4f68;--energy:#ffc857;--valid:#5af2ba;--invalid:#ff5c72;--shadow:0 16px 50px #0000006b;--safe-top:max(12px, env(safe-area-inset-top));--safe-right:max(12px, env(safe-area-inset-right));--safe-bottom:max(12px, env(safe-area-inset-bottom));--safe-left:max(12px, env(safe-area-inset-left));font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{font:inherit;border:0}button:focus-visible{outline-offset:2px;outline:3px solid #27a7ff73}.game-shell{isolation:isolate;background:var(--bg);--team:var(--blue);width:100%;min-height:100dvh;position:relative;overflow:hidden}.game-shell[data-team=red]{--team:var(--red)}.game-shell.high-contrast{--panel:#07101c;--line:#d7e8fa59;--line-strong:#e1f0ff94}.battlefield{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block;position:absolute;inset:0}.top-hud{z-index:10;top:var(--safe-top);left:var(--safe-left);right:var(--safe-right);pointer-events:none;grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr);align-items:start;gap:12px;transition:opacity .16s,transform .16s;display:grid;position:absolute}.game-shell:not(.started) .top-hud,.game-shell:not(.started) .build-dock,.game-shell:not(.started) .tutorial-card,.game-shell:not(.started) .active-economy,.game-shell:not(.started) .utility-controls,.game-shell:not(.started) .status-line{opacity:0;pointer-events:none;transform:translateY(-6px)}.hud-panel,.tutorial-card,.build-dock,.modal-card,.status-line{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.team-card{border-radius:10px;width:min(300px,100%);padding:11px 13px}.team-card.red{text-align:right;justify-self:end}.team-row,.value-row,.modal-actions,.setting-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.team-name,.eyebrow,.hud-label,.cost,.status-chip{letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800}.team-name.blue{color:#77caff}.team-name.red{color:#ff8998}.core-value,.energy-value,.match-clock{font-variant-numeric:tabular-nums;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.core-value{font-size:17px;font-weight:700}.health-track,.energy-track{background:#ffffff17;border-radius:1px;height:4px;margin-top:8px;overflow:hidden}.health-fill,.energy-fill{transform-origin:0;width:100%;height:100%;transition:transform .16s linear}.health-fill.blue{background:var(--blue);box-shadow:0 0 10px var(--blue)}.health-fill.red{background:var(--red);box-shadow:0 0 10px var(--red)}.match-card{text-align:center;border-radius:10px;min-width:214px;padding:9px 16px 10px}.match-clock{margin-top:2px;font-size:19px;font-weight:750}.status-chip{color:var(--muted);letter-spacing:.08em;margin-top:3px}.tutorial-card{z-index:11;top:106px;left:var(--safe-left);border-radius:10px;width:min(290px,100vw - 24px);padding:14px 15px;transition:opacity .16s,transform .16s;position:absolute}.tutorial-card.hidden{opacity:0;pointer-events:none;transform:translate(-12px)}.tutorial-number{border:1px solid color-mix(in srgb, var(--team) 62%, transparent);width:22px;height:22px;color:var(--team);border-radius:50%;place-items:center;margin-right:7px;font:700 11px/1 SFMono-Regular,Consolas,monospace;display:inline-grid}.tutorial-title{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:13px}.tutorial-copy{color:var(--muted);margin:9px 0 0;font-size:13px;line-height:1.46}.economy{border-top:1px solid var(--line);margin-top:10px;padding-top:9px}.active-economy{z-index:11;bottom:var(--safe-bottom);left:var(--safe-left);border-radius:10px;width:235px;padding:11px 13px;transition:opacity .16s,transform .16s;position:absolute}.energy-value{color:var(--energy);font-size:13px}.energy-fill{background:linear-gradient(90deg, #f2a93b, var(--energy));box-shadow:0 0 10px #ffc8576b}.income{color:var(--muted);margin-top:5px;font:11px/1.2 SFMono-Regular,Consolas,monospace}.status-line{z-index:13;max-width:min(460px,100vw - 24px);color:var(--muted);text-align:center;border-radius:6px;padding:7px 11px;font-size:12px;transition:color .12s,border-color .12s;position:absolute;top:87px;left:50%;transform:translate(-50%)}.status-line.valid{color:var(--valid);border-color:#5af2ba61}.status-line.invalid{color:#ff8798;border-color:#ff5c7273}.build-dock{z-index:12;left:50%;bottom:var(--safe-bottom);border-radius:12px;gap:7px;padding:8px;transition:opacity .16s,transform .16s;display:flex;position:absolute;transform:translate(-50%)}.build-button{min-height:56px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:35px minmax(90px,auto);grid-template-areas:"icon name""icon detail";gap:1px 9px;padding:8px 12px;transition:background .13s,border-color .13s,opacity .13s;display:grid;position:relative}.build-button:hover:not(:disabled){border-color:var(--line-strong);background:#ffffff0d}.build-button[aria-pressed=true]{border-color:color-mix(in srgb, var(--team) 75%, transparent);background:color-mix(in srgb, var(--team) 12%, transparent);box-shadow:inset 0 0 24px color-mix(in srgb, var(--team) 7%, transparent)}.build-button:disabled{opacity:.42;cursor:not-allowed}.build-button.charging:not([aria-pressed=true]){opacity:.58}.build-button.charging .build-detail:after{content:" · charging";color:var(--energy)}.build-icon{width:32px;height:32px;color:var(--team);grid-area:icon;align-self:center;position:relative}.build-icon.connector:before,.build-icon.turner:before,.build-icon.turret:before{content:"";border:2px solid;position:absolute;inset:7px}.build-icon.connector:before{border-radius:50%;box-shadow:-10px 7px 0 -7px,10px 7px 0 -7px,0 -10px 0 -7px}.build-icon.turner:before{opacity:.9;border:11px solid #0000;border-top-width:0;border-bottom:19px solid;inset:6px 5px 4px}.build-icon.turner:after{content:"";background:var(--panel-solid);border-radius:50%;position:absolute;inset:13px}.build-icon.turret:before{inset:8px;transform:rotate(45deg)}.build-icon.turret:after{content:"";transform-origin:0;background:currentColor;width:16px;height:3px;position:absolute;top:14px;left:15px;transform:rotate(-18deg)}.build-name{grid-area:name;align-self:end;font-size:13px;font-weight:750}.build-detail{color:var(--muted);grid-area:detail;font:10px/1.3 SFMono-Regular,Consolas,monospace}.keycap{border:1px solid var(--line-strong);min-width:18px;color:var(--muted);text-align:center;border-radius:3px;padding:1px 4px;font:9px/14px SFMono-Regular,Consolas,monospace;position:absolute;top:5px;right:6px}.utility-controls{z-index:13;right:var(--safe-right);bottom:var(--safe-bottom);align-items:center;gap:7px;transition:opacity .16s;display:flex;position:absolute}.utility-button,.team-toggle{border:1px solid var(--line);background:var(--panel);min-width:48px;min-height:48px;color:var(--muted);box-shadow:var(--shadow);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px;padding:0 12px}.cancel-button{color:var(--invalid);font-size:22px}.team-toggle{color:var(--team);letter-spacing:.08em;text-transform:uppercase;cursor:default;font-size:11px;font-weight:800;display:none}.game-shell.local-match .team-toggle{display:block}.modal-layer{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#02060ba3;place-items:center;padding:20px;transition:opacity .18s;display:grid;position:absolute;inset:0;overflow-y:auto}.modal-layer[hidden]{display:none}.modal-layer.hidden{visibility:hidden;opacity:0;pointer-events:none}.modal-card{border-radius:13px;width:min(540px,100%);max-height:calc(100dvh - 40px);padding:clamp(24px,4vw,42px);overflow-y:auto}.start-card{width:min(640px,100%)}.brand-mark{width:48px;height:48px;margin-bottom:20px;position:relative}.brand-mark:before,.brand-mark:after{content:"";border:2px solid;width:29px;height:29px;position:absolute;transform:rotate(45deg)}.brand-mark:before{border-color:var(--blue);top:0;left:0;box-shadow:0 0 18px #27a7ff47}.brand-mark:after{border-color:var(--red);bottom:0;right:0;box-shadow:0 0 18px #ff4f6847}.modal-title{letter-spacing:-.045em;text-transform:uppercase;margin:0;font-size:clamp(32px,7vw,58px);line-height:.95}.modal-subtitle{max-width:440px;color:var(--muted);margin:17px 0 0;font-size:15px;line-height:1.55}.loop-line{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#cbd8e7;letter-spacing:.06em;text-transform:uppercase;margin:23px 0;padding:13px 0;font:11px/1.5 SFMono-Regular,Consolas,monospace}.primary-button,.secondary-button{cursor:pointer;border-radius:7px;min-height:46px;padding:0 18px;font-size:13px;font-weight:800}.primary-button{background:var(--blue);color:#02101b;box-shadow:0 8px 28px #27a7ff42}.secondary-button{border:1px solid var(--line-strong);color:var(--text);background:0 0}.modal-actions{flex-wrap:wrap;justify-content:flex-start}.difficulty-picker{border:0;min-width:0;margin:18px 0 0;padding:0}.difficulty-picker legend,.mode-divider{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800}.difficulty-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px;display:grid}.difficulty-card,.mode-card{border:1px solid var(--line-strong);min-height:64px;color:var(--text);text-align:left;cursor:pointer;background:#ffffff05;border-radius:8px;align-content:center;padding:11px 13px;transition:border-color .13s,background .13s,transform .13s;display:grid;position:relative}.difficulty-card:hover,.mode-card:hover{background:#ffffff0d;border-color:#77caff94}.difficulty-card:has(input:checked){border-color:var(--blue);background:#27a7ff1c;box-shadow:inset 0 0 22px #27a7ff12}.difficulty-card:has(input:focus-visible){outline-offset:2px;outline:3px solid #27a7ff73}.difficulty-card input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.difficulty-card:after{content:"";border:1px solid var(--line-strong);border-radius:50%;width:8px;height:8px;position:absolute;top:13px;right:13px}.difficulty-card:has(input:checked):after{border-color:var(--blue);background:var(--blue);box-shadow:0 0 10px #27a7ff8c}.difficulty-card.hard .difficulty-name{color:#ff8998}.difficulty-name,.mode-card-title{padding-right:18px;font-size:13px;font-weight:800}.difficulty-summary,.mode-card-copy{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.35}.difficulty-badge{color:#77caff;letter-spacing:.08em;text-transform:uppercase;font:10px/1.2 SFMono-Regular,Consolas,monospace;position:absolute;top:10px;right:29px}.difficulty-badge[hidden]{display:none}.mode-card,.start-solo{width:100%}.start-solo{min-height:48px;margin-top:10px}.continue-button{border-color:#5af2ba66;margin-bottom:16px}.continue-button .mode-card-title{color:var(--valid)}.mode-divider{align-items:center;gap:10px;margin:18px 0 9px;display:flex}.mode-divider:after{content:"";background:var(--line);flex:1;height:1px}.continue-button.hidden{display:none}.pause-card .modal-title,.result-card .modal-title,.settings-card .modal-title{font-size:clamp(28px,5vw,42px)}.setting-row{border-bottom:1px solid var(--line);color:var(--muted);padding:14px 0}.setting-row input{width:20px;height:20px;accent-color:var(--blue)}.result-team{color:var(--winner,var(--team))}#result-modal[data-winner=blue]{--winner:var(--blue)}#result-modal[data-winner=red]{--winner:var(--red)}.version-stamp{color:var(--faint);letter-spacing:.1em;text-transform:uppercase;margin-top:22px;font:9px/1.4 SFMono-Regular,Consolas,monospace}@media (max-width:760px){.top-hud{grid-template-columns:1fr auto 1fr;gap:6px}.team-card{padding:8px 9px}.team-card .team-name span,.status-chip,.keycap{display:none}.core-value{font-size:13px}.match-card{min-width:88px;padding:7px 9px}.match-card .eyebrow{display:none}.match-clock{font-size:15px}.status-line{font-size:10px;top:72px}.tutorial-card{width:min(270px,100vw - 24px);top:101px}.build-dock{right:var(--safe-right);left:var(--safe-left);grid-template-columns:repeat(3,1fr);display:grid;transform:none}.build-button{text-align:center;grid-template-columns:1fr;grid-template-areas:"icon""name""detail";justify-items:center;min-width:0;min-height:66px;padding:5px 3px}.build-icon{width:27px;height:27px}.build-detail{font-size:9px}.utility-controls{right:var(--safe-right);flex-direction:column;bottom:92px}.active-economy{width:168px;padding:8px 10px;bottom:92px}.active-economy .hud-label,.active-economy .energy-value{font-size:9px}.active-economy .income{margin-top:4px;font-size:9px}.utility-button,.team-toggle{min-width:48px;min-height:48px;padding:0 9px}}@media (max-width:520px){.modal-layer{padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));place-items:start center}.modal-card{max-height:none;padding:20px 18px;overflow:visible}#start-modal .brand-mark{transform-origin:0 0;width:34px;height:34px;margin-bottom:11px;transform:scale(.72)}#start-modal .modal-title{font-size:36px}#start-modal .modal-subtitle{margin-top:10px;font-size:13px}#start-modal .loop-line{display:none}.difficulty-picker{margin-top:14px}.difficulty-card{min-height:60px;padding:9px 10px}.difficulty-badge{font-size:8px;top:9px;right:26px}}@media (max-width:340px){.difficulty-grid{grid-template-columns:1fr}}@media (max-height:520px) and (orientation:landscape){.modal-layer{padding:max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));place-items:start center}.modal-card{max-height:none;overflow:visible}#start-modal .brand-mark,#start-modal .loop-line{display:none}#start-modal .modal-title{font-size:30px}.difficulty-card{min-height:54px}}@media (forced-colors:active){.difficulty-card input{opacity:1;pointer-events:auto;width:16px;height:16px;margin:0 0 6px;position:static}.difficulty-card:after{display:none}.difficulty-card:has(input:checked){border-color:highlight}}@media (max-height:620px) and (orientation:landscape){.tutorial-card{width:250px;top:76px}.tutorial-copy{margin-top:5px;font-size:11px}.build-dock{bottom:max(8px, env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
