You can ship a beautiful animated hero and still hit a 100 Lighthouse score. Here is the budget I work within.

Motion sells, but jank loses. The goal is a hero that feels alive without stealing the milliseconds that decide whether a visitor stays.
The content renders first as plain server-side HTML. The WebGL layer hydrates on top of it, so the page is readable and indexable long before a single shader compiles.
Cap the pixel ratio, pause the render loop off-screen, and honor prefers-reduced-motion. A phone on battery should never run the same loop as a desktop GPU.
Performance is a feature. A 100 score with motion intact is a design constraint, not a trade-off.