.loader-container {
    --container-width: 50px;
    --half-width: calc(var(--container-width) / 2);
    --negative-half-width: calc(var(--half-width) * -1);
    position: absolute;
    width: var(--container-width);
    aspect-ratio: 1;
    inset: 0;
    margin: auto;
}

.loader-container > .item {
    width: var(--half-width);
    aspect-ratio: 1;
    position: absolute;
}

.loader-container > .item-1 {
    background-color: rgb(0, 159, 227);
    top: 0;
    left: 0;
    z-index: 1;
    animation: item-1_move 1.8s cubic-bezier(.6,.01,.4,1) infinite;
}

.loader-container > .item-2 {
    background-color: rgb(230, 0, 127);
    top: 0;
    right: 0;
    animation: item-2_move 1.8s cubic-bezier(.6,.01,.4,1) infinite;
}

.loader-container > .item-3 {
    background-color: rgb(254, 202, 0);
    bottom: 0;
    right: 0;
    z-index: 1;
    animation: item-3_move 1.8s cubic-bezier(.6,.01,.4,1) infinite;
}

.loader-container > .item-4 {
    background-color: rgb(0, 0, 0);
    bottom: 0;
    left: 0;
    animation: item-4_move 1.8s cubic-bezier(.6,.01,.4,1) infinite;
}

@keyframes item-1_move {
    0%, 100% {
        transform: translate(0, 0)
    }

    25% {
        transform: translate(0, var(--half-width))
    }

    50% {
        transform: translate(var(--half-width), var(--half-width))
    }

    75% {
        transform: translate(var(--half-width), 0)
    }
}

@keyframes item-2_move {
    0%, 100% {
        transform: translate(0, 0)
    }

    25% {
        transform: translate(var(--negative-half-width), 0)
    }

    50% {
        transform: translate(var(--negative-half-width), var(--half-width))
    }

    75% {
        transform: translate(0, var(--half-width))
    }
}

@keyframes item-3_move {
    0%, 100% {
        transform: translate(0, 0)
    }

    25% {
        transform: translate(0, var(--negative-half-width))
    }

    50% {
        transform: translate(var(--negative-half-width), var(--negative-half-width))
    }

    75% {
        transform: translate(var(--negative-half-width), 0)
    }
}

@keyframes item-4_move {
    0%, 100% {
        transform: translate(0, 0)
    }

    25% {
        transform: translate(var(--half-width), 0)
    }

    50% {
        transform: translate(var(--half-width), var(--negative-half-width))
    }

    75% {
        transform: translate(0, var(--negative-half-width))
    }
}