/* ============================================================
   SHARED SCROLL REVEAL — one behaviour for the whole site.

   Content rises 30px out of a soft fade as it enters view, on the
   same 760ms cubic-bezier(.22,1,.36,1) as every other motion here.
   Elements marked .rv in a page's own markup keep working exactly
   as before; reveal.js additionally tags ordinary section content
   so new blocks are covered without anyone remembering to mark them.

   Opt out with data-rv="off" on an element or any ancestor.
   ============================================================ */
.rv{opacity:0;transform:translateY(30px);
  transition:opacity .76s cubic-bezier(.22,1,.36,1),
             transform .76s cubic-bezier(.22,1,.36,1)}
.rv.on{opacity:1;transform:none}
/* a stagger for siblings revealed together, so a row does not snap in as a slab */
.rv[data-rvi="1"]{transition-delay:.08s}
.rv[data-rvi="2"]{transition-delay:.16s}
.rv[data-rvi="3"]{transition-delay:.24s}
.rv[data-rvi="4"]{transition-delay:.32s}
.rv[data-rvi="5"]{transition-delay:.40s}
@media (prefers-reduced-motion:reduce){
  .rv{transition:none;opacity:1;transform:none}
}
