// Initialize Feather Icons document.addEventListener('DOMContentLoaded', function() { feather.replace(); // Add scroll animation to elements 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'); } }); }, observerOptions); // Observe feature cards document.querySelectorAll('.feature-card').forEach(card => { card.classList.add('opacity-0'); observer.observe(card); }); // Mobile menu toggle const mobileMenuButton = document.querySelector('header button'); const navMenu = document.querySelector('header nav'); if (mobileMenuButton && navMenu) { mobileMenuButton.addEventListener('click', () => { navMenu.classList.toggle('hidden'); navMenu.classList.toggle('flex'); navMenu.classList.toggle('absolute'); navMenu.classList.toggle('top-16'); navMenu.classList.toggle('left-0'); navMenu.classList.toggle('w-full'); navMenu.classList.toggle('bg-gray-800'); navMenu.classList.toggle('py-4'); navMenu.classList.toggle('px-6'); }); } }); // Theme toggle functionality function toggleTheme() { const html = document.documentElement; if (html.classList.contains('dark')) { html.classList.remove('dark'); localStorage.theme = 'light'; } else { html.classList.add('dark'); localStorage.theme = 'dark'; } } // Set initial theme based on system preference or localStorage document.addEventListener('DOMContentLoaded', () => { if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } });