35 particles distributed across full pot height, clipped to dynamic water area via water-clip-rect updated alongside water fill level. Particle opacity transitions on grain_mass changes per step. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DGKe8JzTM2Gr1fdx9wYXTi