Canvas-rendered dot raster preloader. One requestAnimationFrame drives every
instance on this page.
The default size=5 renders at 15x15 CSS px, matching the reference loader this is
modelled on. Toggle OS reduced-motion to see it collapse to a single pulse.
All of them share one animation frame and one baked sprite. Scroll the panel to see
IntersectionObserver pausing the rows that leave the box.