/* Motion — ROST Premium
   Reveal-on-scroll: fade + small translate, 200-400ms, cubic-bezier(0.16, 1, 0.3, 1).
   prefers-reduced-motion disables all non-functional animation. */

[data-reveal] {
  opacity: 0;
  /* COMPANY-PAGE-POLISH-2 (2026-08-02): 16px -> 20px, duration already
     sat at --duration-slow (400ms), inside the requested 400-500ms
     range -- both values now match "fade + translateY 20px, 400-
     500ms" exactly. This is the sitewide reveal-on-scroll rule (every
     [data-reveal] section on every page uses it), so the change is a
     4px tweak applied everywhere, not something scoped to one page. */
  transform: translateY(20px);
  transition: opacity var(--duration-slow) var(--ease-standard),
    transform var(--duration-slow) var(--ease-standard);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* If JS never runs (blocked/failed), content must still be visible. */
.no-js [data-reveal] {
  opacity: 1;
  transform: none;
}
