AOS.init(); document.addEventListener("DOMContentLoaded", function () { const rollingNumbers = document.querySelectorAll(".rolling-number"); const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const element = entry.target; const target = parseInt(element.getAttribute("data-target")); let current = 0; const increment = target / 120; const updateNumber = () => { current += increment; if (current < target) { element.textContent = Math.floor(current); requestAnimationFrame(updateNumber); } else { element.textContent = target; } }; updateNumber(); observer.unobserve(element); } }); }); rollingNumbers.forEach((number) => { observer.observe(number); }); });