Every screen deals itself in, every time

The entrance is no longer a one-off on the boot: dealStage re-arms the class at
the funnel every stage change already passes, so the title screen flies its
plaque and buttons in whenever you arrive at it. The sub-menus join in — their
header, content and footer arrive one after the other instead of the panel
dropping in as one slab — and the poster wall deals its three rooms rather than
its list, since a moving child inside a moving parent starts at twice the
offset and reads as a stutter.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-31 13:25:26 +02:00
1 parent aab83dacdc
commit 3324fe9cda
3 files changed
+67 -18

No files matched your search

+14 -4
View File
@@ -596,10 +596,20 @@ is in the HTML now and main.js only ever takes it off. The keyboard-hint strip h
(`body:has(#splash.busy) #hint`), so the loading screen really is court, title and bar.
**THE MENU DEALS ITSELF IN.** The canvas modals have always arrived on an easeOutBack overshoot;
the splash now does the same once, on the boot: plaque, fixture, OTHER GAMES, the pair, the build
line fly in from the left 70ms apart (`@keyframes dealIn`, hung off `#splash:not(.busy)` so the
class removal IS the trigger). It fires on the boot only — coming back from a run must not make
you wait for a flourish you have already seen — and `prefers-reduced-motion` turns it off.
every menu screen does the same now — on EVERY arrival, not just the boot (Oliver, twice: "immer
reinfliegen" and "auch für die untermenüs"). `@keyframes dealIn` flies an element in from the left
on that overshoot, and `main.dealStage()` re-arms the `deal` class on #intro at the one funnel
every stage change passes (remove, force a reflow, add — an animation whose class never left
cannot restart, and CSS has no replay switch).
- THE SPLASH deals its own five: plaque, fixture, OTHER GAMES, the pair, the build line, 70ms apart.
- EVERY OTHER SCREEN deals its BANDS — header, content, footer — through
`#intro.deal > .card > div:not(#splash) > *` with an nth-child stagger. The panel's old
whole-slab `drop` retired: a slab says "a screen appeared", a deal says "the machine is laying
this out for you".
- THE POSTER WALL deals its three ROOMS instead of its list, and the list itself stops animating —
a moving child inside a moving parent starts at twice the offset and reads as a stutter.
- `prefers-reduced-motion` turns all of it off, and the splash holds its deal until the boot gate
lifts (there is nothing to deal while the loading state is up).
**EVERY SCREEN OPENS AT ITS TOP.** `#intro` is the one scroller the menus share, so a scroll earned
on the stats screen outlived it — go back and the splash came up scrolled, buttons off screen