/* Approved motion system. */
@keyframes nk-wave {
  0% { transform: translate3d(-2%, 0, 0); }
  50% { transform: translate3d(2%, -1.2%, 0); }
  100% { transform: translate3d(-2%, 0, 0); }
}
@keyframes nk-float {
  0% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -10px, 0); }
  100% { transform: translate3d(0, 0, 0); }
}
@keyframes nk-float-sm {
  0% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -6px, 0); }
  100% { transform: translate3d(0, 0, 0); }
}
@keyframes nk-pulse {
  0% { opacity: .25; }
  50% { opacity: 1; }
  100% { opacity: .25; }
}
@keyframes nk-dash { to { stroke-dashoffset: -120; } }
@keyframes nk-orbit {
  0% { opacity: .2; }
  50% { opacity: .9; }
  100% { opacity: .2; }
}

/* Reduced motion: stop decorative movement, never hide content. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  [data-reveal], [data-stage] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Printing must never depend on scroll reveals. */
@media print {
  [data-reveal], [data-stage] {
    opacity: 1 !important;
    transform: none !important;
  }
  header[role="banner"] { position: static; }
}
