<svg
width="140"
height="28"
  viewBox="0 0 140 28"
  role="img"
  aria-label="Loading"
  style="width: 100%; height: 28px; margin-top: 2em;"
>
  <title>Loading</title>
  <style>
    @keyframes bounce {
      0%,
      100% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(-8px);
      }
    }
    .dot {
      animation: bounce 0.8s ease-in-out infinite;
      transform-origin: center;
      fill: #888;
    }
    @media (prefers-reduced-motion: reduce) {
      .dot {
        animation: none;
      }
    }
  </style>

  <circle class="dot" cx="20" cy="14" r="4" style="animation-delay: 0.00s" />
  <circle class="dot" cx="50" cy="14" r="4" style="animation-delay: 0.10s" />
  <circle class="dot" cx="80" cy="14" r="4" style="animation-delay: 0.20s" />
  <circle class="dot" cx="110" cy="14" r="4" style="animation-delay: 0.30s" />
</svg>
