/* Orbe de Dalia (decisión D26). Copia exacta de los estilos de dalia/public/brand/orbe.js (commit af8a3e3).
   No se comparte: si Dalia cambia el orbe, se vuelve a copiar. Estados por clase en .orbe: reposo, .duerme (tras un rato
   sin actividad), .escuchando, .pensando, .escribiendo y .sugerencia (número en data-n). El halo se ajusta con --orbe-halo.
   El toque místico de la web va en yoeco.css. */
.orbe{position:relative;display:inline-block;width:100%;height:100%;--orbe-halo:#DDF2EA}
.orbe-svg{width:100%;height:100%;display:block;overflow:visible}
.o-halo{fill:var(--orbe-halo)}.o-r1{fill:none;stroke:#149D80;stroke-width:1.2}.o-r2{fill:none;stroke:#0B6F5B;stroke-width:1;stroke-dasharray:3 6}
.o-arco{fill:none;stroke:#BCEB77;stroke-width:2.4;stroke-linecap:round}.o-n1{fill:#0B6F5B}.o-n2{fill:#149D80}
.o-brote{fill:none;stroke:#F2F6F4;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.o-vida{fill:#BCEB77}
.o-onda{fill:none;stroke:#149D80;stroke-width:1.5;opacity:0}
.o-g1,.o-g2,.o-resp,.o-onda{transform-origin:0 0;transform-box:view-box}
.o-g1{animation:o-giro 14s linear infinite}.o-g2{animation:o-giro 22s linear infinite reverse}.o-resp{animation:o-respira 4s ease-in-out infinite}
.o-puntos{opacity:0}.o-puntos circle{fill:#F2F6F4;transform-origin:0 0;transform-box:fill-box}
.orbe.pensando .o-g1{animation-duration:2.4s}.orbe.pensando .o-g2{animation-duration:5s}.orbe.pensando .o-n2{animation:o-late 1.2s ease-in-out infinite}
.orbe.escribiendo .o-brote,.orbe.escribiendo .o-chispa{opacity:0}.orbe.escribiendo .o-puntos{opacity:1}
.orbe.escribiendo .o-puntos circle{animation:o-salta 1s ease-in-out infinite}.orbe.escribiendo .o-puntos circle:nth-child(2){animation-delay:.15s}.orbe.escribiendo .o-puntos circle:nth-child(3){animation-delay:.3s}
.orbe.escuchando .o-resp{animation:o-voz .9s ease-in-out infinite}
.o-brote,.o-chispa{transform-origin:0 14px;transform-box:view-box}
.o-zz{opacity:0;transition:opacity .6s}.o-z{fill:#F2F6F4;font:700 16px "Spline Sans",system-ui,sans-serif}.o-z2{font-size:12px}
.o-halo,.o-arco,.o-r1,.o-brote{transition:opacity .8s,transform .8s}
.orbe.duerme .o-resp{animation:o-suspira 6s ease-in-out infinite}.orbe.duerme .o-g1{animation-duration:80s}.orbe.duerme .o-g2{animation-duration:120s}
.orbe.duerme .o-arco,.orbe.duerme .o-r1{opacity:.45}.orbe.duerme .o-halo{opacity:.75}.orbe.duerme .o-brote{transform:rotate(14deg) scale(.92)}.orbe.duerme .o-chispa{opacity:.4}
.orbe.duerme .o-zz{opacity:1}.orbe.duerme .o-z{animation:o-zeta 3s ease-in-out infinite}.orbe.duerme .o-z2{animation-delay:1.5s}
.orbe.escuchando .o-onda{animation:o-onda 1.8s ease-out infinite}.orbe.escuchando .o-onda2{animation-delay:.9s}
.orbe.sugerencia::after{content:attr(data-n);position:absolute;top:2%;right:2%;min-width:34%;height:34%;padding:0 4%;box-sizing:border-box;border-radius:999px;background:#BCEB77;color:#0E1E24;
  font:700 11px/1 "Spline Sans",system-ui,sans-serif;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff;animation:o-late 1.6s ease-in-out infinite}
@keyframes o-giro{to{transform:rotate(360deg)}}@keyframes o-respira{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes o-onda{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.55);opacity:0}}@keyframes o-late{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes o-salta{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}@keyframes o-voz{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes o-suspira{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@keyframes o-zeta{0%{opacity:0;transform:translate(0,4px)}20%{opacity:1}75%{opacity:.9}100%{opacity:0;transform:translate(6px,-10px)}}
@media (prefers-reduced-motion:reduce){.o-g1,.o-g2,.o-resp,.o-n2,.o-brote,.o-chispa,.o-puntos circle,.o-z,.orbe.escuchando .o-onda,.orbe.sugerencia::after{animation:none!important}}
