/* SENTINEL OT - Keyframes & Motion Utilities */

@keyframes bgBreathe {
    0% {
        background-size: 60px 60px, 150vw 150vh, 150vw 150vh, 100vw 100vh;
        background-position: 0 0, 0% 0%, 100% 100%, center;
    }
    100% {
        background-size: 65px 65px, 160vw 160vh, 160vw 160vh, 100vw 100vh;
        background-position: -30px -30px, 10% -10%, 90% 110%, center;
    }
}

@keyframes destello-pulse {
    from { text-shadow: 0 0 10px #00f0ff, 0 0 20px #00f0ff; }
    to { text-shadow: 0 0 15px #00f0ff, 0 0 30px #00f0ff, 0 0 50px rgba(0, 240, 255, 0.8); }
}

@keyframes scrollBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(8px); }
}

@keyframes fadeIn {
    to { opacity: 1; transform: translateY(0); }
}

@keyframes modal-in {
    from { opacity: 0; transform: scale(0.95) translateY(10px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes liquidCrystal {
    0%, 100% { background-position: 0% 50%; }
    25% { background-position: 100% 0%; }
    50% { background-position: 50% 100%; }
    75% { background-position: 0% 0%; }
}

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

@keyframes cascadeFadeIn {
    0% { opacity: 0; transform: translateY(30px) scale(0.95); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* Utilities */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: 0.6s ease-out;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}
