:root { --pop: cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes dot { 50% { opacity: .3; transform: translateY(-2px); } }
.bot { overflow: visible; }
.bot .all, .bot .bodyg { transform-box: view-box; transform-origin: 60px 108px; }
.bot .eyes { transform-box: fill-box; transform-origin: center; }
.bot .beams { opacity: 0; transform-box: view-box; transform-origin: 60px 21px; }
.bot .dome { fill: #f3fbf8; }
.bot .core { fill: #ffffff; opacity: .0; }
.bot .led { opacity: .25; transition: opacity .2s; }
.bot .dots { display: none; }
.bot:not(.o-vehicle) .bc, .bot:not(.o-vehicle) .beams { display: none; }
.bot:not(.o-dispatch) .hs { display: none; }
.bot .gog, .bot .gogw, .bot .aed { display: none; }
.bot.o-air .gog, .bot.o-responder .aed { display: inline; }
.bot:not(.o-vehicle).s-think .dots { display: inline; }
.bot:not(.o-vehicle).s-think .dots circle { animation: rise 1.2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.bot:not(.o-vehicle).s-think .dots circle:nth-child(2) { animation-delay: .2s; }
.bot:not(.o-vehicle).s-think .dots circle:nth-child(3) { animation-delay: .4s; }
.bot:not(.o-vehicle).s-think .led { animation: led 0.6s steps(2) infinite; }
.bot:not(.o-vehicle).s-answer .led { animation: led-once 2.6s infinite; }
@keyframes rise { 0%, 100% { transform: translateY(2px); opacity: .35; } 50% { transform: translateY(-3px); opacity: 1; } }
@keyframes led { 50% { opacity: .2; } }
@keyframes led-once { 0%, 70%, 86%, 100% { opacity: .25; } 76% { opacity: 1; } }
.bot .armL, .bot .armR { display: none; }
.bot .armX { transform-box: fill-box; transform-origin: 50% 0; transition: transform .35s var(--pop); }
.bot .armL { transform: rotate(26deg); }
.bot .armR { transform: rotate(-26deg); }
.bot .pencil { display: none; }
.bot.s-listen .armR { transform: rotate(-44deg); }
.bot.s-think .armR { transform: rotate(56deg); }
.bot.s-answer .armL { transform: rotate(40deg); }
.bot.s-answer .armR { transform: rotate(-40deg); }
.bot.s-received .armL { transform: rotate(60deg); }
.bot.s-received .armR { transform: rotate(-60deg); }
.bot.s-hello .armR { animation: waveR 1.4s ease-in-out infinite; }
.bot.s-trouble .armL { transform: rotate(10deg); }
.bot.s-trouble .armR { transform: rotate(-10deg); }
.bot.s-quiet .armL { transform: rotate(8deg); }
.bot.s-quiet .armR { transform: rotate(-8deg); }
.bot.s-curious .armR { transform: rotate(-128deg); }
.bot.s-celebrate .armL { animation: cheerL .9s ease-in-out infinite; }
.bot.s-celebrate .armR { animation: cheerR .9s ease-in-out infinite; }
.bot.s-gift .armL { transform: rotate(-38deg); }
.bot.s-gift .armR { transform: rotate(38deg); }
.bot.s-backoff .armL { transform: rotate(8deg); }
.bot.s-backoff .armR { transform: rotate(-8deg); }
.bot.s-sleepy .armL { transform: rotate(6deg); }
.bot.s-sleepy .armR { transform: rotate(-6deg); }
.bot.s-notes .armR { transform: rotate(30deg); }
@keyframes waveR { 0%, 100% { transform: rotate(-140deg); } 50% { transform: rotate(-112deg); } }
@keyframes cheerL { 0%, 100% { transform: rotate(160deg); } 50% { transform: rotate(142deg); } }
@keyframes cheerR { 0%, 100% { transform: rotate(-160deg); } 50% { transform: rotate(-142deg); } }
.bot .confetti, .bot .gift, .bot .notes, .bot .zz, .bot .cheer, .bot .m-open, .bot .sleep, .bot .m-zz { display: none; }
.s-curious .all { transform: rotate(-5deg) translateX(-2px); }
.s-curious .eyes { transform: translate(-4px, -3px); }
.s-curious .brl { transform: translateY(-4px) rotate(8deg); }
.bot.s-curious .m-smile { display: none; }
.bot.s-curious .m-o { display: inline; }
.bot.s-celebrate .eyes { display: none; }
.bot.s-celebrate .happy { display: inline; }
.bot.s-celebrate .m-smile { display: none; }
.bot.s-celebrate .m-open, .bot.s-hello .m-open { display: inline; }
.bot.s-hello .m-smile { display: none; }
.s-hello .bodyg { animation: bounce 2.4s infinite; }
.bot.s-hello .brows-n { transform: translateY(-3px); }
.s-celebrate .all { animation: hop 1.8s infinite; }
.s-celebrate .cheer { animation: cheer 0.9s ease-in-out infinite; transform-box: view-box; transform-origin: 60px 74px; }
@keyframes cheer { 0%, 100% { transform: rotate(0); } 50% { transform: scale(1.04, .97); } }
.s-celebrate .brows-n { transform: translateY(-3px); }
.s-celebrate .confetti { display: inline; }
.s-celebrate .confetti rect { animation: fall 1.6s ease-in infinite; transform-box: fill-box; transform-origin: center; }
.s-celebrate .confetti rect:nth-child(2n) { animation-delay: .3s; }
.s-celebrate .confetti rect:nth-child(3n) { animation-delay: .6s; }
.s-gift .gift { display: inline; }
.s-gift .brows-n { transform: translateY(-3px); }
.s-gift .eyes { transform: translate(3px, 2px); }
.s-gift .bodyg { animation: bounce 2.8s infinite; }
.s-backoff .all { transform: translate(8px, 8px) scale(.84); }
.s-backoff { opacity: .8; }
.s-backoff .eyes { transform: translate(4px, 4px); }
.s-backoff .brows-n { transform: translateY(2px); }
.bot.s-backoff .m-smile { display: none; }
.bot.s-backoff .m-flat { display: inline; }
.bot.s-sleepy .eyes { display: none; }
.bot.s-sleepy .sleep { display: inline; }
.bot.s-sleepy .all { transform: rotate(-7deg); }
.bot.s-sleepy .m-smile { display: none; }
.bot.s-sleepy .m-zz { display: inline; }
.s-sleepy .brows-n { transform: translateY(3px); }
.s-sleepy .bodyg { animation: breathe 5s ease-in-out infinite; }
.s-sleepy .zz { display: inline; }
.s-sleepy .zz path { animation: drift 3s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.s-sleepy .zz path:nth-child(2) { animation-delay: 1s; }
.s-sleepy .zz path:nth-child(3) { animation-delay: 2s; }
.s-sleepy .dome { fill: #5b6470; }
.s-notes .notes { display: inline; }
.s-notes .eyes { transform: translate(4px, 4px); }
.s-notes .led { opacity: 1; }
.s-notes .pencil { animation: scribble .5s ease-in-out infinite; transform-box: fill-box; transform-origin: bottom center; }
@keyframes fall { 0% { transform: translateY(-4px) rotate(0); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(16px) rotate(160deg); opacity: 0; } }
@keyframes drift { 0% { transform: translate(0, 4px); opacity: 0; } 40% { opacity: .9; } 100% { transform: translate(4px, -6px); opacity: 0; } }
@keyframes scribble { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg) translateX(-2px); } }
@keyframes toastIn { from { transform: scale(.85); opacity: 0; } }
.bot .brl, .bot .brr { transform-box: fill-box; transform-origin: center; }
.bot .tick, .bot .arm, .bot .brows, .bot .happy, .bot .half, .bot .m-o, .bot .m-flat { display: none; }
.s-idle .eyes { animation: blink 4.4s infinite; }
.s-idle .bodyg { animation: breathe 3.6s ease-in-out infinite; }
.s-listen .all { transform: rotate(-7deg); }
.s-listen .eyes { transform: translate(-3px, 1px) scale(1.08); animation: blink-l 5s infinite; }
.s-listen .brows-n { transform: translateY(-2.5px); }
.s-listen .led, .s-think .led { opacity: 1; }
.s-think .beams { opacity: 1; animation: spin 1.5s linear infinite; }
.s-think .core { opacity: .9; }
.s-think .eyes { transform: translate(3px, -3px); }
.s-think .brr { transform: translateY(-4px) rotate(-8deg); }
.s-think .brl { transform: translateY(1px) rotate(6deg); }
.s-think .m-smile { display: none; }
.s-think .m-o { display: inline; }
.s-think .bodyg { animation: sway 3s ease-in-out infinite; }
.s-answer .all { animation: hop 2.6s infinite; }
.s-answer .shadow { animation: shadow 2.6s infinite; transform-box: fill-box; transform-origin: center; }
.s-answer .dome { animation: flash 2.6s infinite; }
.s-answer .eyes { animation: blink 2.6s infinite; }
.s-received .eyes { display: none; }
.s-received .happy { display: inline; }
.s-received .brows-n, .s-hello .brows-n { transform: translateY(-3px); }
.s-received .tick { display: inline; animation: popin 2.8s var(--pop) infinite; transform-box: fill-box; transform-origin: center; }
.s-received .bodyg { animation: bounce 2.8s infinite; }
.s-hello .eyes { animation: blink 3s infinite; }
.s-hello .all { transform: rotate(3deg); }
.s-trouble .eyes { transform: translateY(2px); }
.s-trouble .brows { display: inline; }
.s-trouble .brows-n { display: none; }
.s-trouble .m-smile { display: none; }
.s-trouble .m-flat { display: inline; }
.s-trouble .dome { fill: #5b6470; }
.s-trouble .bodyg { animation: breathe 6s ease-in-out infinite; }
.s-quiet { filter: grayscale(1) brightness(.75); opacity: .6; }
.s-quiet .eyes { display: none; }
.s-quiet .half { display: inline; }
.s-quiet .m-smile { display: none; }
.s-quiet .m-flat { display: inline; }
.s-quiet .brows-n { transform: translateY(3px); }
.s-quiet .dome { fill: #3a414b; }
@keyframes blink { 0%, 93%, 100% { transform: scaleY(1); } 96% { transform: scaleY(.1); } }
@keyframes blink-l { 0%, 93%, 100% { transform: translate(-3px,1px) scale(1.08); } 96% { transform: translate(-3px,1px) scale(1.08,.1); } }
@keyframes breathe { 50% { transform: scale(1.025, .98); } }
@keyframes sway { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes hop {
  0%, 55%, 100% { transform: translateY(0) scale(1); }
  62% { transform: translateY(0) scale(1.07, .9); }
  74% { transform: translateY(-16px) scale(.95, 1.06); }
  86% { transform: translateY(0) scale(1.05, .94); }
  92% { transform: translateY(0) scale(1); }
}
@keyframes shadow { 0%, 62%, 92%, 100% { transform: scale(1); opacity: 1; } 74% { transform: scale(.7); opacity: .5; } }
@keyframes flash { 0%, 70%, 100% { fill: #f3fbf8; filter: none; } 76% { fill: #7fe6cb; filter: drop-shadow(0 0 6px #3bd4ae); } 84% { fill: #f3fbf8; filter: none; } }
@keyframes popin { 0% { transform: scale(0); } 12%, 85% { transform: scale(1); } 100% { transform: scale(1); } }
@keyframes bounce { 0%, 30%, 100% { transform: translateY(0); } 10% { transform: translateY(-6px); } 20% { transform: translateY(0) scale(1.03,.97); } }
@keyframes wave { 0%, 100% { transform: rotate(0); } 15%, 45% { transform: rotate(-28deg); } 30% { transform: rotate(-6deg); } 60% { transform: rotate(0); } }
.bot .blade { transform-box: fill-box; transform-origin: center; }
.bot.o-air.s-think .blade { animation: rotor .32s linear infinite; }
.bot.o-air.s-answer .blade, .bot.o-air.s-celebrate .blade { animation: rotor .5s linear 2; }
@keyframes rotor { 0% { transform: scaleX(1); } 50% { transform: scaleX(.12); } 100% { transform: scaleX(1); } }
.bot .shFlat { display: none; }
.bot.o-air .shFlat { display: inline; }
.bot .all, .bot .bodyg, .bot .eyes, .bot .brows-n, .bot .brl, .bot .brr { transition: transform .4s cubic-bezier(.3,.7,.3,1); }
.bot { transition: filter .4s ease, opacity .4s ease; }
@keyframes msgIn { from { opacity: 0; transform: translateY(10px) scale(.97); } }
@keyframes chipIn { from { opacity: 0; transform: translateY(6px); } }
@keyframes toastOut { to { transform: scale(.92); opacity: 0; } }
@keyframes dotIn { from { transform: scale(0); } }
@keyframes fadeIn { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .bot *, .bot { animation: none !important; } }