/* Animaciones del blog al desplazarse (js/icms-reveal.js). Solo con "reducir movimiento" apagado.
 * Los bloques empiezan ocultos únicamente cuando el script ya marcó <html class="rv-js">; si el
 * script no carga, la cabecera quita esa marca a los 3 s y todo queda visible. La entrada la
 * anima el script (Web Animations); aquí solo se oculta lo que aún no apareció.
 * Mantén esta lista igual a la de SELECTOR en js/icms-reveal.js. */
@media (prefers-reduced-motion: no-preference) {
  html.rv-js body.fx-reveal :is(
    .sz-head, .sz-section, .sz-post, .sz-sidebar > *, #contenido .pager,
    .post-body > :is(h2, h3, blockquote, figure, img, .post-embed, .icms-gallery, ul, ol),
    .post-share, .post-meta, main > section, #comentarios, #comentarios > div,
    main .grid > .card, .category-tile, .page-block, .search-bar, .site-footer .wrap
  ):not(.rv-in) {
    opacity: 0;
  }

  /* Texto de la portada: entra solo al cargar, uno tras otro (no depende del scroll). */
  body.fx-reveal .hero-band .center > * {
    animation: rvHero .9s cubic-bezier(.2, .7, .2, 1) backwards;
  }
  body.fx-reveal .hero-band .center > :nth-child(2) { animation-delay: .12s; }
  body.fx-reveal .hero-band .center > :nth-child(n+3) { animation-delay: .24s; }
  @keyframes rvHero {
    from { opacity: 0; transform: translate3d(0, 22px, 0); }
  }

  /* Enlaces de las tarjetas y botones: respuesta suave al pasar el cursor o tocar. */
  body.fx-reveal .btn { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
  body.fx-reveal .btn:hover { transform: translateY(-2px); }
  body.fx-reveal .btn:active { transform: translateY(0); }
}

@media print {
  html.rv-js body.fx-reveal * { opacity: 1 !important; }
}
