@keyframes motionBlurEntry {
    0% { transform: translateY(50px) scale(1.1); filter: blur(10px); opacity: 0; }
    100% { transform: translateY(0) scale(1); filter: blur(0); opacity: 1; }
}

.motion-blur {
    animation: motionBlurEntry 1.2s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

@keyframes meshGradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.hero-slider::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(-45deg, #050505, #121212, #001f3f, #000);
    background-size: 400% 400%;
    animation: meshGradient 15s ease infinite;
    z-index: -1;
}

.fade-in {
    opacity: 0;
    transition: opacity 1s ease-out, transform 1s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}