/* ============================================================
   Ziell — shared motion system (entrance + scroll reveal)
   Loaded on every page, after theme.css.
   ============================================================ */

@keyframes ziFadeDown {
  from { opacity: 0; transform: translateY(-12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes ziRise {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes ziFade {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* header drops in */
.site-header,
.header,
.notfound-top {
  animation: ziFadeDown 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.95s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.reveal.in,
.reveal.visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .site-header,
  .header,
  .notfound-top {
    animation: none;
  }
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}