diff --git a/PROJECT.md b/PROJECT.md
index a5eed6e..b6f5e4d 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -794,6 +794,28 @@ check the game's read against his own — and it answers the exact question the
be off in anything shipped. If his read and the marker disagree often, tune `drillSlack` before
touching `arrival`.
+**TWELFTH PASS — the marker stops lying, and the rule announces itself.** Oliver: *"the marker
+flips all the time even during a ball being midair.. i am not sure that a player would get the
+mechanic intuitively let alone without the marker"*.
+
+**The flip had a specific cause and it was a design bug, not jitter**: with lanes held and speeds
+constant, arrival DIFFERENCES never change while bodies walk — the queue only reorders on a kill or
+an arrival. So the marker was flipping because it showed ONLY `q[0]` while the rule accepts any
+near-tie within the slack: every kill made it jump between tied bodies, i.e. **the marker was
+stricter than the rule it was explaining**. `drillLegal()` now marks the whole slack set — bright
+head, dim ties — which is stable by construction. Measured: zero head-changes across 12 s of
+walking with no kills.
+
+**Learnability, two answers:**
+- the rule gets ONE modal, once per run, on the mode's own calm court (the seeded bodies are all at
+ the far baseline — this is the popup policy's sanctioned case): *CLEARANCE DRILL — DROP WHOEVER
+ WOULD REACH YOU FIRST · FAST BEATS CLOSE · STREAKS PAY*. "Most urgent first" is not guessable
+ from a chevron alone; one sentence makes it learnable in the first five seconds.
+- **the markers are training wheels that take themselves off**: they hide at streak >=
+ `drillMarkOff` (8) — the streak IS the evidence you can read the court — and any fault brings
+ them back. The teacher steps in exactly when you demonstrably need it and out when you don't,
+ and `drillMark: 0` still kills them outright.
+
**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 8e4cabc..b2d001f 100644
--- a/index.html
+++ b/index.html
@@ -399,6 +399,6 @@
-
+