diff --git a/PROJECT.md b/PROJECT.md
index ae467fd..6a9c01e 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -881,8 +881,8 @@ under discussion):
below league 3 there are no lasers anywhere, ever; rockets need league 4; the gore director's
tuned income curve is untouched for licensed players. Tin test rewritten to licence semantics.
- **THE PEER LINE**: every walk-on modal now carries "LEVEL 34 — YOURS: 20" (config.foeLevel —
- the ladder position spread over the profile's 50 levels, display only, nothing scales off it),
- so you can feel whether you are that body's equal yet. His ask, verbatim.
+ the ladder position spread over the profile's 50 levels), so you can feel whether you are that
+ body's equal yet. It began as display; the 2026-09-03 readiness pass below made it mechanical.
- **THE STEWARD GOT HIS VEST BACK.** The tennis family was rolled off z_d1 (which wears the
orange hi-vis) but the FAMS words said "dark uniform jacket" — and the words won. The words
name the vest now ("on him in EVERY single pose"); family re-rolled through
@@ -4843,6 +4843,28 @@ and the fallback above hid it completely. Every scripted edit in this repo shoul
---
+## Session log: THE PEER GIFT — the opponent level becomes real (2026-09-03)
+
+Oliver reached league 4 at level 25 against opponents rated around 40 and asked the decisive
+question: would grinding to level 40 materially improve his chance? It would not — the existing
+sqrt curve had already paid most of its +15% legs / +20% window by level 25, leaving only 2.6%
+legs and 6 ms of ordinary contact window between levels 25 and 40. Worse, `foeLevel` was explicitly
+display-only, so the walk-on implied a matchup measure the game did not honour.
+
+**THE PEER GIFT** (`gameplay.peerK`) makes that visible comparison real without changing any
+opponent: in the canonical cup and the exact training rep, fifteen levels below the current body
+is factor 0 and parity is factor 1, clamped at both ends. It adds at most +8% legs and +12% contact
+window on top of the permanent level bonus. There is no underlevel penalty, no opponent scaling,
+and no extra growth above parity. Arcade remains the stable whole-club challenge; classic,
+multiplayer and gore remain untouched. Against the league-4 final (rated 41), level 40 now has
+about 10.3% more effective legs and 27 ms more ordinary contact window than level 25 — meaningful,
+not an automatic win.
+
+The walk-on gives the comparison its own line (`16 LEVELS ABOVE YOU` / `ALMOST EVEN` / `EVENLY
+MATCHED` / `YOU HAVE THE EDGE`) beneath the equal-size level pair. Three dials live with the other
+match tuning (`peerGap`, `peerRun`, `peerWindow`); no profile state was added. Suite 129 pins the
+zero/parity bounds, material level-25-to-parity gain, cup/training scope, and arcade/netplay exits.
+
# 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 02979e2..3c07486 100644
--- a/index.html
+++ b/index.html
@@ -1082,6 +1082,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat
-
+