/* ── Orb showcase ──
   Decorative-only marketing rendition of the call orb (see .pp-convai-call__orb
   in convai.css) for [pp_convai_orb], used to illustrate the speaking feature
   outside the call modal (e.g. the front page). Same conic-gradient + blur
   treatment and tokens, but there is no real call state to react to here —
   rather than cycling through the real orb's dimmer idle/listening beats, this
   holds permanently on its brightest, fastest "speaking" treatment
   (data-state="speaking" in convai.css: opacity 0.9, 4s rotation), since the
   showcase exists to sell the AI-tutor-talking moment, not the quiet ones.
   Namespaced separately from .pp-convai-call__orb* so tuning one never touches
   the other. */
.pp-convai-orb-showcase {
  position: relative;
  width: var(--pp-convai-orb-size, 168px);
  height: var(--pp-convai-orb-size, 168px);
  border-radius: 50%;
  overflow: hidden;
  background: var(--pp-steel-1);
  box-shadow: inset 0 0 0 8px rgba(var(--pp-steel-7-rgb), 0.06);
}

.pp-convai-orb-showcase__core {
  position: absolute;
  inset: -25%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    var(--theme-palette-color-5),
    var(--pp-steel-3),
    var(--theme-palette-color-8),
    var(--pp-steel-4),
    var(--theme-palette-color-5)
  );
  filter: blur(12px);
  opacity: 0.9;
  animation: pp-convai-orb-showcase-spin 4s linear infinite;
}

@keyframes pp-convai-orb-showcase-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pp-convai-orb-showcase__core {
    animation: pp-convai-orb-showcase-breathe 2s ease-in-out infinite;
  }

  @keyframes pp-convai-orb-showcase-breathe {
    0%,
    100% {
      opacity: 0.7;
    }
    50% {
      opacity: 0.9;
    }
  }
}
