- Introduce `BarrierManager` to handle neon cyberpunk-style barriers on screen edges and optional interior obstacles.
- Edge barriers blink in after a short delay, trap the player if they are inside when solidified (instant death + respawn), and explode when zone waves complete to allow exit.
- Interior barriers block enemies but not the player, adding tactical depth to arena layouts.
- Update `zones.json` with `interiorBarriers` config per zone.
- Adjust player/enemy sprite depths for correct rendering order relative to barriers.
- Integrate barrier collision into physics: player vs all barriers, enemies vs interior only; bullets destroyed on contact with any barrier.
- Refactor zone transitions and exit logic to coordinate barrier activation/destruction animations.
Adds a new "zone exit" phase that triggers after all waves in a zone are cleared:
- Listens for `zone-waves-complete` event to start the exit sequence.
- Displays blinking arrows on all screen edges and a "ZONE CLEARED" prompt.
- Disables world bounds to allow the player to walk off-screen.
- Detects when the player crosses an edge and triggers a transition:
- Shows a white flash animation.
- Respawns the player on the opposite edge, maintaining their lateral position.
- Re-enables world bounds and starts the next zone via `WaveManager.startNextZone()`.
Refactors `WaveManager` to defer zone advancement until the player exits, ensuring a smoother flow between zones.