/**
 * Animations - Magic Cat Themes Showcase
 * All @keyframes definitions (shared with Oracle)
 */

/* ===== FLOAT ANIMATION ===== */
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-15px);
  }
}

/* ===== GLOW PULSE ===== */
@keyframes glowPulse {
  0%, 100% {
    box-shadow: 0 0 20px rgba(168, 85, 247, 0.4);
  }
  50% {
    box-shadow: 0 0 40px rgba(168, 85, 247, 0.8);
  }
}

/* Light theme variant */
body.light-theme .glow-pulse {
  animation: glowPulseLightuniquely;
}

@keyframes glowPulseLight {
  0%, 100% {
    box-shadow: 0 0 20px rgba(124, 58, 237, 0.3);
  }
  50% {
    box-shadow: 0 0 40px rgba(124, 58, 237, 0.6);
  }
}

/* ===== SHIMMER EFFECT ===== */
@keyframes shimmer {
  0% {
    background-position: -1000px 0;
  }
  100% {
    background-position: 1000px 0;
  }
}

/* ===== FADE IN ===== */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== SLIDE UP ===== */
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== SCALE IN ===== */
@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* ===== PARTICLE FLOAT UP ===== */
@keyframes floatUp {
  0% {
    opacity: 1;
    transform: translateY(0) translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateY(-100vh) translateX(50px);
  }
}

/* ===== BOUNCE ===== */
@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

/* ===== SPIN SLOW ===== */
@keyframes spinSlow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* ===== TWINKLE (for stars/sparkles) ===== */
@keyframes twinkle {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(1.2);
  }
}

/* ===== GRADIENT SHIFT ===== */
@keyframes gradientShift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* ===== BORDER GLOW ROTATE ===== */
@keyframes borderGlowRotate {
  0% {
    filter: hue-rotate(0deg);
  }
  100% {
    filter: hue-rotate(360deg);
  }
}

/* ===== CARD REVEAL ===== */
@keyframes cardReveal {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(0.9);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ===== MAGIC CARD FLIP ===== */
@keyframes magicFlip {
  0% {
    transform: rotateY(0deg);
  }
  100% {
    transform: rotateY(180deg);
  }
}

/* ===== PULSE (subtle) ===== */
@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}

/* ===== GLOW WAVE ===== */
@keyframes glowWave {
  0%, 100% {
    box-shadow: 
      0 0 10px rgba(168, 85, 247, 0.3),
      0 0 20px rgba(168, 85, 247, 0.2);
  }
  50% {
    box-shadow: 
      0 0 20px rgba(168, 85, 247, 0.5),
      0 0 40px rgba(168, 85, 247, 0.3),
      0 0 60px rgba(168, 85, 247, 0.2);
  }
}

/* ===== RAINBOW BORDER ===== */
@keyframes rainbowBorder {
  0% { border-color: #a855f7; }
  25% { border-color: #ec4899; }
  50% { border-color: #f59e0b; }
  75% { border-color: #10b981; }
  100% { border-color: #a855f7; }
}
