/* Lore animada de cuerpo completo (reemplaza el botón flotante redondo).
   Capas: .lore-cuerpo (llegada) > .lc-fig (respiración) > .lc-gesto (gesto de cada pose) > img por pose.
   Cada capa anima su propio transform para que los movimientos se sumen sin pisarse. */

body.con-lore .plumi-flota { display: none; }

.lore-cuerpo { position: fixed; right: 20px; bottom: 0; z-index: 45; width: 150px; height: 225px; padding: 0; border: 0; background: none; cursor: pointer; transform: translateY(115%); opacity: 0; } /* oculta hasta que llega: en móvil asomaría sobre la barra */
.lore-cuerpo.llega { animation: lc-llega .9s cubic-bezier(.34, 1.56, .64, 1) forwards; }
body.chat-abierto .lore-cuerpo { transform: translateY(115%); opacity: 0; animation: none; transition: transform .35s var(--sal), opacity .2s; }
@keyframes lc-llega { from { transform: translateY(115%); opacity: 1; } to { transform: none; opacity: 1; } }

.lc-fig { position: absolute; inset: 0; transform-origin: 50% 100%; animation: lc-respira 3.8s ease-in-out infinite; }
@keyframes lc-respira { 50% { transform: scale(1.012, 1.02); } }

.lc-gesto { position: absolute; inset: 0; transform-origin: 50% 96%; transition: transform .25s var(--sal); }
.lore-cuerpo:hover .lc-gesto { transform: translateY(-5px); }
.lc-gesto.g-saluda { animation: lc-saluda 1.5s ease-in-out; }
.lc-gesto.g-presenta { animation: lc-presenta 1.6s var(--sal); }
.lc-gesto.g-piensa { animation: lc-piensa 2.4s ease-in-out; }
.lc-gesto.g-salto { animation: lc-salto .6s var(--sal); }
@keyframes lc-saluda { 15%, 55% { transform: rotate(-2.5deg); } 35%, 75% { transform: rotate(2deg); } }
@keyframes lc-presenta { 30%, 70% { transform: translateX(-6px) rotate(-3deg); } }
@keyframes lc-piensa { 25% { transform: rotate(1.5deg) translateY(-2px); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1.5deg) translateY(-2px); } }
@keyframes lc-salto { 30% { transform: translateY(-14px) scale(.98, 1.03); } 60% { transform: translateY(0) scale(1.03, .97); } }

.lc-gesto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: 50% 100%; opacity: 0; transform: translateY(6px) scale(.97); transition: opacity .35s ease, transform .45s var(--sal); filter: drop-shadow(0 12px 14px rgba(22, 17, 15, .16)); }
.lc-gesto img.si { opacity: 1; transform: none; }

/* Sombra en el piso: respira con ella */
.lc-sombra { position: absolute; left: 18%; right: 18%; bottom: 2px; height: 14px; border-radius: 50%; background: radial-gradient(closest-side, rgba(22, 17, 15, .28), rgba(22, 17, 15, 0)); animation: lc-sombra 3.8s ease-in-out infinite; z-index: -1; }
@keyframes lc-sombra { 50% { transform: scaleX(.94); opacity: .8; } }

/* Globo de diálogo a la izquierda, a la altura de la cara */
.lc-globo { position: absolute; right: calc(100% - 10px); top: 14px; width: max-content; max-width: 230px; padding: 10px 14px 12px; background: #fff; border: 1px solid var(--oro-claro); border-radius: 14px 14px 4px 14px; box-shadow: 0 16px 32px -20px rgba(22, 17, 15, .55); text-align: left; font: 500 13px/1.45 var(--f); color: var(--tinta); opacity: 0; transform: translateY(6px) scale(.96); transform-origin: 100% 100%; transition: opacity .25s, transform .3s var(--sal); pointer-events: none; }
.lc-globo.ver { opacity: 1; transform: none; }
.lc-globo b { display: block; margin-bottom: 2px; font: 600 10px/1.4 var(--f); letter-spacing: .18em; text-transform: uppercase; color: var(--oro-txt); }
.lc-globo span::after { content: ''; display: inline-block; width: 1px; height: 1em; margin-left: 1px; vertical-align: -2px; background: var(--agente); animation: lc-cursor .8s steps(1) infinite; }
.lc-globo.listo span::after { display: none; }
@keyframes lc-cursor { 50% { opacity: 0; } }

@media (max-width: 860px) {
  .lore-cuerpo { right: 4px; bottom: calc(72px + env(safe-area-inset-bottom)); width: 92px; height: 138px; z-index: 43; } /* encima de la barra-movil; sube desde detrás de ella */
  .lc-globo { max-width: 180px; top: 4px; font-size: 12px; padding: 8px 12px 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .lore-cuerpo, .lore-cuerpo.llega { transform: none; animation: none; opacity: 1; }
  .lc-fig, .lc-sombra, .lc-gesto[class*="g-"] { animation: none; }
}
