/**
 * iOS style loading spinner.
 * Adapted from: https://loading.io/css/
 * With some help scaling it: https://signalvnoise.com/posts/2577-loading-spinner-animation-using-css-and-webkit
 */

.spinner {
  @apply inline-block relative w-20 h-20;
}

.spinner > div {
  @apply absolute origin-[50%_50%] w-full h-full;
  animation: spinner 1.2s linear infinite;
}

.spinner > div::after {
  @apply block absolute rounded-full bg-gray-700 dark:bg-gray-400;
  content: ' ';
  top: 3.75%;
  left: 46.25%;
  width: 7.5%;
  height: 22.5%;
}

.spinner > div:nth-child(1) {
  transform: rotate(0deg);
  animation-delay: -1.1s;
}

.spinner > div:nth-child(2) {
  transform: rotate(30deg);
  animation-delay: -1s;
}

.spinner > div:nth-child(3) {
  transform: rotate(60deg);
  animation-delay: -0.9s;
}

.spinner > div:nth-child(4) {
  transform: rotate(90deg);
  animation-delay: -0.8s;
}

.spinner > div:nth-child(5) {
  transform: rotate(120deg);
  animation-delay: -0.7s;
}

.spinner > div:nth-child(6) {
  transform: rotate(150deg);
  animation-delay: -0.6s;
}

.spinner > div:nth-child(7) {
  transform: rotate(180deg);
  animation-delay: -0.5s;
}

.spinner > div:nth-child(8) {
  transform: rotate(210deg);
  animation-delay: -0.4s;
}

.spinner > div:nth-child(9) {
  transform: rotate(240deg);
  animation-delay: -0.3s;
}

.spinner > div:nth-child(10) {
  transform: rotate(270deg);
  animation-delay: -0.2s;
}

.spinner > div:nth-child(11) {
  transform: rotate(300deg);
  animation-delay: -0.1s;
}

.spinner > div:nth-child(12) {
  transform: rotate(330deg);
  animation-delay: 0s;
}

@keyframes spinner {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}
