/**
 * Interactive Animations - Universal hover effects
 * Replaces all color-based hover states with lightweight animations
 */

/* Base interactive animation class */
.animate-interact {
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out, opacity 0.15s ease-out;
    transform: translateY(0);
}

.animate-interact:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.animate-interact:active:not(:disabled) {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

/* Gentle pulse for important buttons */
.animate-pulse-soft {
    animation: pulse-soft 2s infinite;
}

@keyframes pulse-soft {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.95;
        transform: scale(1.01);
    }
}

/* Subtle scale animation for smaller buttons */
.animate-scale {
    transition: transform 0.12s ease-out;
}

.animate-scale:hover:not(:disabled) {
    transform: scale(1.05);
}

.animate-scale:active:not(:disabled) {
    transform: scale(0.98);
}

/* Gentle lift for links */
.animate-lift {
    transition: transform 0.1s ease-out;
}

.animate-lift:hover {
    transform: translateY(-1px);
}

/* Breathing effect for special elements */
.animate-breathe {
    animation: breathe 3s ease-in-out infinite;
}

@keyframes breathe {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.02);
    }
}

/* Subtle glow effect */
.animate-glow {
    transition: box-shadow 0.2s ease-out;
}

.animate-glow:hover:not(:disabled) {
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.3);
}

/* Smooth opacity transition */
.animate-fade {
    transition: opacity 0.15s ease-out;
}

.animate-fade:hover:not(:disabled) {
    opacity: 0.85;
}

/* For disabled states */
.animate-interact:disabled,
.animate-scale:disabled,
.animate-glow:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

/* Special combinations */
.animate-primary {
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}

.animate-primary:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.4);
}

.animate-secondary {
    transition: transform 0.12s ease-out, box-shadow 0.12s ease-out;
}

.animate-secondary:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .animate-interact,
    .animate-scale,
    .animate-lift,
    .animate-fade,
    .animate-primary,
    .animate-secondary,
    .animate-glow {
        transition: none;
        animation: none;
        transform: none !important;
    }
    
    .animate-pulse-soft,
    .animate-breathe {
        animation: none;
    }
}