/* Fade-in reveal — text, tools, work cards and contact blocks fade into place on
   first load and every time they scroll into view, scrolling down or up. The
   header and footer are left out. On other pages, add data-reveal to a block.
   Remove this file, js/reveal.js and the "Fade-in reveal" blocks in home.html
   to take it out. Keep this list in sync with TARGETS in js/reveal.js. */

/* .has-reveal is set by an inline script in <head>, so nothing flashes before
   the script hides it. js/reveal.js adds .is-revealed as each block fades in. */
.has-reveal :is(
  [data-reveal],
  .intro__name,
  .intro__role,
  .tools__item,
  .work-card,
  .motto__title,
  .motto p,
  .contact__mark,
  .contact__title,
  .contact__email,
  .contact__list > div
):not(.is-revealed) {
  opacity: 0;
}

/* Failsafe: if js/reveal.js never starts, show everything after 4s. */
.has-reveal:not(.reveal-ready) :is(
  [data-reveal],
  .intro__name,
  .intro__role,
  .tools__item,
  .work-card,
  .motto__title,
  .motto p,
  .contact__mark,
  .contact__title,
  .contact__email,
  .contact__list > div
) {
  animation: reveal-failsafe 0.6s ease 4s forwards;
}
@keyframes reveal-failsafe {
  to { opacity: 1; }
}
