Intensity 1.0 — hero

A backdrop that carries a whole section on its own.

Four radial blobs blurred into a mesh, with a perspective lattice underneath for depth. No canvas, no WebGL, no library — a handful of divs and one keyframe. It costs almost nothing and never blocks the main thread.

Intensity 0.55 — mid page

Same component, turned down.

One custom property multiplies all four opacities, so the mesh goes from loud hero backdrop to quiet section wash. You are not maintaining three copies of the same effect.

Why the blobs never sync

Each runs at 24s, 31s, 27s and 34s with negative delays. Different periods mean the pattern does not visibly repeat — the eye never catches a loop point.

Intensity 0.25 — background wash

Barely there, still alive.

At the lowest setting it reads as depth rather than decoration. Text on top stays fully legible — a background that fights the copy has failed at being a background.