diff --git a/PROJECT.md b/PROJECT.md
index 01b614c..10aa77f 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -451,6 +451,13 @@ followed you onto the silent menu.
`menuMusic()` is now the one call that means "we are in the menus": it starts the theme, un-ducks
it, and ducks both court beds. `ambient()` and `zombieMusic()` un-duck themselves for the same
reason — the SECOND run would otherwise have been played in the silence the menu left them in.
+
+**...and each of those un-ducks ITS OWN BED ONLY.** The first cut had `ambient()` un-duck both
+court beds together, which put the splatter music back on in classic tennis for the rest of the
+session — Oliver caught it on the retest: *"after playing the splatter gore, the zombie background
+sound also keeps playing in the normal tennis game."* LEAVING the court is one event and ducks both
+beds; ARRIVING is not. The ambience belongs to every mode, the zombie bed belongs to the gore, and
+only `enterSplatter` may bring that one up.
**The rule, for anything added here later: a bed's start function must also un-duck it, because
starting it is a no-op the second time and ducking it is not.** `audio.bedTest` exposes the duck
set to the suite (same idea as `netTest`), which is what makes this testable at all — the beds
diff --git a/index.html b/index.html
index d77d921..4bbd5fa 100644
--- a/index.html
+++ b/index.html
@@ -547,6 +547,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one') {
-
+