/*
 * Q-ReaDer logo motion
 *
 * Reusable markup:
 * <span class="qreader-logo" aria-hidden="true">
 *   <span class="qreader-logo__sway">
 *     <span class="qreader-logo__ring"></span>
 *     <span class="qreader-logo__dot"></span>
 *   </span>
 *   <span class="qreader-logo__r">R</span>
 * </span>
 *
 * The ring and red point swing around the center by 30 degrees in both
 * directions. Once the movement settles, the point is replaced by R.
 */

.qreader-logo {
  --qreader-logo-ink: #26231e;
  --qreader-logo-red: #d9362e;
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  flex: 0 0 auto;
  isolation: isolate;
}

.qreader-logo__sway,
.qreader-logo__ring,
.qreader-logo__dot,
.qreader-logo__r {
  position: absolute;
}

.qreader-logo__sway {
  inset: 0;
  transform-origin: 50% 50%;
  animation: qreader-logo-sway 2.5s linear infinite;
}

.qreader-logo__ring {
  inset: 10.7%;
  border-radius: 50%;
  background: conic-gradient(
    from 68.6deg,
    var(--qreader-logo-ink) 0deg 312.5deg,
    transparent 312.5deg 360deg
  );
  -webkit-mask: radial-gradient(
    farthest-side,
    transparent calc(100% - 2.32%),
    #000 calc(100% - 2.32%)
  );
  mask: radial-gradient(
    farthest-side,
    transparent calc(100% - 2.32%),
    #000 calc(100% - 2.32%)
  );
}

.qreader-logo__dot,
.qreader-logo__r {
  left: 77.86%;
  top: 77.86%;
  transform: translate(-50%, -50%);
}

.qreader-logo__dot {
  width: 7.14%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--qreader-logo-red);
  animation: qreader-logo-dot 2.5s linear infinite;
}

.qreader-logo__r {
  color: var(--qreader-logo-red);
  font-family: "New York", "Songti SC", "Noto Serif SC", Georgia, serif;
  font-size: 19.64%;
  font-weight: 600;
  line-height: 1;
  opacity: 0;
  animation: qreader-logo-r 2.5s linear infinite;
}

@keyframes qreader-logo-sway {
  0%,
  72%,
  100% {
    transform: rotate(0deg);
  }

  18% {
    transform: rotate(-30deg);
  }

  36% {
    transform: rotate(0deg);
  }

  54% {
    transform: rotate(30deg);
  }
}

@keyframes qreader-logo-dot {
  0%,
  72%,
  100% {
    opacity: 1;
  }

  75%,
  98% {
    opacity: 0;
  }
}

@keyframes qreader-logo-r {
  0%,
  75%,
  100% {
    opacity: 0;
  }

  82%,
  98% {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .qreader-logo__sway,
  .qreader-logo__dot {
    animation: none;
  }

  .qreader-logo__dot {
    display: none;
  }

  .qreader-logo__r {
    animation: none;
    opacity: 1;
  }
}
