th.PI * 2);
                     this.ctx.fillStyle = `hsla(${particle.hue}, 70%, 30%, ${particle.opacity})`;
                     this.ctx.fill();
                 });
                
                requestAnimationFrame(() => this.animate());
            }
        }
        
        // Initialize particles when page loads
        window.addEventListener('load', () => {
            new ParticleSystem();
        });

        document.getElementById('emailForm').addEventListener('submit', async function(e)