/**
 * Novara Animations Library
 */

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
.u-float { animation: float 3s ease-in-out infinite; }

@keyframes glow {
    0%, 100% { box-shadow: 0 0 16px rgba(230, 57, 70, 0.5); }
    50% { box-shadow: 0 0 32px rgba(230, 57, 70, 0.8); }
}
.u-glow { animation: glow 2s ease-in-out infinite; }

@keyframes slide-in-right {
    from { transform: translateX(60px); opacity: 0; }
    to   { transform: translateX(0);    opacity: 1; }
}
.u-slide-right { animation: slide-in-right 0.5s ease forwards; }

@keyframes slide-in-left {
    from { transform: translateX(-60px); opacity: 0; }
    to   { transform: translateX(0);     opacity: 1; }
}
.u-slide-left { animation: slide-in-left 0.5s ease forwards; }

@keyframes zoom-in {
    from { transform: scale(0.9); opacity: 0; }
    to   { transform: scale(1);   opacity: 1; }
}
.u-zoom-in { animation: zoom-in 0.4s ease forwards; }

@keyframes spin-slow { to { transform: rotate(360deg); } }
.u-spin-slow { animation: spin-slow 8s linear infinite; }

@keyframes pulse-soft {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}
.u-pulse-soft { animation: pulse-soft 2s ease-in-out infinite; }

@keyframes blink-cursor {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}
.u-blink::after {
    content: '|';
    margin-left: 2px;
    animation: blink-cursor 1s infinite;
    color: var(--novara-crimson);
}

/* Stagger children */
.u-stagger > * { opacity: 0; animation: fadeUp 0.5s ease forwards; }
.u-stagger > *:nth-child(1) { animation-delay: 0.0s; }
.u-stagger > *:nth-child(2) { animation-delay: 0.1s; }
.u-stagger > *:nth-child(3) { animation-delay: 0.2s; }
.u-stagger > *:nth-child(4) { animation-delay: 0.3s; }
.u-stagger > *:nth-child(5) { animation-delay: 0.4s; }
.u-stagger > *:nth-child(6) { animation-delay: 0.5s; }
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .u-float, .u-glow, .u-spin-slow, .u-pulse-soft { animation: none; }
}
