/* IKATU Charm · personalidad transversal accesible (R21.1) */
:root{--charm:#317b68;--charm-soft:#e5f3ec;--charm-pop:#c9ef78;--charm-ink:#153b32;--charm-radius:38% 48% 42% 46%;--charm-shadow:0 14px 38px rgba(26,63,55,.16)}
body[data-ikatu-app]{isolation:isolate}
body[data-ikatu-app]::before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--charm-pop) 12%,transparent) 0 8rem,transparent 19rem),radial-gradient(circle at 4% 88%,color-mix(in srgb,var(--charm) 7%,transparent) 0 7rem,transparent 18rem)}
body[data-ikatu-app="mercadito"]{--charm:#27704f;--charm-soft:#e4f4e9;--charm-pop:#ffd978;--charm-ink:#183d2d;--charm-radius:44% 38% 46% 40%}
body[data-ikatu-app="eats"]{--charm:#e66b4d;--charm-soft:#fff0e8;--charm-pop:#ffd269;--charm-ink:#6b2c1f;--charm-radius:50% 50% 38% 38%}
body[data-ikatu-app="chef"]{--charm:#6c4ee3;--charm-soft:#eee9ff;--charm-pop:#ffb9d4;--charm-ink:#30206f;--charm-radius:42% 49% 40% 50%}
body[data-ikatu-app="campo"]{--charm:#356447;--charm-soft:#e7f1e7;--charm-pop:#e5c86a;--charm-ink:#203e2c;--charm-radius:50% 35% 50% 35%}
body[data-ikatu-app="vive"]{--charm:#244b72;--charm-soft:#e5eef7;--charm-pop:#ffba83;--charm-ink:#19334e;--charm-radius:46% 46% 35% 35%}
body[data-ikatu-app="salud"]{--charm:#0b706d;--charm-soft:#e0f2f0;--charm-pop:#9edfd5;--charm-ink:#084b49;--charm-radius:34% 34% 34% 34%}
body[data-ikatu-app="resuelve"]{--charm:#6b59a8;--charm-soft:#eeeafa;--charm-pop:#f4ca68;--charm-ink:#392d67;--charm-radius:42% 50% 45% 38%}
body[data-ikatu-app="cuida"]{--charm:#176b73;--charm-soft:#dff2f1;--charm-pop:#f2c86b;--charm-ink:#104b50;--charm-radius:50% 45% 50% 45%}
body[data-ikatu-app="envios"]{--charm:#985c3e;--charm-soft:#f7eae2;--charm-pop:#7fd6cf;--charm-ink:#563322;--charm-radius:50% 35% 50% 35%}
body[data-ikatu-app="ganar"]{--charm:#238565;--charm-soft:#e2f4ed;--charm-pop:#ffd66d;--charm-ink:#15513d;--charm-radius:40% 50% 40% 50%}
body[data-ikatu-app="negocios"]{--charm:#6b5844;--charm-soft:#f2ece4;--charm-pop:#b9ee45;--charm-ink:#403326;--charm-radius:32% 42% 32% 42%}
body[data-ikatu-app="produccion"]{--charm:#886334;--charm-soft:#f5eee2;--charm-pop:#e7b65d;--charm-ink:#4c381f;--charm-radius:45% 35% 45% 35%}
body[data-ikatu-app="operacion"]{--charm:#6b5363;--charm-soft:#efe8ed;--charm-pop:#a8ced1;--charm-ink:#42313c;--charm-radius:31%}
body[data-ikatu-app="estilo"]{--charm:#c55b8d;--charm-soft:#f9e7f0;--charm-pop:#ffd191;--charm-ink:#6b2c49;--charm-radius:48% 38% 46% 40%}
body[data-ikatu-app="activa"]{--charm:#df7041;--charm-soft:#fae9e1;--charm-pop:#b8e57a;--charm-ink:#743720;--charm-radius:50% 38% 50% 38%}
body[data-ikatu-app="protege"]{--charm:#366b91;--charm-soft:#e5eef5;--charm-pop:#9fd5d0;--charm-ink:#21445e;--charm-radius:38% 38% 45% 45%}
body[data-ikatu-app="empresas"]{--charm:#4d6072;--charm-soft:#e9eef2;--charm-pop:#f0c96c;--charm-ink:#2f3b47;--charm-radius:32% 42% 32% 42%}
body[data-ikatu-app="club"]{--charm:#bd831c;--charm-soft:#faf0d9;--charm-pop:#f3a8b9;--charm-ink:#64460f;--charm-radius:45% 50% 42% 48%}
.ikatu-charm-tag{width:max-content;max-width:100%;margin:0 0 10px;padding:6px 10px;display:inline-flex;align-items:center;gap:7px;border:1px solid color-mix(in srgb,var(--charm) 16%,transparent);border-radius:999px;background:color-mix(in srgb,var(--charm-soft) 88%,white);color:var(--charm-ink);box-shadow:0 5px 18px color-mix(in srgb,var(--charm) 7%,transparent);font-size:9px;font-weight:850;line-height:1.2;letter-spacing:.04em}
.ikatu-charm-tag::before{content:"";width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--charm);box-shadow:8px -2px 0 -2px var(--charm-pop)}
.ikatu-charm-surface{position:relative;isolation:isolate}
.ikatu-charm-surface::before,.ikatu-charm-surface::after{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%;opacity:.5}
.ikatu-charm-surface::before{width:72px;height:72px;right:5%;top:7%;border:1px solid color-mix(in srgb,var(--charm-pop) 55%,transparent);background:color-mix(in srgb,var(--charm-pop) 13%,transparent)}
.ikatu-charm-surface::after{width:18px;height:18px;right:13%;top:4%;background:color-mix(in srgb,var(--charm-pop) 48%,transparent);box-shadow:28px 34px 0 -4px color-mix(in srgb,var(--charm-soft) 62%,transparent)}
.ikatu-charm-dock{position:fixed;z-index:38;right:18px;bottom:max(18px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;gap:9px;pointer-events:none}
.ikatu-charm-note{width:min(228px,calc(100vw - 94px));padding:12px 14px;border:1px solid color-mix(in srgb,var(--charm) 15%,transparent);border-radius:18px 18px 5px 18px;background:color-mix(in srgb,white 91%,var(--charm-soft));color:var(--charm-ink);box-shadow:var(--charm-shadow);opacity:0;visibility:hidden;transform:translateY(6px) scale(.98);transform-origin:bottom right;transition:opacity .18s ease,transform .18s ease,visibility .18s}
.ikatu-charm-note strong,.ikatu-charm-note small{display:block}.ikatu-charm-note strong{font-size:11px;line-height:1.25}.ikatu-charm-note small{margin-top:4px;color:color-mix(in srgb,var(--charm-ink) 66%,transparent);font-size:9px;line-height:1.35}.ikatu-charm-dock.is-open .ikatu-charm-note{opacity:1;visibility:visible;transform:none}
.ikatu-charm-button{position:relative;width:56px;height:56px;flex:0 0 auto;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:var(--charm-radius);background:linear-gradient(145deg,color-mix(in srgb,var(--charm) 83%,white),var(--charm));box-shadow:var(--charm-shadow),inset 0 1px 1px rgba(255,255,255,.42);pointer-events:auto;color:#fff;transition:transform .18s ease,border-radius .25s ease,box-shadow .18s ease}
.ikatu-charm-button:hover{transform:translateY(-2px);box-shadow:0 18px 42px color-mix(in srgb,var(--charm) 24%,transparent)}.ikatu-charm-button:active{transform:translateY(1px) scale(.97)}.ikatu-charm-button:focus-visible{outline:3px solid var(--charm-pop);outline-offset:3px}
.ikatu-charm-face{position:absolute;inset:0}.ikatu-charm-face::before{content:"";position:absolute;left:17px;top:22px;width:5px;height:6px;border-radius:50%;background:#fff;box-shadow:17px 0 0 #fff}.ikatu-charm-face::after{content:"";position:absolute;left:24px;top:34px;width:10px;height:5px;border:2px solid rgba(255,255,255,.9);border-top:0;border-left-color:transparent;border-right-color:transparent;border-radius:0 0 10px 10px}
.ikatu-charm-sigil{position:absolute;right:-3px;top:-5px;width:23px;height:23px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--charm-pop);color:var(--charm-ink);font-size:11px;font-weight:950;box-shadow:0 5px 12px rgba(0,0,0,.12)}
.ikatu-charm-button.is-happy{animation:ikatu-happy .55s cubic-bezier(.2,.9,.35,1.2)}.ikatu-charm-button.is-happy .ikatu-charm-face::before{height:3px;border-radius:50% 50% 0 0}.ikatu-charm-button.is-happy .ikatu-charm-face::after{height:7px;background:rgba(255,255,255,.16)}
@keyframes ikatu-happy{0%,100%{transform:none}38%{transform:translateY(-7px) rotate(-3deg)}68%{transform:translateY(-2px) rotate(3deg)}}
@media(hover:hover){body[data-ikatu-app] :is(.app-card,.product-card,.store-card,.menu-card,.recipe-card,.field-card,.listing-card,.request-card,.provider-card,.order-card,.panel):not(.ikatu-no-lift){transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}body[data-ikatu-app] :is(.app-card,.product-card,.store-card,.menu-card,.recipe-card,.field-card,.listing-card,.request-card,.provider-card,.order-card):not(.ikatu-no-lift):hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--charm) 24%,transparent);box-shadow:0 16px 36px color-mix(in srgb,var(--charm) 10%,transparent)}}
@media(max-width:760px){.ikatu-charm-dock{right:12px;bottom:calc(max(8px,env(safe-area-inset-bottom)) + 73px)}.ikatu-charm-button{width:50px;height:50px}.ikatu-charm-face::before{left:15px;top:20px;box-shadow:15px 0 0 #fff}.ikatu-charm-face::after{left:21px;top:31px}.ikatu-charm-sigil{width:21px;height:21px}.ikatu-charm-surface::before{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){.ikatu-charm-button,.ikatu-charm-note,body[data-ikatu-app] :is(.app-card,.product-card,.store-card,.menu-card,.recipe-card,.field-card,.listing-card,.request-card,.provider-card,.order-card,.panel){animation:none!important;transition:none!important}.ikatu-charm-button:hover{transform:none!important}}
@media(forced-colors:active){.ikatu-charm-button,.ikatu-charm-note,.ikatu-charm-tag{border:2px solid CanvasText}.ikatu-charm-button{background:ButtonFace;color:ButtonText}.ikatu-charm-face::before{background:ButtonText;box-shadow:17px 0 0 ButtonText}.ikatu-charm-face::after{border-color:ButtonText}}

.ikatu-conversation-bridge{position:fixed;z-index:52;left:50%;bottom:max(14px,env(safe-area-inset-bottom));width:min(680px,calc(100vw - 180px));min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 11px 9px 15px;border:1px solid color-mix(in srgb,var(--charm) 32%,#d7dfdc);border-radius:20px;background:color-mix(in srgb,#fff 92%,var(--charm-soft));color:var(--charm-ink);box-shadow:0 16px 50px rgba(14,39,32,.2);backdrop-filter:blur(20px);transform:translateX(-50%);font-family:system-ui}.ikatu-conversation-bridge small,.ikatu-conversation-bridge strong,.ikatu-conversation-bridge span{display:block}.ikatu-conversation-bridge small{color:var(--charm);font-size:7px;font-weight:950;letter-spacing:.1em}.ikatu-conversation-bridge strong{margin:2px 0;font-size:10px}.ikatu-conversation-bridge span{color:color-mix(in srgb,var(--charm-ink) 60%,transparent);font-size:8px}.ikatu-conversation-bridge span.is-error{color:#a33f34}.ikatu-conversation-bridge>div:last-child{display:flex;align-items:center;gap:6px}.ikatu-conversation-bridge button,.ikatu-conversation-bridge a{min-height:36px;display:inline-grid;place-items:center;padding:0 11px;border-radius:11px;font-size:8px;font-weight:900;text-decoration:none;cursor:pointer}.ikatu-conversation-bridge button{border:1px solid var(--charm);background:var(--charm);color:#fff}.ikatu-conversation-bridge a{border:1px solid color-mix(in srgb,var(--charm) 22%,#d9e2df);background:#fff;color:var(--charm-ink)}
.ikatu-conversation-dialog{width:min(620px,calc(100vw - 24px));max-height:min(88vh,760px);margin:auto;padding:0;border:0;border-radius:25px;background:#fbfdfc;color:#17352e;box-shadow:0 35px 100px rgba(5,28,22,.4);font-family:system-ui}.ikatu-conversation-dialog::backdrop{background:rgba(5,24,19,.62);backdrop-filter:blur(8px)}.ikatu-conversation-shell>header{display:flex;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid #dce5e2;background:radial-gradient(circle at 85% 10%,rgba(235,184,75,.22),transparent 30%),#f2f8f5}.ikatu-conversation-shell header small{color:var(--charm);font-size:8px;font-weight:950;letter-spacing:.1em}.ikatu-conversation-shell header h2{margin:4px 0;font-size:23px;letter-spacing:-.03em}.ikatu-conversation-shell header p{margin:0;color:#62756d;font-size:9px}.ikatu-conversation-shell header button{width:38px;height:38px;border:1px solid #d6e1dd;border-radius:12px;background:#fff;color:#61716b;font-size:22px}.ikatu-conversation-fields{max-height:52vh;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:18px 22px}.ikatu-conversation-fields label{display:grid;gap:5px}.ikatu-conversation-fields label.is-wide,.ikatu-conversation-fields>p{grid-column:1/-1}.ikatu-conversation-fields span{font-size:9px;font-weight:850;text-transform:capitalize}.ikatu-conversation-fields input,.ikatu-conversation-fields textarea{width:100%;box-sizing:border-box;padding:11px;border:1px solid #d3dfdb;border-radius:12px;background:#fff;color:#17352e;font:500 11px/1.4 system-ui}.ikatu-conversation-fields textarea{min-height:92px;resize:vertical}.ikatu-conversation-fields>p{margin:0;padding:10px;border-radius:11px;background:#eef6f3;color:#5d7068;font-size:8px;line-height:1.45}.ikatu-conversation-shell>footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:13px 22px 18px}.ikatu-conversation-shell>footer a,.ikatu-conversation-shell>footer button{min-height:40px;display:inline-grid;place-items:center;padding:0 14px;border-radius:12px;font:850 9px system-ui;text-decoration:none}.ikatu-conversation-shell>footer a{color:#596c64}.ikatu-conversation-shell>footer button{border:1px solid var(--charm);background:var(--charm);color:#fff;cursor:pointer}
@media(max-width:760px){.ikatu-conversation-bridge{bottom:calc(max(8px,env(safe-area-inset-bottom)) + 68px);width:calc(100vw - 24px);min-height:54px;padding:8px 9px 8px 12px}.ikatu-conversation-bridge strong{font-size:9px}.ikatu-conversation-bridge>div:last-child{flex-direction:column;align-items:stretch}.ikatu-conversation-bridge button,.ikatu-conversation-bridge a{min-height:29px;padding:0 8px;font-size:7px}.ikatu-conversation-fields{grid-template-columns:1fr}.ikatu-conversation-fields label.is-wide,.ikatu-conversation-fields>p{grid-column:auto}}

/* Gato retro IKATU · mascota visual local, sin IA ni recopilación */
.ikatu-cat-toggle{margin-top:10px;min-height:44px;width:100%;padding:10px 12px;border:1px solid currentColor;border-radius:10px;background:transparent;color:var(--charm);font:750 12px/1.3 system-ui;cursor:pointer}.ikatu-cat-toggle:focus-visible{outline:3px solid var(--charm-pop);outline-offset:3px}.ikatu-cat-habitat{position:fixed;z-index:42;left:0;top:0;width:92px;height:78px;pointer-events:none;transition:opacity .2s ease,visibility .2s}.ikatu-cat-habitat.is-hidden{opacity:0;visibility:hidden}.ikatu-retro-cat{position:absolute;left:5px;bottom:0;width:78px;height:64px;pointer-events:auto;cursor:grab;touch-action:none;user-select:none;filter:drop-shadow(0 5px 4px rgba(30,18,12,.2));transform-origin:50% 80%;outline:none}.ikatu-retro-cat:focus-visible{outline:3px solid var(--charm-pop);outline-offset:5px;border-radius:24px}.ikatu-cat-shadow{position:absolute;left:15px;bottom:2px;width:54px;height:10px;border-radius:50%;background:rgba(31,23,18,.18);filter:blur(2px)}.ikatu-cat-body{position:absolute;left:19px;bottom:13px;width:48px;height:32px;border:3px solid #3b2920;border-radius:23px 22px 15px 18px;background:#b87947;box-shadow:inset 0 -8px 0 rgba(101,55,30,.14),inset 9px 0 0 rgba(255,211,148,.16)}.ikatu-cat-body>i{position:absolute;left:19px;top:0;width:4px;height:12px;background:#704224;box-shadow:9px 1px 0 #704224;transform:skewX(-12deg)}.ikatu-cat-head{position:absolute;z-index:3;left:8px;bottom:22px;width:38px;height:35px;border:3px solid #3b2920;border-radius:17px 17px 15px 15px;background:#c98750;box-shadow:inset 0 -6px 0 rgba(114,62,32,.12)}.ikatu-cat-head .ear{position:absolute;z-index:-1;top:-11px;width:15px;height:17px;border:3px solid #3b2920;background:#b87947;transform:rotate(45deg);border-radius:3px 9px 2px 8px}.ikatu-cat-head .ear::after{content:"";position:absolute;inset:4px;border-radius:2px;background:#df8c82}.ikatu-cat-head .ear.one{left:0}.ikatu-cat-head .ear.two{right:0;transform:rotate(45deg) scale(-1)}.ikatu-cat-head .eye{position:absolute;top:14px;width:5px;height:6px;border-radius:50%;background:#211a16;box-shadow:inset 1px 0 #fff}.ikatu-cat-head .eye.one{left:9px}.ikatu-cat-head .eye.two{right:9px}.ikatu-cat-head .muzzle{position:absolute;left:15px;top:22px;width:7px;height:5px;border-radius:50% 50% 65% 65%;background:#f0b59c}.ikatu-cat-head .muzzle::before{content:"";position:absolute;left:2px;top:-2px;width:4px;height:3px;border-radius:50%;background:#593326}.ikatu-cat-head .muzzle::after{content:"";position:absolute;left:-11px;top:1px;width:10px;height:1px;background:#51372c;box-shadow:19px 0 #51372c,1px 4px #51372c,18px 4px #51372c}.ikatu-cat-tail{position:absolute;z-index:-1;right:1px;bottom:18px;width:31px;height:18px;border:5px solid #3b2920;border-left:0;border-bottom:0;border-radius:0 24px 0 0;transform-origin:left bottom}.ikatu-cat-tail::after{content:"";position:absolute;inset:3px -2px -2px 2px;border:6px solid #a66538;border-left:0;border-bottom:0;border-radius:0 18px 0 0}.ikatu-cat-paw{position:absolute;z-index:4;bottom:8px;width:17px;height:11px;border:3px solid #3b2920;border-radius:9px;background:#d99b65}.ikatu-cat-paw.one{left:17px}.ikatu-cat-paw.two{left:46px}.ikatu-cat-zzz{position:absolute;left:9px;top:-7px;color:#7b5bc1;font:950 10px/1 monospace;letter-spacing:2px;opacity:0;transform:translateY(5px)}.ikatu-cat-bubble{position:absolute;left:-34px;bottom:70px;min-width:55px;max-width:130px;padding:7px 9px;border:2px solid #3b2920;border-radius:12px 12px 3px 12px;background:#fffbe8;color:#3b2920;box-shadow:3px 3px 0 rgba(59,41,32,.18);font:850 8px/1.3 system-ui;text-align:center;opacity:0;visibility:hidden;transform:translateY(5px);transition:.16s}.ikatu-cat-bubble.is-visible{opacity:1;visibility:visible;transform:none}.ikatu-cat-more{position:absolute;z-index:7;right:0;top:-6px;width:25px;height:20px;padding:0;border:2px solid #3b2920;border-radius:9px;background:var(--charm-pop,#edbd55);color:#3b2920;pointer-events:auto;font:950 8px/1 monospace;cursor:pointer}.ikatu-cat-menu{position:absolute;z-index:8;right:-4px;bottom:68px;width:118px;padding:5px;display:grid;gap:3px;border:2px solid #3b2920;border-radius:12px;background:#fffbe8;box-shadow:4px 4px 0 rgba(59,41,32,.2);pointer-events:auto}.ikatu-cat-menu[hidden]{display:none}.ikatu-cat-menu button{min-height:29px;padding:0 7px;border:0;border-radius:7px;background:transparent;color:#3b2920;text-align:left;font:800 8px system-ui;cursor:pointer}.ikatu-cat-menu button:hover,.ikatu-cat-menu button:focus-visible{background:#f4deb0;outline:0}.ikatu-cat-habitat.faces-left .ikatu-retro-cat{scale:-1 1}.ikatu-cat-habitat.faces-left .ikatu-cat-more,.ikatu-cat-habitat.faces-left .ikatu-cat-bubble,.ikatu-cat-habitat.faces-left .ikatu-cat-menu{scale:-1 1}.ikatu-cat-habitat.is-walking .ikatu-cat-paw.one{animation:ikatu-cat-step .34s infinite alternate}.ikatu-cat-habitat.is-walking .ikatu-cat-paw.two{animation:ikatu-cat-step .34s .17s infinite alternate}.ikatu-cat-habitat.is-walking .ikatu-cat-tail{animation:ikatu-cat-tail .65s ease-in-out infinite alternate}.ikatu-cat-habitat.is-held .ikatu-retro-cat{cursor:grabbing}.ikatu-cat-habitat.is-held .ikatu-cat-paw{transform:translateY(5px)}.ikatu-cat-habitat.is-held .ikatu-cat-tail{transform:rotate(18deg)}.ikatu-cat-habitat.is-petted .ikatu-cat-head{animation:ikatu-cat-pet .55s ease}.ikatu-cat-habitat.is-petted .ikatu-cat-tail{animation:ikatu-cat-happy .25s ease-in-out infinite alternate}.ikatu-cat-habitat.is-sleeping .ikatu-retro-cat{transform:rotate(-4deg) translateY(5px)}.ikatu-cat-habitat.is-sleeping .ikatu-cat-head{transform:translate(16px,8px) rotate(9deg)}.ikatu-cat-habitat.is-sleeping .eye{height:2px;top:17px;border-radius:3px;box-shadow:none}.ikatu-cat-habitat.is-sleeping .ikatu-cat-zzz{opacity:1;animation:ikatu-cat-zzz 1.6s ease-in-out infinite}.ikatu-cat-habitat.is-trick-spin .ikatu-retro-cat{animation:ikatu-cat-spin .9s cubic-bezier(.22,.8,.3,1)}.ikatu-cat-habitat.is-trick-jump .ikatu-retro-cat{animation:ikatu-cat-jump .85s cubic-bezier(.2,.8,.3,1)}
@keyframes ikatu-cat-step{to{transform:translateY(-4px)}}@keyframes ikatu-cat-tail{to{transform:rotate(12deg)}}@keyframes ikatu-cat-pet{50%{transform:rotate(-7deg) translateY(2px)}}@keyframes ikatu-cat-happy{to{transform:rotate(19deg)}}@keyframes ikatu-cat-zzz{50%{opacity:.35;transform:translate(-5px,-7px)}}@keyframes ikatu-cat-spin{45%{transform:translateY(-35px) rotate(190deg)}100%{transform:rotate(360deg)}}@keyframes ikatu-cat-jump{35%{transform:translateY(-45px) scale(1.05,.95)}65%{transform:translateY(-30px) rotate(-12deg)}100%{transform:none}}
@media(max-width:760px){.ikatu-cat-habitat{z-index:41;scale:.88}.ikatu-cat-more{top:0}.staff-crm-mode .ikatu-cat-habitat{display:none}}
@media(prefers-reduced-motion:reduce){.ikatu-cat-habitat *{animation:none!important;transition:none!important}.ikatu-cat-habitat.is-sleeping .ikatu-cat-zzz{opacity:1}}

/* Gato natural IKATU R33 · anatomía SVG articulada y lenguaje corporal */
.cat-v2.ikatu-cat-habitat{width:154px;height:120px;--cat-fur:#ad6e3f;--cat-fur-light:#dea06a;--cat-ink:#3c2920;--cat-pink:#dc8c82;--cat-look-x:0px;--cat-look-y:0px;will-change:transform}
.ikatu-natural-cat{position:absolute;left:4px;bottom:0;width:146px;height:108px;pointer-events:auto;cursor:grab;touch-action:none;user-select:none;filter:drop-shadow(0 6px 5px rgba(39,24,16,.2));outline:none;transform-origin:50% 88%}
.ikatu-natural-cat:focus-visible{outline:3px solid var(--charm-pop);outline-offset:2px;border-radius:42%}
.ikatu-natural-cat svg{width:100%;height:100%;overflow:visible;transform-origin:50% 70%;transition:transform .18s ease}
.cat-v2.faces-left .ikatu-natural-cat svg{transform:scaleX(-1)}
.cat-v2 svg :is(path,ellipse,circle){vector-effect:non-scaling-stroke}
.cat-v2 .cat-fur{fill:var(--cat-fur);stroke:var(--cat-ink);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.cat-v2 .cat-fur-light{fill:var(--cat-fur-light);stroke:var(--cat-ink);stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round}
.cat-v2-shadow{fill:rgba(46,30,20,.17);filter:blur(2px);transform-origin:center;transition:transform .18s ease,opacity .18s ease}
.cat-v2-animal,.cat-v2-head,.cat-v2-neck,.cat-v2-hind,.cat-v2-front-legs,.cat-v2-leg,.cat-v2-tail,.cat-v2-tail-outline{transform-box:fill-box;transform-origin:center;will-change:transform}
.cat-v2-tail,.cat-v2-tail-outline{fill:none;stroke-linecap:round}.cat-v2-tail-outline{stroke:var(--cat-ink);stroke-width:13}.cat-v2-tail{stroke:var(--cat-fur);stroke-width:8}
.cat-v2-mask{fill:rgba(111,60,33,.42)}
.cat-v2-ear-inner{fill:var(--cat-pink);stroke:var(--cat-ink);stroke-width:1.3;stroke-linejoin:round;transform-box:fill-box;transform-origin:bottom center}
.cat-v2-eye{fill:#fff5d9;stroke:var(--cat-ink);stroke-width:1.5;transform-box:fill-box;transform-origin:center;transition:transform .12s ease}
.cat-v2-pupil{fill:#251b17;transform:translate(var(--cat-look-x),var(--cat-look-y));transition:transform .08s linear}
.cat-v2-muzzle{fill:#efb99c}.cat-v2-nose{fill:#693b31;stroke:var(--cat-ink);stroke-width:1}.cat-v2-mouth,.cat-v2-whiskers,.cat-v2-stripes{fill:none;stroke:var(--cat-ink);stroke-width:1.6;stroke-linecap:round}.cat-v2-stripes{stroke:#754525;stroke-width:3}
.cat-v2-heart{position:absolute;z-index:5;left:30px;top:8px;color:#df5e72;font:950 15px/1 system-ui;opacity:0;filter:drop-shadow(0 1px #fff);pointer-events:none}.cat-v2 .ikatu-cat-zzz{left:30px;top:0;font-size:12px}
.cat-v2 .ikatu-cat-more{right:3px;top:2px}.cat-v2 .ikatu-cat-menu{right:2px;bottom:106px;width:128px}.cat-v2 .ikatu-cat-bubble{left:5px;bottom:104px;min-width:65px;max-width:136px}

/* Microconductas: hasta quieto respira, parpadea y escucha. */
.cat-v2:not([data-cat-state="sleep"]):not([data-cat-state="held"]) .cat-v2-body{animation:cat-v2-breathe 3.8s ease-in-out infinite}
.cat-v2:not([data-cat-state="sleep"]) .cat-v2-eye{animation:cat-v2-blink 5.8s ease-in-out infinite}
.cat-v2-ear-alert .cat-v2-ear.one,.cat-v2[data-cat-state="observe"] .cat-v2-ear.one{animation:cat-v2-ear-left .55s ease-in-out}
.cat-v2-ear-alert .cat-v2-ear.two,.cat-v2[data-cat-state="observe"] .cat-v2-ear.two{animation:cat-v2-ear-right .55s ease-in-out}
.cat-v2[data-cat-state="observe"] .cat-v2-head{transform:rotate(-5deg) translateY(-2px)}
.cat-v2[data-cat-state="observe"] .cat-v2-eye{transform:scale(1.08)}

.cat-v2[data-cat-state="walk"] .cat-v2-animal{animation:cat-v2-walk-body .54s ease-in-out infinite}
.cat-v2[data-cat-state="walk"] .cat-v2-head{animation:cat-v2-head-counter .54s ease-in-out infinite}
.cat-v2[data-cat-state="walk"] .cat-v2-leg.one{animation:cat-v2-step-a .54s ease-in-out infinite}
.cat-v2[data-cat-state="walk"] .cat-v2-leg.two{animation:cat-v2-step-b .54s ease-in-out infinite}
.cat-v2[data-cat-state="walk"] .cat-v2-back-leg{animation:cat-v2-step-b .54s ease-in-out infinite;transform-box:fill-box;transform-origin:top center}
.cat-v2[data-cat-state="walk"] :is(.cat-v2-tail,.cat-v2-tail-outline){animation:cat-v2-tail-sway 1.08s ease-in-out infinite}

.cat-v2[data-cat-state="stalk"] .cat-v2-animal{transform:translateY(10px) scaleX(1.06);transform-origin:70% 85%;animation:cat-v2-stalk .72s ease-in-out infinite}
.cat-v2[data-cat-state="stalk"] .cat-v2-head{transform:translate(4px,5px) rotate(-4deg)}
.cat-v2[data-cat-state="stalk"] :is(.cat-v2-tail,.cat-v2-tail-outline){transform:translateY(14px) rotate(10deg)}
.cat-v2[data-cat-state="stalk"] .cat-v2-pupil{transform:translate(var(--cat-look-x),var(--cat-look-y)) scaleY(1.5)}
.cat-v2[data-cat-state="pounce"] .cat-v2-animal,.cat-v2[data-cat-state="fall"] .cat-v2-animal{transform:translateY(-5px) scaleX(1.12) rotate(-3deg)}
.cat-v2[data-cat-state="pounce"] .cat-v2-front-legs,.cat-v2[data-cat-state="fall"] .cat-v2-front-legs{transform:translate(-13px,-4px) rotate(61deg)}
.cat-v2[data-cat-state="pounce"] :is(.cat-v2-tail,.cat-v2-tail-outline),.cat-v2[data-cat-state="fall"] :is(.cat-v2-tail,.cat-v2-tail-outline){transform:rotate(-19deg) scaleX(1.12)}
.cat-v2[data-cat-state="land"] .cat-v2-animal{animation:cat-v2-land .36s cubic-bezier(.2,.9,.3,1)}
.cat-v2[data-cat-state="land"] .cat-v2-shadow{animation:cat-v2-shadow-land .36s ease}

.cat-v2[data-cat-state="sit"] .cat-v2-body{transform:rotate(-10deg) translate(5px,4px) scaleX(.9)}
.cat-v2[data-cat-state="sit"] .cat-v2-hind{transform:translate(-8px,1px) scaleX(1.08)}
.cat-v2[data-cat-state="sit"] .cat-v2-front-legs{transform:translate(-4px,0)}
.cat-v2[data-cat-state="sit"] .cat-v2-head{transform:translate(3px,-3px) rotate(3deg)}
.cat-v2[data-cat-state="sit"] :is(.cat-v2-tail,.cat-v2-tail-outline){animation:cat-v2-tail-tip 2.2s ease-in-out infinite}

.cat-v2[data-cat-state="groom"] .cat-v2-head{animation:cat-v2-groom-head .65s ease-in-out infinite}
.cat-v2[data-cat-state="groom"] .cat-v2-leg.one{transform:translate(-8px,-20px) rotate(-48deg)}
.cat-v2[data-cat-state="groom"] .cat-v2-leg.two{transform:translate(2px,0)}
.cat-v2[data-cat-state="groom"] .cat-v2-body{transform:rotate(-8deg) translateY(4px)}
.cat-v2[data-cat-state="stretch"] .cat-v2-animal{animation:cat-v2-stretch 1.6s cubic-bezier(.25,.8,.35,1) both}
.cat-v2[data-cat-state="stretch"] .cat-v2-front-legs{transform:translate(-18px,5px) rotate(23deg)}
.cat-v2[data-cat-state="stretch"] :is(.cat-v2-tail,.cat-v2-tail-outline){transform:rotate(-42deg) translateY(-5px)}
.cat-v2[data-cat-state="knead"] .cat-v2-leg.one{animation:cat-v2-knead .42s ease-in-out infinite alternate}
.cat-v2[data-cat-state="knead"] .cat-v2-leg.two{animation:cat-v2-knead .42s .42s ease-in-out infinite alternate}
.cat-v2[data-cat-state="knead"] .cat-v2-head{transform:translateY(2px) rotate(-3deg)}

.cat-v2[data-cat-state="sleep"] .cat-v2-animal{transform:translate(10px,11px) rotate(4deg) scale(.94,.88);animation:cat-v2-sleep-breathe 3.4s ease-in-out infinite}
.cat-v2[data-cat-state="sleep"] .cat-v2-head{transform:translate(43px,20px) rotate(18deg)}
.cat-v2[data-cat-state="sleep"] .cat-v2-front-legs{transform:translate(24px,-1px) rotate(-12deg)}
.cat-v2[data-cat-state="sleep"] :is(.cat-v2-tail,.cat-v2-tail-outline){transform:translate(-20px,11px) rotate(52deg) scale(.9)}
.cat-v2[data-cat-state="sleep"] .cat-v2-eye{transform:scaleY(.12);animation:none}
.cat-v2[data-cat-state="sleep"] .cat-v2-pupil{opacity:0}.cat-v2[data-cat-state="sleep"] .ikatu-cat-zzz{opacity:1;animation:cat-v2-zzz 2.2s ease-in-out infinite}
.cat-v2[data-cat-state="wake"] .cat-v2-head{animation:cat-v2-wake 1.35s ease-in-out}

.cat-v2[data-cat-state="held"] .ikatu-natural-cat{cursor:grabbing}
.cat-v2[data-cat-state="held"] .cat-v2-animal{transform:rotate(3deg) translateY(-5px) scaleY(1.04)}
.cat-v2[data-cat-state="held"] .cat-v2-front-legs{transform:translateY(12px) rotate(-5deg)}
.cat-v2[data-cat-state="held"] .cat-v2-hind{transform:translateY(9px)}
.cat-v2[data-cat-state="held"] :is(.cat-v2-tail,.cat-v2-tail-outline){transform:translateY(17px) rotate(15deg)}
.cat-v2[data-cat-state="held"] .cat-v2-eye{transform:scale(1.12)}
.cat-v2[data-cat-state="pet"] .cat-v2-head{animation:cat-v2-nuzzle .7s ease-in-out}
.cat-v2[data-cat-state="pet"] :is(.cat-v2-tail,.cat-v2-tail-outline){animation:cat-v2-happy-tail .28s ease-in-out infinite alternate}
.cat-v2[data-cat-state="pet"] .cat-v2-heart{animation:cat-v2-heart .9s ease-out}
.cat-v2[data-cat-state="trick-roll"] .ikatu-natural-cat svg{animation:cat-v2-roll .95s cubic-bezier(.25,.8,.28,1)}
.cat-v2[data-cat-state="trick-paw"] .cat-v2-leg.one{animation:cat-v2-paw 1.2s ease-in-out}
.cat-v2[data-cat-state="trick-paw"] .cat-v2-head{transform:rotate(-7deg) translateY(-3px)}

@keyframes cat-v2-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.025) translateY(-1px)}}
@keyframes cat-v2-blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.08)}}
@keyframes cat-v2-ear-left{35%{transform:rotate(-13deg)}65%{transform:rotate(5deg)}}
@keyframes cat-v2-ear-right{35%{transform:rotate(14deg)}65%{transform:rotate(-4deg)}}
@keyframes cat-v2-walk-body{0%,100%{transform:translateY(0) rotate(.5deg)}50%{transform:translateY(-3px) rotate(-.5deg)}}
@keyframes cat-v2-head-counter{0%,100%{transform:translateY(-1px) rotate(-2deg)}50%{transform:translateY(1px) rotate(2deg)}}
@keyframes cat-v2-step-a{0%,100%{transform:rotate(12deg) translateY(-2px)}50%{transform:rotate(-12deg) translateY(1px)}}
@keyframes cat-v2-step-b{0%,100%{transform:rotate(-11deg) translateY(1px)}50%{transform:rotate(12deg) translateY(-2px)}}
@keyframes cat-v2-tail-sway{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(12deg)}}
@keyframes cat-v2-stalk{0%,100%{transform:translateY(10px) scaleX(1.05)}50%{transform:translateY(8px) scaleX(1.075)}}
@keyframes cat-v2-land{0%{transform:translateY(-10px) scale(1.08,.92)}45%{transform:translateY(7px) scale(1.12,.82)}100%{transform:none}}
@keyframes cat-v2-shadow-land{0%{transform:scale(.62);opacity:.1}55%{transform:scale(1.1);opacity:.25}100%{transform:none}}
@keyframes cat-v2-tail-tip{0%,72%,100%{transform:rotate(0)}82%{transform:rotate(11deg)}91%{transform:rotate(-5deg)}}
@keyframes cat-v2-groom-head{0%,100%{transform:translate(5px,3px) rotate(-9deg)}50%{transform:translate(-2px,9px) rotate(-20deg)}}
@keyframes cat-v2-stretch{0%{transform:none}35%,72%{transform:translateY(7px) scale(1.1,.86) rotate(-2deg)}100%{transform:none}}
@keyframes cat-v2-knead{to{transform:translateY(5px) scaleY(.92)}}
@keyframes cat-v2-sleep-breathe{0%,100%{transform:translate(10px,11px) rotate(4deg) scale(.94,.88)}50%{transform:translate(10px,9px) rotate(4deg) scale(.96,.9)}}
@keyframes cat-v2-zzz{0%,100%{opacity:0;transform:translate(0,5px) scale(.8)}35%{opacity:1}75%{opacity:.25;transform:translate(-8px,-10px) scale(1.15)}}
@keyframes cat-v2-wake{0%{transform:translate(40px,18px) rotate(15deg)}65%{transform:translate(0,-5px) rotate(-8deg)}100%{transform:none}}
@keyframes cat-v2-nuzzle{0%,100%{transform:none}35%{transform:translate(-5px,2px) rotate(-10deg)}70%{transform:translate(4px,-2px) rotate(6deg)}}
@keyframes cat-v2-happy-tail{to{transform:rotate(18deg) translateY(-4px)}}
@keyframes cat-v2-heart{0%{opacity:0;transform:translateY(9px) scale(.6)}35%{opacity:1}100%{opacity:0;transform:translate(-6px,-17px) scale(1.25)}}
@keyframes cat-v2-roll{0%{transform:translateY(0) rotate(0)}45%{transform:translateY(-30px) rotate(190deg) scale(.96)}100%{transform:translateY(0) rotate(360deg)}}
@keyframes cat-v2-paw{0%,100%{transform:none}28%,75%{transform:translate(-9px,-27px) rotate(-58deg)}}
@media(max-width:760px){.cat-v2.ikatu-cat-habitat{scale:.78;transform-origin:bottom left}}
@media(prefers-reduced-motion:reduce){.cat-v2[data-cat-state] .cat-v2-animal{transform:none}.cat-v2[data-cat-state="sleep"] .cat-v2-eye{transform:scaleY(.12)}}
@media(forced-colors:active){.cat-v2 svg :is(path,ellipse,circle){forced-color-adjust:auto}.cat-v2 .cat-fur,.cat-v2 .cat-fur-light{fill:Canvas;stroke:CanvasText}.cat-v2 .cat-v2-eye{fill:Canvas}.cat-v2 .cat-v2-pupil{fill:CanvasText}}

/* La mascota es opcional en escritorio y no participa de la UI móvil. */
.ikatu-cat-hide{position:absolute;z-index:12;right:0;top:-2px;width:30px;height:30px;padding:0;display:grid;place-items:center;border:2px solid #3b2920;border-radius:50%;background:#fffbe8;color:#3b2920;box-shadow:2px 3px 0 rgba(59,41,32,.2);pointer-events:auto;font:950 18px/1 system-ui;cursor:pointer}.ikatu-cat-hide:hover{background:#f4deb0}.ikatu-cat-hide:focus-visible{outline:3px solid var(--charm-pop);outline-offset:2px}
@media(max-width:760px){.ikatu-charm-dock,.ikatu-cat-habitat,.cat-v2.ikatu-cat-habitat{display:none!important}}
