/**
 * Mastery Animation Engine - css/mastery-animations.css
 * High-fidelity kinetic presets for QR nodes and hub components.
 */

@keyframes pulse-nexus {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.4); }
    70% { transform: scale(1.02); box-shadow: 0 0 0 20px rgba(99, 102, 241, 0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(99, 102, 241, 0); }
}

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

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

@keyframes glow-resonance {
    0%, 100% { filter: drop-shadow(0 0 5px rgba(99, 102, 241, 0.5)); }
    50% { filter: drop-shadow(0 0 20px rgba(99, 102, 241, 0.8)); }
}

/* Kinetic Presets */
.preset-pulse { animation: pulse-nexus 3s infinite cubic-bezier(0.4, 0, 0.6, 1); }
.preset-float { animation: float-nexus 4s infinite ease-in-out; }
.preset-spin { animation: spin-nexus 10s infinite linear; }
.preset-glow { animation: glow-resonance 3s infinite ease-in-out; }

/* Entrance Animations */
.animate-slide-up {
    animation: slide-up-res 0.6s cubic-bezier(0.2, 1, 0.2, 1) forwards;
}

@keyframes slide-up-res {
    from { transform: translateY(30px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.animate-fade-in {
    animation: fade-in-res 0.8s ease-out forwards;
}

@keyframes fade-in-res {
    from { opacity: 0; }
    to { opacity: 1; }
}

.hover-glow:hover {
    filter: drop-shadow(0 0 15px rgba(99, 102, 241, 0.4));
    transform: scale(1.02);
    transition: all 0.4s cubic-bezier(0.2, 1, 0.2, 1);
}
