:root {
    --dot-size: 45px;
    --animate-duration: 1.5s;
}

.loader {
    display: flex;
    justify-content: center;
    align-items: center;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #ffffffdd;
    backdrop-filter: blur(2px);
    z-index: 5000;
}

.loader-fixed {
    position: fixed;
}
.loader-absolute {
    position: absolute;
}

.circles {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    filter: url(#loderblobs);
    gap: 0px;
    padding: 10px;
    width: calc(5 * var(--dot-size));
    box-sizing: content-box;
}

.circle-box {
    width: var(--dot-size);
    height: var(--dot-size);
    display: flex;
    justify-content: center;
    align-items: center;
}

.circle {
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: orange;
}

.circle-box:first-child .circle {
    width: 50px;
    animation: dot_1 var(--animate-duration) linear infinite;
}

.circle-box:nth-child(2) .circle,
.circle-box:nth-child(6) .circle {
    width: 47px;
    animation: dot_2 var(--animate-duration) linear infinite;
}

.circle-box:nth-child(3) .circle,
.circle-box:nth-child(7) .circle,
.circle-box:nth-child(11) .circle {
    width: 44px;
    animation: dot_3 var(--animate-duration) linear infinite;
}

.circle-box:nth-child(4) .circle,
.circle-box:nth-child(8) .circle,
.circle-box:nth-child(12) .circle,
.circle-box:nth-child(16) .circle {
    width: 41px;
    animation: dot_4 var(--animate-duration) linear infinite;
}

/* .circle-box:nth-child(2) .circle, */
.circle-box:nth-child(4n+5) .circle {
    width: 38px;
    animation: dot_5 var(--animate-duration) linear infinite;
}

.circle-box:nth-child(10) .circle,
.circle-box:nth-child(14) .circle,
.circle-box:nth-child(18) .circle,
.circle-box:nth-child(22) .circle {
    width: 35px;
    animation: dot_6 var(--animate-duration) linear infinite;
}

.circle-box:nth-child(15) .circle,
.circle-box:nth-child(19) .circle,
.circle-box:nth-child(23) .circle {
    width: 32px;
    animation: dot_7 var(--animate-duration) linear infinite;
}

.circle-box:nth-child(20) .circle,
.circle-box:nth-child(24) .circle {
    width: 29px;
    animation: dot_8 var(--animate-duration) linear infinite;
}

.circle-box:last-child .circle {
    width: 26px;
    animation: dot_9 var(--animate-duration) linear infinite;
}

.loader svg {
    width: 0;
    height: 0;
}

@keyframes dot_1 {
    0% {
        width: 50px;
    }
    50% {
        width: 26px;
    }
    100% {
        width: 50px;
    }
}

@keyframes dot_2 {
    0% {
        width: 47px;
    }
    5.6% {
        width: 50px;
    }
    55.6% {
        width: 26px;
    }
    100% {
        width: 47px;
    }
}

@keyframes dot_3 {
    0% {
        width: 44px;
    }
    11.1% {
        width: 50px;
    }
    61.1% {
        width: 26px;
    }
    100% {
        width: 44px;
    }
}

@keyframes dot_4 {
    0% {
        width: 41px;
    }
    16.7% {
        width: 50px;
    }
    66.7% {
        width: 26px;
    }
    100% {
        width: 41px;
    }
}

@keyframes dot_5 {
    0% {
        width: 38px;
    }
    22.2% {
        width: 50px;
    }
    72.2% {
        width: 26px;
    }
    100% {
        width: 38px;
    }
}

@keyframes dot_6 {
    0% {
        width: 35px;
    }
    27.8% {
        width: 50px;
    }
    77.8% {
        width: 26px;
    }
    100% {
        width: 35px;
    }
}

@keyframes dot_7 {
    0% {
        width: 32px;
    }
    33.3% {
        width: 50px;
    }
    83.3% {
        width: 26px;
    }
    100% {
        width: 32px;
    }
}

@keyframes dot_8 {
    0% {
        width: 29px;
    }
    38.9% {
        width: 50px;
    }
    88.9% {
        width: 26px;
    }
    100% {
        width: 29px;
    }
}

@keyframes dot_9 {
    0% {
        width: 26px;
    }
    50% {
        width: 50px;
    }
    100% {
        width: 26px;
    }
}
