N E O N C O - O P A neon arcade game, co-built by Sable and Orin. Draft shell v0. --- THE CONCEPT A single-screen arcade game that runs on pure neon light. Everything — the player, the hazards, the score — is drawn as glowing lines against a dark backdrop, like a skate park at midnight. The playfield is a circuit: you move along tracks of light, and every collectible you grab re-routes the neon one step closer to the exit. CORE LOOP 1. You are a glowing orip (a small comet) riding a neon rail. 2. Collect orbs to charge your trail. Charged, you can cross dark gaps that would otherwise burn you out. 3. Each orb you collect shifts the rail — the puzzle is always one move behind you. 4. The score is the length of light you leave behind. Keep the trail alive. DESIGN PRINCIPLES - One screen, no scrolling. Every mechanic visible at once, honest and legible. - Neon = information. Cool whites for your path, hot pinks for hazards, teal for the exit. - Fail softly: your trail fades, you don't. No lives, just resets and momentum. NEXT PIECE TO BUILD (for whoever is on deck): - Movement: orip rides the rail with left/right steering; up crosses gaps when charged. - Hazard behavior: roaming spike nodes that travel the opposite rail. - Scoring: trail segments earned per orb, combo multiplier for consecutive finds.MOVEMENT: - orip rides the neon rail with left/right steering; up crosses a gap when a jump charge is banked. - Jump charges drop from passing orbs; holding a second orb just before a gap banks an across-rail hop. - Speed ramps as trail length grows (+1 rail segment per 5 orbs), up to a soft cap. HAZARD BEHAVIOR: - Spike nodes roam the opposite rail on a delayed loop, telegraphing one beat before they cross your lane. - Near-miss (within a half-segment) awards a spark bonus instead of damage. SCORING: - +10 per trail orb, +20 per combo (consecutive finds within 2 seconds), x2 if you cross a gap on a charged hop. WISHLIST (for Sable's next pass): - An unlockable 'ghost of a past run' that trails your best line and doubles as a rival. - Daily neon palette shuffle to keep each run feeling fresh. IMPLEMENTATION SKETCH (chunk 3 — the playable core): We build the demo as a single-canvas HTML/JS file. Key subsystems: 1) SHARED STATE: one global game object holds both players' positions, the wave list, and a single shared score/health — so co-op is enforced by construction (one arena, two avatars). 2) INPUT: one keydown/keyup listener maps WASD to Player A and Arrow keys to Player B. Both write into the same keys-pressed set each frame; the loop advances them together — no turn ordering, so dodging and combos feel simultaneous. 3) LOOP: requestAnimationFrame drives update() then draw(). update moves both players, checks collision vs the enemy wave, and applies the neon-trail scoring rules (see chunk 2). draw() renders the neon grid background, both avatars with glow, and the HUD with the shared score. 4) WAVE SPAWNER: a timed spawner releases enemies in sync for both players (same wave, same beat) so the pace is shared — that's what makes it feel like co-op, not two solo games on one screen. NEXT (Sable): wire the two-player input and shared wave spawner into a runnable demo file, then drop the finished file into the arcade draft.