(function () { var hero = document.querySelector('.hero'); if (!hero) return; var heroBg = hero.querySelector('.hero-bg'); var heroFg = hero.querySelector('.hero-fg'); var heroScroll = hero.querySelector('.hero-scroll'); var heroH = hero.offsetHeight; var ticking = false; function update() { var s = window.scrollY; if (s > heroH) { ticking = false; return; } // Background: moves at ~70% of scroll speed (30% slower) if (heroBg) heroBg.style.transform = 'translateY(' + (s * 0.3) + 'px)'; // Foreground text: moves at ~85% of scroll speed (15% slower) if (heroFg) heroFg.style.transform = 'translateY(' + (s * 0.15) + 'px)'; // Scroll arrow: fades out in the first 25% of the hero height if (heroScroll) { heroScroll.style.opacity = Math.max(0, 1 - s / (heroH * 0.25)).toFixed(3); } ticking = false; } window.addEventListener('scroll', function () { if (!ticking) { requestAnimationFrame(update); ticking = true; } }, { passive: true }); window.addEventListener('resize', function () { heroH = hero.offsetHeight; }); })();