/* Animation-only stage. No frequency/playlist/blog text; original artwork is not downsampled. */
:root{color-scheme:dark;background:#090c19}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{display:grid;place-items:center;background:#090c19}#landscape-page{width:100%;height:100%;display:grid;place-items:center}#runner-stage{position:relative;width:min(100vw,177.7777778vh);height:min(56.25vw,100vh);aspect-ratio:16/9;overflow:hidden;isolation:isolate}#runner-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;outline:none}#runner-canvas:focus-visible{outline:2px solid #a4e5cf;outline-offset:-3px}.sprite-defs{position:absolute;width:0;height:0;overflow:hidden}.scene-tools{position:absolute;right:18px;bottom:16px;display:flex;gap:8px;opacity:.15;transition:opacity .18s;z-index:2}.scene-tools:hover,.scene-tools:focus-within,#runner-stage:hover .scene-tools{opacity:.9}.scene-tools button{width:44px;height:44px;border:1px solid #b6a6c352;background:#11152ac9;color:#b9c9cc;display:grid;place-items:center;cursor:pointer;border-radius:2px}.scene-tools button:hover{background:#29324b}.scene-tools button:focus-visible{outline:2px solid #a4e5cf;outline-offset:3px}.scene-tools svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.4;fill:none;stroke-linejoin:round;stroke-linecap:round}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:-1px;padding:0;border:0}@media(prefers-reduced-motion:reduce){.scene-tools{transition:none;opacity:.7}}@media(pointer:coarse){.scene-tools{right:8px;bottom:8px}}

/* V16: footprint-grounded emplacements and rigid-frame AA; layout unchanged. */

/* V17: licensed blue sprites, surface tangents, middle decoy, rear crash, larger obstacles. */

/* V18: mount-aligned ballistics, continuous crash, staged licensed fire, display-rate playback. */

/* V19: authored scatter, horizontal yaw fall, licensed obstacles and four-way-return scan. */

/* V20: exact sequential scan, early spread flares, canted3D yaw sprite bake.
OpenHV tanktrap ©SiegeSpud, CC-BY-SA4.0, https://github.com/OpenHV/OpenHV
Original15x12 views used with runtime nearest-neighbour scaling and grayscale.
Spiral wire model ©JamesWhite, CC0, https://opengameart.org/content/barbed-wire
Three.js r180 math/renderer ©2010–2025 three.js authors, MIT license.
Full attribution and modifications are included in the delivered CREDITS.md. */

/* V21: authored underground cutaway and lower pressure-disc mine; stage layout and controls unchanged. */

/* V22: shelter life reconstruction in progress; surface and controls untouched. */
