diff --git a/PROJECT.md b/PROJECT.md
index ffefc17..153a180 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -870,6 +870,25 @@ after the first serve does not happen from behind the groundline"*.
tennis branch. Serving from mid-court where the last rally left you read as a bug because it was
one. Verified: second serve from z 24.3, x mirrored to the ad side.
+**FIFTEENTH PASS — the opponent shows up, and the death loop dies.** Oliver: *"still very weak and
+slow opponent. it also spawns at places where it is impossible to react to my serve. so i win like
+always. in the cases i dont win there is a bug. when trying to serve after i got hurt i get hurt
+again and again until i die"*.
+- **THE DEATH LOOP was `G.serveNum`.** Tennis's `pointTo` is the only thing that ever reset it — and
+ the match bypasses pointTo entirely. So the first fault of the match armed "second serve"
+ PERMANENTLY: every missed serve after it was a double fault -> a point -> blood -> repeat to
+ death, which is exactly the spiral a just-hurt, rattled player serves into. `matchReady()` (the
+ match's own point boundary) resets it now, and a regression pins it.
+- **The receiver starts every point ON ITS MARK.** It was spawning at a random x and standing
+ wherever the last rally abandoned it — an opponent that cannot reach the serve is not weak, it is
+ absent, and every ace against it was hollow. `matchReady` drops it onto the exact receiver
+ position the tennis branch computes for O (deuce/ad mirrored with the server).
+- **The base opponent is a player now**: `matchSpeedBase` 1.4 (the duel's 2.8 m/s lumber was tuned
+ for ONE sudden-death point, not a game) and `matchFlub` 0.08 (the duel's 0.2 gives away a fifth of
+ all returns — an opponent that beats itself). Measured with the same autopilot that previously won
+ seven straight games: **it now loses the match** (2-3, then blooded out in game two). That may
+ even be too hot — `matchSpeedBase`/`matchFlub` are the two dials, and Oliver's thumb is the judge.
+
**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.**~~ Largely CLOSED by
the slice removal (seventh pass) — a cut ball picking its own next victim was the main way this
diff --git a/index.html b/index.html
index f837e08..974b25e 100644
--- a/index.html
+++ b/index.html
@@ -400,6 +400,6 @@
-
+