.voice-mic{--core-radius:80px;--ring-thickness:25px;--bars-count:120;--bar-inset:-1px;--bar-width:2px;--bar-base:8px;--amplitude:1;--tempo:2.2;--delay-step:-15ms;position:relative;width:calc((var(--core-radius) + var(--ring-thickness)) * 2);height:calc((var(--core-radius) + var(--ring-thickness)) * 2);filter:drop-shadow(0 20px 25px rgba(118,49,208,.25))}@media (max-width:767px){.voice-mic{--core-radius:50px;--ring-thickness:18px;--bar-base:6px;filter:drop-shadow(0 10px 15px rgba(118,49,208,.25))}.voice-core svg{width:28px;height:28px}}.voice-ring{border-radius:50%;background:radial-gradient(120% 120% at 28% 28%,rgba(255,255,255,.35) 0 32%,transparent 58%),linear-gradient(145deg,rgba(118,49,208,.28),rgba(11,92,208,.28));-webkit-mask:radial-gradient(circle,transparent 0 var(--core-radius),#000 var(--core-radius));mask:radial-gradient(circle,transparent 0 var(--core-radius),#000 var(--core-radius));box-shadow:0 0 20px rgba(118,49,208,.15),inset 0 2px 8px rgba(255,255,255,.2),inset 0 -2px 8px rgba(118,49,208,.1);z-index:8}.voice-ring,.voice-viz{position:absolute;inset:0}.voice-viz{z-index:9;pointer-events:none;-webkit-mask:radial-gradient(circle,transparent 0 calc(var(--core-radius) - .5px),#000 calc(var(--core-radius) - .5px));mask:radial-gradient(circle,transparent 0 calc(var(--core-radius) - .5px),#000 calc(var(--core-radius) - .5px))}.voice-bar{--i:0;--angle:calc(var(--i) * (360deg / var(--bars-count)));--base:translate(-50%,-100%) rotate(var(--angle)) translateY(calc(-1 * (var(--core-radius) - var(--bar-inset))));position:absolute;left:50%;top:50%;width:var(--bar-width);height:var(--bar-base);background:white;border-radius:2px;opacity:.95;transform-origin:center bottom;transform:var(--base) scaleY(.45);box-shadow:0 0 4px rgba(255,255,255,.8);animation-delay:calc(var(--i) * var(--delay-step))}.voice-bar:nth-child(5n+1){animation:voiceTalkA calc(var(--tempo) * 1.2s) ease-in-out infinite}.voice-bar:nth-child(5n+2){animation:voiceTalkB calc(var(--tempo) * 1.3s) ease-in-out infinite}.voice-bar:nth-child(5n+3){animation:voiceTalkC calc(var(--tempo) * 1.4s) ease-in-out infinite}.voice-bar:nth-child(5n+4){animation:voiceTalkD calc(var(--tempo) * 1.5s) ease-in-out infinite}.voice-bar:nth-child(5n+5){animation:voiceTalkE calc(var(--tempo) * 1.25s) ease-in-out infinite}@keyframes voiceTalkA{0%,to{transform:var(--base) scaleY(calc(var(--amplitude) * .35))}30%{transform:var(--base) scaleY(calc(var(--amplitude) * 1.1))}60%{transform:var(--base) scaleY(calc(var(--amplitude) * 2.2))}}@keyframes voiceTalkB{0%,to{transform:var(--base) scaleY(calc(var(--amplitude) * .4))}25%{transform:var(--base) scaleY(calc(var(--amplitude) * 1.3))}55%{transform:var(--base) scaleY(calc(var(--amplitude) * 2.6))}}@keyframes voiceTalkC{0%,to{transform:var(--base) scaleY(calc(var(--amplitude) * .3))}35%{transform:var(--base) scaleY(calc(var(--amplitude) * 1.6))}70%{transform:var(--base) scaleY(calc(var(--amplitude) * 2.8))}}@keyframes voiceTalkD{0%,to{transform:var(--base) scaleY(calc(var(--amplitude) * .45))}28%{transform:var(--base) scaleY(calc(var(--amplitude) * 2.5))}72%{transform:var(--base) scaleY(calc(var(--amplitude) * 1.1))}}@keyframes voiceTalkE{0%,to{transform:var(--base) scaleY(calc(var(--amplitude) * .38))}40%{transform:var(--base) scaleY(calc(var(--amplitude) * 2))}80%{transform:var(--base) scaleY(calc(var(--amplitude) * 2.7))}}.voice-core{position:absolute;inset:var(--ring-thickness);border:0;border-radius:50%;padding:0;display:grid;place-items:center;cursor:pointer;z-index:10;background:linear-gradient(145deg,#7631D0,#0B5CD0);box-shadow:0 0 25px rgba(255,255,255,.6),inset 0 8px 16px rgba(255,255,255,.55),inset 0 -12px 20px rgba(118,49,208,.35),0 10px 25px rgba(118,49,208,.28);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.voice-core:hover{transform:scale(1.03);box-shadow:0 0 35px rgba(255,255,255,.8),inset 0 10px 20px rgba(255,255,255,.6),inset 0 -16px 26px rgba(118,49,208,.4),0 16px 32px rgba(118,49,208,.35);filter:saturate(1.05)}.voice-core:active{transform:scale(.98)}.voice-core svg{width:42px;height:42px;fill:white;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}