/* motor.css — base genérica de efeitos de rolagem (não contém nada da marca).
   Só age com a classe .fx-js no <html>: sem JavaScript, tudo aparece no estado final. */

.fx-trilho { position: relative; }
.fx-js .fx-trilho { height: var(--fx-altura, 300vh); }
.fx-js .fx-preso {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}

/* surgir: entra uma vez quando aparece */
.fx-js [data-fx="surgir"] {
  opacity: 0;
  transform: translate3d(0, var(--fx-dist, 28px), 0);
  transition:
    opacity 1.1s cubic-bezier(.2, .7, .1, 1) var(--fx-atraso, 0s),
    transform 1.3s cubic-bezier(.2, .7, .1, 1) var(--fx-atraso, 0s);
}
.fx-js [data-fx="surgir"].fx-visivel { opacity: 1; transform: none; }

/* linhas: cada .fx-linha sobe de dentro de uma máscara */
.fx-js [data-fx="linhas"] .fx-linha { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.fx-js [data-fx="linhas"] .fx-linha > span {
  display: inline-block;
  transform: translate3d(0, 108%, 0);
  transition: transform 1.25s cubic-bezier(.16, .84, .2, 1);
  transition-delay: calc(var(--fx-i, 0) * 110ms + var(--fx-atraso, 0s));
}
.fx-js [data-fx="linhas"].fx-visivel .fx-linha > span { transform: none; }

/* palavras: acendem com a rolagem (opacidade controlada pelo JS) */
.fx-js [data-fx="palavras"] .fx-palavra { opacity: var(--fx-apagado, .16); transition: opacity .25s linear; }

/* movimento reduzido: estado final, sem prender, sem deslocar */
.fx-reduzido .fx-trilho { height: auto !important; }
.fx-reduzido .fx-preso { position: relative; height: auto; overflow: visible; }
.fx-reduzido [data-fx] { opacity: 1 !important; transform: none !important; transition: none !important; }
.fx-reduzido [data-fx="linhas"] .fx-linha > span { transform: none !important; }
.fx-reduzido [data-fx="palavras"] .fx-palavra { opacity: 1 !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}

/* Lenis (rolagem suave) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
