/* Once-only entrances adapted from 21st Scroll Reveal. Hero motion is managed separately by hero-globe.js. */
.reveal-entering { animation: offplies-enter .55s var(--ease) var(--reveal-delay, 0ms) both; }
.service-grid > :nth-child(2), .service-grid > :nth-child(4), .product-grid > :nth-child(2) { --reveal-delay: 60ms; }
.service-grid > :nth-child(5), .product-grid > :nth-child(3) { --reveal-delay: 120ms; }
@media (max-width: 760px) { [data-reveal] { --reveal-delay: 0ms; } }
@keyframes offplies-enter {
  from { opacity: .65; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.reveal-entering:focus-within { animation: none; }
html.no-motion { scroll-behavior: auto; }
html.no-motion * { animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
