// Initialize Feather Icons document.addEventListener('DOMContentLoaded', () => { if (typeof feather !== 'undefined') { feather.replace(); } }); // Scroll Animation Observer const observerOptions = { root: null, rootMargin: '0px', threshold: 0.1 }; const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('visible'); observer.unobserve(entry.target); } }); }, observerOptions); // Attach observer to elements with class 'reveal-on-scroll' document.addEventListener('DOMContentLoaded', () => { const revealElements = document.querySelectorAll('.reveal-on-scroll'); revealElements.forEach(el => observer.observe(el)); }); // Smooth Scroll for Anchor Links (Native CSS scroll-behavior handles most, but this is for fallback) document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector(this.getAttribute('href')); if (target) { target.scrollIntoView({ behavior: 'smooth' }); } }); });