/* Sovado's smooth gradient orb, with a matching static fallback. */
.vr-orb { position:relative; width:420px; height:420px; isolation:isolate; pointer-events:none; }
.vr-orb::before { content:""; position:absolute; z-index:-1; inset:12%; border-radius:50%; background:radial-gradient(ellipse at 40% 35%,var(--orb-light),var(--orb-base) 65%); box-shadow:0 0 52px 14px var(--orb-base); filter:blur(22px); opacity:calc(.24 + var(--voice-level,0) * .14); transform:scale(calc(1 + var(--voice-level,0) * .05)); }
.vr-orb[data-orb-state="speaking"]::before { opacity:calc(.30 + var(--voice-level,0) * .32); transform:scale(calc(1.04 + var(--voice-level,0) * .12)); }
.vr-orb canvas { position:absolute; inset:0; width:100%; height:100%; opacity:0; transition:opacity .4s; }
.vr-orb.is-rendered canvas { opacity:1; }
.vr-orb-fallback { position:absolute; inset:9.25%; border-radius:50%; background:radial-gradient(ellipse at 38% 4%,var(--orb-pearl),transparent 47%),radial-gradient(ellipse at 95% 58%,var(--orb-side),transparent 48%),radial-gradient(ellipse at 35% 80%,var(--orb-light),transparent 65%),var(--orb-base); }
.vr-orb.is-rendered .vr-orb-fallback { opacity:0; }
