.loading-indicator {
  --loading-indicator-size: 18px;
  --loading-indicator-border-width: 2px;
  --loading-indicator-track-color: color-mix(in srgb, var(--color-ambient-mint-dark) 20%, transparent);
  --loading-indicator-color: var(--color-ambient-mint-dark);

  display: block;
  width: var(--loading-indicator-size);
  height: var(--loading-indicator-size);
}

.loading-indicator::after {
  content: "";
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  border: var(--loading-indicator-border-width) solid var(--loading-indicator-track-color);
  border-top-color: var(--loading-indicator-color);
  border-radius: 50%;
  animation: loading-indicator-spin 700ms linear infinite;
}

@keyframes loading-indicator-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .loading-indicator::after {
    animation: none;
  }
}
