/* Additional animations and effects */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes gradientAnimation { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } /* Apply animations to elements */ .header-content h1 { background: linear-gradient(135deg, var(--primary-1), var(--accent-1), var(--primary-2)); background-size: 200% 200%; animation: gradientAnimation 5s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .card { animation: fadeIn 0.6s ease-out; animation-fill-mode: both; } .cards-grid .card:nth-child(1) { animation-delay: 0.1s; } .cards-grid .card:nth-child(2) { animation-delay: 0.2s; } .cards-grid .card:nth-child(3) { animation-delay: 0.3s; } .cards-grid .card:nth-child(4) { animation-delay: 0.4s; } .btn-primary:active { animation: pulse 0.3s ease; } /* Theme toggle animation */ .theme-toggle-animation { animation: pulse 0.3s ease; } /* Improved glassmorphism effect */ .glassmorphism { background: rgba(var(--bg-rgb, 255, 255, 255), 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(var(--text-rgb, 0, 0, 0), 0.1); } /* Enhanced card hover effects */ .card::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(var(--primary-rgb), 0.1), rgba(var(--accent-rgb), 0.1)); opacity: 0; transition: opacity var(--transition-base); pointer-events: none; } .card:hover::after { opacity: 1; }