const navToggle = document.querySelector('.nav-toggle'); const navMenu = document.querySelector('#nav-menu'); if (navToggle && navMenu) { navToggle.addEventListener('click', () => { const isOpen = navMenu.classList.toggle('open'); navToggle.setAttribute('aria-expanded', String(isOpen)); }); navMenu.querySelectorAll('a').forEach((link) => { link.addEventListener('click', () => { navMenu.classList.remove('open'); navToggle.setAttribute('aria-expanded', 'false'); }); }); } const revealEls = document.querySelectorAll('.reveal'); if ('IntersectionObserver' in window) { const io = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add('in-view'); io.unobserve(entry.target); } }); }, { threshold: 0.12 }); revealEls.forEach((el) => io.observe(el)); } else { revealEls.forEach((el) => el.classList.add('in-view')); }