/**
 * Keyframe Animations
 */

/* Pulse animation for header title */
@keyframes pulse {
    0%, 100% { 
        opacity: 1; 
    }
    50% { 
        opacity: 0.85; 
    }
}

/* Shimmer effect for cards */
@keyframes shimmer {
    0% { 
        transform: translateX(-100%) translateY(-100%) rotate(45deg); 
    }
    100% { 
        transform: translateX(100%) translateY(100%) rotate(45deg); 
    }
}

/* Progress bar shine effect */
@keyframes progressShine {
    0% { 
        transform: translateX(-100%); 
    }
    100% { 
        transform: translateX(100%); 
    }
}

/* Active phase pulsing */
@keyframes activePhase {
    0%, 100% { 
        box-shadow: 0 4px 20px rgba(255, 50, 50, 0.4); 
    }
    50% { 
        box-shadow: 0 6px 30px rgba(255, 50, 50, 0.6); 
    }
}

/* HR zone indicator pulse */
@keyframes hrPulse {
    0%, 100% { 
        opacity: 1; 
        transform: scale(1); 
    }
    50% { 
        opacity: 0.5; 
        transform: scale(1.2); 
    }
}

/* Zone glow pulse */
@keyframes zoneGlowPulse {
    0%, 100% { 
        filter: brightness(1);
        box-shadow: 0 0 60px currentColor, 0 0 120px currentColor, 0 0 180px currentColor;
    }
    50% { 
        filter: brightness(1.3);
        box-shadow: 0 0 80px currentColor, 0 0 160px currentColor, 0 0 240px currentColor;
    }
}

/* Fade in animation */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Slide in from right */
@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Scale up animation */
@keyframes scaleUp {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Heartbeat animation */
@keyframes heartbeat {
    0%, 100% {
        transform: scale(1);
    }
    14% {
        transform: scale(1.1);
    }
    28% {
        transform: scale(1);
    }
    42% {
        transform: scale(1.1);
    }
    70% {
        transform: scale(1);
    }
}

/* Glow animation */
@keyframes glow {
    0%, 100% {
        box-shadow: 0 0 20px rgba(255, 50, 50, 0.4);
    }
    50% {
        box-shadow: 0 0 40px rgba(255, 50, 50, 0.8);
    }
}

/* Utility classes for animations */
.animate-fade-in {
    animation: fadeIn 0.3s ease-out;
}

.animate-slide-in {
    animation: slideInRight 0.3s ease-out;
}

.animate-scale-up {
    animation: scaleUp 0.3s ease-out;
}

.animate-heartbeat {
    animation: heartbeat 1.5s ease-in-out infinite;
}

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