.ai-orb-root{--orb-color:var(--brand-primary,var(--primary));--orb-off-color:color-mix(in oklch, var(--muted-foreground) 32%, transparent);--orb-play:running}.ai-orb-root:hover{--orb-play:paused}.ai-orb-grid{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:8%;display:grid;position:absolute;inset:0}.ai-orb-cell{display:block}.ai-orb-dot{background:var(--orb-off-color);transform-origin:50%;animation-play-state:var(--orb-play);border-radius:50%;transition:transform .26s cubic-bezier(.32,.72,.34,1.12),background-color .24s ease-out;display:block;transform:scale(.45)}.ai-orb-dot[data-on]{background:var(--orb-color);transform:scale(1)}.ai-orb-root[data-state=idle] .ai-orb-dot[data-on]{animation:3.4s ease-in-out infinite ai-orb-breathe}.ai-orb-root[data-state=idle] .ai-orb-dot[data-on][data-pos="5"],.ai-orb-root[data-state=idle] .ai-orb-dot[data-on][data-pos="6"]{animation:3.4s ease-in-out infinite ai-orb-breathe,5s ease-in-out infinite ai-orb-blink}.ai-orb-root[data-state=idle] .ai-orb-dot[data-pos="8"],.ai-orb-root[data-state=done] .ai-orb-dot[data-pos="8"]{border-radius:70% 25% 25% 35%}.ai-orb-root[data-state=idle] .ai-orb-dot[data-pos="11"],.ai-orb-root[data-state=done] .ai-orb-dot[data-pos="11"]{border-radius:25% 70% 35% 25%}.ai-orb-root[data-state=idle] .ai-orb-dot[data-pos="13"],.ai-orb-root[data-state=done] .ai-orb-dot[data-pos="13"]{border-radius:50% 40% 25% 25%}.ai-orb-root[data-state=idle] .ai-orb-dot[data-pos="14"],.ai-orb-root[data-state=done] .ai-orb-dot[data-pos="14"]{border-radius:40% 50% 25% 25%}@keyframes ai-orb-breathe{0%,to{transform:scale(1)}50%{transform:scale(.88)}}@keyframes ai-orb-blink{0%,88%,to{transform:scaleY(1)}91%,95%{transform:scaleY(.18)}}.ai-orb-root[data-state=thinking] .ai-orb-dot[data-on]{animation:1.6s ease-in-out infinite ai-orb-cascade;animation-delay:calc(var(--orb-diag) * .18s)}@keyframes ai-orb-cascade{0%,to{opacity:.4;transform:scale(.55)}18%{opacity:1;transform:scale(1)}45%{opacity:.45;transform:scale(.55)}}.ai-orb-root[data-state=tool] .ai-orb-dot[data-on]{animation:1.4s ease-in-out infinite ai-orb-cascade;animation-delay:calc(var(--orb-col) * .22s)}.ai-orb-root[data-state=done] .ai-orb-dot[data-on]{animation:.55s ease-out both ai-orb-pop}@keyframes ai-orb-pop{0%{transform:scale(.5)}55%{transform:scale(1.25)}to{transform:scale(1)}}.ai-orb-root[data-state=error]{animation:.5s ease-in-out both ai-orb-shake}@keyframes ai-orb-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8%)}40%,80%{transform:translate(8%)}}@media (prefers-reduced-motion:reduce){.ai-orb-dot,.ai-orb-root{animation:none!important}}
