.vs-orb{--o1:#a5b4fc;--o2:#6366f1;--o3:#1e1b4b;--orb-level:0;vertical-align:middle;background:radial-gradient(circle at 32% 28%,#fff 0%,var(--o1)14%,var(--o2)48%,var(--o3)100%);block-size:44px;inline-size:44px;box-shadow:0 0 22px -6px var(--o2),inset 0 -6px 14px #00000059;transform:scale(calc(1 + var(--orb-level)*.12));border-radius:9999px;flex:none;transition:transform 80ms linear;display:inline-block;position:relative}.vs-orb:after{content:"";background:conic-gradient(from 0deg,transparent 0 60%,#ffffff59 75%,transparent 90%);opacity:.7;border-radius:9999px;animation:7s linear infinite vs-orbspin;position:absolute;inset:-3px;-webkit-mask:radial-gradient(circle,#0000 62%,#000 64%);mask:radial-gradient(circle,#0000 62%,#000 64%)}.vs-orb-xs{block-size:20px;inline-size:20px}.vs-orb-xs:after{display:none}.vs-orb-sm{block-size:26px;inline-size:26px}.vs-orb-lg{block-size:72px;inline-size:72px}.vs-orb-xl{block-size:120px;inline-size:120px}.vs-orb.is-playing{animation:.9s ease-in-out infinite vs-orbpulse}.vs-orb.is-live{box-shadow:0 0 calc(22px + var(--orb-level)*24px)-6px var(--o2),inset 0 -6px 14px #00000059}.vs-orb-stack .vs-orb{box-shadow:0 0 0 2px var(--color-panel-elevated),0 0 14px -6px var(--o2)}.vs-orb-stack .vs-orb+.vs-orb{margin-inline-start:-8px}.vs-orb-stack .vs-orb:after{display:none}@keyframes vs-orbspin{to{transform:rotate(360deg)}}@keyframes vs-orbpulse{0%,to{box-shadow:0 0 22px -6px var(--o2);transform:scale(1)}50%{box-shadow:0 0 36px -2px var(--o2);transform:scale(1.07)}}.vs-wave{touch-action:none;flex:auto;align-items:center;gap:2px;block-size:36px;min-inline-size:0;display:flex;overflow:hidden}.vs-wave>span{background:var(--color-fg-ghost);border-radius:2px;flex:1;min-inline-size:2px;max-inline-size:4px;transition:background .2s}.vs-wave>span.is-played{background:linear-gradient(#c4b5fd,#6366f1)}.vs-wave.is-rendering>span{background:var(--color-surface-vivid);animation:1.4s ease-in-out infinite vs-shimmer}@keyframes vs-shimmer{0%,to{opacity:.35}50%{opacity:1}}.vs-composer{background:linear-gradient(135deg,#6366f18c,#a78bfa40 40%,#ec489966);border-radius:20px;padding:1px;position:relative;box-shadow:0 24px 60px -24px #000c}.vs-composer-inner{background:var(--color-panel-elevated);border-radius:19px;padding:14px}.vs-script{border-radius:12px;position:relative}.vs-script-text{font:inherit;letter-spacing:normal;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;tab-size:4;text-align:start;border:0;margin:0;padding:6px 6px 10px;font-size:16px;line-height:1.7}.vs-script-mirror{color:var(--color-fg-soft);pointer-events:none;min-block-size:var(--vs-script-min,120px)}.vs-script-input{resize:none;color:#0000;caret-color:#fff;background:0 0;outline:none;block-size:100%;inline-size:100%;position:absolute;inset:0;overflow:hidden}.vs-script-input::placeholder{color:var(--color-fg-disabled)}.vs-script-input::selection{color:#0000;background:#818cf859}.vs-script.is-writing .vs-script-mirror{opacity:.22;filter:blur(1.5px)}.vs-script.is-writing:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 20%,#a78bfa29 45%,#ec48991f 55%,#0000 80%) 0 0/250% 100%;border-radius:12px;animation:1.1s linear infinite vs-sweep;position:absolute;inset:0}@keyframes vs-sweep{0%{background-position:120% 0}to{background-position:-120% 0}}.vs-t-tag{color:var(--color-fg-strong);border-radius:5px}.vs-t-dir{color:var(--color-accent-bright);background:#6366f129;border-radius:5px;box-shadow:0 0 0 2px #6366f129}.vs-t-note{color:#fcd34d;text-underline-offset:4px;-webkit-text-decoration:underline dotted #fcd34d99;text-decoration:underline dotted #fcd34d99}.vs-line.is-speaking{background:var(--color-accent-bg-soft)}@media (prefers-reduced-motion:reduce){.vs-orb,.vs-orb:after,.vs-wave>span,.vs-script:after{transition:none!important;animation:none!important}.vs-orb{transform:none!important}}@media (prefers-reduced-transparency:reduce){.vs-orb,.vs-orb.is-live,.vs-orb.is-playing{box-shadow:none}.vs-orb:after{display:none}.vs-composer{background:var(--color-border-hover);box-shadow:none}.vs-script.is-writing:after{background:0 0}}:root[data-reduce-transparency=true] .vs-orb,:root[data-reduce-transparency=true] .vs-orb.is-live,:root[data-reduce-transparency=true] .vs-orb.is-playing{box-shadow:none}:root[data-reduce-transparency=true] .vs-orb:after{display:none}:root[data-reduce-transparency=true] .vs-composer{background:var(--color-border-hover);box-shadow:none}:root[data-reduce-transparency=true] .vs-script.is-writing:after{background:0 0}
