/* BRACI – Main stylesheet */
/* Fontes carregadas via <link> no <head> de cada página (não via @import,
   que é render-blocking serial). Playfair removida: era carregada e nunca usada. */

@import "variables.css";
@import "base.css";
@import "components.css";
@import "pages.css";
@import "text-reveal.css";
/* story-scrollytelling.css is loaded as a <link> after effects.css in HTML
   so it overrides effects.css rules at the same specificity */

/* Scroll-triggered fade-in */
.reveal {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.4s var(--ease-out-smooth), transform 0.4s var(--ease-out-smooth);
  will-change: opacity, transform;
}

.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
  /* Entrada é única: solta a camada de GPU depois do fade pra não manter o
     elemento promovido pra sempre (camadas permanentes rasterizam o texto em
     baixa resolução durante o scroll no mobile → impressão de pixelização). */
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    transition: none;
    transform: none;
  }
}
