/* ── Scroll reveal + count-up ── */ var obs=new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(!e.isIntersecting) return; e.target.classList.add('visible'); e.target.querySelectorAll('.cu').forEach(countUp); obs.unobserve(e.target); }); },{threshold:0.12,rootMargin:'0px 0px -30px 0px'}); document.querySelectorAll('.reveal').forEach(function(el){ obs.observe(el); });