One-shot benchmark brief: build a single-file bullet-hell arena survival demo in vanilla HTML, CSS, and JavaScript for the canonical `/bullet-hell/` route of the master `{{ skill:oneshot }}` catalog.

Project name: `gpt-54.pages.dev`
Slug: `bullet-hell`
Label: `One-shot Bullet Hell`

Core direction:
- Arena survival danmaku benchmark in a neon monastery
- Readability first, then density
- No external assets
- Keyboard, mouse, and touch controls
- Single `index.html` artifact with inline CSS and JS

Chosen preset:
- `Neon foundry` as the structural preset
- Reskinned with monastery fiction: lacquer-black floor, cyan incense haze, vermilion wards, gold halos, and chrome reliquaries

Required systems:
- Clear player hitbox and readable enemy bullets
- At least 3 distinct enemy or boss phases
- Graze reward loop
- 3 upgrade lanes during a run
- Dash on cooldown
- Limited screen-clear panic
- Pause and retry controls
- Reduced-motion support
- Persist longest survival run and best score locally

Attack-phase plan:
1. Bellkeeper spiral
   - Opening boss phase
   - Rotating twin spirals and expanding prayer-ring blooms
   - Slow enough to teach the lane geometry before density climbs
2. Sutra lattice
   - Mid-game boss phase
   - Side-to-side grid curtains, delayed seal detonations, and mirrored beam fans
   - Forces gap reading and tempo shifts instead of pure twitch dodging
3. Abbot of static
   - Late-game boss phase
   - Aimed fan bursts, rotating halos, and light homing petals
   - Overlaps grammars from prior phases for a proper benchmark spike

Art direction:
- Neon monastery courtyard at night
- Ink-dark background with luminous floor rails and shrine silhouettes
- Cyan, vermilion, amber, and soft white only
- UI should feel like an arcade reliquary rather than a generic sci-fi HUD

Interaction plan:
- Keyboard: WASD or arrows to move, Shift or Space to dash, X to panic, P to pause, R to retry
- Mouse: hold and drag on the playfield to steer
- Touch: drag on the playfield to steer, with visible dash and panic buttons on mobile

Output order:
1. Write this `PROMPT.md`
2. Write `index.html`
3. Write `artifact.json`
