.loader-overlay {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000000;
  background-color: rgba(255, 255, 255, 0.56);
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  /* opacity: var(--loader-overlay_opacity); */
}

.loader-quart-container {
  border-radius: 50%;
  padding: 1rem;
}

.loader-quart {
  padding: 5px;
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50px;
  /* border: 1px solid #cddad6; */
  color: #77c3ad;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  font-weight: 900;
  font-family: roboto;
  /* background: white; */
  animation: spin 0.7s cubic-bezier(0.37, 0.41, 1, 0.88) 0s infinite;

}

.loader-quart:before {
    content: '';
    position: absolute;
    /* left: -6px; */
    /* top: -6px; */
    /* bottom: -6px; */
    /* right: -6px; */
    border-radius: 50%;
    border: 6px solid transparent;
    border-top-color: rgb(235, 151, 54);
    /* border-bottom-color: rgb(60, 214, 60); */
    animation: spin 0.7s 
cubic-bezier(0.37, 0.41, 1, 0.88) 0s infinite;

}

.loader-quart.static:before {
    content: '';
    position: absolute;
    /* left: 50%; */
    /* top: 50%; */
    /* bottom: -6px; */
    /* right: -6px; */
    border-radius: 50%;
    border: 4px solid transparent;
    border-top-color: #afacaa;
    border-bottom-color: #afacaa;
    height: 38px;
    width: 38px;

}

.rotating {
  animation: spin 0.7s cubic-bezier(0.37, 0.41, 1, 0.88) 0s infinite;
}

/* HTML: <div class="loader"></div> */
/* .loader {
    width: 50px;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 8px solid #514b82;
    animation:
      l20-1 0.8s infinite linear alternate,
      l20-2 1.6s infinite linear;
  } */




@keyframes l20-1 {
  0% {
    clip-path: polygon(50% 50%, 0 0, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%)
  }

  12.5% {
    clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%)
  }

  25% {
    clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 100% 100%, 100% 100%)
  }

  50% {
    clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%)
  }

  62.5% {
    clip-path: polygon(50% 50%, 100% 0, 100% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%)
  }

  75% {
    clip-path: polygon(50% 50%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 50% 100%, 0% 100%)
  }

  100% {
    clip-path: polygon(50% 50%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 0% 100%)
  }
}

@keyframes l20-2 {
  0% {
    transform: scaleY(1) rotate(0deg)
  }

  49.99% {
    transform: scaleY(1) rotate(135deg)
  }

  50% {
    transform: scaleY(-1) rotate(0deg)
  }

  100% {
    transform: scaleY(-1) rotate(-135deg)
  }
}

@keyframes spin {


  0% {
    transform: scale(1)rotate(0deg);
  }

  /* 50%{transform:scale(1)rotate(180deg);} */
  100% {
    transform: scale(1)rotate(360deg);
  }
}



/* HTML: <div class="loader"></div> */
.loader {
  width: 50px;
  padding: 8px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #25b09b;
  --_m:
    conic-gradient(#0000 10%, #000),
    linear-gradient(#000 0 0) content-box;
  -webkit-mask: var(--_m);
  mask: var(--_m);
  -webkit-mask-composite: source-out;
  mask-composite: subtract;
  animation: l3 1s infinite linear;
}

@keyframes l3 {
  to {
    transform: rotate(1turn)
  }
}