From a071494f4a928364608a906b1ec1d3e126c0277c Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Tue, 15 Sep 2026 22:42:08 -0400 Subject: [PATCH] Reduced motion is honored everywhere the table moves MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit One shared motion policy: the OS's reduce-motion setting, read live through Svelte's own media query, folds into the flourishes switch. Under it the board plays no flourishes, the reel skips its die interlude and slate wipes, bodies jump between squares instead of gliding, the canvas holds its ambient shimmers still, and the camera cuts wherever the director would have panned — in the cockpit as in the reel, so the eye still lands on what the director chose to watch. Timers and animation frames are cleared when the policy flips or the pane closes. A first turn and two reels stepped clean under the setting with no errors. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG --- packages/web/src/App.svelte | 11 +++++-- packages/web/src/LiveFirstPerson.svelte | 32 ++++++++++++++++----- packages/web/src/Replay.svelte | 25 +++++++++++----- packages/web/src/fpv/FirstPerson.svelte | 38 ++++++++++++++----------- packages/web/src/fpv/FpvWorkshop.svelte | 24 ++++++++-------- packages/web/src/motion.ts | 11 +++++++ 6 files changed, 96 insertions(+), 45 deletions(-) create mode 100644 packages/web/src/motion.ts diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte index b0d591f..897d698 100644 --- a/packages/web/src/App.svelte +++ b/packages/web/src/App.svelte @@ -1,4 +1,5 @@