/* The CX voice illustration keeps its animation state under the shared controller. */
.voice-illustration{width:100%;min-width:0;background:#160d1b;overflow:hidden;isolation:isolate}
.voice-stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;container-type:inline-size;background:radial-gradient(ellipse at 50% 56%,#352139 0%,#1b1021 47%,#100916 88%)}
.voice-scene{position:absolute;inset:0}
.voice-halo{position:absolute;width:73%;height:58%;left:13.5%;top:27%;border-radius:50%;background:radial-gradient(ellipse,#ae79be16,transparent 70%);filter:blur(12px)}
.voice-topline{position:absolute;top:11%;left:7%;display:flex;align-items:center;gap:9px;color:#bc9ac6;font-size:clamp(7px,1.2cqw,11px);font-weight:500;letter-spacing:.17em;line-height:1.2}
.voice-dot{width:5px;height:5px;border-radius:50%;background:#d6b0e7;box-shadow:0 0 12px #d6b0e740}
.voice-request-stack{position:absolute;inset:0}
.voice-request{position:absolute;top:34%;left:6%;width:88%;height:18%;padding:0 4%;display:flex;align-items:center;gap:3%;box-sizing:border-box;border:1px solid #ffffff12;border-radius:999px;background:linear-gradient(115deg,#332a3b,#3c3243 55%,#281d30);box-shadow:0 13px 25px -20px #0009;color:#fff;transform-origin:50% 0;will-change:transform,opacity;animation:voice-request-cycle 12s cubic-bezier(.4,0,.2,1) infinite;animation-play-state:var(--illustration-play-state,paused)}
.voice-question{flex:1;min-width:0;font-size:clamp(9px,2.34cqw,23px);font-weight:500;line-height:1.2;letter-spacing:-.025em}
.voice-time{flex:none;font-size:clamp(8px,2.1cqw,20px);color:#bcaec4;white-space:nowrap}
.voice-resolved{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex:none;padding:.32em .62em;border-radius:999px;background:#214735;color:#7ae6ac;font-size:clamp(8px,2.06cqw,20px);font-weight:500;line-height:1.2;white-space:nowrap}
.voice-resolved svg{width:.8em;height:.8em;flex:none}
.voice-request-1{z-index:4;transform:translateY(-14%) scale(1);opacity:1;animation-delay:0s}
.voice-request-2{z-index:3;transform:translateY(40%) scale(.91);opacity:.72;animation-delay:-9s}
.voice-request-3{z-index:2;transform:translateY(80%) scale(.82);opacity:.46;animation-delay:-6s}
.voice-request-4{z-index:1;transform:translateY(120%) scale(.73);opacity:.3;animation-delay:-3s}
.voice-waveform{position:absolute;bottom:10%;left:50%;display:flex;align-items:center;justify-content:center;gap:4px;height:18px;transform:translateX(-50%);opacity:.65}
.voice-waveform i{display:block;width:3px;height:12px;border-radius:2px;background:#cc9be1;transform:scaleY(.35);animation:voice-wave 1.35s ease-in-out infinite;animation-delay:calc(var(--wave-index)*-.17s);animation-play-state:var(--illustration-play-state,paused)}
.voice-waveform i:nth-child(2n){height:18px}
.voice-waveform i:nth-child(3n){height:9px}
@keyframes voice-request-cycle{
  0%,20%{transform:translateY(-14%) scale(1);opacity:1;z-index:4}
  24%{transform:translateY(-78%) scale(1.025);opacity:0;z-index:4}
  25%{transform:translateY(120%) scale(.73);opacity:.3;z-index:1}
  30%,45%{transform:translateY(120%) scale(.73);opacity:.3;z-index:1}
  50%,70%{transform:translateY(80%) scale(.82);opacity:.46;z-index:2}
  75%,95%{transform:translateY(40%) scale(.91);opacity:.72;z-index:3}
  100%{transform:translateY(-14%) scale(1);opacity:1;z-index:4}
}
@keyframes voice-wave{0%,100%{transform:scaleY(.35);opacity:.45}50%{transform:scaleY(1);opacity:1}}
@media(max-width:620px){.voice-topline{gap:6px}.voice-waveform{gap:3px;height:14px;bottom:8%}.voice-waveform i{width:2px;height:9px}.voice-waveform i:nth-child(2n){height:13px}.voice-request{padding-inline:3.5%;gap:2.5%}.voice-resolved{gap:2px;padding:.33em .5em}}
@media(prefers-reduced-motion:reduce){.voice-illustration .voice-request,.voice-illustration .voice-waveform i{animation:none!important;will-change:auto}.voice-illustration .voice-waveform i{transform:scaleY(.65);opacity:.7}}
