// Intersection Observer for section animations document.addEventListener('DOMContentLoaded', () => { const sections = document.querySelectorAll('section'); const observer = new IntersersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('visible'); } }); }, { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }); sections.forEach(section => { observer.observe(section); }); // Smooth scroll for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const targetId = this.getAttribute('href'); if (targetId === '#') return; const targetElement = document.querySelector(targetId); if (targetElement) { targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); }); // Form handling document.querySelector('form')?.addEventListener('submit', (e) => { e.preventDefault(); const name = document.getElementById('name').value; const email = document.getElementById('email').value; const message = document.getElementById('message').value; if (!name || !email || !message) { alert('Please fill all fields'); return; } // Here you would normally send the form data to a server console.log('Form submitted:', { name, email, message }); alert('Message sent securely! I will contact you soon.'); e.target.reset(); });