.spinner-container {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 20000;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(255, 255, 255, 0.6);
}

.spinner-container .spinner {
  width: 100px;
  height: 100px;
  animation: spinner-linear-rotate 2000ms linear infinite;
}

.spinner-container .spinner svg {
  width: 100px;
  height: 100px;
  position: absolute;
  transform: rotate(-90deg);
  top: 0;
  left: 0;
  transform-origin: center;
  overflow: visible;
}

.spinner-container .spinner .circle {
  transition-property: stroke;
  animation-duration: 4000ms;
  animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1);
  animation-iteration-count: infinite;
  animation-name: spinner-stroke-rotate-100;
  stroke-dasharray: 282px;
  stroke-width: 10%;
  stroke: #fb8c00;
  fill: transparent;
  transform-origin: center;
  transition: stroke-dashoffset 225ms linear;
}

@keyframes spinner-linear-rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes spinner-stroke-rotate-100 {
  0% {
    stroke-dashoffset: 268px;
    transform: rotate(0);
  }

  12.5% {
    stroke-dashoffset: 56px;
    transform: rotate(0);
  }

  12.5001% {
    stroke-dashoffset: 56px;
    transform: rotateX(180deg) rotate(72.5deg);
  }

  25% {
    stroke-dashoffset: 268px;
    transform: rotateX(180deg) rotate(72.5deg);
  }

  25.0001% {
    stroke-dashoffset: 268px;
    transform: rotate(270deg);
  }

  37.5% {
    stroke-dashoffset: 56px;
    transform: rotate(270deg);
  }

  37.5001% {
    stroke-dashoffset: 56px;
    transform: rotateX(180deg) rotate(161.5deg);
  }

  50% {
    stroke-dashoffset: 268px;
    transform: rotateX(180deg) rotate(161.5deg);
  }

  50.0001% {
    stroke-dashoffset: 268px;
    transform: rotate(180deg);
  }

  62.5% {
    stroke-dashoffset: 56px;
    transform: rotate(180deg);
  }

  62.5001% {
    stroke-dashoffset: 56px;
    transform: rotateX(180deg) rotate(251.5deg);
  }

  75% {
    stroke-dashoffset: 268px;
    transform: rotateX(180deg) rotate(251.5deg);
  }

  75.0001% {
    stroke-dashoffset: 268px;
    transform: rotate(90deg);
  }

  87.5% {
    stroke-dashoffset: 56px;
    transform: rotate(90deg);
  }

  87.5001% {
    stroke-dashoffset: 56px;
    transform: rotateX(180deg) rotate(341.5deg);
  }

  100% {
    stroke-dashoffset: 268px;
    transform: rotateX(180deg) rotate(341.5deg);
  }
}
