/* Custom animations and effects beyond Tailwind */ @keyframes gradientShift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .animate-gradient-shift { background-size: 200% 200%; animation: gradientShift 8s ease-in-out infinite; } .animate-gradient { background-size: 200% 200%; animation: gradientShift 3s ease-in-out infinite; } /* Generation buttons */ .generation-btn { @apply p-6 bg-white/10 backdrop-blur-lg rounded-2xl border border-white/20 text-center hover:bg-white/20 hover:border-purple-400/50 transition-all duration-300 transform hover:-translate-y-2 hover:scale-105 active:scale-95 shadow-lg; } /* Term cards */ .term-card { @apply bg-white/10 backdrop-blur-lg rounded-2xl p-6 border border-white/10 hover:border-white/30 hover:bg-white/20 transition-all duration-300 transform hover:-translate-y-1 shadow-lg; } /* Scrollbar styling */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); } ::-webkit-scrollbar-thumb { background: rgba(168, 85, 247, 0.5); border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: rgba(168, 85, 247, 0.8); } /* Loading animation */ .loading-skeleton { background: linear-gradient(90deg, rgba(255,255,255,0.1) 25%, rgba(255,255,255,0.2) 50%, rgba(255,255,255,0.1) 75%); background-size: 200% 100%; animation: loading 1.5s infinite; } @keyframes loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* Custom selection color */ ::selection { background: rgba(168, 85, 247, 0.5); color: white; } /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Glass morphism enhancements */ .glass { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); } /* Pulse animation for live indicators */ .pulse-dot { animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.2); opacity: 0.7; } 100% { transform: scale(1); opacity: 1; } }