Water Field
A slow caustic water surface for sitting behind content — always moving, never asking for attention.
waterglasswebglshaderbackgroundambientportfolio@paper-design/shaders-react
Note
Deliberately independent of the pointer. An earlier version tracked the cursor and read as a spotlight following you around; this one just breathes. Cursor interaction belongs to Cursor Ripples instead. Keep `speed` low and opacity under about 0.2 behind text — the caustics are easy to overdo. WebGL, so it is guarded with `prefersReducedMotion()` and disappears rather than freezing.