TITLE: Astro Vanguard — Attract Screen & Playable Game PROMPT: Build a single self-contained HTML page that is a retro arcade cabinet attract screen running a live demo. Full-viewport black (#05030a) cabinet with a canvas behind and a CRT stack of overlays in front: a multiply-blended layer of 1px scanlines every 3px plus a radial corner vignette, a screen-blended 1px/2px pink-cyan aperture-grille stripe layer, a 22%-tall cyan sweep band translating from -24% to 124% over 7.5s, and a flicker overlay that steps to 5–7% black for single frames. Canvas draws a 260-star 3D starfield (z depth 0.03–1, projected around the centre, colours cyan/white/violet/pink, size and alpha from 1/z), six purple wireframe asteroids with irregular 7-sided polygons that drift and wrap, a cyan wireframe arrowhead ship with a pink cockpit and yellow wing accents following a closed Catmull-Rom loop through seven waypoints, yellow shots fired every 620ms along the ship heading with fading trails, and pink/yellow particle bursts when a shot hits a rock (score +100). UI overlay in ui-monospace uppercase: a marquee "ASTRO VANGUARD" (cyan + pink, letter-spacing .16em, chromatic text-shadow with 2px pink and -2px cyan offsets plus layered glow), a "1 PLAYER · 1 COIN · NEON ORBIT SYSTEMS 1984" subtitle, a right-hand HUD with a blinking DEMO badge, SCORE and WAVE readouts, a centre-left HIGH SCORES table of seven rows (rank in violet, name, tabular-nums score, leader in yellow), a large blinking INSERT COIN line that becomes PRESS START once credits exist, a CREDITS counter, and a bottom control panel strip listing the controls. Palette #05030a black, #ff2d78 neon pink, #00e5ff cyan, #ffd400 yellow, #7c4dff violet. WebAudio square/triangle blips are created and resumed inside the first user gesture and wrapped in try/catch. Clicking again after the coin launches a real playable game: a four-state machine (attract / playing / gameover) swaps the demo for a player-controlled cyan arrowhead driven by Arrow keys or WASD acceleration with friction, plus a pointer-follow drag target (click or tap sets the target and fires); the ship is clamped to the play field. Space or click fires 5 px/frame shots on a 190 ms cadence. Three ships: asteroid contact bursts cyan and pink sparks, blinks the ship through 1.6 s of invulnerability and costs a life. Each destroyed rock scores +100 and every 1000 points advances a wave that speeds up rocks and shortens spawns. At zero ships GAME OVER appears, the run is spliced into the seven-row high-score table as YOU, and the attract loop resumes after 2.4 s. DESCRIPTION: A fully simulated arcade attract loop: the ship flies its demo circuit on its own, fires at drifting asteroids, scores points and advances waves while the high-score table quietly reshuffles itself. Every CRT artefact is present — scanlines, aperture grille, rolling sweep, occasional flicker — and the neon typography is built from layered text shadows rather than any image or webfont. Drop a coin and the attract loop hands over the stick: a real game begins - three ships, drifting asteroids, shots, waves, and a high-score table that remembers your run. TECHNIQUES: 3D starfield projection on a DPR-scaled canvas with setTransform; closed Catmull-Rom spline path sampling with finite-difference heading for the ship; polygon asteroid meshes with per-vertex jitter; particle bursts; repeating-linear-gradient scanlines and aperture grille with mix-blend-mode multiply/screen; transform-only sweep and steps() flicker; chromatic-aberration text shadows; WebAudio square-wave blips with exponential gain envelopes inside try/catch; periodic DOM high-score insertion that keeps the table sorted; four-state game machine (attract/playing/gameover) with acceleration-and-friction player physics, pointer-follow target, distance-based asteroid collision, invulnerability blink, and a high-score splice that trims the table back to seven rows. INTERACTION: Click, tap or press Space/Enter to insert a coin - credits increment, the chiptune coin arpeggio plays, and INSERT COIN becomes PRESS START. Clicking again (or Space/Enter) starts the game: fly the cyan ship with Arrow keys/WASD (acceleration plus friction) or hold the pointer - the ship eases toward the cursor and fires while held. Space or a click fires a shot. Destroyed asteroids score +100 and every 1000 points advances a wave; colliding with an asteroid costs one of three ships, bursts sparks, and blinks the ship through 1.6 s of invulnerability. At zero ships GAME OVER appears, a qualifying score is inserted into the high-score table as YOU, and the attract demo resumes after 2.4 s (or immediately on a click). In attract mode arrow keys still nudge the demo ship and the table inserts a new plausible entry every 6.2 s. Reduced motion slows the starfield, disables the sweep, flicker, blink animations and the score cycling, and lengthens the demo shot interval.