/* ── MooviPlay Animations ── */

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

@keyframes pulseGlow {
    0%, 100% { box-shadow: 0 0 20px rgba(232,0,45,0.3), 0 0 40px rgba(232,0,45,0.1); }
    50%       { box-shadow: 0 0 40px rgba(232,0,45,0.6), 0 0 80px rgba(232,0,45,0.3); }
}

@keyframes pulseGlowSm {
    0%, 100% { box-shadow: 0 0 10px rgba(232,0,45,0.2); }
    50%       { box-shadow: 0 0 25px rgba(232,0,45,0.5); }
}

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

@keyframes floatSlow {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50%       { transform: translateY(-20px) rotate(3deg); }
}

@keyframes shimmer {
    0%   { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

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

@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-40px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
    from { opacity: 0; transform: translateX(-40px); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
    from { opacity: 0; transform: translateX(40px); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
    from { opacity: 0; transform: scale(0.85); }
    to   { opacity: 1; transform: scale(1); }
}

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

@keyframes borderGlow {
    0%, 100% { border-color: rgba(232,0,45,0.3); }
    50%       { border-color: rgba(232,0,45,0.9); }
}

@keyframes typingBlink {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0; }
}

@keyframes scanLine {
    0%   { transform: translateY(-100%); opacity: 0; }
    10%  { opacity: 0.5; }
    90%  { opacity: 0.5; }
    100% { transform: translateY(100vh); opacity: 0; }
}

@keyframes particleFade {
    0%, 100% { opacity: 0; }
    50%       { opacity: 0.7; }
}

@keyframes waveIn {
    0%   { clip-path: inset(0 100% 0 0); }
    100% { clip-path: inset(0 0% 0 0); }
}

@keyframes badgePop {
    0%   { transform: scale(0) rotate(-10deg); opacity: 0; }
    70%  { transform: scale(1.1) rotate(2deg); opacity: 1; }
    100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

@keyframes heroLineSlide {
    from { transform: scaleX(0); transform-origin: left; }
    to   { transform: scaleX(1); transform-origin: left; }
}

/* Utility animation classes */
.anim-float        { animation: float 4s ease-in-out infinite; }
.anim-float-slow   { animation: floatSlow 6s ease-in-out infinite; }
.anim-pulse-glow   { animation: pulseGlow 2.5s ease-in-out infinite; }
.anim-shimmer      {
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.08) 50%, transparent 100%);
    background-size: 200% 100%;
    animation: shimmer 2s infinite;
}
