.split_text span {
    opacity: 0;
    transform: translateY(10px);
    animation: splitReveal 0.6s ease forwards;
}

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

.split_word .word {
    display: inline-block;
    opacity: 0;
    transform: translateY(14px);
    animation: wordReveal 0.7s cubic-bezier(.22, 1, .36, 1) forwards;
    will-change: transform, opacity;
}

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

.motion_text {
    opacity: 0;
    transform: translateY(24px);
    filter: blur(6px);
    transition:
        opacity 0.8s ease,
        transform 0.8s cubic-bezier(.22, 1, .36, 1),
        filter 0.8s ease;
}

.motion_text.in-view {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}

.motion_fade {
    opacity: 0;
    transition: opacity 0.8s ease;
}

.motion_fade.in-view {
    opacity: 1;
}

.motion_scale {
    opacity: 0;
    transform: scale(0.96);
    transition: all 0.7s ease;
}

.motion_scale.in-view {
    opacity: 1;
    transform: scale(1);
}

.motion_left {
    opacity: 0;
    transform: translateX(-32px);
    transition:
        opacity 0.8s ease,
        transform 0.8s cubic-bezier(.22, 1, .36, 1);
}

.motion_left.in-view {
    opacity: 1;
    transform: translateX(0);
}

.motion_right {
    opacity: 0;
    transform: translateX(32px);
    transition:
        opacity 0.8s ease,
        transform 0.8s cubic-bezier(.22, 1, .36, 1);
}

.motion_right.in-view {
    opacity: 1;
    transform: translateX(0);
}


.motion_up_soft {
    opacity: 0;
    transform: translateY(16px);
    transition:
        opacity 0.9s ease,
        transform 0.9s cubic-bezier(.16, 1, .3, 1);
}

.motion_up_soft.in-view {
    opacity: 1;
    transform: translateY(0);
}

.motion_zoom {
    opacity: 0;
    transform: scale(0.92);
    transition:
        opacity 0.8s ease,
        transform 0.8s cubic-bezier(.22, 1, .36, 1);
}

.motion_zoom.in-view {
    opacity: 1;
    transform: scale(1);
}

.motion_blur {
    opacity: 0;
    filter: blur(10px);
    transition:
        opacity 0.8s ease,
        filter 0.8s ease;
}

.motion_blur.in-view {
    opacity: 1;
    filter: blur(0);
}

.motion_rotate {
    opacity: 0;
    transform: rotate(-3deg) scale(0.98);
    transition:
        opacity 0.7s ease,
        transform 0.7s cubic-bezier(.22, 1, .36, 1);
}

.motion_rotate.in-view {
    opacity: 1;
    transform: rotate(0) scale(1);
}

.motion_lift {
    opacity: 0;
    transform: translateY(18px);
    transition:
        opacity 0.7s ease,
        transform 0.7s cubic-bezier(.22, 1, .36, 1),
}

.motion_lift.in-view {
    opacity: 1;
    transform: translateY(0);
}

.motion_skew {
    opacity: 0;
    transform: skewY(3deg) translateY(20px);
    transition:
        opacity 0.8s ease,
        transform 0.8s cubic-bezier(.22, 1, .36, 1);
}

.motion_skew.in-view {
    opacity: 1;
    transform: skewY(0) translateY(0);
}
