:root{--bg:#000;--panel:#07120a;--line:#105900;--green:#36d017;--green-dim:#1d7a0c;--yellow:#ffeb3b;--text:#d7ffd0;--muted:#86b37e;--danger:#ff4d4d;--pixel-font:"Press Start 2P", monospace;--ui-font:"Orbitron", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--ui-font);color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}kbd{font-family:var(--ui-font);border:1px solid var(--green-dim);color:var(--muted);border-radius:4px;padding:.1em .4em;font-size:.7em}h2{letter-spacing:.05em;color:var(--green);text-transform:uppercase;margin:0 0 .6rem;font-size:.85rem}a{color:var(--green)}.primary-button,.icon-button{border-radius:6px;padding:.5rem .8rem;font-size:.8rem}.primary-button{border:2px solid var(--green);background:var(--green-dim);color:#fff}.primary-button:not(:disabled):hover{background:var(--green);color:#000}.icon-button{border:1px solid var(--line);background:0 0}.icon-button:hover{border-color:var(--green)}.title-screen{background:linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 64px 64px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 64px 64px, var(--bg);border:none;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex;position:relative;overflow:hidden}.title-parade{pointer-events:none;position:absolute;inset:0}.title-parade img{width:96px;image-rendering:pixelated;animation:12s linear infinite parade;position:absolute}.title-parade img:nth-child(odd){top:18%}.title-parade img:nth-child(2n){animation-direction:reverse;top:62%}@keyframes parade{0%{left:-120px}to{left:100%}}.title-logo{font-family:var(--pixel-font);color:var(--yellow);text-align:center;text-shadow:4px 4px #b36b00;margin:0;font-size:clamp(1.4rem,5vw,3.2rem);line-height:1.3;position:relative}.title-logo.small{text-align:left;font-size:clamp(1rem,3vw,1.6rem)}.title-subtitle{font-family:var(--pixel-font);color:var(--green);margin:.8rem 0 2.5rem;font-size:clamp(.8rem,2vw,1.1rem);position:relative}.title-prompt{font-family:var(--pixel-font);font-size:clamp(.6rem,1.6vw,.9rem);animation:1.2s steps(2,start) infinite blink;position:relative}@keyframes blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.title-parade img,.title-prompt{animation:none}}.menu{max-width:1100px;margin:0 auto;padding:1.5rem 1rem 3rem}.menu-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.map-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin:0 0 2.5rem;padding:0;list-style:none;display:grid}.map-card{text-align:left;border:2px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:.4rem;width:100%;padding:.8rem;display:flex}.map-card:hover{border-color:var(--green)}.map-preview{border-radius:4px;width:100%}.map-preview-ground{fill:#000}.map-preview-path{fill:silver}.map-name{font-family:var(--pixel-font);color:var(--yellow);font-size:.9rem}.map-description,.map-best{color:var(--muted);font-size:.75rem}.how-to-play{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 2rem;font-size:.85rem;line-height:1.6;display:grid}.how-to-play h2{grid-column:1/-1}.how-to-play ol{margin:0;padding-left:1.2rem}.shortcuts{border-collapse:collapse;align-self:start}.shortcuts th{text-align:left;white-space:nowrap;padding:.2rem 1rem .2rem 0;font-weight:400}.menu-footer{color:var(--muted);margin-top:3rem;font-size:.7rem}.game-screen{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"hud hud""board side";gap:.8rem;max-width:1400px;margin:0 auto;padding:.8rem;display:grid}@media (width<=900px){.game-screen{grid-template-columns:minmax(0,1fr);grid-template-areas:"hud""board""side"}.game-screen .board{z-index:1;background:var(--bg);position:sticky;top:0}}.hud{flex-wrap:wrap;grid-area:hud;justify-content:space-between;align-items:center;gap:.8rem 1.5rem;display:flex}.hud-stats,.hud-controls{flex-wrap:wrap;align-items:center;gap:.6rem 1.5rem;display:flex}.hud-controls{gap:.5rem}.stat{flex-direction:column;display:flex}.stat-label{color:var(--muted);text-transform:uppercase;font-size:.65rem}.stat-value{color:var(--green);font-variant-numeric:tabular-nums;font-size:1.2rem}.health-bar{background:linear-gradient(90deg, var(--green-dim) calc(var(--health) * 100%), #300 0);color:#fff;border-radius:3px;min-width:6rem;padding-left:.3rem;display:inline-block}.board{grid-area:board;align-self:start;position:relative}.board-canvas{aspect-ratio:3/2;border:2px solid var(--line);touch-action:none;cursor:crosshair;width:100%;display:block}.board-overlay{text-align:center;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:.8rem;padding:1rem;display:flex;position:absolute;inset:0}.overlay-title{font-family:var(--pixel-font);color:var(--yellow);margin:0;font-size:clamp(1.2rem,4vw,2.2rem)}.overlay-actions{gap:.6rem;display:flex}.toast{border:1px solid var(--danger);color:#fff;pointer-events:none;background:#280000e6;border-radius:6px;margin:0;padding:.5rem 1rem;font-size:.8rem;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.side-panel{flex-direction:column;grid-area:side;gap:.8rem;display:flex}.panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:.8rem}.wave-panel p{margin:0;font-size:.8rem}.wave-preview{flex-wrap:wrap;gap:.2rem .8rem;margin:0 0 .8rem;padding:0;font-size:.75rem;list-style:none;display:flex}.wave-preview li{align-items:center;display:flex}.shop{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.shop-item{text-align:left;border:1px solid var(--line);background:0 0;border-radius:6px;grid-template-columns:40px 1fr auto;grid-template-areas:"icon name cost""icon desc desc";align-items:center;gap:0 .6rem;width:100%;padding:.35rem;display:grid}.shop-item[aria-pressed=true]{border-color:var(--yellow);background:#ffeb3b1a}.shop-item[data-affordable=false]{opacity:.45}.shop-item img{image-rendering:pixelated;border-radius:4px;grid-area:icon}.shop-name{grid-area:name;font-size:.8rem}.shop-cost{color:var(--yellow);grid-area:cost;font-size:.8rem}.shop-description{color:var(--muted);grid-area:desc;font-size:.65rem}.direction-picker div{gap:.4rem;display:flex}.direction-picker button{border:1px solid var(--line);background:0 0;border-radius:6px;flex:1;padding:.3rem;font-size:1.1rem}.direction-picker button[aria-checked=true]{border-color:var(--yellow);color:var(--yellow)}.tower-panel dl{grid-template-columns:auto auto;gap:.2rem 1rem;margin:0 0 .8rem;font-size:.8rem;display:grid}.tower-panel dt{color:var(--muted)}.tower-panel dd{text-align:right;margin:0}.tower-actions{flex-wrap:wrap;gap:.4rem;display:flex}
