/* 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; }
}