/* ==========================================================
   ANIMACIONES — entradas por scroll (equivalente propio de UIkit Scrollspy)
   ========================================================== */

/* ==========================================================
   ENTRADAS POR SCROLL — equivalente propio de UIkit Scrollspy.
   Un IntersectionObserver añade .is-in y dispara el keyframe.
   ========================================================== */
.js [data-reveal]{opacity:0;}
[data-reveal].is-in{
  animation-duration:.58s;
  animation-timing-function:var(--ease-out);
  animation-fill-mode:both;
  animation-delay:var(--d, 0ms);
}
[data-reveal="fade"].is-in  {animation-name:fb-fade;}
[data-reveal="up"].is-in    {animation-name:fb-up;}
[data-reveal="down"].is-in  {animation-name:fb-down;}
[data-reveal="left"].is-in  {animation-name:fb-left;}
[data-reveal="right"].is-in {animation-name:fb-right;}
[data-reveal="rise"].is-in  {animation-name:fb-rise;}

@keyframes fb-fade {from{opacity:0}                              to{opacity:1; transform:none}}
@keyframes fb-up   {from{opacity:0; transform:translateY(50px)}  to{opacity:1; transform:none}}
@keyframes fb-down {from{opacity:0; transform:translateY(-50px)} to{opacity:1; transform:none}}
@keyframes fb-left {from{opacity:0; transform:translateX(-50px)} to{opacity:1; transform:none}}
@keyframes fb-right{from{opacity:0; transform:translateX(50px)}  to{opacity:1; transform:none}}
@keyframes fb-rise {from{opacity:0; transform:translateY(14px)}  to{opacity:1; transform:none}}

/* ==========================================================
   RETARDOS DE REVELADO
   Antes eran atributos style="--d:Xms" en el marcado. Se trasladaron aquí
   para que la CSP pueda declarar style-src sin 'unsafe-inline' (historia 1).
   El nombre de la clase es el retardo en milisegundos: .d-220 == --d:220ms.
   ========================================================== */
.d-0   {--d:0ms;}
.d-60  {--d:60ms;}
.d-90  {--d:90ms;}
.d-100 {--d:100ms;}
.d-110 {--d:110ms;}
.d-120 {--d:120ms;}
.d-140 {--d:140ms;}
.d-220 {--d:220ms;}
.d-300 {--d:300ms;}
.d-330 {--d:330ms;}
.d-340 {--d:340ms;}
.d-400 {--d:400ms;}
.d-820 {--d:820ms;}
.d-960 {--d:960ms;}
