Player experience:
- Tiered win celebration overlay (WheelWinReveal): quiet message for the
"nothing" slice, lighter reveal for common prizes, full confetti +
jackpot glow for rare ones. Rarity classified client-side by type +
amount (wheelPrizeTier), shared icon rendering (wheelPrizeIcon).
- Three-phase spin motion (wind-back -> overshoot -> settle) with a
reduced-motion fast path; responsive wheel scaling via ResizeObserver.
Reveal-timing fix:
- The server pushes the refreshed winners list (which already contains the
just-won prize) the instant it answers the spin, ~5s before the wheel
stops. useFortuneWheel now buffers that update mid-spin and flushes it in
finishSpin so the prize is no longer spoiled in the winners panel.
- handleTransitionEnd only reacts to the wheel's own transform transition,
so a child icon's bubbling transitionend can't advance the spin phase
machine early.
Prize editor (admin):
- Add/Remove prize buttons in FortuneWheelSettingsView. New rows carry a
negative temp id collapsed to 0 on the wire (server inserts); removed rows
are simply omitted (server soft-disables). Requires the matching emulator
change to WheelManager.savePrize / WheelAdminSavePrizesEvent.
i18n: wheel.win.* and rarevalues.editor.add/remove in en/it/nl.