.leo-rig { width:100%; height:100%; overflow:visible; }
.leo-rig g { transform-box:view-box; }
.leo-body { transform-origin:200px 480px; animation:leo-breathe 4s ease-in-out infinite; }
.leo-head { transform-origin:200px 192px; animation:leo-nod 5s ease-in-out infinite; }
.leo-arm--left { transform-origin:159px 208px; animation:leo-rest 4s ease-in-out infinite; }
.leo-arm--right { transform-origin:241px 208px; animation:leo-rest 4s 1s ease-in-out infinite reverse; }
.leo-leg--left { transform-origin:181px 328px; }.leo-leg--right { transform-origin:220px 328px; }
.leo-eyes { transform:none; animation:none; }.leo-eyes--open { animation:leo-blink-open 4.6s infinite; }
.leo-eyes--closed { opacity:0; animation:leo-blink-closed 4.6s infinite; }
.leo-mouth { opacity:0; }
.leo-rig[data-mouth="smile"] .leo-mouth--smile,.leo-rig[data-mouth="open"] .leo-mouth--open,.leo-rig[data-mouth="round"] .leo-mouth--round { opacity:1; }
.leo-rig[data-mood="welcome"] .leo-arm--right { animation:leo-wave 2s ease both; }
.leo-rig[data-mood="talk"] .leo-arm--right { animation:leo-wave 2s ease-in-out infinite; }
.leo-rig[data-mood="talk"] .leo-head { animation:leo-nod 1.8s ease-in-out infinite; }
.leo-rig[data-mood="think"] .leo-head { transform:rotate(-5deg); animation:none; }
.leo-rig[data-mood="celebrate"] .leo-body { animation:leo-jump .85s ease both; }
.leo-rig[data-mood="celebrate"] .leo-arm--left { animation:leo-cheer-left .85s ease both; }
.leo-rig[data-mood="celebrate"] .leo-arm--right { animation:leo-cheer-right .85s ease both; }
.leo-rig[data-mood="celebrate"] .leo-leg--right { animation:leo-kick .85s ease both; }
.leo-rig[data-mood="celebrate"] .leo-mouth--smile { opacity:0; }.leo-rig[data-mood="celebrate"] .leo-mouth--open { opacity:1; }
@keyframes leo-breathe { 50% { transform:scale(1.012,.99); } }
@keyframes leo-nod { 30% { transform:rotate(-2deg); } 65% { transform:rotate(2deg); } }
@keyframes leo-rest { 50% { transform:rotate(3deg); } }
@keyframes leo-wave { 0%,100% { transform:rotate(-3deg); } 25%,65% { transform:rotate(-32deg); } 45%,80% { transform:rotate(-22deg); } }
@keyframes leo-blink-open { 0%,44%,49%,100% { opacity:1; } 45%,48% { opacity:0; } }
@keyframes leo-blink-closed { 0%,44%,49%,100% { opacity:0; } 45%,48% { opacity:1; } }
@keyframes leo-jump { 20% { transform:translateY(5px) scale(1.02,.98); } 50% { transform:translateY(-22px); } 80% { transform:translateY(2px); } }
@keyframes leo-cheer-left { 40%,65% { transform:rotate(28deg); } }
@keyframes leo-cheer-right { 40%,65% { transform:rotate(-32deg); } }
@keyframes leo-kick { 40%,65% { transform:rotate(-10deg); } }
@media(prefers-reduced-motion:reduce) { .leo-rig * { animation:none!important; }.leo-eyes--open { opacity:1; }.leo-eyes--closed { opacity:0; } }
