/* ==========================================================================
   Delphic cross-page continuity

   The landing page and Knowledge Index are separate documents, but they are
   one product journey. Navigation therefore resolves both documents through
   the same paper surface while the shared header remains visually stable.
   ========================================================================== */

@keyframes delphic-veil-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes delphic-veil-out {
  from { opacity: 1; }
  to { opacity: 0; }
}

/* The veil sits below the shared header and above every page-specific
   interface. It gives the outgoing and incoming documents an identical last
   and first frame, so a full server-rendered navigation does not flash. */
html.site-transition-leaving::after,
html.site-transition-arriving::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 880;
  display: block;
  background: #fff;
  pointer-events: all;
}

html.site-transition-leaving::after {
  animation: delphic-veil-in 150ms ease both;
}

html.site-transition-arriving::after {
  opacity: 1;
}

html.site-transition-arriving.site-transition-ready::after {
  animation: delphic-veil-out 230ms ease both;
}

html.site-transition-leaving .journey-nav,
html.site-transition-leaving .ki-view-toggle {
  opacity: 0 !important;
  transition: opacity 90ms ease !important;
}

html.site-transition-leaving body > main {
  opacity: 0.7;
  transition: opacity 145ms ease;
}

html.site-transition-arriving body > main {
  opacity: 0;
}

html.site-transition-arriving.site-transition-ready body > main {
  opacity: 1;
  transition: opacity 220ms ease;
}

@media (prefers-reduced-motion: reduce) {
  html.site-transition-leaving::after,
  html.site-transition-arriving.site-transition-ready::after {
    animation-duration: 1ms;
  }

  html.site-transition-leaving .journey-nav,
  html.site-transition-leaving .ki-view-toggle,
  html.site-transition-leaving body > main,
  html.site-transition-arriving.site-transition-ready body > main {
    transition-duration: 1ms !important;
  }
}
