/* Content stays readable when JavaScript or a vendor file cannot load. */
html body .reveal:not(.oxar-motion-target) {
  opacity: 1 !important;
  filter: none;
  transform: none;
}

/* GSAP owns entry transforms only; CSS keeps the existing hover treatment. */
html body .oxar-motion-managed { animation: none !important; }
html body .oxar-motion-target {
  animation: none !important;
  transition-property: color, background-color, border-color, box-shadow !important;
  transition-delay: 0s !important;
  filter: none;
}

html.lenis, html.lenis body { height: auto; }
html.lenis.lenis-smooth { scroll-behavior: auto !important; }

/* Small breathing room in addition to the site's existing scroll-padding. */
main [id] { scroll-margin-top: 10px; }
[data-motion-counter] { font-variant-numeric: tabular-nums; }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  :is(.primary, .ghost, .enter, .app-button) {
    transition: translate .22s ease, transform .22s ease, background-color .22s ease,
      border-color .22s ease, box-shadow .22s ease;
  }
  :is(.primary, .ghost, .enter, .app-button):hover { translate: 0 -2px; }
  :is(.primary, .ghost, .enter, .app-button):active { translate: 0 0; }
  :is(.link-card, .product-card, .form-card, .my-app-card):hover { translate: 0 -2px; }
  :is(.link-card, .product-card, .form-card, .my-app-card) {
    transition: translate .24s ease, transform .24s ease, border-color .24s ease,
      background-color .24s ease, box-shadow .24s ease;
  }
  .topbar nav a { position: relative; }
  .topbar nav a::after {
    content: ''; position: absolute; inset-inline: 0; bottom: -6px; height: 1px;
    background: currentColor; transform: scaleX(0); transform-origin: left;
    transition: transform .22s ease; pointer-events: none;
  }
  [dir="rtl"] .topbar nav a::after { transform-origin: right; }
  .topbar nav a:hover::after, .topbar nav a:focus-visible::after { transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
