Animation & Motion
One entrance per slide. Everything else moves only because something changed.
1 · Slide entrance
The whole slide rises in once: 10px, 400ms, cubic-bezier(0.22, 1, 0.36, 1). Leaving is instant. Nothing inside it is staggered.
transition: 'none' in slides.config.ts turns it off between the stages of one scene.
2 · State change
12
Motion answers a click or a "next": the lesson's stages, the step that was just reached, the question reel. It runs once, then the slide holds still.
3 · One accent
Hi!
At most one small pop after the slide lands, usually Momo's speech bubble. It changes again only when the state behind it changes.
Never: element-by-element entrances · loops that run on their own · more than one accent · motion without a reason. All motion respects
prefers-reduced-motion and lands on its final frame.