.login-logo-animation {
    display: inline-flex;
    align-items: flex-end;
    white-space: nowrap;
}

.login-logo-animation__text {
    display: inline-flex;
}

.login-logo-animation__char {
    display: inline-block;
    transform: translateY(0) scale(1);
    opacity: 1;
    will-change: transform, opacity, filter;
}

.logintest-body.is-login-submitting .login-logo-animation__char {
    animation: login-logo-animation-wave 920ms cubic-bezier(0.33, 1, 0.68, 1) infinite;
    animation-delay: calc(var(--login-logo-index, 0) * 90ms);
}

@keyframes login-logo-animation-wave {
    0%,
    100% {
        transform: translateY(0) scale(1);
        opacity: 0.88;
        filter: brightness(1);
    }

    35% {
        transform: translateY(-4px) scale(1.05);
        opacity: 1;
        filter: brightness(1.18);
    }

    60% {
        transform: translateY(0) scale(1);
        opacity: 0.95;
        filter: brightness(1.04);
    }
}

@media (prefers-reduced-motion: reduce) {
    .logintest-body.is-login-submitting .login-logo-animation__char {
        animation: none;
    }
}
