document.addEventListener('DOMContentLoaded', function() { // Color scheme toggle functionality const colorSchemeToggle = document.getElementById('color-scheme-toggle'); if (colorSchemeToggle) { colorSchemeToggle.addEventListener('click', function() { document.documentElement.classList.toggle('dark'); localStorage.setItem('colorScheme', document.documentElement.classList.contains('dark') ? 'dark' : 'light'); }); } // Initialize color scheme from localStorage if (localStorage.getItem('colorScheme') === 'dark') { document.documentElement.classList.add('dark'); } // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); document.querySelector(this.getAttribute('href')).scrollIntoView({ behavior: 'smooth' }); }); }); // Animate elements when they come into view const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('animate-fadeIn'); } }); }, { threshold: 0.1 }); document.querySelectorAll('.animate-on-scroll').forEach(el => { observer.observe(el); }); });