(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 at 55%, text at 80% — both slower than normal, image slowest if (heroBg) heroBg.style.transform = 'translateY(' + (s * 0.25) + 'px)'; if (heroFg) heroFg.style.transform = 'translateY(' + (s * 0.15) + 'px)'; // Scroll arrow fades out over the first 30% of hero height if (heroScroll) { heroScroll.style.opacity = Math.max(0, 1 - s / (heroH * 0.3)).toFixed(3); } ticking = false; } window.addEventListener('scroll', function () { if (!ticking) { requestAnimationFrame(update); ticking = true; } }, { passive: true }); window.addEventListener('resize', function () { heroH = hero.offsetHeight; }); })();