import { features } from './data.js'; document.addEventListener('DOMContentLoaded', () => { if (typeof lucide !== 'undefined') { lucide.createIcons(); } const featuresGrid = document.getElementById('features-grid'); if (featuresGrid) { features.forEach((feature, index) => { const card = document.createElement('div'); card.className = 'feature-card-bg rounded-2xl p-6 flex flex-col items-center text-center scroll-target'; card.style.transitionDelay = `${index * 100}ms`; card.innerHTML = `
${feature.alt}

${feature.title}

${feature.description}

`; featuresGrid.appendChild(card); }); if (typeof lucide !== 'undefined') { lucide.createIcons(); } } const scrollObserver = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('visible'); observer.unobserve(entry.target); } }); }, { threshold: 0.1 }); document.querySelectorAll('.scroll-target').forEach(target => { scrollObserver.observe(target); }); const loginButton = document.getElementById('login-button'); const loginModal = document.getElementById('login-modal'); const closeModalButton = document.getElementById('close-modal-button'); if (loginButton && loginModal && closeModalButton) { const openModal = () => { loginModal.classList.remove('hidden'); if (typeof lucide !== 'undefined') { lucide.createIcons(); } }; const closeModal = () => { loginModal.classList.add('hidden'); }; loginButton.addEventListener('click', openModal); closeModalButton.addEventListener('click', closeModal); loginModal.addEventListener('click', (event) => { if (event.target === loginModal) { closeModal(); } }); document.addEventListener('keydown', (event) => { if (event.key === 'Escape' && !loginModal.classList.contains('hidden')) { closeModal(); } }); } });