When an agent enters the 'active' state, a Three.js Points particle
system emits additive-blended sparks that drift outward and upward from
the agent core. Particles have a 600–1400 ms lifetime and fade once the
agent returns to idle.
Particle counts are scaled by quality tier (20 / 40 / 64) so mobile
devices stay performant. Resources are properly disposed on agent
removal and WebGL context loss recovery.
Fixes#3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>