/* Hadi agents: motion. Blink when idle, float gently, bounce once when a task is done. */
.av { overflow: visible; }
.av .av-body { transform-box: fill-box; transform-origin: 50% 100%; }
.av .eye { transform-box: fill-box; transform-origin: center; animation: av-blink 5s infinite; }
.av.is-idle .av-body { animation: av-float 3.2s ease-in-out infinite; }
.av.is-happy .av-body { animation: av-hop 600ms cubic-bezier(.16, 1, .3, 1) 1; }
.av-hadi .eye { animation-delay: .4s; } .av-nora .eye { animation-delay: 1.1s; } .av-sami .eye { animation-delay: 2.3s; }
.av-zara .eye { animation-delay: .8s; } .av-tala .eye { animation-delay: 3.1s; } .av-rayan .eye { animation-delay: 1.7s; }
.av-maya .eye { animation-delay: 2.9s; } .av-omar .eye { animation-delay: .2s; } .av-iris .eye { animation-delay: 3.6s; } .av-layla .eye { animation-delay: 1.4s; }
@keyframes av-blink { 0%, 94%, 100% { transform: scaleY(1); } 96% { transform: scaleY(.1); } }
@keyframes av-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes av-hop { 0% { transform: translateY(0) scale(1, 1); } 30% { transform: translateY(0) scale(1.08, .9); } 60% { transform: translateY(-6px) scale(.95, 1.06); } 100% { transform: translateY(0) scale(1, 1); } }
@media (prefers-reduced-motion: reduce) { .av .eye, .av .av-body { animation: none !important; } }
