/* Delayed reveal — headings rise in word by word, then text, buttons and images follow.
   Every hidden state is added by js/reveal.js, so nothing is hidden if JS does not run. */
.rv-h .rv-word{
  position:relative;top:.65em;opacity:0;   /* inline + relative offset: no effect on line layout */
  transition:opacity 1.2s cubic-bezier(.22,1,.36,1),top 1.3s cubic-bezier(.22,1,.36,1);
}
.rv-h.rv-in .rv-word{top:0;opacity:1}

.rv{
  opacity:0;transform:translateY(26px);
  transition:opacity 1.2s cubic-bezier(.22,1,.36,1),transform 1.4s cubic-bezier(.22,1,.36,1);
}
.rv.rv-img{transform:translateY(32px) scale(.97)}
.rv.rv-in{opacity:1;transform:none}

/* Hidden state is applied instantly; the transition is switched on only when the item is revealed */
.rv-init,.rv-init .rv-word{transition:none!important}
