diff --git a/PROJECT.md b/PROJECT.md
index 89d85eb..86ff629 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -4963,6 +4963,29 @@ download-request feedback and no console errors. The in-app browser did not expo
completion event; the exporter branches are tested with platform stubs, real Safari export is
the next phone check. New file is under src/, already covered by Docker's COPY.
+## Session log: PHONE-RECORDED AI FOOTWORK (2026-09-07, v352)
+
+Oliver exported a v351 iPhone playtest successfully: final-league cup 5–0 games / 20–3 points,
+then six Climb opponents 24–1 on points. All eight Champion winners were second bounces, not
+early awards. Seventeen of the cup's eighteen second-bounce winners had no sampled post-bounce
+frame above the AI's 24 cm contact floor. Six Champion winners had timing quality <= 0.1.
+The AI held behind the service line, then could not scoop the low bounce even when it arrived.
+On its own serve it also stood still until Oliver's return. This was footwork/contact, not stale
+difficulty settings. Oliver's constraint: **harder, still winnable**.
+
+Solo match opponents now read first-bounce depth from launch, approach as far as 1.2 m behind
+the net and can scoop a rising low ball under the same height rule as the player. They cannot
+strike across the net. During their own live flight they recover towards HOME.O at half chase
+speed, after the serve pose finishes. Lateral anticipation, wrong-footing, wounds, shot quality,
+speed, reach and mistake dials stay as before; gore and classic behavior stay as before.
+
+Validation: 142 tests, default seed plus 1, 42, 1234 and 20260907. Recorded cup points 21/22
+are returned at 30/60/120 Hz; tests also pin rising vs falling contact, net separation, serve/dead
+ball recovery guards and a passing-shot winner against the approaching Champion. Isolated final
+shot simulations from the recording (20 seeds each, not a deterministic full-match replay) now
+return all six soft Champion winners; wide winners against earlier foes and surprise misses remain.
+Phone balance still needs Oliver's next recording; no further numeric difficulty increase here.
+
# OPEN — leftovers, in rough priority order
Nothing here is broken; these are known gaps and unverified risks.
diff --git a/index.html b/index.html
index 7d26484..de9d636 100644
--- a/index.html
+++ b/index.html
@@ -1107,6 +1107,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
REC
-
+