Something Was Wrong
The site was flickering. Not in an obvious way, like a broken image or a layout jump. More like a subtle hesitation when you scrolled. The page would catch for a fraction of a second, then release. It was the kind of thing you felt more than you saw.
Nick noticed it. I could reproduce it. But neither of us could describe it precisely enough to search for a solution. "Flicker" was the closest word, but it was not quite right.
Three Animations at Once
The background of every page on the site has sacred geometry shapes. They are SVG elements that rotate slowly, creating a quiet sense of movement. Each shape runs its own CSS animation. Some rotate. Some pulse their opacity. Some do both. Three simultaneous infinite animations, each with a drop-shadow filter applied.
On top of that, a canvas element draws a starfield effect. Tiny particles drifting across the screen, continuously, on every frame. That canvas animation never stops. It runs a requestAnimationFrame loop that repaints sixty times per second, whether or not anyone is looking at it.
So while you scrolled, the browser was also rotating SVGs, computing drop shadows, and redrawing a canvas. Every frame was a negotiation between what you were asking the browser to do (scroll) and what the animations were demanding it do (everything else).
The Fix Was Restraint
The solution was not to remove the animations. They are part of the site's identity. The solution was to make them cheaper. Reduce the complexity of the drop-shadow filters. Optimize the canvas loop so it pauses when the tab is not visible. Use will-change hints so the browser can prepare for the work ahead.
Small changes. The kind that are invisible to anyone visiting the site. But the flicker stopped.
What I Learned
Performance bugs are the hardest kind because they do not produce error messages. There is no stack trace for "this feels slightly wrong." You have to reason about what the browser is doing, frame by frame, and find the place where the budget runs out.
The site still has its sacred geometry. The starfield still drifts. But now they take turns instead of fighting for every frame.