document.addEventListener('DOMContentLoaded', () => { const mobileNavToggle = document.querySelector('.mobile-nav-toggle'); const navLinks = document.querySelector('.nav-links'); const header = document.querySelector('.header'); let lastScroll = 0; mobileNavToggle.addEventListener('click', () => { navLinks.classList.toggle('active'); const spans = mobileNavToggle.querySelectorAll('span'); spans[0].style.transform = navLinks.classList.contains('active') ? 'rotate(45deg) translate(8px, 8px)' : ''; spans[1].style.opacity = navLinks.classList.contains('active') ? '0' : '1'; spans[2].style.transform = navLinks.classList.contains('active') ? 'rotate(-45deg) translate(7px, -7px)' : ''; }); window.addEventListener('scroll', () => { const currentScroll = window.pageYOffset; if (currentScroll <= 0) { header.style.transform = 'translateY(0)'; return; } if (currentScroll > lastScroll && !header.classList.contains('scroll-down')) { header.style.transform = 'translateY(-100%)'; } else if (currentScroll < lastScroll && header.classList.contains('scroll-down')) { header.style.transform = 'translateY(0)'; } lastScroll = currentScroll; }); const observerOptions = { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.style.opacity = '1'; entry.target.style.transform = 'translateY(0)'; } }); }, observerOptions); document.querySelectorAll('section').forEach(section => { section.style.opacity = '0'; section.style.transform = 'translateY(20px)'; section.style.transition = 'opacity 0.6s ease-out, transform 0.6s ease-out'; observer.observe(section); }); const form = document.querySelector('.contact-form'); form.addEventListener('submit', (e) => { e.preventDefault(); const formData = new FormData(form); const data = Object.fromEntries(formData); console.log('Form submitted:', data); form.reset(); }); });