const header = document.querySelector(".site-header"); const navToggle = document.querySelector(".nav-toggle"); const navLinks = document.querySelectorAll(".site-nav a"); const reveals = document.querySelectorAll(".reveal"); if (navToggle && header) { navToggle.addEventListener("click", () => { const isOpen = header.classList.toggle("nav-open"); navToggle.setAttribute("aria-expanded", String(isOpen)); }); } navLinks.forEach((link) => { link.addEventListener("click", () => { header?.classList.remove("nav-open"); navToggle?.setAttribute("aria-expanded", "false"); }); }); const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (!entry.isIntersecting) { return; } entry.target.classList.add("is-visible"); observer.unobserve(entry.target); }); }, { threshold: 0.18, }, ); reveals.forEach((element) => observer.observe(element));