.ai/lessons.md
animate-out keyframes default to animation-fill-mode: none. The element snaps back to its natural state when the keyframe ends. Alpine hides the element (display: none) only after its own timer (read from transition-duration), which starts ~2 rAF later than the animation. The gap shows the element at full opacity.x-transition:leave that uses tw-animate-css animate-out MUST also include fill-mode-forwards.