/* Legacy Webflow Page Delay must never hide the complete document. */
body.site-has-header > .page-wrapper { opacity: 1 !important; }
body.site-has-header .loading-bar-wrapper { display: none !important; }
html.site-skip-home-loader .ai-loader { display: none !important; }
/* The initial geometry is a setup step, not a visible collapse animation. */
body [role="banner"].site-header:not(.is-layout-ready),
body [role="banner"].site-header:not(.is-layout-ready) :is(.header-middle, .header-logo-link, .header-logo-link img) {
  transition: none !important;
}

/* Both documents opt in; ordinary links and browser history keep their behavior. */
@view-transition { navigation: auto; }

body [role="banner"].site-header { view-transition-name: site-header; }
::view-transition-group(root),
::view-transition-group(site-header) {
  animation-duration: 240ms;
  animation-timing-function: ease-in-out;
}
/* Complementary fades share the same timing. Add the isolated snapshots so
   their combined opacity stays solid instead of flashing the white canvas. */
::view-transition-old(root) {
  animation: site-page-depart 240ms ease-in-out both;
  mix-blend-mode: plus-lighter;
}
::view-transition-new(root) {
  animation: site-page-arrive 240ms ease-in-out both;
  mix-blend-mode: plus-lighter;
}
/* Composite the two page snapshots together, independent of the live page. */
::view-transition-image-pair(root) { isolation: isolate; }
/* Keep a fully visible header while the content changes below it. */
::view-transition-group(site-header) { z-index: 1; }
::view-transition-old(site-header) { display: none; }
::view-transition-new(site-header) { animation: none; mix-blend-mode: normal; }
@keyframes site-page-depart {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes site-page-arrive {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*) { animation-duration: 1ms !important; }
}
