#loader-wrapper {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: #111111;
    display: none;
}

.load {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    display: none;
}

.load hr {
    border: 0;
    margin: 0;
    width: 40%;
    height: 40%;
    position: absolute;
    border-radius: 50%;
    animation: spin 2s ease infinite;
}

.load :first-child {
    background: #da251d;
    animation-delay: -1.5s;
}

.load :nth-child(2) {
    background: #ffffff;
    animation-delay: -1s;
}

.load :nth-child(3) {
    background: #da251d;
    animation-delay: -0.5s;
}

.load :last-child {
    background: #ffffff;
}

@keyframes spin {
    0%,
    100% {
        transform: translate(0)
    }
    25% {
        transform: translate(160%)
    }
    50% {
        transform: translate(160%, 160%)
    }
    75% {
        transform: translate(0, 160%)
    }
}

.js .load,
.js #loader-wrapper {
    display: block;
}

.loader {
    position: absolute;
    top: calc(50% - 50px);
    left: calc(50% - 50px);
    width: 100px;
    aspect-ratio: 1;
    color: #ff0000;
    background: linear-gradient(currentColor 0 0) 50%/100% 15px, linear-gradient(currentColor 0 0) 50%/15px 100%, radial-gradient(circle 15px, currentColor 94%, #0000);
    background-repeat: no-repeat;
    -webkit-mask: radial-gradient(circle 5px, #0000 90%, #000);
    clip-path: polygon(0 30px, calc(100% - 30px) 0, 100% calc(100% - 30px), 30px 100%);
    animation: l5 1.5s infinite linear;
}

@keyframes l5 {
    100% {
        transform: rotate(1turn)
    }
}