/* Generated from design/tokens.json — do not hand-edit. */
:root {
  --site-motion-fast: 160ms;
  --site-motion-normal: 280ms;
  --site-motion-reveal: 500ms;
  --site-motion-distance: 14px;
  --site-motion-micro: 4px;
  --site-motion-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --site-motion-enter: cubic-bezier(0.16, 1, 0.3, 1);
  --site-motion-stagger: 60;
}

/* Content stays visible until JS opts into pre-reveal state. */
html.site-motion-ready .site-motion-hero .site-motion-hero-child,
html.site-motion-ready .site-motion-reveal {
  opacity: 0;
  transform: translateY(var(--site-motion-distance));
}

html.site-motion-ready .site-motion-hero.is-visible .site-motion-hero-child,
html.site-motion-ready .site-motion-reveal.is-visible {
  opacity: 1;
  transform: none;
  transition:
    opacity var(--site-motion-reveal) var(--site-motion-enter),
    transform var(--site-motion-reveal) var(--site-motion-enter);
}

.site-motion-interactive {
  transition:
    transform var(--site-motion-normal) var(--site-motion-ease),
    box-shadow var(--site-motion-normal) var(--site-motion-ease),
    border-color var(--site-motion-normal) var(--site-motion-ease);
}
.site-motion-interactive:hover,
.site-motion-interactive:focus-within {
  transform: translateY(calc(-1 * var(--site-motion-micro)));
}
.site-motion-interactive:focus-within {
  outline: 2px solid transparent;
}

@media (max-width: 767px) {
  :root {
    --site-motion-distance: 7px;
    --site-motion-reveal: 250ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.site-motion-ready .site-motion-hero .site-motion-hero-child,
  html.site-motion-ready .site-motion-reveal,
  .site-motion-interactive {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
