/* Altara Motion · estilos. Va junto a altara-motion.js.
   Los estados iniciales solo se aplican con .am-listo (JS cargado y sin reduced-motion):
   si algo falla, el contenido se ve igual, quieto. */
:root{
  --am-dur:calc(700ms * var(--am-escala, 1));
  --am-dist:calc(28px * var(--am-escala, 1));
  --am-curva:cubic-bezier(.22,.61,.36,1);      /* salida suave */
  --am-curva-viva:cubic-bezier(.34,1.56,.64,1); /* con leve rebote, para nivel expresivo */
}

.am-listo [data-am]{
  opacity:0;
  transition:opacity var(--am-dur) var(--am-curva) var(--am-retraso,0ms),
             transform var(--am-dur) var(--am-curva) var(--am-retraso,0ms),
             filter var(--am-dur) var(--am-curva) var(--am-retraso,0ms);
  will-change:opacity,transform;
}
.am-listo [data-am="aparecer"]{transform:none}
.am-listo [data-am="subir"]{transform:translate3d(0,var(--am-dist),0)}
.am-listo [data-am="izquierda"]{transform:translate3d(calc(var(--am-dist) * -1),0,0)}
.am-listo [data-am="derecha"]{transform:translate3d(var(--am-dist),0,0)}
.am-listo [data-am="escala"]{transform:scale(.94)}
.am-listo [data-am="desenfoque"]{filter:blur(8px);transform:translate3d(0,calc(var(--am-dist) * .4),0)}
.am-listo [data-am].am-visible{opacity:1;transform:none;filter:none;will-change:auto}

/* Texto palabra por palabra */
.am-palabra{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.am-palabra>span{display:inline-block}
.am-listo [data-am-texto] .am-palabra>span{transform:translate3d(0,105%,0);
  transition:transform calc(var(--am-dur) * 1.1) var(--am-curva) calc(var(--am-i) * 55ms + var(--am-retraso,0ms))}
.am-listo [data-am-texto].am-visible .am-palabra>span{transform:none}

/* Barra de progreso de lectura: <div data-am-progreso class="am-progreso"></div> */
.am-progreso{position:fixed;left:0;top:0;height:3px;width:100%;transform:scaleX(0);transform-origin:0 50%;
  background:var(--am-color, currentColor);z-index:100;pointer-events:none}

/* Botón magnético */
[data-am-magnetico]{transition:transform .35s var(--am-curva)}

/* Microinteracciones de uso general (opcionales, por clase) */
.am-elevar{transition:transform .25s var(--am-curva)}
.am-elevar:hover{transform:translate3d(0,-4px,0)}
.am-subrayado{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s var(--am-curva)}
.am-subrayado:hover{background-size:100% 1px}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
