diff --git a/PROJECT.md b/PROJECT.md
index 9f7a54b..f2943d2 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -1020,6 +1020,20 @@ contact radius: the tap must be honest" rule stands). A rally mode lives on cont
Note for future recorder sessions: **a 20 Hz sampler overstates closest approach by up to ~0.5 m**
on a 20 m/s ball — the recorder now samples at 60 Hz.
+**TWENTY-THIRD PASS — first game won, and the rungs flatten.** Fourth recorded session, his
+verdict "better": **he beat opponent one — the first game won in any recorded session — and reached
+opponent two,** which then took him apart with gaps of 1.66-2.13 m (60 Hz, accurate) while he swung
+at closest approach every time. The ladder gradient is real; the STEP was a wall, because every
+rung moves three dials at once (speed, width, pace, plus flub). Per-rung increments softened:
+`matchSpeedPer` .12->.08, `matchWidePer` .4->.25, `matchOppPacePer` .05->.035. Opponent one is
+untouched — the bases stay; only the slope flattens.
+
+The contact chain is now verified end to end by recorded play: LEGS (matchAssist) -> DESTINATION
+(assistK in intercept + the anyHit short-ball chase) -> REACH (matchReach). Each link was a separate
+defect found by a separate recorded session. The flight recorder earned a permanent place in the
+toolbox: passive 20-60 Hz sampling with pre-loss trails ended four rounds of "still the same" in
+four sessions, where autopilot measurement had failed for three passes straight.
+
**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 ef792ea..9337e41 100644
--- a/index.html
+++ b/index.html
@@ -400,6 +400,6 @@
-
+