/* =========================
   JEMNÉ ANIMACE PŘI SCROLLOVÁNÍ
   (ovládá reveal.js)
   – používá vlastnost „translate“, ne „transform“,
     takže se nepere s efekty po najetí myší na kartách
   – nic neposouvá rozvržení stránky (žádné skákání)
========================= */

/* schované, dokud k nim nedoscrolujete */
.rv-ready .rv:not(.rv-in) {
  opacity: 0;
}

/* vyjede zespodu */
.rv.rv-in {
  animation: rv-up .85s cubic-bezier(.2, .7, .2, 1) var(--rv-delay, 0ms) both;
}

/* lehce se zvětší (dekorace, obrázky) */
.rv.rv-in.rv--pop {
  animation-name: rv-pop;
}

/* přijede zprava / zleva */
.rv.rv-in.rv--right {
  animation-name: rv-right;
}

.rv.rv-in.rv--left {
  animation-name: rv-left;
}

@keyframes rv-up {
  from { opacity: 0; translate: 0 32px; }
  to   { opacity: 1; translate: 0 0; }
}

@keyframes rv-pop {
  from { opacity: 0; scale: .92; }
  to   { opacity: 1; scale: 1; }
}

@keyframes rv-right {
  from { opacity: 0; translate: 40px 0; }
  to   { opacity: 1; translate: 0 0; }
}

@keyframes rv-left {
  from { opacity: 0; translate: -40px 0; }
  to   { opacity: 1; translate: 0 0; }
}

@media (prefers-reduced-motion: reduce) {
  .rv-ready .rv:not(.rv-in) {
    opacity: 1;
  }

  .rv.rv-in {
    animation: none;
  }
}
