/* Motion for the scroll engine (scrollcraft.js), only the parts this page uses.
   Hidden-before-reveal is scoped under .js, which an inline head script adds and
   removes again if the engine has not mounted within 2.5 s, so the page is fully
   visible with scripts off or broken. */

html { scroll-behavior: smooth; }
:where([data-sc-count]) { font-variant-numeric: tabular-nums; }

/* arrive once, on entry */
.js [data-sc-in], .js [data-sc-stagger] > * {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition: opacity 620ms var(--ease-out), transform 620ms var(--ease-out);
}
.js [data-sc-in].sc-in, .js [data-sc-stagger] > .sc-in { opacity: 1; transform: none; }

/* depth and pointer */
[data-sc-parallax] { will-change: transform; }
[data-sc-tilt] { transform-style: preserve-3d; will-change: transform; }
[data-sc-magnet] { will-change: transform; }
[data-sc-spotlight] { isolation: isolate; }

/* reading progress */
[data-sc-progress] {
  position: fixed; inset: 0 0 auto 0; height: 2px; z-index: 70;
  background: var(--color-brand-blue); transform-origin: 0 50%; transform: scaleX(0);
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js [data-sc-in], .js [data-sc-stagger] > * { transform: none; transition-duration: 220ms; }
  [data-sc-parallax] { transform: none !important; }
}
