/* Keep headings readable before IntersectionObserver. Unlayered + :not(#ds)
   so bundled fade-up { opacity:0 } cannot blank first paint or innerText. */

html:not(#ds):not(#ds).a11y-visible body :is(.fade-up, [data-motion-reveal], [data-site-reveal], [data-ds-reveal]),
html:not(#ds):not(#ds) body :is(h1, h2, h3, h4, h5, h6).fade-up {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
}

html:not(#ds):not(#ds).ds-reduced body :is(.fade-up, [data-motion-reveal], [data-site-reveal], [data-ds-reveal], .tilt-card) {
  opacity: 1 !important;
  visibility: visible !important;
  animation: none !important;
  transition: none !important;
  transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
  html:not(#ds):not(#ds) {
    scroll-behavior: auto !important;
  }
  html:not(#ds):not(#ds) body :is(.fade-up, [data-motion-reveal], [data-site-reveal], [data-ds-reveal], .tilt-card, .magnetic) {
    opacity: 1 !important;
    visibility: visible !important;
    animation: none !important;
    transition: none !important;
    transform: none !important;
    scroll-behavior: auto !important;
  }
}

html:not(#ds):not(#ds) body .skip-link:focus,
html:not(#ds):not(#ds) body .skip-link:focus-visible,
html:not(#ds):not(#ds) body a.skip-link:focus {
  position: fixed !important;
  top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
  left: 12px !important;
  z-index: 8000 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  color: #fff !important;
  background: #1d1d1f !important;
  outline: 2px solid #0071e3 !important;
  outline-offset: 3px !important;
}

html:not(#ds):not(#ds) body :is(a, button, [role="button"], input, select, textarea, summary):focus-visible {
  outline: 2px solid #0071e3 !important;
  outline-offset: 2px !important;
}

html:not(#ds):not(#ds) #main-content:focus {
  outline: none !important;
}
