.robot-wrap{perspective:800px}.robot{animation:robot-float 3.8s ease-in-out infinite;transform-origin:50% 100%}.robot::before,.robot::after{content:"";position:absolute;top:118px;width:34px;height:82px;border:5px solid var(--ink);background:#f8fbff;border-radius:20px;z-index:-1}.robot::before{left:-34px;transform:rotate(10deg)}.robot::after{right:-34px;transform:rotate(-10deg)}.antenna i{animation:antenna-pulse 1.8s ease-in-out infinite}.eye{animation:eye-blink 5s infinite;transition:transform .2s,border-radius .2s}.mouth{transition:all .2s}.robot.happy{animation:happy-bounce .55s ease}.robot.happy .eye{border-radius:50% 50% 20% 20%;transform:scaleY(.7)}.robot.happy .mouth{height:15px;width:38px;border-radius:0 0 30px 30px}.robot.curious .eye:first-child{transform:translateY(-5px)}.robot.curious .eye:last-child{transform:scale(.75)}.robot.listening{animation:listening-lean .9s ease-in-out infinite alternate}.robot.speaking{animation:speaking-bob .32s ease-in-out infinite alternate}.robot.speaking::before{animation:left-wave .55s ease-in-out infinite alternate}.robot.speaking::after{animation:right-wave .7s ease-in-out infinite alternate}.cards button:hover span{animation:icon-pop .45s ease}.talk span{display:inline-block;animation:talk-dot 1.2s ease-in-out infinite}@keyframes robot-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}@keyframes antenna-pulse{0%,100%{box-shadow:0 0 0 8px #ff775f26}50%{box-shadow:0 0 0 13px #ff775f18,0 0 24px #ff775f}}@keyframes eye-blink{0%,45%,49%,100%{transform:scaleY(1)}47%{transform:scaleY(.08)}}@keyframes happy-bounce{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-24px) scale(1.04)}}@keyframes listening-lean{to{transform:rotate(3deg) translateY(-6px)}}@keyframes speaking-bob{to{transform:translateY(-5px) scale(1.01)}}@keyframes left-wave{to{transform:rotate(28deg) translateY(-8px)}}@keyframes right-wave{to{transform:rotate(-28deg) translateY(-8px)}}@keyframes icon-pop{50%{transform:scale(1.18) rotate(-5deg)}}@keyframes talk-dot{50%{transform:scale(1.25);opacity:.65}}@media(prefers-reduced-motion:reduce){.robot,.antenna i,.eye,.talk span{animation:none!important}.cards button{transition:none}}
