/* ---------------------------------
 * Redirect
 * --------------------------------- */

.redirect {
    --redirect-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --redirect-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2.5rem;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 3rem 1rem;
    text-align: center;
}

.redirect-logo {
    width: min(16rem, 70vw);
    height: auto;
    overflow: visible;
    color: var(--tblr-body-color);
}

.redirect-letters {
    animation: redirect-rise 450ms var(--redirect-ease-out) backwards;
}

.redirect-percent {
    color: var(--tblr-primary);
}

.redirect-slash {
    fill: none;
    stroke: currentColor;
    stroke-width: 9.36;
    stroke-linecap: round;
    stroke-dasharray: 1 2;
    animation: redirect-draw 500ms var(--redirect-ease-in-out) 150ms backwards;
}

.redirect-slash + .redirect-slash {
    animation-delay: 400ms;
}

.redirect-dot {
    fill: currentColor;
    transform-box: fill-box;
    transform-origin: center;
    animation:
        redirect-pop 300ms var(--redirect-ease-out) 750ms backwards,
        redirect-pulse 700ms var(--redirect-ease-in-out) 1400ms infinite alternate;
}

.redirect-dot:last-child {
    animation-delay: 900ms, 1750ms;
}

.redirect-body {
    animation: redirect-rise 450ms var(--redirect-ease-out) 250ms backwards;
}

.redirect-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 1.375rem;
    font-weight: 600;
}

.redirect-store {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.redirect-subject {
    display: -webkit-box;
    max-width: 30rem;
    margin: 0.5rem auto 0;
    overflow: hidden;
    color: var(--tblr-secondary);
    text-wrap: balance;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.redirect-fallback {
    margin: 0;
    color: var(--tblr-secondary);
    font-size: 0.875rem;
    animation: redirect-fade 300ms var(--redirect-ease-out) 2400ms backwards;
}

@keyframes redirect-rise {
    from {
        opacity: 0;
        transform: translateY(0.5rem);
    }
}

@keyframes redirect-draw {
    from {
        stroke-dashoffset: 1.1;
    }
}

@keyframes redirect-pop {
    from {
        opacity: 0;
        transform: scale(0.6);
    }
}

@keyframes redirect-pulse {
    to {
        transform: scale(0.7);
    }
}

@keyframes redirect-fade {
    from {
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .redirect-letters,
    .redirect-slash,
    .redirect-body {
        animation: redirect-fade 300ms ease backwards;
    }

    .redirect-dot {
        animation: redirect-fade 300ms ease backwards;
    }
}
