ticle.y > this.canvas.height + 10) particle.y = -10;
                    
                    // Update pulse
                    particle.pulse += particle.pulseSpeed;
                    particle.size = particle.baseSize + Math.sin(particle.pulse) * 0.2;
                    
                    // Handle fading
                    if (particle.fadeOut) {
                        const fadeProgress = (particle.age - particle.maxAge * 0.8) / (particle.maxAge * 0.2);
                        particle.opacity *