.sound-wave{isolation:isolate;place-items:center;width:min(76vw,300px);height:190px;display:grid;position:relative}.sound-wave__glow{z-index:-1;background:radial-gradient(ellipse,color-mix(in srgb,var(--primary)30%,transparent),transparent 68%);filter:blur(28px);opacity:.7;border-radius:999px;transition:opacity .5s,transform .5s;position:absolute;top:22%;bottom:22%;left:4%;right:4%}.sound-wave__bars{justify-content:center;align-items:center;gap:max(5px,min(1.8vw,9px));height:116px;display:flex}.sound-wave__bar{width:max(3px,min(1vw,5px));height:calc(104px*var(--bar-height));background:linear-gradient(to bottom,color-mix(in srgb,var(--primary)58%,white),var(--primary)48%,color-mix(in srgb,var(--secondary)72%,transparent));min-height:14px;box-shadow:0 0 14px color-mix(in srgb,var(--primary)28%,transparent);transform-origin:50%;animation:2.4s ease-in-out infinite sound-wave-breathe;animation-delay:var(--bar-delay);border-radius:999px;transition:filter .4s;transform:scaleY(.28)}.sound-wave__baseline{background:linear-gradient(to right,transparent,color-mix(in srgb,var(--primary)38%,transparent),transparent);width:64%;height:1px;position:absolute;bottom:30px}.sound-wave--listening .sound-wave__bar{animation-name:sound-wave-listen;animation-duration:1.25s}.sound-wave--listening .sound-wave__bar,.sound-wave--speaking .sound-wave__bar{background:linear-gradient(#ff9a9a,#ef4444 48%,#991b1b);box-shadow:0 0 16px rgba(239,68,68,.38)}.sound-wave--listening .sound-wave__glow,.sound-wave--speaking .sound-wave__glow{background:radial-gradient(rgba(239,68,68,.38),transparent 68%)}.sound-wave--listening .sound-wave__baseline,.sound-wave--speaking .sound-wave__baseline{background:linear-gradient(90deg,transparent,rgba(239,68,68,.55),transparent)}.sound-wave--speaking .sound-wave__bar{filter:saturate(1.25)brightness(1.08);animation-name:sound-wave-speak;animation-duration:.72s}.sound-wave__bar--live{transform:scaleY(calc(.16 + (var(--live-level)*.84)));transition:transform 70ms linear,filter .4s;animation:none}.sound-wave--listening .sound-wave__glow,.sound-wave--speaking .sound-wave__glow{opacity:1;transform:scale(1.12)}@keyframes sound-wave-breathe{0%,to{transform:scaleY(.22)}50%{transform:scaleY(.5)}}@keyframes sound-wave-listen{0%,to{transform:scaleY(.28)}45%{transform:scaleY(.68)}70%{transform:scaleY(.42)}}@keyframes sound-wave-speak{0%,to{transform:scaleY(.3)}35%{transform:scaleY(1)}65%{transform:scaleY(.52)}}@media (prefers-reduced-motion:reduce){.sound-wave__bar{animation:none;transform:scaleY(.46)}}
