document.addEventListener('DOMContentLoaded', () => { const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add('is-visible'); observer.unobserve(entry.target); } }); }, { threshold: 0.14, rootMargin: '0px 0px -30px 0px' } ); document.querySelectorAll('.reveal').forEach((node) => observer.observe(node)); });