/* Absolute Center Spinner */
#spinner {
  position: fixed;
  z-index: 99999;
  height: 2em;
  width: 2em;
  margin: auto;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  visibility: hidden;
}

/* Transparent Overlay */
#spinner:before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.45);
}

#spinner::after {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 100%;
  z-index: 99999;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(0deg) scale(0, 0);
  -ms-transform: translate(-50%, -50%) rotate(0deg) scale(0, 0);
  transform: translate(-50%, -50%) rotate(0deg) scale(0, 0);
  background-color: #0366b2;
  -webkit-box-shadow: 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967;
  box-shadow: 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967;
  -webkit-animation: loader 3s infinite, round 4s infinite;
  animation: loader 3s infinite, round 4s infinite;
}
@-webkit-keyframes loader {
  0% {
    -webkit-transform: translate(-50%, -50%) rotate(0deg) scale(1, 1);
    transform: translate(-50%, -50%) rotate(0deg) scale(1, 1);
  }
  70% {
    -webkit-transform: translate(-50%, -50%) rotate(360deg) scale(0.7, 0.7);
    transform: translate(-50%, -50%) rotate(360deg) scale(0.7, 0.7);
  }
  100% {
    -webkit-transform: translate(-50%, -50%) rotate(360deg) scale(1, 1);
    transform: translate(-50%, -50%) rotate(360deg) scale(1, 1);
  }
}
@keyframes loader {
  0% {
    -webkit-transform: translate(-50%, -50%) rotate(0deg) scale(1, 1);
    transform: translate(-50%, -50%) rotate(0deg) scale(1, 1);
  }
  70% {
    -webkit-transform: translate(-50%, -50%) rotate(360deg) scale(0.7, 0.7);
    transform: translate(-50%, -50%) rotate(360deg) scale(0.7, 0.7);
  }
  100% {
    -webkit-transform: translate(-50%, -50%) rotate(360deg) scale(1, 1);
    transform: translate(-50%, -50%) rotate(360deg) scale(1, 1);
  }
}
@-webkit-keyframes round {
  0%,
  100% {
    -webkit-box-shadow: 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967;
    box-shadow: 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967;
  }
  25% {
    -webkit-box-shadow: -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff;
    box-shadow: -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff;
  }
  50% {
    -webkit-box-shadow: -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967;
    box-shadow: -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967;
  }
  75% {
    -webkit-box-shadow: -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff;
    box-shadow: -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff;
  }
}
@keyframes round {
  0%,
  100% {
    -webkit-box-shadow: 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967;
    box-shadow: 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967;
  }
  25% {
    -webkit-box-shadow: -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff;
    box-shadow: -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff;
  }
  50% {
    -webkit-box-shadow: -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967;
    box-shadow: -31px -45px 0 5px #3385ff, -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967;
  }
  75% {
    -webkit-box-shadow: -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff;
    box-shadow: -13px -20px 0 2px #ff9967, 31px 45px 0 5px #3385ff, 13px 20px 0 2px #ff9967, -31px -45px 0 5px #3385ff;
  }
}
