.loader-container:not(.hidden) {
    width: calc(100% - var(--nav-width));
    height: 100%;
    position: fixed;
    top: 0;
    left: var(--nav-width);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(4px);
    cursor: wait;
}

/* From Uiverse.io by mrpumps31232 */ 
.loading-wave {
    width: 300px;
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: flex-end;
}
.loading-bar {
    width: 20px;
    height: 10px;
    margin: 0 5px;
    background-color: #00d5ff;
    border-radius: 5px;
    animation: 
        loading-wave-animation 1s ease-in-out infinite,
        loading-color-shift 3s linear infinite;
}
.loading-bar:nth-child(2) {
        animation-delay: 0.1s;
}
.loading-bar:nth-child(3) {
        animation-delay: 0.2s;
}
.loading-bar:nth-child(4) {
        animation-delay: 0.3s;
}
@keyframes loading-wave-animation {
        0% {
                height: 10px;
        }

        50% {
                height: 50px;
        }

        100% {
                height: 10px;
        }
}
@keyframes loading-color-shift {
    0%, 100% {
        filter: hue-rotate(0deg);
    }
    50% {
        filter: hue-rotate(100deg);
    }
}



.loader {
    --loader-size-decrease: 1.75;
    --loader-size-decrease-mult: 2.25;
    width: calc(var(--gift-col-item-size) + var(--img-size-increase));
    height: calc(var(--gift-col-item-size) + var(--img-size-increase));
    position: relative;
    background: var(--img-loader-bg);
    border-radius: 4px;
    overflow: hidden;
    margin-right: 5px;
}
.loader:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: calc((var(--gift-col-item-size) + var(--img-size-increase)) / var(--loader-size-decrease));
    height: calc((var(--gift-col-item-size) + var(--img-size-increase)) / var(--loader-size-decrease));
    transform: rotate(45deg) translate(30%, 40%);
    background: var(--img-loader-m-one);
    box-shadow: 
        calc((var(--gift-col-item-size) + var(--img-size-increase)) / 1.8) 
        calc(((var(--gift-col-item-size) + var(--img-size-increase)) / 1.8) * -1)
        0 
        5px 
        var(--img-loader-m-two);
    animation: slide 2s infinite ease-in-out alternate;
}
.loader:after {
    content: "";
    position: absolute;
    left: 10px;
    top: 5px;
    width: calc((var(--gift-col-item-size) + var(--img-size-increase)) / (var(--loader-size-decrease) * var(--loader-size-decrease-mult)));
    height: calc((var(--gift-col-item-size) + var(--img-size-increase)) / (var(--loader-size-decrease) * var(--loader-size-decrease-mult)));
    border-radius: 50%;
    background: var(--img-loader-sun);
    transform: rotate(0deg);
    transform-origin: 35px 145px;
    animation: rotate 2s infinite ease-in-out;
}
@keyframes slide {
    0% , 100% {
        bottom: -35px
    }

    25% , 75% {
        bottom: 0px
    }

    20% , 80% {
        bottom: 2px
    }
}
@keyframes rotate {
    0% {
        transform: rotate(-15deg)
    }

    25% , 75% {
        transform: rotate(0deg)
    }

    100% {
        transform: rotate(25deg)
    }
}



@media only screen and (max-width: 768px) {
    body .loader-container:not(.hidden) {
        --mobile-adjust-loader: 10vh;
        width: 100%;
        height: 100%;
        position: fixed;
        top: calc(0px - var(--mobile-adjust-loader));
        left: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        z-index: 10000;
        background: rgba(0,0,0,0.1);
        backdrop-filter: blur(3px);
        padding-bottom: var(--mobile-adjust-loader);
    }
}