/* ==========================================================================
   nk-reveal — lightweight scroll-into-view reveal (no dependencies)
   Add .nk-reveal + a direction modifier; assets/js/nk-reveal.js toggles
   .is-visible via IntersectionObserver. Optional data-reveal-delay="150ms".
   ========================================================================== */
.nk-reveal {
  opacity: 0;
  /* easeOutCubic — gentle deceleration, no abrupt snap */
  transition: opacity 0.7s ease,
    transform 0.85s cubic-bezier(0.33, 1, 0.68, 1);
  will-change: opacity, transform;
  /* translate3d keeps the move on the GPU compositor = no jank */
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
}

.nk-reveal--left  { transform: translate3d(-40px, 0, 0); }
.nk-reveal--right { transform: translate3d(40px, 0, 0); }
.nk-reveal--up    { transform: translate3d(0, 36px, 0); }

.nk-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* drop the compositor hint once revealed so it doesn't tax the rest of the page */
.nk-reveal.nk-reveal--done {
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  .nk-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
