@keyframes staticExit {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-100%);
    }
}

@keyframes flowCycle {
    0%,
    22% {
        transform: translate3d(0, 0, 0);
        opacity: 0;
    }

    26% {
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }

    74% {
        transform: translate3d(-100%, 0, 0);
        opacity: 1;
    }

    79% {
        transform: translate3d(-100%, 0, 0);
        opacity: 0;
    }

    80% {
        transform: translate3d(0, 0, 0);
        opacity: 0;
    }

    100% {
        transform: translate3d(0, 0, 0);
        opacity: 0;
    }
}

.cta {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 30px;
    width: auto;
    max-width: 100%;
}

.cta__btn {
    margin-top: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--text-color);
    border-radius: 30px;
    padding: 8px 16px;
    background: transparent;
    color: var(--text-color);
    cursor: pointer;
    text-align: center;
    width: auto;
    text-decoration: none;
}

.cta__btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.cta__btn span {
    font-size: clamp(1rem, 1.5vw, 80px);
    font-family: "karla", 'fira-code', 'sans-serif';
}

.cta__track {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    line-height: 1.25;
}

.cta__label--static {
    position: relative;
    display: inline-block;
    opacity: 1;
    transform: translateX(0);
}

.cta__label--animated {
    position: absolute;
    left: 0;
    top: 0;
    display: inline-block;
    transform: translate3d(0, 0, 0);
    padding-left: 100%;
    opacity: 0;
    will-change: transform, opacity;
    backface-visibility: hidden;
}

.cta__btn:not(:disabled):hover .cta__label--static,
.cta__btn:not(:disabled):focus-visible .cta__label--static {
    animation: staticExit 1s ease-out forwards;
}

.cta__btn:not(:disabled):hover .cta__label--animated,
.cta__btn:not(:disabled):focus-visible .cta__label--animated {
    animation: flowCycle 3.8s linear infinite;
    animation-delay: 0.9s;
}

@media (width <= 480px) {

    .cta__btn {
        margin-top: unset;
    }
}