/* ==========================================================================
   Jersey Shore Consultants — 6. UTILITIES · motion system + helpers
   Loaded last so its overrides (reduced motion above all) always win.
   ========================================================================== */

/* ------------------------------------------------------------- animations */
/* Reveals: a shallow vertical vector only. Snappy, low velocity, no drama. */
[data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.55s var(--ease), transform 0.55s var(--ease);
  transition-delay: var(--reveal-delay, 0ms);
}
[data-reveal].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  [data-reveal] { opacity: 1; transform: none; }
  .js .rule, .js .service::before { width: 100%; }
}

/* ---------------------------------------------------------------- helpers */
.center { text-align: center; }
.mt-0 { margin-top: 0 !important; }
.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
