/* Custom animations and styles */
@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
}

@keyframes sparkle {
    0%, 100% { opacity: 1; transform: scale(1) rotate(0deg); }
    50% { opacity: 0.7; transform: scale(1.1) rotate(180deg); }
}

@keyframes gradient-shift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.animate-float {
    animation: float 3s ease-in-out infinite;
}

.animate-sparkle {
    animation: sparkle 2s ease-in-out infinite;
}

.gradient-animate {
    background-size: 200% 200%;
    animation: gradient-shift 3s ease infinite;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(45deg, #8b5cf6, #ec4899);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(45deg, #7c3aed, #db2777);
}

/* Smooth transitions */
* {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Focus states for accessibility */
button:focus {
    outline: 2px solid #8b5cf6;
    outline-offset: 2px;
}

/* Mobile responsive text */
@media (max-width: 640px) {
    .text-4xl {
        font-size: 2.5rem;
    }
    
    .text-6xl {
        font-size: 3.5rem;
    }
}

/* Glassmorphism effects */
.glass {
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.18);
}

/* Loading pulse */
@keyframes pulse-glow {
    0%, 100% { 
        box-shadow: 0 0 20px rgba(139, 92, 246, 0.3);
    }
    50% { 
        box-shadow: 0 0 30px rgba(139, 92, 246, 0.6);
    }
}

.pulse-glow {
    animation: pulse-glow 2s ease-in-out infinite;
}