Each list gets a dynamically generated keyframe where only 1/N of the
cycle is active. Bullets are staggered 0.8s apart so they take turns
pulsing in sequence, looping forever.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Teal bullet dots pulse with a staggered throb when list items scroll
into view. Uses IntersectionObserver with 120ms stagger per item.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>