/* Anycast pulls a request to the nearest node rather than pushing from it, so
   the diamonds contract onto the node instead of spreading away from it. */

.pulsar-cdn-anycast .cdn-anycast-draw {
  transform-box: fill-box;
  transform-origin: center;
  animation: cdn-anycast-converge 4800ms cubic-bezier(0.45, 0, 0.55, 1) infinite;
}

.pulsar-cdn-anycast .cdn-anycast-d1 {
  animation-delay: -3200ms;
}

.pulsar-cdn-anycast .cdn-anycast-d2 {
  animation-delay: -1600ms;
}

.pulsar-cdn-anycast .cdn-anycast-d3 {
  animation-delay: 0ms;
}

@keyframes cdn-anycast-converge {
  0% {
    transform: scale(6);
    opacity: 0;
  }
  18%,
  86% {
    opacity: 0.85;
  }
  100% {
    transform: scale(1);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pulsar-cdn-anycast .cdn-anycast-draw,
  .pulsar-cdn-anycast .cdn-anycast-d1,
  .pulsar-cdn-anycast .cdn-anycast-d2,
  .pulsar-cdn-anycast .cdn-anycast-d3 {
    animation: none;
    opacity: 0;
    transform: none;
  }
  .pulsar-cdn-anycast .cdn-anycast-d2 {
    opacity: 0.85;
    transform: scale(3.2);
  }
}
