@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .m-float, .m-body, .m-shadow, .m-eyes, .m-arm, .m-eyes, .m-dots circle, .m-ring { animation: none !important; }
  .hero.intro .hero-copy { animation: none !important; }
  .m-thumb, .m-lines, .m-screenglow, .m-zzz text, .m-eye, .mascot[data-bounce] .m-enter, .bubble-line.swap-in { animation: none !important; }
  .cloud-bubble[class*="fx-"], .tool-tile, .tool-chip, .message.enter, .message.enter .bubble, .agent-step, .agent-step .as-ico { animation: none !important; }
}
/* Actos de la nube: cada frase combina cuerpo + brazos + cara + efecto (ui/cloud-acts.js). Duran ~2,6 s. */
.m-fx { pointer-events: none; }
.m-fx text { opacity: 0; font: 700 13px "Segoe UI Emoji", "Segoe UI Symbol", sans-serif; fill: #fde68a; }
.mascot.mascot[data-ab] .m-body { animation-duration: 1.3s; animation-timing-function: var(--ease); animation-iteration-count: 2; animation-fill-mode: both; }
.mascot.mascot[data-ab="hop"] .m-body { animation-name: a-hop; }
.mascot.mascot[data-ab="spin"] .m-body { animation-name: a-spin; animation-iteration-count: 1; }
.mascot.mascot[data-ab="shake"] .m-body { animation-name: a-shake; animation-duration: .5s; animation-iteration-count: 4; }
.mascot.mascot[data-ab="tilt-l"] .m-body { animation-name: a-tilt-l; }
.mascot.mascot[data-ab="tilt-r"] .m-body { animation-name: a-tilt-r; }
.mascot.mascot[data-ab="squash"] .m-body { animation-name: a-squash; animation-duration: .9s; }
.mascot.mascot[data-ab="rise"] .m-body { animation-name: a-rise; animation-duration: 2.6s; animation-iteration-count: 1; }
.mascot.mascot[data-ab="sink"] .m-body { animation-name: a-sink; animation-duration: 2.6s; animation-iteration-count: 1; }
.mascot.mascot[data-ab="sway"] .m-body { animation-name: a-sway; }
.mascot.mascot[data-ab="zoom"] .m-body { animation-name: a-zoom; animation-duration: .8s; }
.mascot.mascot[data-ab="wobble"] .m-body { animation-name: a-wobble; animation-duration: .65s; animation-iteration-count: 3; }
.mascot.mascot[data-ab="nod"] .m-body { animation-name: a-nod; animation-duration: .6s; animation-iteration-count: 3; }
.mascot.mascot[data-aa] .m-arm { animation-duration: .55s; animation-iteration-count: 4; animation-direction: alternate; animation-timing-function: ease-in-out; animation-fill-mode: both; }
.mascot.mascot[data-aa="wave-l"] .m-arm.l { animation-name: a-wave-l; }
.mascot.mascot[data-aa="wave-r"] .m-arm.r { animation-name: a-wave-r; }
.mascot.mascot[data-aa="cheer"] .m-arm.l { animation-name: m-cheer-l; } .mascot.mascot[data-aa="cheer"] .m-arm.r { animation-name: m-cheer-r; }
.mascot.mascot[data-aa="hug"] .m-arm.l { animation-name: a-hug-l; } .mascot.mascot[data-aa="hug"] .m-arm.r { animation-name: a-hug-r; }
.mascot.mascot[data-aa="point"] .m-arm.r { animation-name: a-point; animation-iteration-count: 2; }
.mascot.mascot[data-aa="facepalm"] .m-arm.r { animation-name: a-facepalm; animation-iteration-count: 2; }
.mascot.mascot[data-aa="clap"] .m-arm.l { animation-name: a-clap-l; animation-duration: .25s; animation-iteration-count: 8; }
.mascot.mascot[data-aa="clap"] .m-arm.r { animation-name: a-clap-r; animation-duration: .25s; animation-iteration-count: 8; }
.mascot.mascot[data-aa="shrug"] .m-arm.l { animation-name: a-shrug-l; animation-iteration-count: 2; } .mascot.mascot[data-aa="shrug"] .m-arm.r { animation-name: a-shrug-r; animation-iteration-count: 2; }
.mascot.mascot[data-aa="stretch"] .m-arm.l { animation-name: a-stretch-l; animation-duration: 1.3s; animation-iteration-count: 2; }
.mascot.mascot[data-aa="stretch"] .m-arm.r { animation-name: a-stretch-r; animation-duration: 1.3s; animation-iteration-count: 2; }
.mascot.mascot[data-aa="phone"] .m-phone { opacity: 1; transform: none; } .mascot.mascot[data-aa="phone"] .m-arm { opacity: 0; animation: none; }
.mascot.mascot[data-aa="rest"] .m-arm { animation-name: a-rest; animation-duration: 1.3s; animation-iteration-count: 2; }

.mascot.mascot[data-af="happy"] .m-eyes, .mascot.mascot[data-af="laugh"] .m-eyes { opacity: 0; }
.mascot.mascot[data-af="happy"] .m-happy, .mascot.mascot[data-af="laugh"] .m-happy { opacity: 1; }
.mascot.mascot[data-af="happy"] .m-mouth, .mascot.mascot[data-af="love"] .m-mouth { d: path("M66 82 Q76 93 86 82"); }
.mascot.mascot[data-af="laugh"] .m-mouth { fill: #4c1d95; animation: m-talk .22s ease-in-out infinite alternate; }
.mascot.mascot[data-af="wink"] .m-eyes .m-eye:last-child { animation: m-wink 1.3s ease-in-out 2; }
.mascot.mascot[data-af="wink"] .m-mouth { d: path("M68 83 Q78 90 85 81"); }
.mascot.mascot[data-af="surprised"] .m-pupil { transform: scale(1.3); }
.mascot.mascot[data-af="surprised"] .m-mouth { d: path("M73 84 Q76 92 79 84 Q76 80 73 84"); fill: #4c1d95; }
.mascot.mascot[data-af="sleepy"] .m-eyes, .mascot.mascot[data-af="yawn"] .m-eyes { opacity: 0; }
.mascot.mascot[data-af="sleepy"] .m-sleepeye, .mascot.mascot[data-af="yawn"] .m-sleepeye { opacity: 1; }
.mascot.mascot[data-af="sleepy"] .m-mouth { d: path("M72 86 Q76 87 80 86"); }
.mascot.mascot[data-af="yawn"] .m-mouth { fill: #4c1d95; animation: a-yawn 1.3s ease-in-out 2; }
.mascot.mascot[data-af="cool"] .m-brows { opacity: 1; transform: translateY(5px) scaleY(.4); }
.mascot.mascot[data-af="cool"] .m-mouth { d: path("M70 85 Q78 88 84 83"); }
.mascot.mascot[data-af="worried"] .m-brows { opacity: 1; transform: scaleX(-1); }
.mascot.mascot[data-af="worried"] .m-mouth { d: path("M69 88 Q76 83 83 88"); }
.mascot.mascot[data-af="love"] .m-pupil { fill: #e11d48; transform: scale(1.2); }
.mascot.mascot[data-af="love"] .m-cheek, .mascot.mascot[data-af="blush"] .m-cheek { opacity: 1; fill: #fb7185; animation: pulse .65s ease-in-out 4; }
.mascot.mascot[data-af="blush"] .m-mouth { d: path("M71 85 Q76 88 81 85"); }
.mascot.mascot[data-af="neutral"] .m-mouth { d: path("M70 86 Q76 86 82 86"); }

.mascot.mascot[data-ax]:not([data-ax="none"]) .m-fx text { animation: a-fx 1.3s ease-out 2 both; }
.mascot.mascot[data-ax] .m-fx text.f2 { animation-delay: .3s; } .mascot.mascot[data-ax] .m-fx text.f3 { animation-delay: .6s; }
.mascot.mascot[data-ax="rain"] .m-fx text, .mascot.mascot[data-ax="snow"] .m-fx text { animation-name: a-fall; }
.mascot.mascot[data-ax="wind"] .m-fx text { animation-name: a-blow; }
.mascot.mascot[data-ax="bolt"] .m-fx text { animation-name: a-flash; }
.mascot[data-ax="rain"] .m-fx text { fill: #7dd3fc; }
.mascot[data-ax="snow"] .m-fx text, .mascot[data-ax="fog"] .m-fx text, .mascot[data-ax="wind"] .m-fx text { fill: #e0f2fe; }
.mascot[data-ax="hearts"] .m-fx text { fill: #fb7185; }
.mascot[data-ax="zzz"] .m-fx text, .mascot[data-ax="notes"] .m-fx text { fill: #a5b4fc; }

@keyframes a-hop { 0%, 100% { transform: translateY(0); } 35% { transform: translateY(-10px) scale(.97, 1.04); } 60% { transform: translateY(0) scale(1.05, .95); } }
@keyframes a-spin { to { transform: rotate(360deg); } }
@keyframes a-shake { 25% { transform: translateX(-3px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(2deg); } }
@keyframes a-tilt-l { 50% { transform: rotate(-9deg); } }
@keyframes a-tilt-r { 50% { transform: rotate(9deg); } }
@keyframes a-squash { 40% { transform: scale(1.12, .86); } 70% { transform: scale(.95, 1.06); } }
@keyframes a-rise { 30%, 70% { transform: translateY(-12px); } }
@keyframes a-sink { 30%, 70% { transform: translateY(7px) scale(1.04, .94); } }
@keyframes a-sway { 25% { transform: translateX(-5px) rotate(-4deg); } 75% { transform: translateX(5px) rotate(4deg); } }
@keyframes a-zoom { 45% { transform: scale(1.14); } }
@keyframes a-wobble { 25% { transform: skewX(-6deg); } 75% { transform: skewX(6deg); } }
@keyframes a-nod { 50% { transform: translateY(3px) rotate(2deg); } }
@keyframes a-wave-l { from { transform: rotate(95deg); } to { transform: rotate(125deg); } }
@keyframes a-wave-r { from { transform: rotate(-95deg); } to { transform: rotate(-125deg); } }
@keyframes a-hug-l { to { transform: rotate(-40deg); } }
@keyframes a-hug-r { to { transform: rotate(40deg); } }
@keyframes a-point { to { transform: rotate(-70deg); } }
@keyframes a-facepalm { to { transform: rotate(-150deg) translateX(-6px); } }
@keyframes a-clap-l { to { transform: rotate(-55deg); } }
@keyframes a-clap-r { to { transform: rotate(55deg); } }
@keyframes a-shrug-l { to { transform: rotate(45deg); } }
@keyframes a-shrug-r { to { transform: rotate(-45deg); } }
@keyframes a-stretch-l { 50% { transform: rotate(150deg); } }
@keyframes a-stretch-r { 50% { transform: rotate(-150deg); } }
@keyframes a-rest { 50% { transform: rotate(-12deg) translateY(2px); } }
@keyframes a-yawn { 0%, 100% { d: path("M72 85 Q76 86 80 85 Z"); } 50% { d: path("M70 82 Q76 98 82 82 Z"); } }
@keyframes a-fx { 0% { opacity: 0; transform: translateY(6px) scale(.6); } 25%, 70% { opacity: 1; } 100% { opacity: 0; transform: translateY(-14px) scale(1.15); } }
@keyframes a-fall { 0% { opacity: 0; transform: translateY(-6px); } 25%, 70% { opacity: 1; } 100% { opacity: 0; transform: translateY(26px); } }
@keyframes a-blow { 0% { opacity: 0; transform: translateX(-12px); } 30%, 70% { opacity: 1; } 100% { opacity: 0; transform: translateX(16px); } }
@keyframes a-flash { 0%, 100% { opacity: 0; } 15%, 35% { opacity: 1; } 25% { opacity: .2; } }
