// Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector(this.getAttribute('href')); if (target) { window.scrollTo({ top: target.offsetTop - 80, behavior: 'smooth' }); } }); }); // Simple animation on scroll const observerOptions = { root: null, rootMargin: '0px', threshold: 0.1 }; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('animate-fade-in-up'); } }); }, observerOptions); document.querySelectorAll('.animate-on-scroll').forEach(el => { observer.observe(el); }); // Add animation classes to elements document.addEventListener('DOMContentLoaded', function() { // Add animation classes to feature cards document.querySelectorAll('.grid > div').forEach((card, index) => { card.classList.add('animate-on-scroll'); card.style.transitionDelay = `${index * 0.1}s`; }); // Add animation to how-it-works steps document.querySelectorAll('.flex .flex-shrink-0').forEach((step, index) => { step.parentElement.classList.add('animate-on-scroll'); step.parentElement.style.transitionDelay = `${index * 0.2}s`; }); }); // Animation CSS (added dynamically) const style = document.createElement('style'); style.textContent = ` @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in-up { animation: fadeInUp 0.6s ease-out forwards; } .animate-on-scroll { opacity: 0; } `; document.head.appendChild(style);