/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(108, 43, 217, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(108, 43, 217, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(108, 43, 217, 0);
    }
}

@keyframes float {
    0% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
    100% {
        transform: translateY(0px);
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

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

.animate-fade-in {
    animation: fadeIn 1s ease forwards;
}

.animate-slide-up {
    animation: slideUp 0.6s ease forwards;
}

.animate-pulse {
    animation: pulse 2s infinite;
}

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

.animate-spin {
    animation: spin 8s linear infinite;
}

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

.stagger-item:nth-child(1) { animation-delay: 0.1s; }
.stagger-item:nth-child(2) { animation-delay: 0.2s; }
.stagger-item:nth-child(3) { animation-delay: 0.3s; }
.stagger-item:nth-child(4) { animation-delay: 0.4s; }
.stagger-item:nth-child(5) { animation-delay: 0.5s; }
.stagger-item:nth-child(6) { animation-delay: 0.6s; }

/* Galaxy background animations */
@keyframes twinkle {
  0% { opacity: 0.55; }
  50% { opacity: 0.9; }
  100% { opacity: 0.55; }
}

@keyframes nebulaDrift {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(-2%, 1%, 0) scale(1.03); }
  100% { transform: translate3d(2%, -1%, 0) scale(1.02); }
}

@keyframes nebulaPulse {
  0%   { opacity: 0.35; filter: saturate(1.05) brightness(1.00); }
  50%  { opacity: 0.50; filter: saturate(1.18) brightness(1.06); }
  100% { opacity: 0.35; filter: saturate(1.05) brightness(1.00); }
}

@keyframes warpMove {
  0%   { transform: translate3d(-6%, 0, 0) skewX(-6deg); opacity: 0.0; }
  10%  { opacity: 0.22; }
  50%  { transform: translate3d(55%, 0, 0) skewX(-6deg); opacity: 0.34; }
  90%  { opacity: 0.16; }
  100% { transform: translate3d(120%, 0, 0) skewX(-6deg); opacity: 0.0; }
}

@keyframes liquidDrift {
  0%   { transform: translate3d(-3%, -2%, 0) rotate(0deg); }
  50%  { transform: translate3d(2%, 3%, 0) rotate(180deg); }
  100% { transform: translate3d(-3%, -2%, 0) rotate(360deg); }
}

@keyframes starParallax {
  0% { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-1%, 1%, 0); }
}

@keyframes orbitSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes cometPath1 { 0% { transform: translate3d(-15%, -2%, 0) rotate(0deg); opacity: 0.0; } 5% { opacity: 0.9; } 50% { transform: translate3d(50%, 6%, 0) rotate(0deg); opacity: 0.8; } 80% { opacity: 0.6; } 100% { transform: translate3d(140%, 12%, 0) rotate(0deg); opacity: 0.0; } }
@keyframes cometPath2 { 0% { transform: translate3d(-20%, 8%, 0) rotate(0deg); opacity: 0.0; } 10% { opacity: 0.9; } 50% { transform: translate3d(60%, -6%, 0) rotate(0deg); opacity: 0.8; } 80% { opacity: 0.6; } 100% { transform: translate3d(150%, -14%, 0) rotate(0deg); opacity: 0.0; } }
