.active .backdrop {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 999999;
    background-color: #929292;
    opacity: .3;
}
#loader.active{
    display: flex;
}
#loader {
    display: none;
    justify-content: center;
    align-items: center;
    height: 100vh;
    width: 100%;
    position: absolute;
}
.loader {
    display: block;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    position: relative;
    z-index: 9999999;
    animation: rotate 1s linear infinite
}
.loader::before , .loader::after {
    content: "";
    box-sizing: border-box;
    position: absolute;
    inset: 0px;
    border-radius: 50%;
    border: 5px solid #FFF;
    animation: prixClipFix 2s linear infinite ;
}
.loader::after{
    transform: rotate3d(90, 90, 0, 180deg );
    border-color: #007BFF;
}

@keyframes rotate {
0%   {transform: rotate(0deg)}
100%   {transform: rotate(360deg)}
}

@keyframes prixClipFix {
    0%   {clip-path:polygon(50% 50%,0 0,0 0,0 0,0 0,0 0)}
    50%  {clip-path:polygon(50% 50%,0 0,100% 0,100% 0,100% 0,100% 0)}
    75%, 100%  {clip-path:polygon(50% 50%,0 0,100% 0,100% 100%,100% 100%,100% 100%)}
}