// Reading progress bar for single pages/articles (function() { const progressBar = document.getElementById('reading-progress'); if (!progressBar) return; function updateProgress() { const windowHeight = window.innerHeight; const documentHeight = document.documentElement.scrollHeight - windowHeight; const scrollProgress = documentHeight > 0 ? (window.scrollY / documentHeight) * 100 : 0; progressBar.style.width = scrollProgress + '%'; } // Throttle the scroll event for better performance let ticking = false; window.addEventListener('scroll', function() { if (!ticking) { window.requestAnimationFrame(function() { updateProgress(); ticking = false; }); ticking = true; } }, false); // Initial call updateProgress(); })();