body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100vw;
    height: 100vh;
    margin: 0;
    text-align: center;
}

.notfound {
    width: 100vw;
    color: black;
    font-weight: bold;
    font-family: monospace;
    font-size: 7vw;
    text-align: center;
    padding-bottom: 5vh;
}

.box {
    align-self: center;
    justify-items: center;
    justify-self: center;
    justify-content: center;
    border-radius: 25px;
    width: 15vw;
}

.loading {
    width: fit-content;
    color: black;
    font-weight: bold;
    font-family: monospace;
    font-size: 7vw;
    clip-path: inset(0 100% 0 0);
    animation: l5 2s steps(11) infinite;
    padding-bottom: 10vh;
    padding-top: 20px;
    text-align: center;
    max-width: fit-content;
}

.loading:before {
    content: "Loading..."
}

.redirecting {
    width: fit-content;
    font-weight: bold;
    font-family: monospace;
    font-size: 7vw;
    clip-path: inset(0 3ch 0 0);
    animation: l4 1s steps(4) infinite;
    padding-bottom: 7vh;
    padding-top: 20px;
}

.redirecting:before {
    content: "Redirecting..."
}

@keyframes l4 {
    to {
        clip-path: inset(0 -1ch 0 0)
    }
}


@keyframes l5 {
    to {
        clip-path: inset(0 -1ch 0 0)
    }
}

.loader {
    width: 10vw;
    aspect-ratio: 1;
    --c: linear-gradient(#000 0 0);
    --r1: radial-gradient(farthest-side at bottom, #000 93%, #0000);
    --r2: radial-gradient(farthest-side at top, #000 93%, #0000);
    background:
        var(--c), var(--r1), var(--r2),
        var(--c), var(--r1), var(--r2),
        var(--c), var(--r1), var(--r2);
    background-repeat: no-repeat;
    animation: l2 1s infinite alternate;
}

@keyframes l2 {

    0%,
    25% {
        background-size: 8px 0, 8px 4px, 8px 4px, 8px 0, 8px 4px, 8px 4px, 8px 0, 8px 4px, 8px 4px;
        background-position: 0 50%, 0 calc(50% - 2px), 0 calc(50% + 2px), 50% 50%, 50% calc(50% - 2px), 50% calc(50% + 2px), 100% 50%, 100% calc(50% - 2px), 100% calc(50% + 2px);
    }

    50% {
        background-size: 8px 100%, 8px 4px, 8px 4px, 8px 0, 8px 4px, 8px 4px, 8px 0, 8px 4px, 8px 4px;
        background-position: 0 50%, 0 calc(0% - 2px), 0 calc(100% + 2px), 50% 50%, 50% calc(50% - 2px), 50% calc(50% + 2px), 100% 50%, 100% calc(50% - 2px), 100% calc(50% + 2px);
    }

    75% {
        background-size: 8px 100%, 8px 4px, 8px 4px, 8px 100%, 8px 4px, 8px 4px, 8px 0, 8px 4px, 8px 4px;
        background-position: 0 50%, 0 calc(0% - 2px), 0 calc(100% + 2px), 50% 50%, 50% calc(0% - 2px), 50% calc(100% + 2px), 100% 50%, 100% calc(50% - 2px), 100% calc(50% + 2px);
    }

    95%,
    100% {
        background-size: 8px 100%, 8px 4px, 8px 4px, 8px 100%, 8px 4px, 8px 4px, 8px 100%, 8px 4px, 8px 4px;
        background-position: 0 50%, 0 calc(0% - 2px), 0 calc(100% + 2px), 50% 50%, 50% calc(0% - 2px), 50% calc(100% + 2px), 100% 50%, 100% calc(0% - 2px), 100% calc(100% + 2px);
    }
}

@media (max-width: 600px) {

    .loading,
    .redirecting,
    .notfound {
        font-size: 10vw;
    }

    .loader {
        width: 12vw;
    }
}

@media (min-width: 1000px) {

    .loading,
    .redirecting,
    .notfound {
        font-size: 5vw;
    }

    .loader {
        width: 5vw;
    }
}
