diff --git a/PROJECT.md b/PROJECT.md
index 91d9a74..2558e99 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -560,12 +560,81 @@ record, promotion screen) are the material the story is built from.
9. **METAL IN GORE ONLY.** The existing beds do not fit. Oliver is researching a track; parked until he
brings one. Entry point: the transformation.
-### Still open
-- A prologue: one classic match against a living opponent with the old transformation, once at the start?
-- The racket zombie in story chapters.
-- Endless arcade gore keeping its duel economy unchanged (proposed: yes).
-- The arcade unlock order.
-- Then the phase plan (to be written before any gameplay changes).
+10. **A PROLOGUE**, once, before Act I: a classic match against a LIVING opponent and the old transformation
+ unchanged (the living man turns), which tells the outbreak. Classic tennis gets its story role.
+11. **THE RACKET ZOMBIE** stays in story chapters as an ordinary opponent that returns balls, with no duel
+ behind it.
+12. **ENDLESS GORE (arcade) keeps its duel economy unchanged.** Only the story drops the duel.
+13. **ARCADE UNLOCK ORDER** (as in the storyboard):
+ - Act I: Training and Classic Tennis (the free tier ends here, on a win);
+ - Act II: The Climb;
+ - Act III: Splatter Gore (endless);
+ - Act IV: Vs a Friend, hosting;
+ - Act V: Members' Night, the boss marathon (option C, later).
+ Each act also unlocks its court for all modes, as the leagues already do. The weapon pool grows per act:
+ - I: bomb, triple, fire;
+ - II: gun, beacon;
+ - III: laser;
+ - IV: flamer, rocket;
+ - V: double tins.
+
+All decided (Oliver, 2026-10-15). Next: the phase plan, written here before any gameplay changes.
+
+### What the code forces (survey of 2026-10-15, before building)
+- **The cup does not run in `'tennis'`.** It runs in `'splatter'` under a permanent `G.interlude`; O is
+ invisible and the opponent is a zombie `'r'` with a `fam`. `startTransition` is keyed on O and on mode
+ `'tennis'`, so the act transformation is a NEW variant on the `'r'` body. The prologue can use the old
+ one unchanged, because it IS a classic match.
+- **`restartRun` wipes all of `G`.** Checkpoint state (act, checkpoint, rack snapshot, attempts) must live in
+ the profile, the way the promotion and the last run already survive it.
+- **The cup's games count into `G.runGames`.** A chapter must start at game 0. Spawn ramps, `barrelGap`,
+ `BARREL_WEAPONS.from` and racket hp all read it.
+- **Bosses are keyed on chapter numbers.** `G.bossDue = floor(runGames / 10)`, `bossArt(ch)`, and hp/scale
+ grow with the chapter. The story needs a design-indexed spawn: a `BOSS_ART` row plus an act strength,
+ with a game-5 hook in `splatPoint`.
+- **Duels fire from TWO places:** the schedule (`duelDue`), and an unscheduled lucky-clear trigger in update
+ whenever exactly one un-dueled `'r'` stands in pretoss. Racket zombies also arrive from `splatPoint`,
+ `endHorde` and `startDuel`. "No duel in the story" must gate both triggers.
+- **`cupWon` ends with `G.done`, which freezes `update()`.** The story's final must branch before that:
+ at the final's kill fall, or by replacing `cupWon`.
+- **Tests that pin what the story changes:**
+ - 'THE CUP CLIMBS' (rounds ascending, the final the band's top). The story builds its own rounds and
+ leaves `cupRoundsFor` alone.
+ - The TOURNAMENT / LEAGUES promotion tests. The story's act card replaces promotion only on the story
+ path.
+ - Arcade gore's tests stay as they are, because arcade gore stays as it is.
+
+### The phases
+Each phase ships to staging and gets a phone verdict, and tests ride along with each one.
+1. **THE SPINE — story state and flow, on the existing screens.**
+ - `prof.story = {act, cp, stock, tries}`, with a profile version bump that resets the testers.
+ - `beats.startStory()` is a mode owner like every other.
+ - The story cup is the league cup machinery with its own rounds builder (final = the act boss's body).
+ - The chapter is gore from game 0, capped at 10, with:
+ - no duels (both triggers gated);
+ - the racket zombie as an ordinary returning body;
+ - the mid-boss at game 5 and the boss at game 10 through a design-indexed boss spawn;
+ - the cup loot as the starting rack (`grantWeapon`);
+ - a restock and full heal after the mid-boss.
+ - Death or elimination restarts from the checkpoint.
+ - The splash's primary button continues the story.
+ - Transitions are plain cards (`showModal` / `G.card`) for now.
+2. **THE TRANSFORMATION AND THE PROLOGUE.**
+ - The act variant: at the final's last point, zoom onto the `'r'` body, hitstop and flash, and a `'B'`
+ boss of its design spawns there and grows. It runs out of frame, the stands empty onto the court
+ (the mob beat), and `enterSplatter()` starts game 1 without a cut. The boss's name slams with
+ "GAME 10".
+ - The prologue: a classic match against a living opponent, re-using `startTransition` as written.
+3. **THE SCREENS.** The act title card, the cup-won/loot screen (count-up, weapons dropping into the rack,
+ the chapter preview with "???"), the checkpoint banner, the death screen with its retry point, and the
+ act card on the promotion screen's pattern. All animated, in the storyboard's look.
+4. **HELP, ARCADE, UNLOCKS.**
+ - The assist tiers (from the 3rd try, at most 2).
+ - The menu: arcade shows only what the story has unlocked (with a premium flag stub), in the agreed
+ order.
+ - Courts and the weapon pool per act, and the free-tier cut at the end of Act I (the store plan's flag).
+5. **LATER.** The metal bed (when Oliver has a track: start at the transformation, gore only) and Members'
+ Night (option C).
## Session log: THE SEASON, PHASES 1-4 — the front door, the record, the rooms, the season beat (2026-08-31, STAGING ONLY)
@@ -5838,8 +5907,7 @@ stance the old recovery still takes him back.
Nothing here is broken; these are known gaps and unverified risks.
-0. **THE STORY (2026-10-15) is agreed in discussion and NOT built.** See "THE STORY" above; the phase plan
- comes next.
+0. **THE STORY (2026-10-15) is agreed and planned (five phases), NOT built.** See "THE STORY" above.
00. **THE RALLY GOES FLAT (2026-10-13).** Every match converged on serve, both at the net,
reflex volleys, won by a wrong-foot. Step 1 (the court gets its length) SHIPPED v361, awaiting the
diff --git a/index.html b/index.html
index 1c79045..11bad8c 100644
--- a/index.html
+++ b/index.html
@@ -1140,6 +1140,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
REC
-
+