.vb{--vb-size:64px;flex-direction:column;align-items:center;gap:.45rem;display:inline-flex}.vb-btn{width:var(--vb-size);height:var(--vb-size);cursor:pointer;color:var(--text);background:0 0;border:0;border-radius:50%;padding:0;position:relative}.vb-btn:disabled{cursor:default}.vb-core{border:1px solid var(--stroke-glow);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--violet) 45%, transparent), color-mix(in srgb, var(--violet) 14%, #0b0916));box-shadow:0 0 24px -6px var(--violet);transition:transform .25s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease), color .3s;border-radius:50%;place-items:center;animation:3.2s ease-in-out infinite vb-breathe;display:grid;position:absolute;inset:0}.vb-btn:hover .vb-core{transform:scale(1.06)}.vb-btn:active .vb-core{transform:scale(.94)}@keyframes vb-breathe{0%,to{box-shadow:0 0 18px -6px var(--violet)}50%{box-shadow:0 0 34px -4px var(--violet)}}.vb-ripple,.vb-level{pointer-events:none;opacity:0;border-radius:50%;position:absolute;inset:0}.vb-listening .vb-ripple{border:2px solid var(--teal);animation:1.8s ease-out infinite vb-ripple}.vb-listening .vb-ripple.r2{animation-delay:.6s}.vb-listening .vb-ripple.r3{animation-delay:1.2s}@keyframes vb-ripple{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.1)}}.vb-listening .vb-level{opacity:.9;background:radial-gradient(circle, color-mix(in srgb, var(--teal) 45%, transparent) 55%, transparent 72%);transform:scale(calc(1.05 + var(--lvl) * .75));transition:transform 80ms linear}.vb-listening .vb-core{color:#062a26;background:radial-gradient(circle at 35% 30%, #b6fff2, var(--teal));border-color:var(--teal);box-shadow:0 0 34px -2px var(--teal);animation:none}.vb-speaking .vb-core{color:#2a1a02;background:radial-gradient(circle at 35% 30%, #ffe7a8, var(--amber));border-color:var(--amber);animation:.9s ease-in-out infinite vb-talk}@keyframes vb-talk{0%,to{box-shadow:0 0 16px -4px var(--amber)}50%{box-shadow:0 0 34px 0 var(--amber)}}.vb-busy .vb-core{animation:none}.vb-orbit{border:2px solid color-mix(in srgb, var(--violet) 35%, transparent);border-top-color:var(--teal);border-radius:50%;width:60%;height:60%;animation:.8s linear infinite vb-spin;position:relative}@keyframes vb-spin{to{transform:rotate(360deg)}}.vb-label{letter-spacing:.02em;color:var(--text-soft);white-space:nowrap;font-size:.78rem;transition:color .3s}.vb-listening .vb-label{color:var(--teal)}.vb-speaking .vb-label{color:var(--amber)}@media (prefers-reduced-motion:reduce){.vb-core,.vb-ripple,.vb-orbit{animation:none!important}}
