/* Forma y movimientos de Mascota Chatbot Interactiva.html; sólo el acceso al chat. */
.sgp-asistente-acceso{position:fixed;right:1.5rem;bottom:1.5rem;z-index:1020;display:flex;flex-direction:column;align-items:center;gap:1.2rem;padding:.5rem;text-decoration:none;isolation:isolate;}
.sgp-asistente-acceso[data-arrastre-activo]{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;}
.sgp-asistente-acceso.sgp-orbe-arrastrando{cursor:grabbing;}
/* El globo de diálogo (pedido del usuario: en vez de «Asistente», frases cortas según el rol; diseño de
   Gemini). Escondido por defecto; `mascota.js` le pone `-visible` unos segundos y lo corre con
   `--globo-corrimiento` si no entra en la pantalla, o lo baja (`-abajo`) si la mascota está arriba. */
.sgp-orbe-etiqueta{position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translateX(calc(-50% + var(--globo-corrimiento,0px))) translateY(.4rem) scale(.9);transform-origin:center bottom;opacity:0;visibility:hidden;pointer-events:none;max-width:12rem;width:max-content;white-space:normal;text-align:center;font-size:.78rem;line-height:1.35;padding:.45rem .8rem;background:var(--superficie);color:var(--texto);border:1px solid var(--borde-control);border-radius:1rem;box-shadow:0 .25rem .75rem color-mix(in srgb,var(--sup-oscura) 15%,transparent);transition:opacity .2s ease-out,transform .2s ease-out,visibility .2s;z-index:2;}
.sgp-orbe-etiqueta-visible{opacity:1;visibility:visible;transform:translateX(calc(-50% + var(--globo-corrimiento,0px))) translateY(0) scale(1);transition:opacity .25s ease-out,transform .25s cubic-bezier(.2,1.25,.4,1);}
.sgp-orbe-etiqueta::after{content:'';position:absolute;left:calc(50% - var(--globo-corrimiento,0px));bottom:-.3rem;width:.55rem;height:.55rem;background:var(--superficie);border-right:1px solid var(--borde-control);border-bottom:1px solid var(--borde-control);transform:translateX(-50%) rotate(45deg);}
.sgp-orbe-etiqueta-abajo{bottom:auto;top:calc(100% + .5rem);transform-origin:center top;}
.sgp-orbe-etiqueta-abajo::after{bottom:auto;top:-.3rem;border:0;border-left:1px solid var(--borde-control);border-top:1px solid var(--borde-control);}
.sgp-orbe{position:relative;display:block;width:4rem;height:4rem;pointer-events:none;--mascota-piel:color-mix(in srgb,var(--acento) 55%,var(--sobre-oscura));--mascota-clara:color-mix(in srgb,var(--acento) 22%,var(--sobre-oscura));--mascota-rostro:var(--sup-oscura);color:var(--mascota-rostro);}
.sgp-mascota-movimiento,.sgp-mascota-grupo{position:absolute;inset:0;display:block;}
.sgp-mascota-movimiento{transform-origin:center bottom;animation:sgp-mascota-flotar 3.6s ease-in-out infinite;}
.sgp-mascota-grupo{transform:rotate(var(--mascota-inclinacion,0deg));transition:transform .12s ease-out;}
.sgp-mascota-cuerpo{position:absolute;left:8%;top:18%;width:84%;height:74%;border:1px solid color-mix(in srgb,var(--sobre-oscura) 85%,transparent);border-radius:54% 46% 42% 58% / 60% 58% 42% 40%;background:linear-gradient(145deg,var(--mascota-clara),var(--mascota-piel) 55%,color-mix(in srgb,var(--acento) 70%,var(--sobre-oscura)));box-shadow:0 .45rem 1rem -.3rem color-mix(in srgb,var(--acento) 45%,transparent),inset 0 .2rem .45rem color-mix(in srgb,var(--sobre-oscura) 75%,transparent),inset 0 -.3rem .55rem color-mix(in srgb,var(--sup-oscura) 12%,transparent);animation:sgp-mascota-forma 5s ease-in-out infinite;transition:transform .25s ease-out;}
.sgp-asistente-acceso:is(:hover,:focus-visible) .sgp-mascota-cuerpo{transform:scale(1.07,.95);}
.sgp-mascota-reflejo{position:absolute;left:22%;top:12%;width:30%;height:12%;border-radius:50%;background:color-mix(in srgb,var(--sobre-oscura) 65%,transparent);transform:rotate(-12deg);}
.sgp-mascota-reflejo::after{content:'';position:absolute;left:120%;top:12%;width:25%;height:75%;border-radius:50%;background:inherit;}
.sgp-mascota-antena{position:absolute;left:45%;top:0;width:10%;height:24%;transform-origin:center bottom;animation:sgp-mascota-antena 2.8s ease-in-out infinite;z-index:1;}
.sgp-mascota-antena::after{content:'';position:absolute;left:32%;top:40%;width:36%;height:60%;border-radius:1rem;background:var(--acento);}
.sgp-mascota-antena>span{position:absolute;top:0;left:-10%;width:120%;aspect-ratio:1;border-radius:50%;border:1px solid var(--sobre-oscura);background:var(--acento-claro);box-shadow:0 0 .5rem color-mix(in srgb,var(--acento) 55%,transparent);z-index:1;}
.sgp-mascota-cara{position:absolute;left:15%;top:34%;width:70%;height:48%;display:flex;flex-direction:column;align-items:center;transform:translate(var(--mascota-mirada-x,0px),var(--mascota-mirada-y,0px));transition:transform .15s ease-out;}
.sgp-mascota-ojos,.sgp-mascota-ojos-felices,.sgp-mascota-ojos-dormidos{display:flex;justify-content:space-between;width:66%;height:45%;}
.sgp-mascota-ojo{position:relative;width:25%;height:100%;border-radius:50%;background:var(--mascota-rostro);animation:sgp-mascota-parpadear 4.5s infinite;}
.sgp-mascota-ojo::before,.sgp-mascota-ojo::after{content:'';position:absolute;border-radius:50%;background:var(--sobre-oscura);}
.sgp-mascota-ojo::before{width:37%;height:32%;left:18%;top:18%;}
.sgp-mascota-ojo::after{width:25%;height:20%;right:12%;bottom:15%;opacity:.8;}
.sgp-mascota-ojos-felices,.sgp-mascota-ojos-dormidos,.sgp-mascota-ojos-vuelo{display:none;}
.sgp-mascota-ojos-felices>span,.sgp-mascota-ojos-dormidos>span{width:30%;height:65%;border-top:2px solid currentColor;border-radius:50% 50% 0 0;}
.sgp-mascota-ojos-dormidos>span{border-top:0;border-bottom:2px solid currentColor;border-radius:0 0 50% 50%;}
.sgp-mascota-ojos-vuelo{width:72%;height:45%;}
.sgp-mascota-mejilla{position:absolute;top:43%;width:26%;height:18%;border-radius:50%;background:var(--acento);opacity:.4;filter:blur(.5px);}
.sgp-mascota-mejilla-izq{left:0;}.sgp-mascota-mejilla-der{right:0;}
.sgp-mascota-sonrisa{width:42%;height:35%;margin-top:8%;}
.sgp-mascota-boca-abierta,.sgp-mascota-boca-curiosa{display:none;margin-top:8%;width:22%;height:30%;border:1.5px solid currentColor;border-radius:0 0 60% 60%;background:var(--acento);}
.sgp-mascota-boca-abierta::after{content:'';display:block;width:70%;height:50%;margin:35% auto 0;border-radius:50%;background:var(--mascota-clara);}
.sgp-mascota-boca-curiosa{width:15%;height:25%;border-radius:50%;background:transparent;}
.sgp-mascota-mano{position:absolute;bottom:18%;width:22%;height:20%;border:1px solid var(--sobre-oscura);border-radius:50%;background:var(--mascota-clara);box-shadow:0 .1rem .2rem color-mix(in srgb,var(--sup-oscura) 15%,transparent);}
.sgp-mascota-mano-izq{left:-11%;transform:rotate(-12deg);}.sgp-mascota-mano-der{right:-11%;transform:rotate(12deg);transform-origin:left center;}
.sgp-mascota-sombra{position:absolute;left:20%;bottom:-8%;width:60%;height:12%;border-radius:50%;background:var(--sup-oscura);filter:blur(2px);animation:sgp-mascota-sombra 3.6s ease-in-out infinite;}
.sgp-mascota-particulas{position:absolute;inset:0;display:none;}
.sgp-mascota-particulas>span{position:absolute;width:12%;aspect-ratio:1;background:var(--acento-claro);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:sgp-mascota-destello 1.3s ease-out infinite;}
.sgp-mascota-particulas>span:nth-child(1){left:-8%;top:5%;}.sgp-mascota-particulas>span:nth-child(2){right:-8%;top:-5%;animation-delay:.2s;}.sgp-mascota-particulas>span:nth-child(3){left:0;bottom:4%;animation-delay:.4s;}.sgp-mascota-particulas>span:nth-child(4){right:-5%;bottom:12%;animation-delay:.6s;}
.sgp-mascota-sueno{display:none;position:absolute;right:-2%;top:-15%;font-size:.75rem;font-weight:700;color:var(--acento-texto);animation:sgp-mascota-sueno 1.8s ease-in-out infinite;}
.sgp-mascota-sueno>span{font-size:.9em;vertical-align:super;margin-left:.1rem;}
[data-mascota-estado="saludo"] .sgp-mascota-mano-der,[data-mascota-estado="alegre"] .sgp-mascota-mano-der{animation:sgp-mascota-saludar .9s ease-in-out infinite;}
:is([data-mascota-estado="saludo"],[data-mascota-estado="alegre"]) .sgp-mascota-ojos,:is([data-mascota-estado="dormida"],[data-mascota-estado="arrastrando"]) .sgp-mascota-ojos{display:none;}
:is([data-mascota-estado="saludo"],[data-mascota-estado="alegre"]) .sgp-mascota-ojos-felices,[data-mascota-estado="dormida"] .sgp-mascota-ojos-dormidos{display:flex;}
[data-mascota-estado="arrastrando"] .sgp-mascota-ojos-vuelo{display:block;}
:is([data-mascota-estado="saludo"],[data-mascota-estado="alegre"],[data-mascota-estado="curiosa"],[data-mascota-estado="dormida"],[data-mascota-estado="arrastrando"]) .sgp-mascota-sonrisa{display:none;}
:is([data-mascota-estado="saludo"],[data-mascota-estado="alegre"],[data-mascota-estado="arrastrando"]) .sgp-mascota-boca-abierta,:is([data-mascota-estado="curiosa"],[data-mascota-estado="dormida"]) .sgp-mascota-boca-curiosa{display:block;}
[data-mascota-estado="curiosa"] .sgp-mascota-movimiento{animation:sgp-mascota-curiosa 2.4s ease-in-out infinite;}
[data-mascota-estado="alegre"] .sgp-mascota-movimiento{animation:sgp-mascota-saltar 1.3s ease-in-out infinite;}
:is([data-mascota-estado="alegre"],[data-mascota-estado="abrir"]) .sgp-mascota-particulas{display:block;}
[data-mascota-estado="dormida"] .sgp-mascota-sueno{display:block;}
[data-mascota-estado="arrastrando"] .sgp-mascota-movimiento{animation:sgp-mascota-arrastrar .45s ease-in-out infinite;}
[data-mascota-estado="arrastrando"] .sgp-mascota-mano-izq{animation:sgp-mascota-mano-izq .22s ease-in-out infinite;}
[data-mascota-estado="arrastrando"] .sgp-mascota-mano-der{animation:sgp-mascota-mano-der .22s ease-in-out infinite;}
[data-mascota-estado="arrastrando"] .sgp-mascota-sombra{animation:none;transform:scale(.42);opacity:.12;}
[data-mascota-estado="aterrizar"] .sgp-mascota-movimiento{animation:sgp-mascota-aterrizar .75s ease-out both;}
[data-mascota-estado="abrir"] .sgp-mascota-movimiento{animation:sgp-mascota-abrir .78s ease-out both;}
[data-mascota-estado="volver"] .sgp-mascota-movimiento{animation:sgp-mascota-volver .7s ease-out both;}
:is([data-mascota-estado="abrir"],[data-mascota-estado="oculta"]) .sgp-orbe-etiqueta,:is([data-mascota-estado="abrir"],[data-mascota-estado="oculta"]) .sgp-mascota-sombra{opacity:0;animation:none;}
[data-mascota-estado="oculta"] .sgp-orbe{visibility:hidden;}
[data-mascota-pausada] .sgp-orbe *{animation-play-state:paused;}
@keyframes sgp-mascota-forma{0%,100%{border-radius:54% 46% 42% 58% / 60% 58% 42% 40%;}33%{border-radius:48% 52% 56% 44% / 54% 62% 38% 46%;}66%{border-radius:60% 40% 46% 54% / 62% 50% 50% 38%;}}
@keyframes sgp-mascota-flotar{0%,100%{transform:translateY(0) rotate(0) scale(1);}50%{transform:translateY(-.45rem) rotate(1.5deg) scale(1.02,.98);}}
@keyframes sgp-mascota-sombra{0%,100%{transform:scale(1);opacity:.25;}50%{transform:scale(.75);opacity:.12;}}
@keyframes sgp-mascota-parpadear{0%,92%,98%,100%{transform:scaleY(1);}95%{transform:scaleY(.1);}}
@keyframes sgp-mascota-antena{0%,100%{transform:rotate(0);}25%{transform:rotate(12deg);}75%{transform:rotate(-10deg);}}
@keyframes sgp-mascota-saludar{0%,100%{transform:rotate(20deg);}25%,75%{transform:rotate(-45deg) translateY(-.3rem) scale(1.15);}50%{transform:rotate(10deg) translateY(-.15rem) scale(1.1);}}
@keyframes sgp-mascota-curiosa{0%,100%{transform:translateY(0) rotate(0);}20%,45%{transform:translateY(-.3rem) rotate(-14deg) scale(1.04);}70%,85%{transform:translateY(-.15rem) rotate(10deg) scale(1.03);}}
@keyframes sgp-mascota-saltar{0%,100%{transform:translateY(0) scale(1);}15%{transform:translateY(.2rem) scale(1.16,.84);}40%{transform:translateY(-1rem) scale(.92,1.1) rotate(-6deg);}60%{transform:translateY(.15rem) scale(1.12,.88);}78%{transform:translateY(-.5rem) scale(.96,1.05) rotate(6deg);}}
@keyframes sgp-mascota-arrastrar{0%,100%{transform:translateY(-.45rem) scale(.92,1.09);}50%{transform:translateY(-.65rem) scale(.96,1.05);}}
@keyframes sgp-mascota-mano-izq{0%,100%{transform:translateY(-.3rem) rotate(-55deg);}50%{transform:translateY(-.5rem) rotate(25deg);}}
@keyframes sgp-mascota-mano-der{0%,100%{transform:translateY(-.5rem) rotate(-25deg);}50%{transform:translateY(-.3rem) rotate(55deg);}}
@keyframes sgp-mascota-aterrizar{0%{transform:translateY(-.7rem) scale(.85,1.18);}30%{transform:translateY(.3rem) scale(1.26,.74);}55%{transform:translateY(-.4rem) scale(.92,1.1);}75%{transform:translateY(.15rem) scale(1.08,.93);}100%{transform:translateY(0) scale(1);}}
@keyframes sgp-mascota-abrir{0%{transform:translateY(0) scale(1);opacity:1;}20%{transform:translateY(.3rem) scale(1.24,.76) rotate(-8deg);}55%{transform:translateY(-2rem) scale(.88,1.15) rotate(360deg);}80%{transform:translateY(-.65rem) scale(1.1,.9) rotate(370deg);}100%{transform:translateY(-1.3rem) scale(0) rotate(360deg);opacity:0;}}
@keyframes sgp-mascota-volver{0%{transform:translateY(-2rem) scale(.2) rotate(-180deg);opacity:0;}60%{transform:translateY(.3rem) scale(1.18,.82) rotate(12deg);opacity:1;}80%{transform:translateY(-.4rem) scale(.94,1.06) rotate(-5deg);}100%{transform:translateY(0) scale(1);opacity:1;}}
@keyframes sgp-mascota-destello{0%,100%{transform:translateY(.3rem) scale(.2) rotate(-10deg);opacity:0;}40%{transform:translateY(-.3rem) scale(1) rotate(5deg);opacity:1;}90%{transform:translateY(-1rem) scale(.5) rotate(15deg);opacity:0;}}
@keyframes sgp-mascota-sueno{0%,100%{transform:translateY(.2rem);opacity:0;}40%{transform:translateY(-.3rem);opacity:1;}90%{transform:translateY(-1rem);opacity:0;}}
/* La mascota en el encabezado del chat: la misma, achicada entera con `scale`, así conserva todas sus
   animaciones en proporción. Sin el piso ni el «zz». */
.sgp-asistente-avatar{position:relative;overflow:visible;}
.sgp-asistente-avatar .sgp-orbe{position:absolute;left:50%;top:50%;width:4rem;height:4rem;margin:-2rem 0 0 -2rem;transform:scale(.52);}
.sgp-asistente-avatar :is(.sgp-mascota-sombra,.sgp-mascota-sueno){display:none!important;}
@media(max-width:47.5rem){.sgp-asistente-acceso{right:1rem;bottom:1rem;}.sgp-asistente-acceso .sgp-orbe{width:3.5rem;height:3.5rem;}}
@media(prefers-reduced-motion:reduce){
  .sgp-orbe *{animation:none!important;transition:none!important;}
  .sgp-orbe-etiqueta,.sgp-orbe-etiqueta-visible{transform:translateX(calc(-50% + var(--globo-corrimiento,0px)));transition:none;}
  .sgp-mascota-movimiento,.sgp-mascota-grupo,.sgp-mascota-cara,.sgp-mascota-cuerpo,.sgp-mascota-mano{transform:none!important;}
  .sgp-mascota-particulas,.sgp-mascota-sueno{display:none!important;}
}
