/* Voice Immersive — keyframes & pseudo-elements only (layout moved to Tailwind) */

@keyframes ambient-rotate {
  to { transform: rotate(360deg); }
}

@keyframes incoming-pulse {
  0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.4); }
  70% { box-shadow: 0 0 0 18px rgba(52, 211, 153, 0); }
  100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
}

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

@keyframes particle-float {
  0% {
    transform: translateY(100vh) scale(0);
    opacity: 0;
  }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% {
    transform: translateY(-10vh) scale(1);
    opacity: 0;
  }
}

@keyframes voice-dot-blink {
  0%, 75%, 100% { opacity: 0; }
  25%, 50% { opacity: 0.6; }
}

/* Fullscreen conic-gradient pseudo — can't be done in Tailwind */
.voice-fullscreen::before {
  content: '';
  position: absolute;
  inset: -50%;
  background: conic-gradient(
    from 0deg at 50% 50%,
    rgba(99, 102, 241, 0.15) 0deg,
    rgba(6, 182, 212, 0.1) 60deg,
    rgba(139, 92, 246, 0.12) 120deg,
    rgba(59, 130, 246, 0.1) 180deg,
    rgba(99, 102, 241, 0.15) 240deg,
    rgba(6, 182, 212, 0.08) 300deg,
    rgba(99, 102, 241, 0.15) 360deg
  );
  animation: ambient-rotate 20s linear infinite;
  filter: blur(80px);
  z-index: 0;
}

/* Transcript word styling */
.voice-transcript-text .word {
  display: inline-block;
  margin-right: 0.3rem;
  opacity: 1;
}

.voice-transcript-text .word.punct {
  margin-left: -0.3rem;
}

/* Particle elements created by JS */
.voice-particle {
  position: absolute;
  width: 2px;
  height: 2px;
  background: rgba(129, 140, 248, 0.4);
  border-radius: 50%;
  animation: particle-float linear infinite;
}

/* Outbound demo taller canvas on mobile */
@media (max-width: 768px) {
  .voice-player-wrap[data-call-direction="outbound"] .voice-stage {
    min-height: 480px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .voice-fullscreen::before,
  .voice-particle {
    animation: none;
  }
  .voice-transcript-text .word {
    transition: none;
  }
  .voice-dot {
    animation: none;
    opacity: 0.6;
  }
}
