// Update search function with fallback animation function handleSearch() { const searchTerm = document.getElementById('searchInput').value.toLowerCase(); const topicCards = document.querySelectorAll('.topic-card'); topicCards.forEach(card => { const title = card.querySelector('.topic-title')?.textContent.toLowerCase() || ''; const description = card.querySelector('.topic-description')?.textContent.toLowerCase() || ''; const relatedTopics = Array.from(card.querySelectorAll('.related-topics li')) .map(li => li.textContent.toLowerCase()) .join(' '); const content = `${title} ${description} ${relatedTopics}`; if (content.includes(searchTerm)) { card.style.display = 'block'; if (window.gsap) { gsap.to(card, { opacity: 1, y: 0, duration: 0.3 }); } else { card.style.opacity = 1; card.style.transform = 'translateY(0)'; } } else { card.style.display = 'none'; } }); }