.gathering-dots[data-motion=drift] circle{--gathering-own-period:calc(var(--gathering-drift-period) * var(--gathering-drift-factor));animation:gathering-drift var(--gathering-own-period) ease-in-out infinite;animation-delay:calc(var(--gathering-drift-phase) * var(--gathering-own-period) * -1 - var(--gathering-clock,0s))}.gathering-dots[data-motion=murmuration]{--gathering-period:var(--gathering-murmuration-period)}.gathering-dots[data-motion=thinking]{--gathering-period:var(--gathering-thinking-period)}.gathering-dots:is([data-motion=murmuration],[data-motion=thinking]) circle{animation:gathering-radius var(--gathering-period) ease-in-out infinite;animation-delay:calc(var(--gathering-phase) * var(--gathering-period) * -1 - var(--gathering-clock,0s))}@keyframes gathering-drift{0%,to{r:calc(var(--gathering-rest) * var(--gathering-drift-low))}50%{r:calc(var(--gathering-rest) * var(--gathering-drift-high))}}@keyframes gathering-radius{0%,to{r:var(--gathering-size-0)}24%{r:var(--gathering-size-1)}49%{r:var(--gathering-size-3)}74%{r:var(--gathering-size-2)}}@media (prefers-reduced-motion:reduce){.gathering-dots circle{animation:none!important}}
