/* ============================================================
   Wiwo Thinking Orb
   Portado desde el design system Neo (neo.wiwo.me). CSS puro: sin
   dependencias, sin canvas y sin JS de animación.

   Uso:
     <div class="orb-host" data-thinking-state="thinking">
       <div class="orb-stage">…</div>
     </div>
   El markup interno lo genera renderOrb() en public/js/orb.js.

   Estados válidos en data-thinking-state:
     idle · listening · thinking · generating · routing · success · error · retry

   Se carga solo en el tema neo; el tema mgc usa los GIFs de contenido.
   Los reflejos beige del original se pasaron a blanco, que es el ground
   del tema.
   ============================================================ */

/* El orb hereda del tema lo que el tema define y trae del sistema Neo lo que
   es propio del componente (los primitivos de marca y el escenario). */
.orb-host {
  display: grid;
  place-items: center;
  --orb-size: clamp(176px, 21vw, 280px);   /* lo pisa renderOrb() con el tamaño pedido */
  --ease-expressive: var(--ease, cubic-bezier(0.2, 0.8, 0.2, 1));
  --motion-medium: 280ms;
  --shape-full: 999px;
  --shape-lg: 1.5rem;
  --wiwo-blue: #4242FF;
  --wiwo-green: #3BFF00;
  --wiwo-beige: #FFFFFF;
  --wiwo-gradient-animated: linear-gradient(103deg, #3BFF00, #9ADBB0 46%, #4242FF);
  --stage-blue-glow: rgba(66, 66, 255, 0.38);
  --stage-green-glow: rgba(59, 255, 0, 0.20);
  --ink: var(--fg, #292929);
  --muted: var(--fg-muted, #6B6D7A);
  --demo-size: clamp(190px, 22vw, 304px);
}

.orb-stage {
  position: relative;
  min-height: 440px;
  display: grid;
  place-items: center;
  isolation: isolate;
}
.orb-stage::before,
.orb-stage::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.orb-stage::before {
  width: min(74%, 420px);
  aspect-ratio: 1;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .12), transparent 38%),
    radial-gradient(circle, var(--stage-blue-glow), transparent 66%);
  filter: blur(24px);
  opacity: .82;
  animation: thinking-orb-halo 7200ms var(--ease-expressive) infinite alternate;
}
.orb-stage::after {
  width: min(58%, 312px);
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, .16);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, .05),
    0 0 110px var(--stage-green-glow),
    inset 0 0 44px rgba(255, 255, 255, .08);
  animation: thinking-orb-ring 5200ms var(--ease-expressive) infinite;
}
.wiwo-thinking-orb {
  --orb-size: clamp(190px, 22vw, 304px);
  --orb-glow: rgba(66, 66, 255, .38);
  --orb-primary: rgba(66, 66, 255, .58);
  --orb-secondary: rgba(59, 255, 0, .5);
  --orb-milk: rgba(255, 255, 255, .48);
  --orb-rim: rgba(255, 255, 255, .64);
  --orb-liquid-opacity: .62;
  --orb-caustic-opacity: .42;
  --orb-light-opacity: .86;
  --orb-alpha: .9;
  --orb-speed: 4200ms;
  --orb-flow-speed: 6200ms;
  --orb-x: 0px;
  --orb-y: 0px;
  --orb-scale-a: 1;
  --orb-scale-b: 1.055;
  --orb-scale-c: .985;
  --orb-rotate-a: 0deg;
  --orb-rotate-b: 4deg;
  --orb-rotate-c: -3deg;
  position: relative;
  z-index: 2;
  width: var(--orb-size);
  aspect-ratio: 1;
  border-radius: 46% 54% 52% 48% / 48% 42% 58% 52%;
  border: 1px solid rgba(255, 255, 255, .46);
  background:
    radial-gradient(ellipse at 30% 22%, rgba(255, 255, 255, .74), rgba(255, 255, 255, .16) 28%, transparent 50%),
    radial-gradient(circle at 66% 34%, rgba(255, 255, 255, .3), transparent 24%),
    radial-gradient(circle at 74% 68%, rgba(59, 255, 0, .24), transparent 34%),
    radial-gradient(circle at 30% 78%, var(--orb-primary), transparent 46%),
    conic-gradient(from 140deg, rgba(59, 255, 0, .5), rgba(255, 255, 255, .36), var(--orb-primary), rgba(66, 66, 255, .42), rgba(59, 255, 0, .48)),
    linear-gradient(145deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, .05));
  background-size: 128% 128%, 100% 100%, 118% 118%, 150% 150%, 220% 220%, 100% 100%;
  opacity: var(--orb-alpha);
  box-shadow:
    0 34px 86px rgba(66, 66, 255, .18),
    0 0 120px var(--orb-glow),
    0 0 72px rgba(59, 255, 0, .2),
    inset 0 2px 28px rgba(255, 255, 255, .58),
    inset -18px -24px 48px rgba(66, 66, 255, .14),
    inset 18px 22px 54px rgba(255, 255, 255, .24),
    inset 0 0 0 10px rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(22px) saturate(1.9);
  backdrop-filter: blur(22px) saturate(1.9);
  transform: translateZ(0);
  transition: transform var(--motion-medium) var(--ease-expressive), filter var(--motion-medium) var(--ease-expressive), opacity var(--motion-medium) var(--ease-expressive), border-radius var(--motion-medium) var(--ease-expressive), box-shadow var(--motion-medium) var(--ease-expressive);
  animation: thinking-orb-breathe var(--orb-speed) var(--ease-expressive) infinite, thinking-orb-glass-flow var(--orb-flow-speed) linear infinite;
}
.wiwo-thinking-orb::before,
.wiwo-thinking-orb::after {
  content: "";
  position: absolute;
  inset: 10%;
  border-radius: inherit;
  pointer-events: none;
}
.wiwo-thinking-orb::before {
  background:
    radial-gradient(circle at 30% 28%, rgba(255, 255, 255, .44), transparent 20%),
    radial-gradient(circle at 76% 68%, rgba(255, 255, 255, .18), transparent 22%),
    conic-gradient(from 120deg, transparent, rgba(255, 255, 255, .26), var(--orb-primary), transparent 68%);
  mix-blend-mode: screen;
  filter: blur(.6px);
  opacity: .78;
  animation: thinking-orb-liquid var(--orb-flow-speed) linear infinite;
}
.wiwo-thinking-orb::after {
  inset: 2% 12% auto 14%;
  height: 38%;
  border-radius: 48% 52% 44% 56%;
  background:
    radial-gradient(ellipse at 32% 28%, rgba(255, 255, 255, .9), rgba(255, 255, 255, .24) 42%, transparent 72%),
    linear-gradient(145deg, rgba(255, 255, 255, .72), rgba(255, 255, 255, .08) 70%, transparent);
  opacity: .64;
  transform: rotate(-10deg);
  animation: thinking-orb-sheen 4800ms var(--ease-expressive) infinite alternate;
}
.orb-liquid-veil,
.orb-light-field,
.orb-caustic,
.orb-rim,
.orb-glint {
  position: absolute;
  border-radius: inherit;
  pointer-events: none;
}
.orb-liquid-veil {
  inset: 7%;
  z-index: 1;
  background:
    radial-gradient(ellipse at 28% 22%, rgba(255, 255, 255, .3), transparent 32%),
    radial-gradient(ellipse at 68% 72%, rgba(59, 255, 0, .18), transparent 30%),
    conic-gradient(from 220deg, transparent, rgba(255, 255, 255, .16), var(--orb-primary), transparent 60%, var(--orb-secondary), transparent);
  filter: blur(9px) saturate(1.16);
  mix-blend-mode: screen;
  opacity: var(--orb-liquid-opacity);
  animation: thinking-orb-viscosity 7200ms var(--ease-expressive) infinite;
}
.orb-light-field {
  inset: 0;
  z-index: 2;
  background:
    radial-gradient(ellipse at 24% 18%, rgba(255, 255, 255, .78), rgba(255, 255, 255, .2) 27%, transparent 50%),
    radial-gradient(circle at 64% 46%, rgba(255, 255, 255, .2), transparent 20%),
    radial-gradient(circle at 82% 68%, rgba(255, 255, 255, .1), transparent 24%);
  mix-blend-mode: screen;
  opacity: var(--orb-light-opacity);
  animation: thinking-orb-light-swim 5400ms var(--ease-expressive) infinite alternate;
}
.orb-caustic {
  inset: 4%;
  z-index: 2;
  background:
    repeating-conic-gradient(from 18deg, rgba(255, 255, 255, .2) 0deg 8deg, transparent 9deg 24deg),
    radial-gradient(circle at 50% 50%, transparent 36%, rgba(255, 255, 255, .18), transparent 62%);
  filter: blur(7px);
  mix-blend-mode: screen;
  opacity: var(--orb-caustic-opacity);
  animation: thinking-orb-caustic 7600ms linear infinite;
}
.orb-rim {
  inset: -1px;
  z-index: 4;
  background: conic-gradient(from 0deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .58), rgba(66, 66, 255, .28), rgba(59, 255, 0, .42), rgba(255, 255, 255, .08));
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 8px), #000 calc(100% - 7px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 8px), #000 calc(100% - 7px));
  opacity: .54;
  filter: blur(.8px);
  animation: thinking-orb-rim 4200ms linear infinite;
}
.orb-core {
  position: absolute;
  inset: 42%;
  z-index: 5;
  border-radius: 50%;
  border: 0;
  background:
    radial-gradient(circle at 42% 36%, rgba(255, 255, 255, .72), rgba(255, 255, 255, .28) 42%, transparent 74%);
  box-shadow:
    0 0 36px rgba(255, 255, 255, .54),
    0 0 86px rgba(59, 255, 0, .22);
  -webkit-backdrop-filter: blur(8px) saturate(1.5);
  backdrop-filter: blur(8px) saturate(1.5);
  animation: thinking-orb-core 1900ms var(--ease-expressive) infinite;
}
.orb-glint {
  z-index: 6;
  width: 10px;
  height: 10px;
  right: 21%;
  top: 24%;
  border-radius: 50%;
  background: var(--wiwo-beige);
  box-shadow: 0 0 16px rgba(255, 255, 255, .9), 0 0 44px rgba(66, 66, 255, .4);
  opacity: .88;
  animation: thinking-orb-glint 2800ms var(--ease-expressive) infinite;
}
.orb-pulse {
  position: absolute;
  inset: -18%;
  z-index: -1;
  border-radius: inherit;
  border: 1px solid rgba(59, 255, 0, .3);
  background: radial-gradient(circle, rgba(255, 255, 255, .08), transparent 62%);
  filter: blur(.2px);
  animation: thinking-orb-pulse 2200ms var(--ease-expressive) infinite;
}
.orb-pulse:nth-child(2) {
  animation-delay: 740ms;
  border-color: rgba(66, 66, 255, .28);
}
.orb-pulse:nth-child(3) {
  animation-delay: 1480ms;
  border-color: rgba(255, 255, 255, .22);
}
.orb-particle {
  position: absolute;
  z-index: 4;
  left: 50%;
  top: 50%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--wiwo-green);
  box-shadow: 0 0 18px rgba(59, 255, 0, .74);
  opacity: var(--spark-opacity);
  mix-blend-mode: screen;
  transform-origin: calc(var(--orbit, 142px) * -1) 0;
  animation: thinking-orb-particle var(--speed, 5200ms) linear infinite;
}
.orb-particle:nth-of-type(2) {
  --orbit: 120px;
  --speed: 6400ms;
  width: 6px;
  height: 6px;
  background: var(--wiwo-blue);
  box-shadow: 0 0 18px rgba(66, 66, 255, .7);
  animation-delay: -1900ms;
}
.orb-particle:nth-of-type(3) {
  --orbit: 158px;
  --speed: 7800ms;
  width: 5px;
  height: 5px;
  background: var(--wiwo-beige);
  box-shadow: 0 0 16px rgba(255, 255, 255, .64);
  animation-delay: -3600ms;
}
.orb-spark {
  position: absolute;
  z-index: 5;
  left: var(--sx, 50%);
  top: var(--sy, 50%);
  width: var(--spark-size, 5px);
  height: var(--spark-size, 5px);
  border-radius: 50%;
  background: var(--spark-color, var(--wiwo-beige));
  box-shadow: 0 0 14px currentColor, 0 0 34px var(--spark-color, rgba(255, 255, 255, .72));
  color: var(--spark-color, var(--wiwo-beige));
  opacity: var(--spark-opacity);
  mix-blend-mode: screen;
  animation: thinking-orb-spark var(--spark-speed, 6200ms) var(--ease-expressive) infinite;
  animation-delay: var(--spark-delay, 0ms);
}
.orb-state-field {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
  mix-blend-mode: screen;
  transition: filter var(--motion-medium) var(--ease-expressive), transform var(--motion-medium) var(--ease-expressive);
}
.orb-state-field span {
  position: absolute;
  display: block;
  pointer-events: none;
}
.orb-state-ring,
.orb-state-ring.alt {
  left: 50%;
  top: 50%;
  width: min(68%, 360px);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .18);
  box-shadow:
    0 0 42px rgba(66, 66, 255, .16),
    inset 0 0 42px rgba(255, 255, 255, .06);
  opacity: .46;
  transform: translate(-50%, -50%) rotateX(62deg) rotateZ(0deg);
  animation: orb-state-ring 5200ms linear infinite;
}
.orb-state-ring.alt {
  width: min(84%, 440px);
  border-style: dashed;
  border-color: rgba(59, 255, 0, .2);
  opacity: .28;
  animation-direction: reverse;
  animation-duration: 7800ms;
}
.orb-scan-line {
  left: 17%;
  right: 17%;
  top: 50%;
  height: 2px;
  border-radius: var(--shape-full);
  background: linear-gradient(90deg, transparent, rgba(59, 255, 0, .85), rgba(255, 255, 255, .9), transparent);
  filter: blur(.2px);
  opacity: 0;
  transform: translateY(-50%);
  box-shadow: 0 0 22px rgba(59, 255, 0, .46);
}
.orb-output-trail {
  right: 7%;
  top: 50%;
  width: clamp(92px, 18vw, 210px);
  height: 10px;
  border-radius: var(--shape-full);
  background: linear-gradient(90deg, rgba(59, 255, 0, .72), rgba(66, 66, 255, .58), transparent);
  filter: blur(7px);
  opacity: 0;
  transform-origin: 0 50%;
}
.orb-output-trail.two {
  top: 43%;
  width: clamp(70px, 13vw, 160px);
  background: linear-gradient(90deg, rgba(255, 255, 255, .58), rgba(59, 255, 0, .54), transparent);
}
.orb-output-trail.three {
  top: 58%;
  width: clamp(58px, 10vw, 138px);
  background: linear-gradient(90deg, rgba(66, 66, 255, .64), rgba(255, 255, 255, .5), transparent);
}
.orb-success-burst {
  left: 50%;
  top: 50%;
  width: min(48%, 250px);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid rgba(59, 255, 0, .72);
  opacity: 0;
  transform: translate(-50%, -50%) scale(.55);
  box-shadow: 0 0 46px rgba(59, 255, 0, .44);
}
.orb-retry-notch {
  left: 50%;
  top: 50%;
  width: min(74%, 360px);
  height: 2px;
  border-radius: var(--shape-full);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .48), rgba(141, 124, 255, .62), transparent);
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-18deg);
  filter: blur(.4px);
}
.orb-host[data-thinking-state="listening"] .wiwo-thinking-orb {
  --orb-glow: rgba(59, 255, 0, .34);
  --orb-primary: rgba(117, 255, 78, .72);
  --orb-secondary: rgba(66, 66, 255, .52);
  --orb-rim: rgba(59, 255, 0, .78);
  --orb-liquid-opacity: .62;
  --orb-caustic-opacity: .44;
  --orb-light-opacity: .78;
  --orb-alpha: .76;
  --orb-speed: 3600ms;
  --orb-flow-speed: 5400ms;
  --orb-scale-a: .96;
  --orb-scale-b: 1.015;
  --orb-scale-c: .94;
  --orb-rotate-a: -1deg;
  --orb-rotate-b: 2deg;
  --orb-rotate-c: -2deg;
  border-radius: 43% 57% 55% 45% / 52% 40% 60% 48%;
}
.orb-host[data-thinking-state="listening"] {
  --stage-blue-glow: rgba(66, 66, 255, .24);
  --stage-green-glow: rgba(59, 255, 0, .28);
  --stage-warm-glow: rgba(255, 255, 255, .12);
  --stage-beam-opacity: .28;
  --spark-opacity: .68;
}
.orb-host[data-thinking-state="listening"] .orb-scan-line {
  opacity: .9;
  animation: orb-scan-listen 1900ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="listening"] .orb-state-ring {
  border-color: rgba(59, 255, 0, .34);
  animation-duration: 3800ms;
  opacity: .62;
}
.orb-host[data-thinking-state="listening"] .orb-pulse {
  animation-duration: 1550ms;
  border-color: rgba(59, 255, 0, .42);
}
.orb-host[data-thinking-state="thinking"] .wiwo-thinking-orb {
  --orb-glow: rgba(66, 66, 255, .56);
  --orb-primary: rgba(66, 66, 255, .82);
  --orb-secondary: rgba(59, 255, 0, .68);
  --orb-rim: rgba(255, 255, 255, .78);
  --orb-liquid-opacity: .78;
  --orb-caustic-opacity: .64;
  --orb-light-opacity: .9;
  --orb-alpha: .84;
  --orb-speed: 3000ms;
  --orb-flow-speed: 4600ms;
  --orb-scale-a: 1.03;
  --orb-scale-b: 1.095;
  --orb-scale-c: 1;
  --orb-rotate-a: 0deg;
  --orb-rotate-b: 6deg;
  --orb-rotate-c: -4deg;
  border-radius: 50% 50% 43% 57% / 45% 58% 42% 55%;
}
.orb-host[data-thinking-state="thinking"] {
  --stage-blue-glow: rgba(66, 66, 255, .42);
  --stage-green-glow: rgba(59, 255, 0, .22);
  --stage-warm-glow: rgba(255, 255, 255, .16);
  --stage-beam-opacity: .42;
  --spark-opacity: .88;
}
.orb-host[data-thinking-state="thinking"] .orb-state-ring {
  opacity: .72;
  border-color: rgba(255, 255, 255, .24);
  animation-duration: 2600ms;
}
.orb-host[data-thinking-state="thinking"] .orb-state-ring.alt {
  opacity: .44;
  border-color: rgba(66, 66, 255, .34);
  animation-duration: 4200ms;
}
.orb-host[data-thinking-state="thinking"] .orb-core {
  animation-duration: 980ms;
  box-shadow:
    0 0 48px rgba(255, 255, 255, .72),
    0 0 110px rgba(66, 66, 255, .42),
    0 0 84px rgba(59, 255, 0, .24);
}
.orb-host[data-thinking-state="generating"] .wiwo-thinking-orb {
  --orb-glow: rgba(59, 255, 0, .52);
  --orb-primary: rgba(98, 116, 255, .86);
  --orb-secondary: rgba(59, 255, 0, .86);
  --orb-rim: rgba(59, 255, 0, .86);
  --orb-liquid-opacity: .86;
  --orb-caustic-opacity: .82;
  --orb-light-opacity: .96;
  --orb-alpha: .9;
  --orb-speed: 2200ms;
  --orb-flow-speed: 3100ms;
  --orb-x: -10px;
  --orb-scale-a: 1.06;
  --orb-scale-b: 1.14;
  --orb-scale-c: 1.025;
  --orb-rotate-a: 1deg;
  --orb-rotate-b: 8deg;
  --orb-rotate-c: -5deg;
  border-radius: 58% 42% 46% 54% / 44% 48% 52% 56%;
}
.orb-host[data-thinking-state="generating"] {
  --stage-blue-glow: rgba(66, 66, 255, .46);
  --stage-green-glow: rgba(59, 255, 0, .36);
  --stage-warm-glow: rgba(255, 255, 255, .16);
  --stage-beam-opacity: .54;
  --spark-opacity: 1;
}
.orb-host[data-thinking-state="generating"] .orb-output-trail {
  opacity: .95;
  animation: orb-output-trail 1120ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="generating"] .orb-output-trail.two {
  animation-delay: 140ms;
}
.orb-host[data-thinking-state="generating"] .orb-output-trail.three {
  animation-delay: 280ms;
}
.orb-host[data-thinking-state="generating"] .orb-state-ring {
  border-color: rgba(59, 255, 0, .38);
  box-shadow: 0 0 60px rgba(59, 255, 0, .24);
  animation-duration: 1800ms;
}
.orb-host[data-thinking-state="success"] .wiwo-thinking-orb {
  --orb-glow: rgba(59, 255, 0, .62);
  --orb-primary: rgba(59, 255, 0, .86);
  --orb-secondary: rgba(255, 255, 255, .66);
  --orb-rim: rgba(59, 255, 0, .92);
  --orb-liquid-opacity: .72;
  --orb-caustic-opacity: .54;
  --orb-light-opacity: .94;
  --orb-alpha: .88;
  --orb-speed: 2600ms;
  --orb-flow-speed: 3800ms;
  --orb-scale-a: 1;
  --orb-scale-b: 1.045;
  --orb-scale-c: .99;
  --orb-rotate-a: 0deg;
  --orb-rotate-b: 2deg;
  --orb-rotate-c: -1deg;
  border-radius: 48% 52% 50% 50%;
}
.orb-host[data-thinking-state="success"] {
  --stage-blue-glow: rgba(66, 66, 255, .22);
  --stage-green-glow: rgba(59, 255, 0, .42);
  --stage-warm-glow: rgba(255, 255, 255, .2);
  --stage-beam-opacity: .48;
  --spark-opacity: .92;
}
.orb-host[data-thinking-state="success"] .orb-success-burst {
  animation: orb-success-burst 1450ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="success"] .orb-state-ring,
.orb-host[data-thinking-state="success"] .orb-state-ring.alt {
  border-color: rgba(59, 255, 0, .42);
  opacity: .5;
  animation-duration: 5200ms;
}
.orb-host[data-thinking-state="retry"] .wiwo-thinking-orb {
  --orb-glow: rgba(255, 255, 255, .2);
  --orb-primary: rgba(141, 124, 255, .58);
  --orb-secondary: rgba(237, 239, 221, .42);
  --orb-rim: rgba(255, 255, 255, .5);
  --orb-liquid-opacity: .38;
  --orb-caustic-opacity: .26;
  --orb-light-opacity: .58;
  --orb-alpha: .7;
  --orb-speed: 1700ms;
  --orb-flow-speed: 2400ms;
  --orb-x: 0px;
  --orb-scale-a: .9;
  --orb-scale-b: .955;
  --orb-scale-c: .865;
  --orb-rotate-a: -3deg;
  --orb-rotate-b: 4deg;
  --orb-rotate-c: -7deg;
  filter: saturate(.72) brightness(.86);
  border-radius: 52% 48% 48% 52% / 58% 44% 56% 42%;
}
.orb-host[data-thinking-state="retry"] {
  --stage-blue-glow: rgba(141, 124, 255, .24);
  --stage-green-glow: rgba(255, 255, 255, .08);
  --stage-warm-glow: rgba(255, 255, 255, .1);
  --stage-beam-opacity: .18;
  --spark-opacity: .36;
}
.orb-host[data-thinking-state="retry"] .orb-retry-notch {
  opacity: .92;
  animation: orb-retry-notch 860ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="retry"] .orb-state-ring,
.orb-host[data-thinking-state="retry"] .orb-state-ring.alt {
  opacity: .2;
  border-color: rgba(141, 124, 255, .32);
  animation-duration: 1400ms;
}
.orb-host[data-thinking-state="idle"] .wiwo-thinking-orb {
  --orb-glow: rgba(255, 255, 255, .18);
  --orb-primary: rgba(66, 66, 255, .48);
  --orb-secondary: rgba(59, 255, 0, .34);
  --orb-rim: rgba(255, 255, 255, .42);
  --orb-liquid-opacity: .34;
  --orb-caustic-opacity: .22;
  --orb-light-opacity: .54;
  --orb-alpha: .66;
  --orb-speed: 6200ms;
  --orb-flow-speed: 8200ms;
  --orb-scale-a: .92;
  --orb-scale-b: .965;
  --orb-scale-c: .9;
  --orb-rotate-a: 0deg;
  --orb-rotate-b: 1deg;
  --orb-rotate-c: -1deg;
  border-radius: 50% 50% 52% 48%;
}
.orb-host[data-thinking-state="idle"] {
  --stage-blue-glow: rgba(66, 66, 255, .18);
  --stage-green-glow: rgba(59, 255, 0, .1);
  --stage-warm-glow: rgba(255, 255, 255, .1);
  --stage-beam-opacity: .12;
  --spark-opacity: .34;
}
.orb-host[data-thinking-state="idle"] .orb-state-ring {
  opacity: .18;
  animation-duration: 9600ms;
}
.orb-host.is-state-changing .wiwo-thinking-orb {
  animation-name: thinking-orb-state-pop, thinking-orb-glass-flow;
  animation-duration: 520ms, var(--orb-flow-speed);
  animation-timing-function: var(--ease-expressive), linear;
  animation-iteration-count: 1, infinite;
}
.orb-host.is-state-changing .orb-light-field,
.orb-host.is-state-changing .orb-glint {
  animation-duration: 680ms;
}
.orb-host.is-state-changing .orb-state-field {
  animation: orb-state-field-pop 780ms var(--ease-expressive) 1;
}
.orb-host[data-thinking-state="generating"] .orb-particle {
  animation-duration: 2200ms;
}
.orb-host[data-thinking-state="generating"] .orb-spark {
  animation-duration: 2400ms;
}
.orb-host[data-thinking-state="success"] .orb-pulse {
  border-color: rgba(59, 255, 0, .54);
  animation-duration: 1250ms;
}
.orb-host[data-thinking-state="retry"] .orb-particle,
.orb-host[data-thinking-state="idle"] .orb-particle,
.orb-host[data-thinking-state="retry"] .orb-spark,
.orb-host[data-thinking-state="idle"] .orb-spark {
  opacity: .42;
}
.orb-size {
  display: grid;
  justify-items: center;
  gap: .7rem;
  padding: .95rem;
  border-radius: var(--shape-lg);
  border: 1px solid rgba(41, 41, 41, .1);
  background: rgba(255, 255, 255, .48);
  text-align: center;
}
.orb-size::before {
  content: "";
  width: var(--demo-size, 48px);
  height: var(--demo-size, 48px);
  border-radius: 46% 54% 52% 48%;
  background: var(--wiwo-gradient-animated);
  background-size: 220% 220%;
  box-shadow: 0 0 28px rgba(66, 66, 255, .22);
  animation: gradient-pan 3600ms var(--ease-expressive) infinite, thinking-orb-breathe 2600ms var(--ease-expressive) infinite;
}
.orb-size strong {
  display: block;
  color: var(--ink);
  line-height: 1;
}
.orb-size span {
  color: var(--muted);
  font-size: .78rem;
}
@keyframes thinking-orb-breathe {
  0%,
  100% {
    transform: translate3d(var(--orb-x, 0px), var(--orb-y, 0px), 0) scale(var(--orb-scale-a, 1)) rotate(var(--orb-rotate-a, 0deg));
    border-radius: 46% 54% 52% 48% / 48% 42% 58% 52%;
  }

  44% {
    transform: translate3d(var(--orb-x, 0px), var(--orb-y, 0px), 0) scale(var(--orb-scale-b, 1.055)) rotate(var(--orb-rotate-b, 4deg));
    border-radius: 52% 48% 45% 55% / 44% 55% 45% 56%;
  }

  72% {
    transform: translate3d(var(--orb-x, 0px), var(--orb-y, 0px), 0) scale(var(--orb-scale-c, .985)) rotate(var(--orb-rotate-c, -3deg));
    border-radius: 43% 57% 58% 42% / 54% 44% 56% 46%;
  }
}
@keyframes thinking-orb-liquid {
  to {
    transform: rotate(360deg);
  }
}
@keyframes thinking-orb-glass-flow {
  0% {
    background-position: 0% 50%, 12% 18%, 88% 72%, 18% 82%, 0% 50%, 50% 50%;
  }

  50% {
    background-position: 0% 50%, 22% 28%, 74% 68%, 44% 58%, 100% 50%, 50% 50%;
  }

  100% {
    background-position: 0% 50%, 12% 18%, 88% 72%, 18% 82%, 0% 50%, 50% 50%;
  }
}
@keyframes thinking-orb-viscosity {
  0%,
  100% {
    transform: rotate(0deg) scale(1);
    border-radius: 44% 56% 52% 48% / 48% 44% 56% 52%;
  }

  46% {
    transform: rotate(156deg) scale(1.08);
    border-radius: 58% 42% 46% 54% / 43% 57% 45% 55%;
  }

  72% {
    transform: rotate(258deg) scale(.96);
    border-radius: 42% 58% 60% 40% / 56% 42% 58% 44%;
  }
}
@keyframes thinking-orb-light-swim {
  0%,
  100% {
    transform: translate3d(-1%, -2%, 0) rotate(-4deg) scale(1);
    opacity: .58;
  }

  48% {
    transform: translate3d(4%, 7%, 0) rotate(7deg) scale(1.05);
    opacity: var(--orb-light-opacity);
  }
}
@keyframes thinking-orb-caustic {
  from {
    transform: rotate(0deg) scale(1);
  }

  to {
    transform: rotate(-360deg) scale(1.04);
  }
}
@keyframes thinking-orb-rim {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}
@keyframes thinking-orb-state-pop {
  0% {
    transform: translate3d(var(--orb-x, 0px), var(--orb-y, 0px), 0) scale(var(--orb-scale-c, .94)) rotate(var(--orb-rotate-c, -4deg));
    filter: blur(6px) saturate(1.5);
  }

  52% {
    transform: translate3d(var(--orb-x, 0px), var(--orb-y, 0px), 0) scale(var(--orb-scale-b, 1.075)) rotate(var(--orb-rotate-b, 3deg));
    filter: blur(0) saturate(1.72);
  }

  100% {
    transform: translate3d(var(--orb-x, 0px), var(--orb-y, 0px), 0) scale(var(--orb-scale-a, 1)) rotate(var(--orb-rotate-a, 0deg));
    filter: blur(0) saturate(1);
  }
}
@keyframes orb-state-field-pop {
  0% {
    transform: scale(.96);
    filter: blur(5px) brightness(.82) saturate(1.1);
  }

  54% {
    transform: scale(1.045);
    filter: blur(0) brightness(1.28) saturate(1.45);
  }

  100% {
    transform: scale(1);
    filter: blur(0) brightness(1) saturate(1);
  }
}
@keyframes orb-state-ring {
  0% {
    transform: translate(-50%, -50%) rotateX(62deg) rotateZ(0deg) scale(.96);
    opacity: .28;
  }

  45% {
    opacity: .68;
  }

  100% {
    transform: translate(-50%, -50%) rotateX(62deg) rotateZ(360deg) scale(1.04);
    opacity: .34;
  }
}
@keyframes orb-scan-listen {
  0%,
  100% {
    transform: translateY(-88px) scaleX(.62);
    opacity: 0;
  }

  18% {
    opacity: .92;
  }

  50% {
    transform: translateY(0) scaleX(1);
    opacity: .82;
  }

  82% {
    opacity: .92;
  }

  100% {
    transform: translateY(88px) scaleX(.72);
    opacity: 0;
  }
}
@keyframes orb-output-trail {
  0% {
    transform: translateX(-42px) scaleX(.15);
    opacity: 0;
  }

  22% {
    opacity: .95;
  }

  62% {
    transform: translateX(18px) scaleX(1);
    opacity: .78;
  }

  100% {
    transform: translateX(72px) scaleX(.2);
    opacity: 0;
  }
}
@keyframes orb-success-burst {
  0% {
    transform: translate(-50%, -50%) scale(.45);
    opacity: 0;
  }

  24% {
    opacity: .88;
  }

  100% {
    transform: translate(-50%, -50%) scale(1.82);
    opacity: 0;
  }
}
@keyframes orb-retry-notch {
  0%,
  100% {
    transform: translate(-50%, -50%) rotate(-18deg) scaleX(.7);
    opacity: .2;
  }

  42% {
    transform: translate(-50%, -50%) rotate(-18deg) scaleX(1.08);
    opacity: .95;
  }

  58% {
    transform: translate(-50%, -50%) rotate(-15deg) scaleX(.84);
    opacity: .55;
  }
}
@keyframes thinking-orb-sheen {
  from {
    opacity: .46;
    transform: rotate(-12deg) translateY(0);
  }

  to {
    opacity: .82;
    transform: rotate(-5deg) translateY(10%);
  }
}
@keyframes thinking-orb-core {
  0%,
  100% {
    transform: scale(.94);
    opacity: .78;
  }

  52% {
    transform: scale(1.12);
    opacity: 1;
  }
}
@keyframes thinking-orb-glint {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(.7);
    opacity: .18;
    filter: blur(.2px);
  }

  22%,
  46% {
    transform: translate3d(-22px, 18px, 0) scale(1.25);
    opacity: .92;
    filter: blur(0);
  }

  72% {
    transform: translate3d(-46px, 48px, 0) scale(.82);
    opacity: .34;
  }
}
@keyframes thinking-orb-pulse {
  0% {
    opacity: .62;
    transform: scale(.82);
  }

  72%,
  100% {
    opacity: 0;
    transform: scale(1.34);
  }
}
@keyframes thinking-orb-particle {
  from {
    transform: rotate(0deg) translateX(var(--orbit, 142px)) rotate(0deg);
  }

  to {
    transform: rotate(360deg) translateX(var(--orbit, 142px)) rotate(-360deg);
  }
}
@keyframes thinking-orb-spark {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(.72);
    opacity: .34;
  }

  38% {
    transform: translate3d(18px, -24px, 0) scale(1.25);
    opacity: var(--spark-opacity);
  }

  68% {
    transform: translate3d(-14px, 18px, 0) scale(.9);
    opacity: .62;
  }
}
@keyframes thinking-orb-halo {
  from {
    opacity: .42;
    transform: scale(.92) translate3d(-3%, 2%, 0);
  }

  to {
    opacity: .78;
    transform: scale(1.12) translate3d(4%, -3%, 0);
  }
}
@keyframes thinking-orb-ring {
  0%,
  100% {
    opacity: .3;
    transform: scale(.96);
  }

  50% {
    opacity: .62;
    transform: scale(1.08);
  }
}
@keyframes bot-orbit-pulse {
  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(59, 255, 0, .18);
  }

  54% {
    transform: scale(1.06);
    box-shadow: 0 0 0 10px rgba(59, 255, 0, 0);
  }
}
@keyframes gradient-pan {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@keyframes glint-orbit {
  0% {
    transform: translate3d(-8%, 0, 0) rotate(-8deg);
  }
  100% {
    transform: translate3d(10%, 6%, 0) rotate(5deg);
  }
}
@media (max-width: 680px) {
  .orb-stage {
    min-height: 330px;
  }
  .wiwo-thinking-orb {
    --orb-size: clamp(150px, 52vw, 210px);
  }
}
.orb-stage {
  min-height: 330px;
}
.orb-stage::before {
  width: min(70%, 340px);
  filter: blur(30px);
  opacity: .72;
}
.orb-stage::after {
  width: min(54%, 270px);
  opacity: .62;
}
.wiwo-thinking-orb {
  --orb-size: clamp(176px, 21vw, 280px);
  --orb-glow: rgba(66, 66, 255, .3);
  --orb-primary: rgba(66, 66, 255, .5);
  --orb-secondary: rgba(59, 255, 0, .34);
  --orb-alpha: .78;
  border-color: rgba(255, 255, 255, .34);
  background:
    radial-gradient(ellipse at 30% 22%, rgba(255, 255, 255, .66), rgba(255, 255, 255, .14) 30%, transparent 52%),
    radial-gradient(circle at 72% 62%, rgba(59, 255, 0, .14), transparent 36%),
    radial-gradient(circle at 28% 78%, var(--orb-primary), transparent 48%),
    conic-gradient(from 150deg, rgba(59, 255, 0, .32), rgba(255, 255, 255, .3), rgba(66, 66, 255, .48), rgba(59, 255, 0, .28)),
    linear-gradient(145deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .035));
  box-shadow:
    0 28px 72px rgba(66, 66, 255, .15),
    0 0 92px var(--orb-glow),
    0 0 54px rgba(59, 255, 0, .14),
    inset 0 2px 24px rgba(255, 255, 255, .46),
    inset -14px -20px 38px rgba(66, 66, 255, .12),
    inset 14px 18px 42px rgba(255, 255, 255, .2);
  transition: transform var(--motion-medium) var(--ease-expressive), filter var(--motion-medium) var(--ease-expressive), opacity var(--motion-medium) var(--ease-expressive), border-radius var(--motion-medium) var(--ease-expressive), box-shadow var(--motion-medium) var(--ease-expressive);
}
.orb-core {
  inset: 43%;
  opacity: .72;
}
.orb-particle {
  width: 7px;
  height: 7px;
  opacity: calc(var(--spark-opacity) * .9);
}
@media (max-width: 680px) {
  .orb-stage {
    min-height: 280px;
  }
  .wiwo-thinking-orb {
    --orb-size: clamp(158px, 56vw, 230px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .orb-particle,
  .orb-pulse,
  .orb-spark {
    display: none;
  }
  .wiwo-thinking-orb {
    border-radius: 48% 52% 50% 50%;
    box-shadow: 0 22px 64px rgba(41, 41, 41, .28), 0 0 64px rgba(66, 66, 255, .28), inset 0 2px 18px rgba(255, 255, 255, .42);
  }
}
@media (max-width: 480px) {
  .orb-pulse {
    inset: -8%;
  }
  .orb-particle {
    transform-origin: calc(min(var(--orbit, 142px), 120px) * -1) 0;
  }
}
@media (max-width: 360px) {
  .orb-stage {
    overflow: hidden;
  }
  .orb-pulse {
    inset: -10%;
  }
  .orb-particle {
    transform-origin: calc(min(var(--orbit, 142px), 112px) * -1) 0;
  }
}
.orb-stage {
  isolation: isolate;
}
.orb-stage::before {
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .2), transparent 22%),
    radial-gradient(circle at 40% 58%, rgba(66, 66, 255, .3), transparent 44%),
    radial-gradient(circle at 58% 44%, rgba(59, 255, 0, .24), transparent 46%);
  filter: blur(34px) saturate(1.4);
  opacity: .9;
}
.orb-stage::after {
  border: 0;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, .13), transparent 62%),
    conic-gradient(from 80deg, rgba(59, 255, 0, .2), rgba(66, 66, 255, .18), rgba(255, 255, 255, .12), rgba(59, 255, 0, .2));
  filter: blur(20px);
  opacity: .64;
  animation-duration: 9200ms;
}
.wiwo-thinking-orb {
  --orb-size: clamp(186px, 22vw, 294px);
  --orb-lumen-a: rgba(66, 66, 255, .72);
  --orb-lumen-b: rgba(59, 255, 0, .58);
  --orb-lumen-c: rgba(255, 255, 255, .64);
  --orb-aurora-opacity: .76;
  --orb-core-glow: .4;
  --orb-glint-alpha: .62;
  border: 0;
  overflow: visible;
  background:
    radial-gradient(ellipse at 34% 26%, rgba(255, 255, 255, .36), transparent 30%),
    radial-gradient(circle at 67% 42%, var(--orb-lumen-a), transparent 34%),
    radial-gradient(circle at 36% 74%, var(--orb-lumen-b), transparent 38%),
    radial-gradient(circle at 50% 52%, rgba(255, 255, 255, .08), transparent 48%),
    conic-gradient(from 128deg, transparent 0 12%, var(--orb-lumen-b), var(--orb-lumen-c), var(--orb-lumen-a), transparent 78% 100%);
  background-size: 130% 130%, 142% 142%, 150% 150%, 100% 100%, 220% 220%;
  opacity: .96;
  filter: blur(.08px) saturate(1.58) brightness(1.03);
  box-shadow:
    0 0 120px rgba(66, 66, 255, .32),
    0 0 94px rgba(59, 255, 0, .2),
    0 26px 88px rgba(0, 0, 0, .22),
    inset 0 0 36px rgba(255, 255, 255, .16),
    inset 0 0 82px rgba(66, 66, 255, .12);
  -webkit-backdrop-filter: blur(32px) saturate(2.1);
  backdrop-filter: blur(32px) saturate(2.1);
  animation:
    thinking-orb-breathe var(--orb-speed) var(--ease-expressive) infinite,
    orb-luminous-field var(--orb-flow-speed) linear infinite;
}
.wiwo-thinking-orb::before {
  inset: -8%;
  background:
    conic-gradient(from 32deg, transparent 0 10%, var(--orb-lumen-b), transparent 34%, var(--orb-lumen-a), var(--orb-lumen-c), transparent 84% 100%),
    radial-gradient(circle at 36% 28%, rgba(255, 255, 255, .28), transparent 26%);
  filter: blur(18px) saturate(1.4);
  opacity: var(--orb-aurora-opacity);
  mix-blend-mode: screen;
  animation: orb-aurora-spin calc(var(--orb-flow-speed) * 1.08) linear infinite;
}
.wiwo-thinking-orb::after {
  inset: 12% 7% auto 13%;
  height: 42%;
  background:
    radial-gradient(ellipse at 32% 28%, rgba(255, 255, 255, .6), rgba(255, 255, 255, .16) 38%, transparent 74%);
  filter: blur(13px);
  opacity: .46;
  mix-blend-mode: screen;
  animation: orb-soft-highlight 5200ms var(--ease-expressive) infinite alternate;
}
.orb-aurora {
  position: absolute;
  inset: 8%;
  z-index: 3;
  border-radius: inherit;
  pointer-events: none;
  mix-blend-mode: screen;
  filter: blur(18px) saturate(1.42);
  opacity: var(--orb-aurora-opacity);
  transform-origin: 50% 50%;
}
.orb-aurora-one {
  background:
    conic-gradient(from 210deg, transparent 0 18%, rgba(59, 255, 0, .52), transparent 42%, rgba(66, 66, 255, .48), transparent 78% 100%);
  animation: orb-aurora-one 4800ms var(--ease-expressive) infinite;
}
.orb-aurora-two {
  inset: 14%;
  background:
    radial-gradient(ellipse at 70% 38%, rgba(255, 255, 255, .4), transparent 34%),
    conic-gradient(from 24deg, transparent, rgba(66, 66, 255, .54), transparent 44%, rgba(59, 255, 0, .34), transparent);
  animation: orb-aurora-two 6200ms linear infinite reverse;
  opacity: calc(var(--orb-aurora-opacity) * .82);
}
.orb-aurora-three {
  inset: 20%;
  background:
    radial-gradient(circle at 42% 58%, rgba(255, 255, 255, .42), transparent 28%),
    radial-gradient(circle at 62% 52%, rgba(59, 255, 0, .28), transparent 34%),
    radial-gradient(circle at 48% 36%, rgba(66, 66, 255, .38), transparent 38%);
  animation: orb-aurora-three 3600ms var(--ease-expressive) infinite alternate;
  opacity: calc(var(--orb-aurora-opacity) * .74);
}
.orb-liquid-veil {
  inset: -3%;
  background:
    conic-gradient(from 200deg, transparent 0 14%, rgba(255, 255, 255, .18), var(--orb-lumen-a), transparent 52%, var(--orb-lumen-b), transparent 86%),
    radial-gradient(ellipse at 28% 22%, rgba(255, 255, 255, .2), transparent 36%);
  filter: blur(20px) saturate(1.45);
  opacity: calc(var(--orb-liquid-opacity) * .72);
}
.orb-light-field {
  inset: -8%;
  background:
    radial-gradient(ellipse at 24% 18%, rgba(255, 255, 255, .5), rgba(255, 255, 255, .1) 28%, transparent 54%),
    radial-gradient(circle at 70% 48%, rgba(66, 66, 255, .36), transparent 28%),
    radial-gradient(circle at 38% 78%, rgba(59, 255, 0, .26), transparent 32%);
  filter: blur(10px);
  opacity: calc(var(--orb-light-opacity) * .74);
}
.orb-caustic {
  inset: -4%;
  background:
    conic-gradient(from 18deg, transparent 0 18%, rgba(255, 255, 255, .2), transparent 42%, rgba(66, 66, 255, .22), transparent 72% 100%);
  filter: blur(18px);
  opacity: calc(var(--orb-caustic-opacity) * .66);
}
.orb-rim {
  inset: -3%;
  background:
    conic-gradient(from 0deg, transparent 0 12%, rgba(255, 255, 255, .38), rgba(59, 255, 0, .28), transparent 52%, rgba(66, 66, 255, .34), transparent 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 16px), #000 calc(100% - 5px), transparent 100%);
  mask: radial-gradient(farthest-side, transparent calc(100% - 16px), #000 calc(100% - 5px), transparent 100%);
  filter: blur(4px);
  opacity: .46;
}
.orb-core {
  inset: 22%;
  z-index: 5;
  background:
    radial-gradient(circle at 48% 48%, rgba(255, 255, 255, .26), rgba(255, 255, 255, .1) 28%, transparent 64%);
  box-shadow: none;
  filter: blur(22px) saturate(1.35);
  opacity: var(--orb-core-glow);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  animation: orb-glass-bloom 2400ms var(--ease-expressive) infinite;
}
.orb-glint {
  width: clamp(34px, 5vw, 62px);
  height: clamp(18px, 3vw, 34px);
  right: 18%;
  top: 20%;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, .76), rgba(255, 255, 255, .16) 42%, transparent 76%);
  box-shadow: none;
  filter: blur(9px);
  opacity: var(--orb-glint-alpha);
  transform: rotate(-18deg);
  animation: orb-lumen-drift 4200ms var(--ease-expressive) infinite;
}
.orb-pulse {
  inset: -24%;
  border: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .14), transparent 38%),
    conic-gradient(from 0deg, rgba(59, 255, 0, .22), rgba(66, 66, 255, .18), rgba(255, 255, 255, .12), rgba(59, 255, 0, .22));
  filter: blur(16px);
  opacity: .5;
  animation: orb-soft-pulse 2600ms var(--ease-expressive) infinite;
}
.orb-particle,
.orb-spark {
  width: clamp(16px, 2vw, 24px);
  height: clamp(16px, 2vw, 24px);
  border-radius: 50%;
  background:
    radial-gradient(circle, currentColor 0 8%, color-mix(in srgb, currentColor 42%, transparent) 24%, transparent 70%);
  box-shadow: none;
  filter: blur(5px) saturate(1.3);
  opacity: calc(var(--spark-opacity) * .72);
}
.orb-particle:nth-of-type(2),
.orb-particle:nth-of-type(3) {
  width: clamp(14px, 1.7vw, 21px);
  height: clamp(14px, 1.7vw, 21px);
}
.orb-particle {
  background:
    radial-gradient(circle, rgba(59, 255, 0, .76) 0 8%, rgba(59, 255, 0, .24) 28%, transparent 72%);
}
.orb-particle:nth-of-type(2) {
  background:
    radial-gradient(circle, rgba(66, 66, 255, .78) 0 8%, rgba(66, 66, 255, .26) 30%, transparent 72%);
}
.orb-particle:nth-of-type(3) {
  background:
    radial-gradient(circle, rgba(255, 255, 255, .7) 0 8%, rgba(255, 255, 255, .24) 30%, transparent 74%);
}
.orb-scan-line {
  height: 14px;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(59, 255, 0, .72), rgba(255, 255, 255, .32) 38%, transparent 76%);
  filter: blur(7px);
  box-shadow: none;
}
.orb-output-trail {
  height: 24px;
  background: linear-gradient(90deg, rgba(59, 255, 0, .62), rgba(255, 255, 255, .28), rgba(66, 66, 255, .42), transparent);
  filter: blur(12px);
}
.orb-success-burst {
  border: 0;
  background:
    radial-gradient(circle, rgba(59, 255, 0, .42), rgba(255, 255, 255, .18) 38%, transparent 70%);
  filter: blur(14px);
  box-shadow: none;
}
.orb-retry-notch {
  height: 18px;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(141, 124, 255, .48), rgba(255, 255, 255, .18) 44%, transparent 78%);
  filter: blur(8px);
}
.orb-host[data-thinking-state="idle"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .36);
  --orb-lumen-b: rgba(59, 255, 0, .26);
  --orb-lumen-c: rgba(255, 255, 255, .36);
  --orb-aurora-opacity: .38;
  --orb-core-glow: .2;
  --orb-glint-alpha: .34;
  --orb-speed: 7600ms;
  --orb-flow-speed: 9800ms;
  --orb-scale-a: .92;
  --orb-scale-b: .955;
  --orb-scale-c: .9;
}
.orb-host[data-thinking-state="listening"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .5);
  --orb-lumen-b: rgba(59, 255, 0, .72);
  --orb-lumen-c: rgba(255, 255, 255, .52);
  --orb-aurora-opacity: .72;
  --orb-core-glow: .32;
  --orb-glint-alpha: .52;
  --orb-speed: 3300ms;
  --orb-flow-speed: 5200ms;
  --orb-scale-a: .96;
  --orb-scale-b: 1.04;
  --orb-scale-c: .95;
}
.orb-host[data-thinking-state="thinking"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .78);
  --orb-lumen-b: rgba(59, 255, 0, .58);
  --orb-lumen-c: rgba(255, 255, 255, .66);
  --orb-aurora-opacity: .86;
  --orb-core-glow: .46;
  --orb-glint-alpha: .68;
  --orb-speed: 2600ms;
  --orb-flow-speed: 3900ms;
  --orb-scale-a: 1;
  --orb-scale-b: 1.09;
  --orb-scale-c: .98;
}
.orb-host[data-thinking-state="generating"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .86);
  --orb-lumen-b: rgba(59, 255, 0, .86);
  --orb-lumen-c: rgba(255, 255, 255, .72);
  --orb-aurora-opacity: .98;
  --orb-core-glow: .52;
  --orb-glint-alpha: .82;
  --orb-speed: 1850ms;
  --orb-flow-speed: 2400ms;
  --orb-x: -12px;
  --orb-scale-a: 1.04;
  --orb-scale-b: 1.18;
  --orb-scale-c: 1.02;
  filter: blur(.08px) saturate(1.85) brightness(1.08);
}
.orb-host[data-thinking-state="success"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(59, 255, 0, .82);
  --orb-lumen-b: rgba(255, 255, 255, .68);
  --orb-lumen-c: rgba(66, 66, 255, .34);
  --orb-aurora-opacity: .82;
  --orb-core-glow: .38;
  --orb-glint-alpha: .72;
  --orb-speed: 3000ms;
  --orb-flow-speed: 4200ms;
}
.orb-host[data-thinking-state="retry"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(141, 124, 255, .44);
  --orb-lumen-b: rgba(255, 255, 255, .28);
  --orb-lumen-c: rgba(66, 66, 255, .34);
  --orb-aurora-opacity: .36;
  --orb-core-glow: .18;
  --orb-glint-alpha: .28;
  --orb-speed: 1500ms;
  --orb-flow-speed: 2200ms;
  --orb-scale-a: .88;
  --orb-scale-b: .96;
  --orb-scale-c: .84;
  filter: blur(.5px) saturate(1.1) brightness(.88);
}
.orb-host[data-thinking-state="generating"] .orb-aurora-one,
.orb-host[data-thinking-state="generating"] .orb-aurora-two {
  animation-duration: 1800ms;
}
.orb-host[data-thinking-state="success"] .orb-aurora-three {
  animation-duration: 1200ms;
}
.orb-host[data-thinking-state="retry"] .orb-aurora,
.orb-host[data-thinking-state="idle"] .orb-aurora {
  filter: blur(24px) saturate(1.1);
}
@keyframes orb-luminous-field {
  0% {
    background-position: 0% 48%, 74% 42%, 28% 78%, 50% 50%, 0% 50%;
  }

  50% {
    background-position: 16% 38%, 58% 54%, 42% 66%, 50% 50%, 100% 50%;
  }

  100% {
    background-position: 0% 48%, 74% 42%, 28% 78%, 50% 50%, 0% 50%;
  }
}
@keyframes orb-aurora-spin {
  from {
    transform: rotate(0deg) scale(.96);
  }

  to {
    transform: rotate(360deg) scale(1.04);
  }
}
@keyframes orb-aurora-one {
  0%,
  100% {
    transform: rotate(0deg) scale(.95) skew(-4deg);
    opacity: calc(var(--orb-aurora-opacity) * .7);
  }

  46% {
    transform: rotate(142deg) scale(1.16) skew(6deg);
    opacity: var(--orb-aurora-opacity);
  }
}
@keyframes orb-aurora-two {
  from {
    transform: rotate(0deg) scale(1);
  }

  to {
    transform: rotate(-360deg) scale(1.08);
  }
}
@keyframes orb-aurora-three {
  0% {
    transform: translate3d(-4%, 3%, 0) scale(.94);
    opacity: calc(var(--orb-aurora-opacity) * .58);
  }

  100% {
    transform: translate3d(5%, -4%, 0) scale(1.14);
    opacity: calc(var(--orb-aurora-opacity) * .86);
  }
}
@keyframes orb-soft-highlight {
  from {
    transform: rotate(-16deg) translate3d(-6%, -2%, 0) scale(.96);
    opacity: .28;
  }

  to {
    transform: rotate(-4deg) translate3d(8%, 10%, 0) scale(1.08);
    opacity: .6;
  }
}
@keyframes orb-glass-bloom {
  0%,
  100% {
    transform: scale(.9);
    opacity: calc(var(--orb-core-glow) * .72);
  }

  52% {
    transform: scale(1.22);
    opacity: var(--orb-core-glow);
  }
}
@keyframes orb-lumen-drift {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-18deg) scale(.78);
    opacity: calc(var(--orb-glint-alpha) * .54);
  }

  42% {
    transform: translate3d(-22px, 18px, 0) rotate(-8deg) scale(1.14);
    opacity: var(--orb-glint-alpha);
  }

  76% {
    transform: translate3d(-44px, 42px, 0) rotate(6deg) scale(.9);
    opacity: calc(var(--orb-glint-alpha) * .62);
  }
}
@keyframes orb-soft-pulse {
  0% {
    opacity: .4;
    transform: scale(.74);
  }

  72%,
  100% {
    opacity: 0;
    transform: scale(1.42);
  }
}
/* Thinking orb density pass: the visible form is ribbons of light, not a filled sphere. */
.wiwo-thinking-orb {
  opacity: .86;
  background:
    radial-gradient(ellipse at 36% 26%, rgba(255, 255, 255, .34) 0 7%, transparent 28%),
    radial-gradient(ellipse at 68% 42%, color-mix(in srgb, var(--orb-lumen-a) 58%, transparent) 0 10%, transparent 36%),
    radial-gradient(ellipse at 34% 72%, color-mix(in srgb, var(--orb-lumen-b) 58%, transparent) 0 11%, transparent 38%),
    conic-gradient(from 124deg, transparent 0 14%, color-mix(in srgb, var(--orb-lumen-b) 56%, transparent) 20%, transparent 34%, color-mix(in srgb, var(--orb-lumen-c) 42%, transparent) 46%, transparent 58%, color-mix(in srgb, var(--orb-lumen-a) 58%, transparent) 70%, transparent 86% 100%);
  background-size: 148% 148%, 160% 160%, 168% 168%, 230% 230%;
  background-blend-mode: screen;
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .34) 0 22%, rgba(0, 0, 0, .82) 42%, rgba(0, 0, 0, .46) 60%, transparent 82%);
  mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .34) 0 22%, rgba(0, 0, 0, .82) 42%, rgba(0, 0, 0, .46) 60%, transparent 82%);
  box-shadow:
    0 0 150px rgba(66, 66, 255, .26),
    0 0 124px rgba(59, 255, 0, .18),
    0 0 64px rgba(255, 255, 255, .1);
}
.wiwo-thinking-orb::before {
  inset: -16%;
  background:
    conic-gradient(from 24deg, transparent 0 9%, color-mix(in srgb, var(--orb-lumen-b) 72%, transparent) 16%, transparent 30%, color-mix(in srgb, var(--orb-lumen-a) 68%, transparent) 48%, transparent 62%, color-mix(in srgb, var(--orb-lumen-c) 42%, transparent) 74%, transparent 100%),
    radial-gradient(ellipse at 44% 46%, rgba(255, 255, 255, .18), transparent 38%);
  filter: blur(24px) saturate(1.65);
  opacity: calc(var(--orb-aurora-opacity) * .96);
}
.wiwo-thinking-orb::after {
  opacity: .28;
  filter: blur(18px);
}
.orb-aurora {
  filter: blur(26px) saturate(1.75);
}
.orb-aurora-one {
  background:
    conic-gradient(from 210deg, transparent 0 16%, color-mix(in srgb, var(--orb-lumen-b) 76%, transparent), transparent 38%, color-mix(in srgb, var(--orb-lumen-a) 70%, transparent), transparent 74% 100%);
}
.orb-aurora-two {
  background:
    radial-gradient(ellipse at 72% 36%, rgba(255, 255, 255, .24), transparent 32%),
    conic-gradient(from 24deg, transparent 0 12%, color-mix(in srgb, var(--orb-lumen-a) 74%, transparent), transparent 44%, color-mix(in srgb, var(--orb-lumen-b) 46%, transparent), transparent 100%);
}
.orb-aurora-three {
  background:
    radial-gradient(ellipse at 42% 58%, rgba(255, 255, 255, .26), transparent 26%),
    radial-gradient(ellipse at 62% 52%, color-mix(in srgb, var(--orb-lumen-b) 38%, transparent), transparent 34%),
    radial-gradient(ellipse at 48% 36%, color-mix(in srgb, var(--orb-lumen-a) 44%, transparent), transparent 38%);
}
.orb-core {
  inset: 14%;
  background:
    radial-gradient(ellipse at 48% 50%, rgba(255, 255, 255, .14), transparent 42%),
    radial-gradient(ellipse at 54% 48%, color-mix(in srgb, var(--orb-lumen-a) 16%, transparent), transparent 58%);
  filter: blur(32px) saturate(1.5);
  opacity: calc(var(--orb-core-glow) * .58);
}
.orb-liquid-veil,
.orb-caustic,
.orb-light-field {
  opacity: calc(var(--orb-liquid-opacity) * .44);
}
.orb-host[data-thinking-state="thinking"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .62);
  --orb-lumen-b: rgba(59, 255, 0, .5);
  --orb-lumen-c: rgba(255, 255, 255, .52);
}
.orb-host[data-thinking-state="generating"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .68);
  --orb-lumen-b: rgba(59, 255, 0, .72);
  --orb-lumen-c: rgba(255, 255, 255, .58);
}
.orb-host[data-thinking-state="success"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(59, 255, 0, .66);
  --orb-lumen-b: rgba(255, 255, 255, .56);
  --orb-lumen-c: rgba(66, 66, 255, .28);
}
.wiwo-thinking-orb {
  opacity: .94;
  background:
    radial-gradient(ellipse at 35% 25%, rgba(255, 255, 255, .28) 0 5%, transparent 22%),
    radial-gradient(ellipse at 70% 43%, color-mix(in srgb, var(--orb-lumen-a) 48%, transparent) 0 7%, transparent 30%),
    radial-gradient(ellipse at 32% 72%, color-mix(in srgb, var(--orb-lumen-b) 48%, transparent) 0 8%, transparent 32%),
    conic-gradient(from 118deg, transparent 0 13%, color-mix(in srgb, var(--orb-lumen-b) 72%, transparent) 21%, transparent 32%, color-mix(in srgb, var(--orb-lumen-c) 42%, transparent) 45%, transparent 56%, color-mix(in srgb, var(--orb-lumen-a) 72%, transparent) 69%, transparent 84% 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 26%, rgba(0, 0, 0, .76) 40%, rgba(0, 0, 0, .48) 60%, transparent 82%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 26%, rgba(0, 0, 0, .76) 40%, rgba(0, 0, 0, .48) 60%, transparent 82%);
  box-shadow:
    0 0 176px rgba(66, 66, 255, .34),
    0 0 134px rgba(59, 255, 0, .22),
    0 0 86px rgba(255, 255, 255, .1);
}
.orb-aurora {
  inset: 2%;
  opacity: calc(var(--orb-aurora-opacity) * 1.14);
  filter: blur(20px) saturate(1.95);
}
.orb-aurora-two {
  inset: 6%;
}
.orb-aurora-three {
  inset: 10%;
}
.orb-core {
  inset: 18%;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, .08), transparent 48%),
    radial-gradient(ellipse at 54% 48%, color-mix(in srgb, var(--orb-lumen-a) 10%, transparent), transparent 62%);
  opacity: calc(var(--orb-core-glow) * .18);
  filter: blur(42px) saturate(1.6);
  animation: none;
}
.orb-stage {
  min-height: clamp(430px, 55vw, 560px);
  overflow: hidden;
}
.orb-stage::before {
  width: min(88%, 560px);
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 251, .18), transparent 22%),
    radial-gradient(circle at 48% 52%, rgba(66, 66, 255, .34), transparent 52%),
    radial-gradient(circle at 34% 62%, rgba(59, 255, 0, .2), transparent 58%);
  filter: blur(34px) saturate(1.6);
  opacity: .9;
}
.orb-stage::after {
  width: min(76%, 460px);
  border: 0;
  background:
    conic-gradient(from 90deg, transparent, rgba(59, 255, 0, .16), transparent 32%, rgba(66, 66, 255, .18), transparent 70%),
    radial-gradient(circle, transparent 52%, rgba(255, 255, 251, .12) 66%, transparent 78%);
  filter: blur(10px);
  opacity: .68;
  box-shadow: none;
}
.wiwo-thinking-orb {
  --orb-size: clamp(230px, 28vw, 365px);
  --orb-lumen-a: rgba(66, 66, 255, .7);
  --orb-lumen-b: rgba(59, 255, 0, .58);
  --orb-lumen-c: rgba(255, 255, 251, .58);
  --orb-aurora-opacity: .88;
  --orb-core-glow: .34;
  --orb-glint-alpha: .72;
  border: 0;
  opacity: .98;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(255, 255, 251, .1) 0 11%, transparent 31%),
    conic-gradient(from 156deg, transparent 0 10%, color-mix(in srgb, var(--orb-lumen-b) 78%, transparent) 19%, transparent 33%, color-mix(in srgb, var(--orb-lumen-c) 42%, transparent) 46%, transparent 58%, color-mix(in srgb, var(--orb-lumen-a) 82%, transparent) 72%, transparent 88% 100%),
    radial-gradient(ellipse at 67% 42%, color-mix(in srgb, var(--orb-lumen-a) 36%, transparent), transparent 38%),
    radial-gradient(ellipse at 35% 68%, color-mix(in srgb, var(--orb-lumen-b) 32%, transparent), transparent 42%);
  background-size: 128% 128%, 260% 260%, 160% 160%, 150% 150%;
  background-position: 52% 45%, 0% 50%, 65% 42%, 36% 68%;
  background-blend-mode: screen;
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 24%, rgba(0, 0, 0, .28) 33%, rgba(0, 0, 0, .86) 48%, rgba(0, 0, 0, .44) 65%, transparent 84%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 24%, rgba(0, 0, 0, .28) 33%, rgba(0, 0, 0, .86) 48%, rgba(0, 0, 0, .44) 65%, transparent 84%);
  box-shadow:
    0 0 190px rgba(66, 66, 255, .32),
    0 0 154px rgba(59, 255, 0, .24),
    0 0 86px rgba(255, 255, 251, .12);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  mix-blend-mode: screen;
  will-change: transform, filter, background-position, border-radius;
  animation:
    thinking-orb-breathe var(--orb-speed) var(--ease-expressive) infinite,
    orb-lumen-swim var(--orb-flow-speed) linear infinite;
}
.wiwo-thinking-orb::before {
  inset: -24%;
  background:
    conic-gradient(from 18deg, transparent 0 8%, color-mix(in srgb, var(--orb-lumen-b) 84%, transparent) 14%, transparent 26%, color-mix(in srgb, var(--orb-lumen-a) 78%, transparent) 44%, transparent 58%, color-mix(in srgb, var(--orb-lumen-c) 56%, transparent) 74%, transparent 100%),
    radial-gradient(ellipse at 46% 46%, rgba(255, 255, 251, .16), transparent 42%);
  filter: blur(28px) saturate(1.9);
  opacity: calc(var(--orb-aurora-opacity) * .96);
  mix-blend-mode: screen;
  animation: orb-membrane-drift calc(var(--orb-flow-speed) * 1.35) var(--ease-expressive) infinite;
}
.wiwo-thinking-orb::after {
  inset: 4% 14% auto 12%;
  height: 34%;
  background:
    radial-gradient(ellipse at 34% 28%, rgba(255, 255, 251, .58), rgba(255, 255, 251, .16) 34%, transparent 68%),
    radial-gradient(ellipse at 74% 54%, rgba(255, 255, 251, .18), transparent 58%);
  filter: blur(16px);
  opacity: calc(var(--orb-glint-alpha) * .58);
  transform: rotate(-14deg);
}
.orb-liquid-veil,
.orb-caustic,
.orb-light-field {
  inset: -8%;
  mix-blend-mode: screen;
  pointer-events: none;
}
.orb-liquid-veil {
  background:
    conic-gradient(from 230deg, transparent 0 18%, color-mix(in srgb, var(--orb-lumen-a) 54%, transparent), transparent 42%, color-mix(in srgb, var(--orb-lumen-b) 48%, transparent), transparent 78% 100%);
  filter: blur(22px) saturate(1.8);
  opacity: calc(var(--orb-liquid-opacity) * .5);
  animation: orb-ribbon-swim 6800ms var(--ease-expressive) infinite;
}
.orb-light-field {
  background:
    radial-gradient(ellipse at 28% 21%, rgba(255, 255, 251, .34), transparent 32%),
    radial-gradient(ellipse at 74% 66%, color-mix(in srgb, var(--orb-lumen-b) 24%, transparent), transparent 38%),
    radial-gradient(ellipse at 62% 38%, color-mix(in srgb, var(--orb-lumen-a) 28%, transparent), transparent 36%);
  filter: blur(18px);
  opacity: calc(var(--orb-light-opacity) * .48);
  animation: orb-light-drift 4800ms var(--ease-expressive) infinite alternate;
}
.orb-caustic {
  background:
    repeating-conic-gradient(from 24deg, transparent 0deg 18deg, rgba(255, 255, 251, .2) 22deg 26deg, transparent 30deg 44deg);
  filter: blur(18px);
  opacity: calc(var(--orb-caustic-opacity) * .32);
  animation: orb-caustic-swim 8200ms linear infinite;
}
.orb-aurora {
  inset: -8%;
  border-radius: inherit;
  mix-blend-mode: screen;
  filter: blur(30px) saturate(2.05);
  opacity: calc(var(--orb-aurora-opacity) * .95);
}
.orb-aurora-one {
  background:
    conic-gradient(from 205deg, transparent 0 12%, color-mix(in srgb, var(--orb-lumen-b) 88%, transparent) 20%, transparent 36%, color-mix(in srgb, var(--orb-lumen-a) 78%, transparent) 58%, transparent 82% 100%);
  animation: orb-aurora-lap 5600ms linear infinite;
}
.orb-aurora-two {
  inset: 2%;
  background:
    conic-gradient(from 20deg, transparent 0 14%, color-mix(in srgb, var(--orb-lumen-a) 72%, transparent) 30%, transparent 48%, color-mix(in srgb, var(--orb-lumen-c) 52%, transparent) 64%, transparent 100%);
  animation: orb-aurora-lap-reverse 7400ms linear infinite;
}
.orb-aurora-three {
  inset: 12%;
  background:
    radial-gradient(ellipse at 42% 55%, rgba(255, 255, 251, .24), transparent 38%),
    radial-gradient(ellipse at 68% 45%, color-mix(in srgb, var(--orb-lumen-b) 36%, transparent), transparent 42%),
    radial-gradient(ellipse at 50% 38%, color-mix(in srgb, var(--orb-lumen-a) 38%, transparent), transparent 46%);
  animation: orb-inner-lumen 3600ms var(--ease-expressive) infinite alternate;
}
.orb-rim {
  inset: -3%;
  background:
    conic-gradient(from 0deg, transparent 0 16%, color-mix(in srgb, var(--orb-lumen-c) 58%, transparent), transparent 36%, color-mix(in srgb, var(--orb-lumen-a) 56%, transparent), transparent 62%, color-mix(in srgb, var(--orb-lumen-b) 62%, transparent), transparent 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 22px), #000 calc(100% - 10px), transparent calc(100% - 2px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 22px), #000 calc(100% - 10px), transparent calc(100% - 2px));
  filter: blur(6px);
  opacity: .78;
}
.orb-core {
  inset: 20%;
  background:
    conic-gradient(from 80deg, transparent 0 18%, rgba(255, 255, 251, .2) 26%, transparent 42%, color-mix(in srgb, var(--orb-lumen-a) 24%, transparent) 60%, transparent 100%),
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 251, .08), transparent 62%);
  filter: blur(38px) saturate(1.8);
  opacity: calc(var(--orb-core-glow) * .42);
  box-shadow: none;
  animation: orb-soft-center 3300ms var(--ease-expressive) infinite;
}
.orb-glint {
  width: clamp(42px, 6vw, 72px);
  height: clamp(20px, 3.2vw, 38px);
  right: 16%;
  top: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255, 255, 251, .72), rgba(255, 255, 251, .18) 42%, transparent 74%);
  filter: blur(12px);
  opacity: calc(var(--orb-glint-alpha) * .74);
  animation: orb-glint-float 3400ms var(--ease-expressive) infinite;
}
.orb-pulse {
  inset: -34%;
  border: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 251, .12), transparent 28%),
    conic-gradient(from 0deg, color-mix(in srgb, var(--orb-lumen-b) 28%, transparent), color-mix(in srgb, var(--orb-lumen-a) 24%, transparent), transparent 54%, color-mix(in srgb, var(--orb-lumen-c) 16%, transparent));
  filter: blur(26px);
  opacity: .46;
  animation: orb-vapor-pulse 3000ms var(--ease-expressive) infinite;
}
.orb-particle,
.orb-spark {
  background: radial-gradient(circle, currentColor 0 5%, color-mix(in srgb, currentColor 32%, transparent) 24%, transparent 72%);
  filter: blur(6px) saturate(1.55);
  opacity: calc(var(--spark-opacity) * .82);
  box-shadow: none;
}
.orb-host[data-thinking-state="idle"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .36);
  --orb-lumen-b: rgba(59, 255, 0, .28);
  --orb-lumen-c: rgba(255, 255, 251, .34);
  --orb-aurora-opacity: .34;
  --orb-core-glow: .16;
  --orb-glint-alpha: .32;
  --orb-speed: 7600ms;
  --orb-flow-speed: 10800ms;
  --orb-scale-a: .9;
  --orb-scale-b: .96;
  --orb-scale-c: .88;
  filter: saturate(1.18) brightness(.94);
}
.orb-host[data-thinking-state="listening"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .46);
  --orb-lumen-b: rgba(59, 255, 0, .86);
  --orb-lumen-c: rgba(255, 255, 251, .54);
  --orb-aurora-opacity: .78;
  --orb-core-glow: .3;
  --orb-glint-alpha: .56;
  --orb-speed: 3000ms;
  --orb-flow-speed: 4700ms;
  --orb-scale-a: .95;
  --orb-scale-b: 1.04;
  --orb-scale-c: .94;
  filter: saturate(1.55) brightness(1.02);
}
.orb-host[data-thinking-state="listening"] .orb-scan-line {
  left: 48%;
  right: auto;
  top: 12%;
  bottom: 12%;
  width: 24px;
  height: auto;
  background: radial-gradient(ellipse at 50% 50%, rgba(59, 255, 0, .84), rgba(255, 255, 251, .28) 38%, transparent 78%);
  filter: blur(11px);
  animation: orb-listening-column 1500ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="thinking"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .82);
  --orb-lumen-b: rgba(59, 255, 0, .58);
  --orb-lumen-c: rgba(255, 255, 251, .66);
  --orb-aurora-opacity: .96;
  --orb-core-glow: .38;
  --orb-glint-alpha: .78;
  --orb-speed: 2400ms;
  --orb-flow-speed: 3400ms;
  filter: saturate(1.75) brightness(1.06);
}
.orb-host[data-thinking-state="generating"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(66, 66, 255, .82);
  --orb-lumen-b: rgba(59, 255, 0, .95);
  --orb-lumen-c: rgba(255, 255, 251, .68);
  --orb-aurora-opacity: 1;
  --orb-core-glow: .48;
  --orb-glint-alpha: .88;
  --orb-speed: 1700ms;
  --orb-flow-speed: 2100ms;
  --orb-x: -14px;
  --orb-scale-a: 1.04;
  --orb-scale-b: 1.18;
  --orb-scale-c: 1.02;
  filter: saturate(1.95) brightness(1.1);
}
.orb-host[data-thinking-state="generating"] .orb-output-trail {
  height: 34px;
  opacity: .96;
  background: linear-gradient(90deg, rgba(59, 255, 0, .68), rgba(255, 255, 251, .32), rgba(66, 66, 255, .52), transparent);
  filter: blur(16px);
}
.orb-host[data-thinking-state="success"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(59, 255, 0, .9);
  --orb-lumen-b: rgba(255, 255, 251, .68);
  --orb-lumen-c: rgba(66, 66, 255, .3);
  --orb-aurora-opacity: .88;
  --orb-core-glow: .32;
  --orb-glint-alpha: .82;
  --orb-speed: 2800ms;
  --orb-flow-speed: 4200ms;
  filter: saturate(1.7) brightness(1.1);
}
.orb-host[data-thinking-state="success"] .orb-success-burst {
  width: min(70%, 380px);
  background: radial-gradient(circle, rgba(59, 255, 0, .5), rgba(255, 255, 251, .18) 36%, transparent 72%);
  filter: blur(18px);
}
.orb-host[data-thinking-state="retry"] .wiwo-thinking-orb {
  --orb-lumen-a: rgba(116, 108, 255, .52);
  --orb-lumen-b: rgba(255, 255, 251, .24);
  --orb-lumen-c: rgba(66, 66, 255, .32);
  --orb-aurora-opacity: .42;
  --orb-core-glow: .14;
  --orb-glint-alpha: .24;
  --orb-speed: 1350ms;
  --orb-flow-speed: 1900ms;
  --orb-scale-a: .86;
  --orb-scale-b: .94;
  --orb-scale-c: .82;
  filter: saturate(1.05) brightness(.82);
}
.orb-host[data-thinking-state="retry"] .orb-retry-notch {
  height: 28px;
  background: radial-gradient(ellipse at 50% 50%, rgba(116, 108, 255, .58), rgba(255, 255, 251, .18) 42%, transparent 78%);
  filter: blur(12px);
}
@keyframes orb-lumen-swim {
  0% {
    background-position: 52% 45%, 0% 50%, 65% 42%, 36% 68%;
  }

  50% {
    background-position: 44% 54%, 100% 50%, 55% 52%, 46% 58%;
  }

  100% {
    background-position: 52% 45%, 200% 50%, 65% 42%, 36% 68%;
  }
}
@keyframes orb-membrane-drift {
  0%,
  100% {
    transform: rotate(0deg) scale(.94) skew(-3deg);
  }

  48% {
    transform: rotate(150deg) scale(1.13) skew(5deg);
  }
}
@keyframes orb-ribbon-swim {
  0%,
  100% {
    transform: rotate(0deg) scale(.95);
    opacity: calc(var(--orb-liquid-opacity) * .42);
  }

  52% {
    transform: rotate(-118deg) scale(1.12);
    opacity: calc(var(--orb-liquid-opacity) * .66);
  }
}
@keyframes orb-light-drift {
  from {
    transform: translate3d(-3%, -2%, 0) scale(.95);
  }

  to {
    transform: translate3d(5%, 4%, 0) scale(1.08);
  }
}
@keyframes orb-caustic-swim {
  from {
    transform: rotate(0deg) scale(1);
  }

  to {
    transform: rotate(360deg) scale(1.08);
  }
}
@keyframes orb-aurora-lap {
  from {
    transform: rotate(0deg) scale(.94);
  }

  to {
    transform: rotate(360deg) scale(1.05);
  }
}
@keyframes orb-aurora-lap-reverse {
  from {
    transform: rotate(0deg) scale(1.06);
  }

  to {
    transform: rotate(-360deg) scale(.96);
  }
}
@keyframes orb-inner-lumen {
  from {
    transform: translate3d(-5%, 2%, 0) scale(.92);
  }

  to {
    transform: translate3d(6%, -4%, 0) scale(1.14);
  }
}
@keyframes orb-soft-center {
  0%,
  100% {
    transform: scale(.8);
    opacity: calc(var(--orb-core-glow) * .26);
  }

  54% {
    transform: scale(1.22);
    opacity: calc(var(--orb-core-glow) * .52);
  }
}
@keyframes orb-glint-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-18deg) scale(.76);
  }

  46% {
    transform: translate3d(-36px, 28px, 0) rotate(-4deg) scale(1.16);
  }

  76% {
    transform: translate3d(-62px, 50px, 0) rotate(8deg) scale(.9);
  }
}
@keyframes orb-vapor-pulse {
  0% {
    opacity: .4;
    transform: scale(.64);
  }

  68%,
  100% {
    opacity: 0;
    transform: scale(1.5);
  }
}
@keyframes orb-listening-column {
  0%,
  100% {
    transform: translate3d(-34px, 0, 0) scaleY(.72);
    opacity: .52;
  }

  50% {
    transform: translate3d(34px, 0, 0) scaleY(1.18);
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .wiwo-thinking-orb,
  .wiwo-thinking-orb::before,
  .wiwo-thinking-orb::after,
  .orb-liquid-veil,
  .orb-caustic,
  .orb-light-field,
  .orb-aurora,
  .orb-core,
  .orb-glint,
  .orb-pulse {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }
}
/* Thinking orb v4: remove the ball; keep only luminous membranes. */
.wiwo-thinking-orb {
  background: transparent !important;
  -webkit-mask-image: none;
  mask-image: none;
  box-shadow:
    0 0 180px color-mix(in srgb, var(--orb-lumen-a) 36%, transparent),
    0 0 150px color-mix(in srgb, var(--orb-lumen-b) 24%, transparent),
    0 0 80px rgba(255, 255, 251, .1);
}
.wiwo-thinking-orb::before {
  inset: -10%;
  border-radius: 44% 56% 52% 48% / 46% 42% 58% 54%;
  background:
    conic-gradient(from 18deg,
      transparent 0 8%,
      color-mix(in srgb, var(--orb-lumen-b) 88%, transparent) 11%,
      transparent 17% 27%,
      color-mix(in srgb, var(--orb-lumen-a) 78%, transparent) 33%,
      transparent 42% 53%,
      color-mix(in srgb, var(--orb-lumen-c) 58%, transparent) 59%,
      transparent 67% 78%,
      color-mix(in srgb, var(--orb-lumen-a) 64%, transparent) 84%,
      transparent 94% 100%),
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 251, .12), transparent 56%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 20%, rgba(0, 0, 0, .24) 29%, #000 42%, rgba(0, 0, 0, .64) 60%, transparent 79%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 20%, rgba(0, 0, 0, .24) 29%, #000 42%, rgba(0, 0, 0, .64) 60%, transparent 79%);
  filter: blur(20px) saturate(2.35);
  opacity: calc(var(--orb-aurora-opacity) * .94);
  animation: orb-plasma-membrane calc(var(--orb-flow-speed) * 1.12) var(--ease-expressive) infinite;
}
.wiwo-thinking-orb::after {
  inset: 8% 10% auto 10%;
  height: 44%;
  border-radius: 50% 50% 42% 58% / 58% 46% 54% 42%;
  background:
    radial-gradient(ellipse at 34% 36%, rgba(255, 255, 251, .54), rgba(255, 255, 251, .16) 34%, transparent 68%),
    linear-gradient(110deg, transparent 0 18%, rgba(255, 255, 251, .22), transparent 72%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, #000 0 48%, transparent 72%);
  mask-image: radial-gradient(ellipse at 50% 50%, #000 0 48%, transparent 72%);
  filter: blur(18px);
  opacity: calc(var(--orb-glint-alpha) * .46);
}
.orb-aurora {
  filter: blur(24px) saturate(2.25);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 19%, #000 31%, rgba(0, 0, 0, .68) 63%, transparent 80%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 19%, #000 31%, rgba(0, 0, 0, .68) 63%, transparent 80%);
}
.orb-aurora-one {
  background:
    conic-gradient(from 210deg,
      transparent 0 14%,
      color-mix(in srgb, var(--orb-lumen-b) 92%, transparent) 18%,
      transparent 25% 42%,
      color-mix(in srgb, var(--orb-lumen-a) 78%, transparent) 49%,
      transparent 58% 100%);
}
.orb-aurora-two {
  background:
    conic-gradient(from 42deg,
      transparent 0 9%,
      color-mix(in srgb, var(--orb-lumen-a) 84%, transparent) 16%,
      transparent 24% 48%,
      color-mix(in srgb, var(--orb-lumen-c) 58%, transparent) 56%,
      transparent 66% 100%);
}
.orb-aurora-three {
  background:
    radial-gradient(ellipse at 38% 54%, color-mix(in srgb, var(--orb-lumen-b) 42%, transparent), transparent 34%),
    radial-gradient(ellipse at 66% 44%, color-mix(in srgb, var(--orb-lumen-a) 44%, transparent), transparent 38%),
    radial-gradient(ellipse at 48% 28%, rgba(255, 255, 251, .24), transparent 28%);
  opacity: calc(var(--orb-aurora-opacity) * .52);
}
.orb-liquid-veil {
  inset: -2%;
  background:
    conic-gradient(from 260deg, transparent 0 20%, color-mix(in srgb, var(--orb-lumen-b) 48%, transparent) 29%, transparent 42% 55%, color-mix(in srgb, var(--orb-lumen-a) 42%, transparent) 64%, transparent 82% 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 23%, #000 35%, rgba(0, 0, 0, .5) 60%, transparent 76%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 23%, #000 35%, rgba(0, 0, 0, .5) 60%, transparent 76%);
  filter: blur(26px) saturate(2);
  opacity: calc(var(--orb-liquid-opacity) * .34);
}
.orb-light-field {
  background:
    radial-gradient(ellipse at 31% 25%, rgba(255, 255, 251, .36), transparent 25%),
    radial-gradient(ellipse at 70% 39%, color-mix(in srgb, var(--orb-lumen-a) 32%, transparent), transparent 28%),
    radial-gradient(ellipse at 45% 72%, color-mix(in srgb, var(--orb-lumen-b) 28%, transparent), transparent 34%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 14%, rgba(0, 0, 0, .72) 30%, rgba(0, 0, 0, .42) 58%, transparent 78%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 14%, rgba(0, 0, 0, .72) 30%, rgba(0, 0, 0, .42) 58%, transparent 78%);
  opacity: calc(var(--orb-light-opacity) * .36);
}
.orb-caustic {
  opacity: calc(var(--orb-caustic-opacity) * .16);
}
.orb-rim {
  opacity: .42;
  filter: blur(8px);
}
.orb-core {
  inset: 30%;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 251, .08), transparent 52%),
    conic-gradient(from 120deg, transparent 0 24%, color-mix(in srgb, var(--orb-lumen-a) 20%, transparent) 38%, transparent 52% 100%);
  filter: blur(48px) saturate(1.7);
  opacity: calc(var(--orb-core-glow) * .18);
}
.orb-glint {
  opacity: calc(var(--orb-glint-alpha) * .52);
}
.orb-pulse {
  opacity: .34;
  filter: blur(34px);
}
.orb-host[data-thinking-state="thinking"] .wiwo-thinking-orb {
  --orb-aurora-opacity: 1;
  --orb-core-glow: .26;
  --orb-glint-alpha: .86;
}
.orb-host[data-thinking-state="generating"] .wiwo-thinking-orb {
  --orb-aurora-opacity: 1;
  --orb-core-glow: .3;
  --orb-glint-alpha: .96;
}
.orb-host[data-thinking-state="listening"] .wiwo-thinking-orb {
  --orb-aurora-opacity: .84;
  --orb-core-glow: .2;
  --orb-glint-alpha: .64;
}
.orb-host[data-thinking-state="success"] .wiwo-thinking-orb {
  --orb-aurora-opacity: .9;
  --orb-core-glow: .2;
  --orb-glint-alpha: .82;
}
.orb-host[data-thinking-state="retry"] .wiwo-thinking-orb {
  --orb-aurora-opacity: .36;
  --orb-core-glow: .08;
  --orb-glint-alpha: .22;
}
@keyframes orb-plasma-membrane {
  0%,
  100% {
    transform: rotate(0deg) scale(.92) skew(-4deg);
    border-radius: 44% 56% 52% 48% / 46% 42% 58% 54%;
  }

  48% {
    transform: rotate(128deg) scale(1.16) skew(6deg);
    border-radius: 58% 42% 46% 54% / 44% 58% 42% 56%;
  }
}
.orb-stage::after {
  width: min(82%, 520px);
  height: min(45%, 270px);
  aspect-ratio: auto;
  border-radius: 58% 42% 52% 48% / 46% 58% 42% 54%;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 251, .12), transparent 45%),
    linear-gradient(90deg, transparent, rgba(66, 66, 255, .18), rgba(59, 255, 0, .12), transparent);
  filter: blur(26px);
  opacity: .52;
}
.wiwo-thinking-orb {
  width: clamp(290px, 34vw, 460px);
  height: clamp(205px, 23vw, 318px);
  aspect-ratio: auto;
  border-radius: 62% 38% 58% 42% / 48% 56% 44% 52%;
  transform-origin: 50% 54%;
  box-shadow:
    0 0 210px color-mix(in srgb, var(--orb-lumen-a) 44%, transparent),
    0 0 170px color-mix(in srgb, var(--orb-lumen-b) 32%, transparent),
    0 0 96px rgba(255, 255, 251, .14);
}
.wiwo-thinking-orb::before,
.orb-aurora,
.orb-liquid-veil,
.orb-light-field {
  border-radius: 62% 38% 58% 42% / 48% 56% 44% 52%;
}
.wiwo-thinking-orb::before {
  filter: blur(18px) saturate(2.6) brightness(1.08);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 12%, rgba(0, 0, 0, .16) 24%, #000 39%, rgba(0, 0, 0, .72) 60%, transparent 82%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 12%, rgba(0, 0, 0, .16) 24%, #000 39%, rgba(0, 0, 0, .72) 60%, transparent 82%);
}
.orb-aurora {
  filter: blur(18px) saturate(2.45) brightness(1.08);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 10%, rgba(0, 0, 0, .22) 25%, #000 42%, rgba(0, 0, 0, .64) 64%, transparent 84%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 10%, rgba(0, 0, 0, .22) 25%, #000 42%, rgba(0, 0, 0, .64) 64%, transparent 84%);
}
.orb-aurora-three {
  filter: blur(24px) saturate(2.2);
}
.orb-light-field {
  opacity: calc(var(--orb-light-opacity) * .48);
  filter: blur(18px) saturate(1.75);
}
.orb-state-ring,
.orb-state-ring.alt {
  width: min(78%, 460px);
  height: min(36%, 210px);
  aspect-ratio: auto;
  border: 0;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 251, .1), transparent 44%),
    linear-gradient(90deg, transparent, rgba(66, 66, 255, .32), rgba(59, 255, 0, .22), transparent);
  filter: blur(18px);
  opacity: .34;
  transform: translate(-50%, -50%) rotate(-8deg);
  animation: orb-soft-orbit-band 5200ms var(--ease-expressive) infinite;
}
.orb-state-ring.alt {
  width: min(88%, 520px);
  height: min(48%, 270px);
  opacity: .2;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(59, 255, 0, .14), transparent 46%),
    linear-gradient(90deg, transparent, rgba(59, 255, 0, .24), rgba(255, 255, 251, .16), transparent);
  animation-direction: reverse;
  animation-duration: 7000ms;
}
.orb-core {
  inset: 24%;
  opacity: calc(var(--orb-core-glow) * .12);
}
.orb-host[data-thinking-state="idle"] .wiwo-thinking-orb {
  height: clamp(185px, 20vw, 286px);
  border-radius: 56% 44% 54% 46% / 52% 48% 52% 48%;
}
.orb-host[data-thinking-state="listening"] .wiwo-thinking-orb {
  width: clamp(275px, 31vw, 420px);
  height: clamp(220px, 24vw, 340px);
  border-radius: 48% 52% 58% 42% / 58% 36% 64% 42%;
}
.orb-host[data-thinking-state="thinking"] .wiwo-thinking-orb {
  border-radius: 64% 36% 52% 48% / 44% 62% 38% 56%;
}
.orb-host[data-thinking-state="generating"] .wiwo-thinking-orb {
  width: clamp(320px, 37vw, 500px);
  height: clamp(210px, 24vw, 330px);
  border-radius: 68% 32% 52% 48% / 42% 50% 50% 58%;
}
.orb-host[data-thinking-state="success"] .wiwo-thinking-orb {
  width: clamp(280px, 32vw, 430px);
  height: clamp(198px, 22vw, 300px);
  border-radius: 52% 48% 50% 50% / 50% 52% 48% 50%;
}
.orb-host[data-thinking-state="retry"] .wiwo-thinking-orb {
  width: clamp(260px, 29vw, 390px);
  height: clamp(170px, 18vw, 255px);
  border-radius: 62% 38% 44% 56% / 58% 42% 58% 42%;
}
@keyframes orb-soft-orbit-band {
  0%,
  100% {
    transform: translate(-50%, -50%) rotate(-12deg) scaleX(.88) scaleY(.9);
    opacity: .24;
  }

  48% {
    transform: translate(-50%, -50%) rotate(12deg) scaleX(1.08) scaleY(1.16);
    opacity: .42;
  }
}
.orb-stage {
  min-height: clamp(420px, 52vw, 590px);
  isolation: isolate;
  overflow: hidden;
  border-radius: 32px;
}
.orb-stage::before {
  width: min(98%, 720px);
  height: min(86%, 520px);
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, .22), transparent 23%),
    radial-gradient(ellipse at 42% 56%, rgba(66, 66, 255, .42), transparent 54%),
    radial-gradient(ellipse at 63% 40%, rgba(59, 255, 0, .28), transparent 58%);
  filter: blur(54px) saturate(1.75);
  opacity: .72;
  transform: translate(-50%, -50%);
  animation: orb-v6-stage-aurora 8200ms var(--ease-expressive) infinite;
}
.orb-stage::after {
  width: min(88%, 620px);
  height: min(56%, 350px);
  border-radius: 61% 39% 54% 46% / 50% 58% 42% 50%;
  background:
    radial-gradient(ellipse at 44% 50%, rgba(255, 255, 255, .14), transparent 36%),
    linear-gradient(90deg, transparent, rgba(59, 255, 0, .18), rgba(66, 66, 255, .24), transparent);
  filter: blur(44px) saturate(1.45);
  opacity: .26;
  animation: orb-v6-stage-ribbon 7200ms var(--ease-expressive) infinite alternate;
}
.orb-state-field {
  position: absolute;
  inset: 0;
  z-index: 8;
  pointer-events: none;
}
.wiwo-thinking-orb {
  --orb-w: clamp(245px, 28vw, 410px);
  --orb-h: clamp(205px, 22vw, 315px);
  --orb-x: 0px;
  --orb-y: 0px;
  --orb-scale-a: .96;
  --orb-scale-b: 1.06;
  --orb-scale-c: .93;
  --orb-speed: 3600ms;
  --orb-flow-speed: 4200ms;
  --orb-brightness: 1;
  --orb-saturation: 1.82;
  --orb-alpha: .94;
  position: relative;
  z-index: 4;
  width: var(--orb-w) !important;
  height: var(--orb-h) !important;
  aspect-ratio: auto !important;
  border: 0 !important;
  border-radius: 56% 44% 52% 48% / 45% 58% 42% 55%;
  overflow: visible;
  opacity: var(--orb-alpha);
  background: transparent !important;
  box-shadow:
    0 0 150px color-mix(in srgb, var(--orb-light-blue) 30%, transparent),
    0 0 125px color-mix(in srgb, var(--orb-light-lime) 24%, transparent),
    0 0 72px rgba(255, 255, 255, .15);
  filter: saturate(var(--orb-saturation)) brightness(var(--orb-brightness));
  mix-blend-mode: screen;
  transform-origin: 50% 54%;
  will-change: transform, filter, border-radius;
  animation:
    orb-v6-breathe var(--orb-speed) var(--ease-expressive) infinite,
    orb-v6-magnetic-shift var(--orb-flow-speed) linear infinite;
}
.wiwo-thinking-orb::before,
.wiwo-thinking-orb::after,
.wiwo-thinking-orb > span {
  position: absolute;
  border-radius: inherit;
  pointer-events: none;
}
.wiwo-thinking-orb::before {
  content: "";
  inset: -28%;
  background:
    conic-gradient(from 20deg,
      transparent 0 8%,
      color-mix(in srgb, var(--orb-light-lime) 76%, transparent) 16%,
      transparent 29%,
      color-mix(in srgb, var(--orb-light-blue) 78%, transparent) 48%,
      transparent 64%,
      color-mix(in srgb, var(--orb-light-milk) 58%, transparent) 78%,
      transparent 100%),
    radial-gradient(ellipse at 46% 45%, rgba(255, 255, 255, .16), transparent 46%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .7) 0 22%, #000 46%, rgba(0, 0, 0, .64) 68%, transparent 88%);
  mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .7) 0 22%, #000 46%, rgba(0, 0, 0, .64) 68%, transparent 88%);
  filter: blur(30px) saturate(2.35);
  opacity: .82;
  mix-blend-mode: screen;
  animation: orb-v6-membrane-flow calc(var(--orb-flow-speed) * 1.34) var(--ease-expressive) infinite;
}
.wiwo-thinking-orb::after {
  content: "";
  inset: -14% -10%;
  background:
    radial-gradient(ellipse at 32% 24%, rgba(255, 255, 251, .56), rgba(255, 255, 251, .14) 30%, transparent 58%),
    radial-gradient(ellipse at 72% 58%, rgba(66, 66, 255, .26), transparent 46%),
    radial-gradient(ellipse at 44% 72%, rgba(59, 255, 0, .2), transparent 48%);
  filter: blur(18px) saturate(1.55);
  opacity: .72;
  mix-blend-mode: screen;
  animation: orb-v6-sheen 3900ms var(--ease-expressive) infinite alternate;
}
.orb-liquid-veil,
.orb-light-field,
.orb-caustic,
.orb-aurora {
  inset: -16%;
  border-radius: inherit !important;
  mix-blend-mode: screen;
}
.orb-liquid-veil {
  background:
    conic-gradient(from 214deg,
      transparent 0 12%,
      rgba(59, 255, 0, .56) 22%,
      transparent 38%,
      rgba(66, 66, 255, .58) 56%,
      rgba(255, 255, 255, .18) 66%,
      transparent 86% 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .64) 0 28%, #000 56%, transparent 84%);
  mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .64) 0 28%, #000 56%, transparent 84%);
  filter: blur(34px) saturate(2.05);
  opacity: .62;
  animation: orb-v6-liquid-sweep 5400ms var(--ease-expressive) infinite;
}
.orb-light-field {
  background:
    radial-gradient(ellipse at 38% 32%, rgba(255, 255, 255, .36), transparent 34%),
    radial-gradient(ellipse at 66% 46%, rgba(66, 66, 255, .42), transparent 42%),
    radial-gradient(ellipse at 44% 68%, rgba(59, 255, 0, .3), transparent 40%);
  filter: blur(26px);
  opacity: .74;
  animation: orb-v6-light-swim 4600ms var(--ease-expressive) infinite alternate;
}
.orb-caustic {
  inset: -8%;
  background:
    repeating-conic-gradient(from 0deg, transparent 0deg 18deg, rgba(255, 255, 255, .18) 22deg 24deg, transparent 28deg 46deg);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 18%, rgba(0, 0, 0, .52) 38%, transparent 76%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 0 18%, rgba(0, 0, 0, .52) 38%, transparent 76%);
  filter: blur(18px);
  opacity: .28;
  animation: orb-v6-caustic 8600ms linear infinite;
}
.orb-aurora {
  filter: blur(26px) saturate(2.15) brightness(1.04);
  opacity: .88;
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .7) 0 18%, #000 48%, rgba(0, 0, 0, .56) 68%, transparent 88%);
  mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .7) 0 18%, #000 48%, rgba(0, 0, 0, .56) 68%, transparent 88%);
}
.orb-aurora-one {
  background:
    conic-gradient(from 180deg, transparent 0 12%, rgba(59, 255, 0, .7) 21%, transparent 34%, rgba(66, 66, 255, .62) 58%, transparent 84% 100%);
  animation: orb-v6-aurora-a 4200ms linear infinite;
}
.orb-aurora-two {
  inset: -8%;
  background:
    conic-gradient(from 24deg, transparent 0 16%, rgba(66, 66, 255, .72) 30%, transparent 48%, rgba(255, 255, 255, .38) 62%, transparent 100%);
  animation: orb-v6-aurora-b 5600ms linear infinite reverse;
}
.orb-aurora-three {
  inset: 6%;
  background:
    radial-gradient(ellipse at 48% 50%, rgba(255, 255, 255, .18), transparent 34%),
    radial-gradient(ellipse at 62% 42%, rgba(66, 66, 255, .36), transparent 44%),
    radial-gradient(ellipse at 38% 65%, rgba(59, 255, 0, .28), transparent 44%);
  filter: blur(32px) saturate(2);
  opacity: .7;
  animation: orb-v6-inner-tide 2600ms var(--ease-expressive) infinite alternate;
}
.orb-rim {
  inset: -1%;
  border-radius: inherit;
  background:
    conic-gradient(from 0deg, transparent 0 10%, rgba(255, 255, 255, .42), transparent 24%, rgba(66, 66, 255, .48), transparent 52%, rgba(59, 255, 0, .52), transparent 78% 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent calc(100% - 24px), #000 calc(100% - 13px), transparent calc(100% - 2px));
  mask-image: radial-gradient(ellipse at 50% 50%, transparent calc(100% - 24px), #000 calc(100% - 13px), transparent calc(100% - 2px));
  filter: blur(12px);
  opacity: .24;
  animation: orb-v6-rim-flow 5200ms linear infinite;
}
.orb-core {
  inset: -4%;
  background:
    radial-gradient(ellipse at 45% 42%, rgba(255, 255, 255, .34), rgba(255, 255, 255, .12) 24%, transparent 56%),
    radial-gradient(ellipse at 62% 54%, rgba(66, 66, 255, .34), transparent 52%),
    radial-gradient(ellipse at 38% 68%, rgba(59, 255, 0, .26), transparent 54%),
    conic-gradient(from 78deg, rgba(255, 255, 255, .08), rgba(66, 66, 255, .16), rgba(59, 255, 0, .14), rgba(255, 255, 255, .08));
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, #000 0 54%, rgba(0, 0, 0, .52) 70%, transparent 90%);
  mask-image: radial-gradient(ellipse at 50% 50%, #000 0 54%, rgba(0, 0, 0, .52) 70%, transparent 90%);
  filter: blur(42px) saturate(1.85);
  opacity: .7;
  box-shadow: none;
  animation: orb-v6-soft-core 2400ms var(--ease-expressive) infinite alternate;
}
.orb-glint {
  width: clamp(62px, 8vw, 110px);
  height: clamp(24px, 4vw, 52px);
  right: 14%;
  top: 18%;
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, .72), rgba(255, 255, 255, .18) 44%, transparent 72%);
  filter: blur(14px);
  opacity: .64;
  animation: orb-v6-glint 2600ms var(--ease-expressive) infinite alternate;
}
.orb-pulse {
  inset: -36%;
  border: 0;
  border-radius: inherit;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, .12), transparent 25%),
    conic-gradient(from 0deg, rgba(59, 255, 0, .24), rgba(66, 66, 255, .26), transparent 62%, rgba(255, 255, 255, .14));
  filter: blur(32px) saturate(1.5);
  opacity: .18;
  animation: orb-v6-pulse 3100ms var(--ease-expressive) infinite;
}
.orb-pulse:nth-child(2) {
  animation-delay: -1050ms;
}
.orb-pulse:nth-child(3) {
  animation-delay: -2050ms;
}
.orb-state-ring,
.orb-state-ring.alt,
.orb-scan-line,
.orb-output-trail,
.orb-success-burst,
.orb-retry-notch {
  position: absolute;
  left: 50%;
  top: 50%;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -50%);
  mix-blend-mode: screen;
  z-index: 10;
}
.orb-state-ring,
.orb-state-ring.alt {
  width: min(88%, 620px);
  height: min(52%, 330px);
  border: 0;
  border-radius: 50%;
  background:
    conic-gradient(from 0deg, transparent 0 10%, rgba(255, 255, 255, .3) 18%, transparent 28%, rgba(66, 66, 255, .44) 48%, transparent 64%, rgba(59, 255, 0, .44) 78%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent calc(100% - 34px), #000 calc(100% - 16px), transparent calc(100% - 2px));
  mask-image: radial-gradient(ellipse at 50% 50%, transparent calc(100% - 34px), #000 calc(100% - 16px), transparent calc(100% - 2px));
  filter: blur(7px);
}
.orb-state-ring.alt {
  width: min(72%, 520px);
  height: min(40%, 270px);
  filter: blur(10px);
}
.orb-scan-line {
  width: clamp(28px, 5vw, 66px);
  height: min(72%, 430px);
  border-radius: 999px;
  background: radial-gradient(ellipse at 50% 50%, rgba(59, 255, 0, .82), rgba(255, 255, 255, .28) 34%, transparent 74%);
  filter: blur(14px);
}
.orb-output-trail {
  left: 58%;
  width: min(40%, 310px);
  height: 36px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(59, 255, 0, .72), rgba(255, 255, 255, .42), rgba(66, 66, 255, .46), transparent);
  filter: blur(17px);
}
.orb-output-trail.one {
  top: 39%;
}
.orb-output-trail.two {
  top: 50%;
  width: min(34%, 260px);
  animation-delay: -180ms;
}
.orb-output-trail.three {
  top: 61%;
  width: min(28%, 220px);
  animation-delay: -360ms;
}
.orb-success-burst {
  width: min(70%, 420px);
  height: min(52%, 300px);
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(59, 255, 0, .56), rgba(255, 255, 255, .22) 34%, transparent 72%);
  filter: blur(24px);
}
.orb-retry-notch {
  width: min(56%, 360px);
  height: 42px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(116, 108, 255, .58), rgba(255, 255, 255, .2), transparent);
  filter: blur(13px);
}
.orb-particle,
.orb-spark {
  z-index: 5;
  background: radial-gradient(circle, currentColor 0 4%, color-mix(in srgb, currentColor 30%, transparent) 28%, transparent 72%);
  filter: blur(7px) saturate(1.5);
  opacity: .32;
  box-shadow: none;
}
.orb-host[data-thinking-state="idle"] .wiwo-thinking-orb {
  --orb-w: clamp(215px, 24vw, 330px);
  --orb-h: clamp(170px, 17vw, 245px);
  --orb-speed: 7600ms;
  --orb-flow-speed: 11000ms;
  --orb-alpha: .72;
  --orb-brightness: .88;
  --orb-saturation: 1.18;
  --orb-scale-a: .9;
  --orb-scale-b: .96;
  --orb-scale-c: .88;
}
.orb-host[data-thinking-state="idle"] .orb-aurora,
.orb-host[data-thinking-state="idle"] .orb-liquid-veil,
.orb-host[data-thinking-state="idle"] .orb-pulse {
  opacity: .18;
}
.orb-host[data-thinking-state="listening"] .wiwo-thinking-orb {
  --orb-w: clamp(245px, 27vw, 385px);
  --orb-h: clamp(230px, 24vw, 350px);
  --orb-speed: 2300ms;
  --orb-flow-speed: 3600ms;
  --orb-brightness: 1.08;
  --orb-saturation: 1.9;
  --orb-scale-a: .96;
  --orb-scale-b: 1.08;
  --orb-scale-c: .94;
}
.orb-host[data-thinking-state="listening"] .orb-scan-line {
  opacity: .95;
  animation: orb-v6-listen-scan 1420ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="listening"] .orb-pulse {
  opacity: .42;
  animation-duration: 1700ms;
}
.orb-host[data-thinking-state="thinking"] .wiwo-thinking-orb {
  --orb-w: clamp(270px, 31vw, 440px);
  --orb-h: clamp(220px, 22vw, 330px);
  --orb-speed: 1850ms;
  --orb-flow-speed: 2450ms;
  --orb-brightness: 1.12;
  --orb-saturation: 2.12;
  --orb-scale-a: .98;
  --orb-scale-b: 1.12;
  --orb-scale-c: .95;
}
.orb-host[data-thinking-state="thinking"] .orb-state-ring {
  opacity: .62;
  animation: orb-v6-state-orbit 3200ms linear infinite;
}
.orb-host[data-thinking-state="thinking"] .orb-state-ring.alt {
  opacity: .4;
  animation: orb-v6-state-orbit 4600ms linear infinite reverse;
}
.orb-host[data-thinking-state="generating"] .wiwo-thinking-orb {
  --orb-w: clamp(300px, 34vw, 480px);
  --orb-h: clamp(210px, 21vw, 315px);
  --orb-x: -16px;
  --orb-speed: 1280ms;
  --orb-flow-speed: 1760ms;
  --orb-brightness: 1.18;
  --orb-saturation: 2.35;
  --orb-scale-a: 1.02;
  --orb-scale-b: 1.2;
  --orb-scale-c: 1;
}
.orb-host[data-thinking-state="generating"] .orb-output-trail {
  opacity: .94;
  animation: orb-v6-output-trail 1120ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="generating"] .orb-state-ring {
  opacity: .34;
  animation: orb-v6-state-orbit 2400ms linear infinite;
}
.orb-host[data-thinking-state="routing"] .wiwo-thinking-orb {
  --orb-w: clamp(270px, 30vw, 430px);
  --orb-h: clamp(235px, 24vw, 350px);
  --orb-speed: 2500ms;
  --orb-flow-speed: 3100ms;
  --orb-brightness: 1.08;
  --orb-saturation: 2.05;
  --orb-scale-a: .94;
  --orb-scale-b: 1.08;
  --orb-scale-c: .96;
}
.orb-host[data-thinking-state="routing"] .orb-state-ring,
.orb-host[data-thinking-state="routing"] .orb-state-ring.alt {
  opacity: .72;
  animation: orb-v6-routing-orbit 2100ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="routing"] .orb-scan-line {
  opacity: .58;
  width: min(62%, 390px);
  height: 34px;
  transform: translate(-50%, -50%) rotate(-28deg);
  animation: orb-v6-route-beam 1550ms var(--ease-expressive) infinite alternate;
}
.orb-host[data-thinking-state="success"] .wiwo-thinking-orb {
  --orb-w: clamp(245px, 27vw, 385px);
  --orb-h: clamp(195px, 20vw, 285px);
  --orb-speed: 2500ms;
  --orb-flow-speed: 3600ms;
  --orb-brightness: 1.18;
  --orb-saturation: 1.95;
  --orb-scale-a: .98;
  --orb-scale-b: 1.08;
  --orb-scale-c: .98;
}
.orb-host[data-thinking-state="success"] .orb-success-burst {
  opacity: .88;
  animation: orb-v6-success-bloom 1800ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="success"] .orb-rim {
  opacity: .86;
}
.orb-host[data-thinking-state="error"],
.orb-host[data-thinking-state="retry"] {
  --orb-light-blue: rgba(116, 108, 255, .7);
  --orb-light-lime: rgba(255, 255, 255, .2);
  --orb-light-milk: rgba(255, 255, 255, .34);
}
.orb-host[data-thinking-state="error"] .wiwo-thinking-orb,
.orb-host[data-thinking-state="retry"] .wiwo-thinking-orb {
  --orb-w: clamp(230px, 25vw, 350px);
  --orb-h: clamp(150px, 16vw, 230px);
  --orb-speed: 980ms;
  --orb-flow-speed: 1500ms;
  --orb-alpha: .74;
  --orb-brightness: .78;
  --orb-saturation: 1.16;
  --orb-scale-a: .84;
  --orb-scale-b: .94;
  --orb-scale-c: .82;
  filter: saturate(var(--orb-saturation)) brightness(var(--orb-brightness)) contrast(1.04);
}
.orb-host[data-thinking-state="error"] .orb-retry-notch,
.orb-host[data-thinking-state="retry"] .orb-retry-notch {
  opacity: .82;
  animation: orb-v6-error-friction 760ms var(--ease-expressive) infinite;
}
.orb-host.is-state-changing .wiwo-thinking-orb {
  animation-duration: 720ms, var(--orb-flow-speed);
}
@keyframes orb-v6-breathe {
  0%,
  100% {
    transform: translate3d(var(--orb-x), var(--orb-y), 0) scale(var(--orb-scale-a)) rotate(-2deg);
    border-radius: 56% 44% 52% 48% / 45% 58% 42% 55%;
  }

  45% {
    transform: translate3d(calc(var(--orb-x) + 8px), calc(var(--orb-y) - 4px), 0) scale(var(--orb-scale-b)) rotate(4deg);
    border-radius: 44% 56% 58% 42% / 58% 40% 60% 42%;
  }

  72% {
    transform: translate3d(calc(var(--orb-x) - 6px), calc(var(--orb-y) + 5px), 0) scale(var(--orb-scale-c)) rotate(-5deg);
    border-radius: 63% 37% 47% 53% / 42% 62% 38% 58%;
  }
}
@keyframes orb-v6-magnetic-shift {
  0%,
  100% {
    box-shadow:
      0 0 170px color-mix(in srgb, var(--orb-light-blue) 34%, transparent),
      0 0 145px color-mix(in srgb, var(--orb-light-lime) 26%, transparent),
      0 0 80px rgba(255, 255, 255, .16);
  }

  50% {
    box-shadow:
      0 0 230px color-mix(in srgb, var(--orb-light-lime) 30%, transparent),
      0 0 180px color-mix(in srgb, var(--orb-light-blue) 36%, transparent),
      0 0 120px rgba(255, 255, 255, .2);
  }
}
@keyframes orb-v6-membrane-flow {
  0%,
  100% {
    transform: rotate(0deg) scale(.96);
  }

  50% {
    transform: rotate(148deg) scale(1.12);
  }
}
@keyframes orb-v6-liquid-sweep {
  0%,
  100% {
    transform: rotate(-12deg) scale(.95) skew(-4deg);
  }

  48% {
    transform: rotate(112deg) scale(1.12) skew(6deg);
  }
}
@keyframes orb-v6-light-swim {
  0% {
    transform: translate3d(-4%, -2%, 0) scale(.95);
  }

  100% {
    transform: translate3d(5%, 4%, 0) scale(1.08);
  }
}
@keyframes orb-v6-caustic {
  to {
    transform: rotate(360deg);
  }
}
@keyframes orb-v6-aurora-a {
  to {
    transform: rotate(360deg) scale(1.05);
  }
}
@keyframes orb-v6-aurora-b {
  to {
    transform: rotate(-360deg) scale(1.02);
  }
}
@keyframes orb-v6-inner-tide {
  0% {
    transform: translate3d(-8%, -2%, 0) scale(.9);
    opacity: .52;
  }

  100% {
    transform: translate3d(7%, 4%, 0) scale(1.08);
    opacity: .86;
  }
}
@keyframes orb-v6-rim-flow {
  to {
    transform: rotate(360deg);
  }
}
@keyframes orb-v6-soft-core {
  0% {
    transform: scale(.72);
    opacity: .08;
  }

  100% {
    transform: scale(1.08);
    opacity: .18;
  }
}
@keyframes orb-v6-glint {
  0% {
    transform: translate3d(-28px, -8px, 0) rotate(-12deg);
    opacity: .34;
  }

  100% {
    transform: translate3d(18px, 10px, 0) rotate(-4deg);
    opacity: .76;
  }
}
@keyframes orb-v6-pulse {
  0% {
    transform: scale(.72);
    opacity: .1;
  }

  42% {
    opacity: .42;
  }

  100% {
    transform: scale(1.22);
    opacity: 0;
  }
}
@keyframes orb-v6-listen-scan {
  0%,
  100% {
    transform: translate(-50%, -50%) scaleX(.58);
    opacity: .28;
  }

  50% {
    transform: translate(-50%, -50%) scaleX(1.4);
    opacity: .96;
  }
}
@keyframes orb-v6-state-orbit {
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
@keyframes orb-v6-output-trail {
  0% {
    transform: translate(-52%, -50%) scaleX(.34);
    opacity: 0;
  }

  38% {
    opacity: .96;
  }

  100% {
    transform: translate(-22%, -50%) scaleX(1.12);
    opacity: 0;
  }
}
@keyframes orb-v6-routing-orbit {
  0%,
  100% {
    transform: translate(-50%, -50%) rotate(-18deg) scaleX(.82) scaleY(.94);
    opacity: .34;
  }

  45% {
    transform: translate(-50%, -50%) rotate(24deg) scaleX(1.12) scaleY(1.05);
    opacity: .82;
  }
}
@keyframes orb-v6-route-beam {
  0% {
    transform: translate(-50%, -50%) rotate(-34deg) scaleX(.72);
    opacity: .22;
  }

  100% {
    transform: translate(-50%, -50%) rotate(26deg) scaleX(1.16);
    opacity: .72;
  }
}
@keyframes orb-v6-success-bloom {
  0% {
    transform: translate(-50%, -50%) scale(.62);
    opacity: 0;
  }

  34% {
    opacity: .9;
  }

  100% {
    transform: translate(-50%, -50%) scale(1.22);
    opacity: 0;
  }
}
@keyframes orb-v6-error-friction {
  0%,
  100% {
    transform: translate(-52%, -50%) rotate(-3deg) scaleX(.72);
    opacity: .26;
  }

  50% {
    transform: translate(-48%, -50%) rotate(2deg) scaleX(1.08);
    opacity: .86;
  }
}
@keyframes orb-v6-sheen {
  from {
    transform: translate3d(-14px, -8px, 0) rotate(-10deg);
    opacity: .48;
  }

  to {
    transform: translate3d(18px, 12px, 0) rotate(6deg);
    opacity: .82;
  }
}
@keyframes orb-v6-stage-aurora {
  0%,
  100% {
    transform: translate(-50%, -50%) rotate(-3deg) scale(.95);
  }

  50% {
    transform: translate(-50%, -50%) rotate(7deg) scale(1.08);
  }
}
@keyframes orb-v6-stage-ribbon {
  0% {
    transform: translate(-50%, -50%) rotate(-10deg) scale(.92);
  }

  100% {
    transform: translate(-50%, -50%) rotate(11deg) scale(1.06);
  }
}
/* Thinking orb v6b: no permanent ring; only fluid aurora light. */
.orb-stage::after {
  opacity: .12 !important;
}
.wiwo-thinking-orb::before {
  background:
    radial-gradient(ellipse at 31% 36%, color-mix(in srgb, var(--orb-light-blue) 62%, transparent), transparent 44%),
    radial-gradient(ellipse at 68% 42%, color-mix(in srgb, var(--orb-light-lime) 54%, transparent), transparent 42%),
    radial-gradient(ellipse at 49% 66%, color-mix(in srgb, var(--orb-light-milk) 52%, transparent), transparent 46%),
    radial-gradient(ellipse at 52% 50%, rgba(255, 255, 251, .12), transparent 62%) !important;
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, #000 0 64%, rgba(0, 0, 0, .5) 76%, transparent 91%) !important;
  mask-image: radial-gradient(ellipse at 50% 50%, #000 0 64%, rgba(0, 0, 0, .5) 76%, transparent 91%) !important;
  filter: blur(34px) saturate(2.22) brightness(1.05) !important;
  opacity: .9 !important;
}
.orb-liquid-veil {
  background:
    radial-gradient(ellipse at 28% 58%, color-mix(in srgb, var(--orb-light-lime) 48%, transparent), transparent 46%),
    radial-gradient(ellipse at 67% 28%, color-mix(in srgb, var(--orb-light-blue) 52%, transparent), transparent 48%),
    radial-gradient(ellipse at 54% 62%, rgba(255, 255, 255, .22), transparent 42%) !important;
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .86) 0 58%, rgba(0, 0, 0, .42) 76%, transparent 92%) !important;
  mask-image: radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, .86) 0 58%, rgba(0, 0, 0, .42) 76%, transparent 92%) !important;
  opacity: .72 !important;
}
.orb-aurora-one {
  background:
    radial-gradient(ellipse at 24% 42%, rgba(66, 66, 255, .62), transparent 44%),
    radial-gradient(ellipse at 72% 54%, rgba(59, 255, 0, .48), transparent 42%),
    radial-gradient(ellipse at 52% 70%, rgba(255, 255, 255, .18), transparent 36%) !important;
}
.orb-aurora-two {
  background:
    radial-gradient(ellipse at 70% 30%, rgba(66, 66, 255, .52), transparent 40%),
    radial-gradient(ellipse at 34% 64%, rgba(59, 255, 0, .42), transparent 42%),
    radial-gradient(ellipse at 46% 44%, rgba(255, 255, 255, .22), transparent 48%) !important;
}
.orb-aurora-three {
  background:
    radial-gradient(ellipse at 42% 48%, rgba(255, 255, 255, .28), transparent 42%),
    radial-gradient(ellipse at 58% 48%, rgba(66, 66, 255, .28), transparent 44%),
    radial-gradient(ellipse at 48% 64%, rgba(59, 255, 0, .2), transparent 48%) !important;
  opacity: .82 !important;
}
.orb-rim {
  opacity: 0 !important;
}
.orb-host[data-thinking-state="thinking"] .orb-state-ring,
.orb-host[data-thinking-state="thinking"] .orb-state-ring.alt {
  opacity: .22;
  filter: blur(12px);
}
.orb-host[data-thinking-state="routing"] .orb-state-ring,
.orb-host[data-thinking-state="routing"] .orb-state-ring.alt {
  opacity: .46;
  filter: blur(9px);
}
.orb-host[data-thinking-state="generating"] .orb-state-ring {
  opacity: .14;
}
/* Thinking orb v6c: free light blobs, not a single ellipse silhouette. */
.orb-stage::after {
  opacity: 0 !important;
}
.orb-host[data-thinking-state="thinking"] .wiwo-thinking-orb {
  --orb-w: clamp(250px, 28vw, 390px);
  --orb-h: clamp(225px, 24vw, 340px);
}
.orb-host[data-thinking-state="generating"] .wiwo-thinking-orb {
  --orb-w: clamp(280px, 31vw, 430px);
  --orb-h: clamp(225px, 23vw, 330px);
}
.orb-host[data-thinking-state="routing"] .wiwo-thinking-orb {
  --orb-w: clamp(255px, 29vw, 400px);
  --orb-h: clamp(230px, 24vw, 340px);
}
.wiwo-thinking-orb::before,
.orb-liquid-veil,
.orb-aurora,
.orb-core {
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
.wiwo-thinking-orb::before {
  inset: -22%;
  border-radius: 52% 48% 56% 44% / 48% 58% 42% 52%;
  background:
    radial-gradient(ellipse at 28% 36%, rgba(66, 66, 255, .68), transparent 38%),
    radial-gradient(ellipse at 70% 40%, rgba(59, 255, 0, .56), transparent 36%),
    radial-gradient(ellipse at 48% 66%, rgba(255, 255, 255, .42), transparent 40%),
    radial-gradient(ellipse at 54% 52%, rgba(0, 229, 255, .24), transparent 48%) !important;
  filter: blur(38px) saturate(2.35) brightness(1.08) !important;
  opacity: .92 !important;
}
.orb-liquid-veil {
  inset: -18%;
  border-radius: 58% 42% 46% 54% / 44% 52% 48% 56% !important;
  background:
    radial-gradient(ellipse at 30% 66%, rgba(59, 255, 0, .45), transparent 38%),
    radial-gradient(ellipse at 72% 28%, rgba(66, 66, 255, .52), transparent 40%),
    radial-gradient(ellipse at 48% 48%, rgba(255, 255, 255, .2), transparent 48%) !important;
  filter: blur(42px) saturate(2.15) !important;
  opacity: .72 !important;
}
.orb-light-field {
  inset: -22%;
  border-radius: 48% 52% 58% 42% / 56% 44% 52% 48% !important;
  background:
    radial-gradient(ellipse at 36% 44%, rgba(255, 255, 255, .42), transparent 30%),
    radial-gradient(ellipse at 62% 50%, rgba(66, 66, 255, .42), transparent 40%),
    radial-gradient(ellipse at 48% 68%, rgba(59, 255, 0, .28), transparent 36%) !important;
  filter: blur(34px) saturate(1.9) !important;
  opacity: .62 !important;
}
.orb-aurora-one,
.orb-aurora-two,
.orb-aurora-three {
  inset: -20%;
  border-radius: 50% !important;
  filter: blur(44px) saturate(2.2) brightness(1.05) !important;
  opacity: .72 !important;
}
.orb-aurora-one {
  background:
    radial-gradient(ellipse at 24% 38%, rgba(66, 66, 255, .5), transparent 34%),
    radial-gradient(ellipse at 58% 70%, rgba(59, 255, 0, .34), transparent 38%) !important;
}
.orb-aurora-two {
  background:
    radial-gradient(ellipse at 72% 34%, rgba(59, 255, 0, .5), transparent 34%),
    radial-gradient(ellipse at 40% 58%, rgba(0, 229, 255, .28), transparent 42%) !important;
}
.orb-aurora-three {
  background:
    radial-gradient(ellipse at 50% 48%, rgba(255, 255, 255, .38), transparent 34%),
    radial-gradient(ellipse at 46% 62%, rgba(66, 66, 255, .28), transparent 46%) !important;
}
.orb-core {
  inset: -16%;
  border-radius: 50% !important;
  background:
    radial-gradient(ellipse at 46% 46%, rgba(255, 255, 255, .46), transparent 30%),
    radial-gradient(ellipse at 56% 56%, rgba(66, 66, 255, .2), transparent 44%),
    radial-gradient(ellipse at 42% 60%, rgba(59, 255, 0, .18), transparent 46%) !important;
  filter: blur(46px) saturate(1.85) !important;
  opacity: .58 !important;
}
.orb-host[data-thinking-state="thinking"] .orb-state-ring,
.orb-host[data-thinking-state="thinking"] .orb-state-ring.alt {
  opacity: .08;
}
.orb-host[data-thinking-state="routing"] .orb-state-ring,
.orb-host[data-thinking-state="routing"] .orb-state-ring.alt {
  opacity: .24;
}
.orb-host[data-thinking-state="listening"] .orb-scan-line {
  width: clamp(46px, 8vw, 92px);
  height: min(80%, 500px);
  opacity: 1;
  z-index: 22;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, .48), transparent 18%),
    linear-gradient(180deg, transparent, rgba(59, 255, 0, .72), rgba(66, 66, 255, .42), transparent);
  filter: blur(9px) saturate(1.9);
  mix-blend-mode: screen;
  animation: orb-v6-listen-scan 1280ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="generating"] .orb-output-trail {
  left: 70%;
  width: min(46%, 340px);
  height: 30px;
  opacity: 1;
  z-index: 22;
  background:
    linear-gradient(90deg, transparent, rgba(255, 255, 255, .7), rgba(59, 255, 0, .72), rgba(66, 66, 255, .58), transparent);
  filter: blur(8px) saturate(1.8);
  animation: orb-v6-output-trail 980ms var(--ease-expressive) infinite;
}
.orb-host[data-thinking-state="generating"] .orb-output-trail.two {
  width: min(40%, 292px);
  opacity: .86;
}
.orb-host[data-thinking-state="generating"] .orb-output-trail.three {
  width: min(34%, 250px);
  opacity: .72;
}
.orb-host[data-thinking-state="routing"] .orb-state-ring,
.orb-host[data-thinking-state="routing"] .orb-state-ring.alt {
  opacity: .58;
  z-index: 21;
  filter: blur(4px) saturate(1.7);
  background:
    conic-gradient(from 0deg, transparent 0 8%, rgba(255, 255, 255, .54) 14%, transparent 22%, rgba(66, 66, 255, .62) 42%, transparent 54%, rgba(59, 255, 0, .64) 70%, transparent 84% 100%);
}
.orb-host[data-thinking-state="routing"] .orb-scan-line {
  opacity: .76;
  z-index: 22;
  width: min(72%, 410px);
  height: 28px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), rgba(59, 255, 0, .58), rgba(66, 66, 255, .5), transparent);
  filter: blur(7px) saturate(1.75);
  transform: translate(-50%, -50%) rotate(-28deg);
  animation: orb-v6-route-beam 1280ms var(--ease-expressive) infinite alternate;
}
.orb-host[data-thinking-state="error"] .orb-retry-notch,
.orb-host[data-thinking-state="retry"] .orb-retry-notch {
  width: min(70%, 420px);
  height: 34px;
  opacity: .9;
  z-index: 22;
  background:
    linear-gradient(90deg, transparent, rgba(255, 255, 255, .28), rgba(116, 108, 255, .72), rgba(255, 255, 255, .18), transparent);
  filter: blur(8px) saturate(1.35);
}
@media (prefers-reduced-motion: reduce) {
  .wiwo-thinking-orb,
  .wiwo-thinking-orb::before,
  .wiwo-thinking-orb::after,
  .wiwo-thinking-orb > span,
  .orb-state-ring,
  .orb-state-ring.alt,
  .orb-scan-line,
  .orb-output-trail,
  .orb-success-burst,
  .orb-retry-notch {
    animation: none !important;
  }
}

/* ── Movimiento reducido ────────────────────────────────────────
 * El orb comunica estado, así que no se apaga: se congela en su forma y
 * conserva el color del estado, que es lo que carga el significado. */
@media (prefers-reduced-motion: reduce) {
  .orb-host,
  .orb-host * {
    animation: none !important;
    transition-duration: 1ms !important;
  }
}


/* ── Encaje en el workshop ──────────────────────────────────────
 * El componente está pensado para vivir dentro de un escenario que recorta:
 * sus capas de luz se extienden bastante más allá del orb y es ese recorte el
 * que las convierte en atmósfera en vez de niebla suelta. El escenario ocupa
 * el bloque que le da el layout y recorta como tarjeta, igual que en el
 * sistema Neo (neo.wiwo.me): el orb sangra hasta el borde y nunca se lee un
 * contorno de esfera. */
.orb-host .orb-stage {
  min-height: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: clamp(14px, 16%, 30px);
  background:
    radial-gradient(circle at 18% 8%, rgba(59, 255, 0, .18), transparent 28%),
    radial-gradient(circle at 82% 18%, rgba(66, 66, 255, .22), transparent 34%),
    radial-gradient(circle at 52% 54%, rgba(255, 255, 255, .08), transparent 45%),
    linear-gradient(135deg, #1B1C21, #1F2620 46%, #15151E);
}

/* El orb no tiene cuerpo propio: es un campo de luz que se suma al fondo de
 * la tarjeta. El borde, los reflejos internos duros y el aro de rim venían de
 * dibujarlo como bola de vidrio sobre fondo claro, y eran justo lo que hacía
 * aparecer el contorno marcado. */
.orb-host .wiwo-thinking-orb {
  border: 0;
  opacity: .88;
  mix-blend-mode: screen;
  filter: saturate(1.4) brightness(1.1);
  background:
    radial-gradient(circle at 30% 78%, var(--orb-primary), transparent 46%),
    conic-gradient(from 140deg, rgba(59, 255, 0, .5), rgba(255, 255, 255, .36), var(--orb-primary), rgba(66, 66, 255, .42), rgba(59, 255, 0, .48));
  box-shadow:
    0 0 176px rgba(66, 66, 255, .28),
    0 0 148px rgba(59, 255, 0, .21),
    0 0 84px rgba(255, 255, 255, .16);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  /* Sin cuerpo no hay contorno: el cuerpo se desvanece antes de llegar a su
     borde, así el orb termina en luz y no en un canto de esfera. */
  -webkit-mask: radial-gradient(circle at 50% 50%, #000 0%, rgba(0,0,0,.85) 32%, rgba(0,0,0,.4) 56%, transparent 78%);
  mask: radial-gradient(circle at 50% 50%, #000 0%, rgba(0,0,0,.85) 32%, rgba(0,0,0,.4) 56%, transparent 78%);
}


/* ============================================================
   ORB INLINE
   Hermano chico del orb volumétrico: una sola esfera de 12–32px para
   indicadores junto a texto, botones y estados de carga. No usa
   mix-blend-mode, así que no necesita fondo oscuro y sirve igual en la
   vista clara del participante y en la oscura del facilitador.
   Markup: renderInline() en public/js/orb.js.
   El estado se lee del mismo atributo que el orb grande, para que
   setOrbState() valga para los dos.
   ============================================================ */
.wiwo-orb {
  position: relative;
  display: inline-block;
  flex: none;
  width: 16px;
  height: 16px;
  vertical-align: middle;
  border-radius: 999px;
  background: linear-gradient(103deg, #3BFF00 0%, #4242FF 100%);
  box-shadow:
    0 0 14px -2px rgba(66, 66, 255, .55),
    inset 0 0 0 1px rgba(255, 255, 255, .22);
  animation:
    orb-i-breathe 2.4s ease-in-out infinite,
    orb-i-morph 7s ease-in-out infinite;
}
/* ::before = barrido de luz que gira; ::after = anillo que se expande.
   Ambos existen siempre y cada estado enciende el que le sirve. */
.wiwo-orb::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: conic-gradient(from 0deg,
    transparent 0deg, rgba(255, 255, 255, .6) 60deg, transparent 150deg);
  animation: orb-i-spin 2.8s linear infinite;
}
.wiwo-orb::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
  opacity: 0;
  pointer-events: none;
}

.wiwo-orb[data-thinking-state="idle"] {
  background: radial-gradient(circle at 38% 32%, #B8B8C4, #76767F);
  box-shadow: 0 0 10px -3px rgba(41, 41, 41, .3), inset 0 0 0 1px rgba(255, 255, 255, .16);
  animation: orb-i-breathe 3.8s ease-in-out infinite;
}
.wiwo-orb[data-thinking-state="idle"]::before { opacity: .3; animation-duration: 7s; }

.wiwo-orb[data-thinking-state="listening"] {
  background: radial-gradient(circle at 38% 32%, #C2B6FF, #8D7CFF);
  box-shadow: 0 0 16px -2px rgba(141, 124, 255, .6), inset 0 0 0 1px rgba(255, 255, 255, .26);
  animation: orb-i-bounce 1.2s cubic-bezier(0.34, 1.4, 0.64, 1) infinite;
}
.wiwo-orb[data-thinking-state="listening"]::before { opacity: 0; }
.wiwo-orb[data-thinking-state="listening"]::after {
  opacity: 1;
  box-shadow: 0 0 0 1.5px rgba(141, 124, 255, .7);
  animation: orb-i-ribbon 1.8s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

.wiwo-orb[data-thinking-state="generating"] {
  filter: saturate(1.25) brightness(1.12);
  animation: orb-i-breathe 1.5s ease-in-out infinite, orb-i-morph 4s ease-in-out infinite;
}
.wiwo-orb[data-thinking-state="generating"]::before { animation-duration: 1.4s; }
.wiwo-orb[data-thinking-state="generating"]::after {
  opacity: 1;
  box-shadow: 0 0 0 1.5px rgba(66, 66, 255, .5);
  animation: orb-i-emanate 1.6s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

.wiwo-orb[data-thinking-state="routing"] { animation: orb-i-breathe 2.6s ease-in-out infinite; }
.wiwo-orb[data-thinking-state="routing"]::before {
  background: conic-gradient(from 0deg,
    transparent 0deg, rgba(255, 255, 255, .8) 22deg, transparent 56deg,
    transparent 180deg, rgba(255, 255, 255, .55) 202deg, transparent 236deg);
  animation: orb-i-spin 1.4s linear infinite;
}
.wiwo-orb[data-thinking-state="routing"]::after {
  opacity: 1;
  box-shadow: 0 0 0 1px rgba(66, 66, 255, .38);
  animation: orb-i-emanate 2.2s linear infinite;
}

/* El éxito no se repite: corre una vez y se queda quieto y lima. */
.wiwo-orb[data-thinking-state="success"] {
  background: radial-gradient(circle at 38% 32%, #8AF84F, #3BFF00);
  box-shadow: 0 0 18px -2px rgba(59, 255, 0, .7), inset 0 0 0 1px rgba(255, 255, 255, .3);
  animation: orb-i-success .6s cubic-bezier(0.34, 1.4, 0.64, 1) 1 both;
}
.wiwo-orb[data-thinking-state="success"]::before { display: none; }
.wiwo-orb[data-thinking-state="success"]::after {
  opacity: 1;
  box-shadow: 0 0 0 1.5px rgba(59, 255, 0, .6);
  animation: orb-i-bloom .7s cubic-bezier(0.22, 1, 0.36, 1) 1 both;
}

.wiwo-orb[data-thinking-state="error"],
.wiwo-orb[data-thinking-state="retry"] {
  background: linear-gradient(135deg, #FF6F61 0%, #BA1A1A 100%);
  box-shadow: 0 0 14px -3px rgba(186, 26, 26, .55), inset 0 0 0 1px rgba(255, 255, 255, .2);
  animation: orb-i-contract 1.4s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}
.wiwo-orb[data-thinking-state="retry"] { filter: saturate(.8); }
.wiwo-orb[data-thinking-state="error"]::before,
.wiwo-orb[data-thinking-state="retry"]::before {
  background: linear-gradient(90deg, transparent 46%, rgba(255, 255, 255, .9) 50%, transparent 54%);
  transform: rotate(32deg);
  animation: none;
}
.wiwo-orb[data-thinking-state="error"]::after,
.wiwo-orb[data-thinking-state="retry"]::after { opacity: 0; }

@keyframes orb-i-spin { to { transform: rotate(360deg); } }
@keyframes orb-i-breathe {
  0%, 100% { transform: scale(1); filter: brightness(1) saturate(1); }
  50% { transform: scale(1.09); filter: brightness(1.12) saturate(1.15); }
}
@keyframes orb-i-morph {
  0%, 100% { border-radius: 50%; }
  33% { border-radius: 54% 46% 52% 48% / 48% 52% 48% 52%; }
  66% { border-radius: 46% 54% 48% 52% / 52% 46% 54% 48%; }
}
@keyframes orb-i-bounce {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-12%) scale(1.06); }
}
@keyframes orb-i-ribbon {
  0% { transform: scale(.75); opacity: 0; }
  35% { opacity: .85; }
  100% { transform: scale(1.55); opacity: 0; }
}
@keyframes orb-i-emanate {
  0% { transform: scale(.55); opacity: .6; }
  100% { transform: scale(1.75); opacity: 0; }
}
@keyframes orb-i-bloom {
  0% { transform: scale(.5); opacity: .8; }
  100% { transform: scale(2.1); opacity: 0; }
}
@keyframes orb-i-success {
  0% { transform: scale(.9); }
  45% { transform: scale(1.18); }
  100% { transform: scale(1); }
}
@keyframes orb-i-contract {
  0%, 100% { transform: scale(1); filter: saturate(1) brightness(1); }
  50% { transform: scale(.84); filter: saturate(1.25) brightness(.95); }
}

/* Igual que el orb grande: se congela, no se apaga. */
@media (prefers-reduced-motion: reduce) {
  .wiwo-orb,
  .wiwo-orb::before,
  .wiwo-orb::after {
    animation: none !important;
  }
}


/* En el facilitador la pantalla ya es oscura: la tarjeta sobraría y se leería
 * como un panel dentro de otro panel. El orb sangra directo sobre la slide. */
body.facilitador .orb-host .orb-stage {
  background: none;
  /* Sin tarjeta no hay dónde recortar: el recorte se vería como un corte
     recto sobre la luz. El orb se apaga solo, por su propio desvanecido. */
  overflow: visible;
}
/* El halo y el anillo del escenario vivían de estar recortados; sueltos sobre
   la slide se leen como un segundo orb fantasma. El resplandor lo pone el
   propio orb. */
body.facilitador .orb-host .orb-stage::before,
body.facilitador .orb-host .orb-stage::after {
  display: none;
}

/* ── Ground claro (participante / asistente) ────────────────────
 * La tarjeta del escenario ya da el fondo oscuro que el orb necesita para
 * sumar luz; sobre blanco solo hay que empujar un punto los halos, que son
 * los que en fondo oscuro aporta la propia página. */
body.participante .orb-host,
body.asistente .orb-host {
  --stage-blue-glow: rgba(66, 66, 255, 0.5);
  --stage-green-glow: rgba(59, 255, 0, 0.28);
}
