diff --git a/PROJECT.md b/PROJECT.md
index 609d03b..7bf9f6b 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -647,13 +647,41 @@ survivors; an emptied batch brings in the next one) and it draws from whatever i
round asking for a colour which is not on court: precisely the un-winnable state this pass exists to
make impossible. **Splice first, resolve second.**
+**SEVENTH PASS — the colour comes off the body, and the mode stops making noises.** Oliver: *"the
+colored zombies should also explode like they did before and make the normal splash sound on
+destruction.. no bleeps please.. can we make the color as a color circle the walk on? the sign
+they're holding is not nice. also remove the ball slicing in this mode.. this leads to unwanted
+hits"*. Four things, and one of them was a straight bug of mine.
+
+- **THE BUG: bibbed bodies were dying silently and cleanly.** My hook in `killZombie` did
+ `drillKill(zb); return;` — and everything below that return is THE DEATH: the blood decal, the
+ pile, the 36-particle burst, the splat and the headshot crack. The drill resolves after the splice
+ and **without returning** now. Both halves are load-bearing and each was a bug in turn: splice
+ first or a freshly drawn combination can name the corpse; don't return, or the body just vanishes.
+- **The colour is a DISC ON THE COURT that the body walks on**, drawn BEFORE the sprite. The bib was
+ a flat quad pinned to a walking sprite — UI stuck onto a character rather than part of the world,
+ and it covered the artwork. On the ground it sits in the court's own perspective, it is far larger
+ in pixels than a chest patch at the same depth (measured 12.4 x 4.2 logical px at the spawn line,
+ 24 px wide by the time it reaches you), and it hides none of the sprite. The risk was reading as
+ another gore decal; the answer is the RING — gore is a soft flat blob, this has a hard dark rim and
+ a bright inner line, so it reads as painted court marking. `TUNE.drillRingR` sizes it.
+ **Weakest case is GREEN on grass** — legible thanks to the rim, but it is the one to watch.
+- **NO SLICING IN THE DRILL.** A cut ball leaves the corpse and strikes whatever it finds next; in a
+ mode where hitting the wrong body IS the failure, that is the game choosing your target for you and
+ choosing it badly. One guard on the `ball.chain` branch. This also retires the old open question
+ about a ball completing two steps of a combination in one shot.
+- **THE MODE NOW HAS NO SOUND OF ITS OWN, deliberately.** Two attempts have been vetoed: the recorded
+ umpire reading the list ("maximum annoying") and the arpeggio that replaced him ("no bleeps
+ please"). `blip()` is deleted from audio.js, `drillTones` from TUNE, the correct-kill tick from
+ `drillKill`. What is left is the game's own vocabulary — a kill bursts and splats like every other
+ kill — and the strip carries the list. **Do not add a third noise here without a reason**: both
+ attempts read as the mode talking over itself.
+
**Open, and every one of them is Oliver's call after he plays it:**
-1. **A ball that carries through the lane can complete two steps at once** — measured: one serve
- killed bib 1 and then bib 2 standing behind it, banking two correct steps in one shot. Had the
- second body been out of order that is an instant fault the player could not have intended. Either
- the lane is part of the puzzle (it is the same occlusion the `column` shape is built on) or the
- pierce has to stop on a drill kill. Do not patch it silently — it is a design fork, not a bug.
- **More likely to come up now** that `column` deliberately stacks bodies in one lane.
+1. ~~**A ball that carries through the lane can complete two steps at once.**~~ Largely CLOSED by
+ the slice removal (seventh pass) — a cut ball picking its own next victim was the main way this
+ happened. A straight ball can still plow through a body standing directly behind another
+ (`TUNE.zPierce`), which is honest occlusion rather than the game aiming for you. Watch it.
2. ~~**The tap aims itself.**~~ CLOSED by the second pass above — the snap is gone, you aim.
3. ~~Difficulty climbs on sequence LENGTH.~~ CLOSED by the stream — one ramp on time survived now
drives walk speed, arrival rate and round length together. What is still NOT ramped is how often
diff --git a/index.html b/index.html
index 835746c..a9f7087 100644
--- a/index.html
+++ b/index.html
@@ -399,6 +399,6 @@
-
+