/* Public navigation: a quick handoff of focus without repainting a viewport-sized
   clipping edge. Input ownership, focus trapping and scroll locks stay in the shell. */
body:not(.studio-page) #overlay-nav.site-menu {
  opacity: 0;
  visibility: hidden;
  transform: none;
  clip-path: none;
  transition: opacity 120ms ease-out, visibility 0s linear 120ms;
}
body:not(.studio-page).menu-open #overlay-nav.site-menu {
  opacity: 1;
  visibility: visible;
  transform: none;
  clip-path: none;
  transition: opacity 160ms cubic-bezier(.16, 1, .3, 1), visibility 0s;
}
body:not(.studio-page) #overlay-nav.site-menu .overlay-nav__list > :is(a, button, span),
body:not(.studio-page) #overlay-nav.site-menu .site-menu-note {
  opacity: 0;
  translate: 0 8px;
  animation: none;
  transition: opacity 120ms ease-out, translate 120ms cubic-bezier(.4, 0, 1, 1);
  transition-delay: 0s;
}
body:not(.studio-page).menu-open #overlay-nav.site-menu .overlay-nav__list > :is(a, button, span) {
  opacity: 1;
  translate: 0 0;
  transition: opacity 140ms ease-out, translate 200ms cubic-bezier(.16, 1, .3, 1);
  transition-delay: calc(min(var(--public-menu-index, var(--menu-index, 0)), 5) * 8ms);
}
body:not(.studio-page).menu-open #overlay-nav.site-menu .site-menu-note {
  opacity: 1;
  translate: 0 0;
  transition: opacity 140ms ease-out 24ms, translate 200ms cubic-bezier(.16, 1, .3, 1) 24ms;
}
/* Focus must already be legible when the shell transfers keyboard ownership. */
body:not(.studio-page).menu-open #overlay-nav.site-menu .overlay-nav__list > :focus-visible {
  transition-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
  body:not(.studio-page) #overlay-nav.site-menu,
  body:not(.studio-page) #overlay-nav.site-menu .overlay-nav__list > :is(a, button, span),
  body:not(.studio-page) #overlay-nav.site-menu .site-menu-note {
    animation: none !important;
    transform: none !important;
    translate: none !important;
    clip-path: none !important;
    transition: opacity 100ms linear, visibility 0s linear 100ms !important;
    transition-delay: 0s !important;
  }
  body:not(.studio-page):not(.menu-open) #overlay-nav.site-menu {
    transition-delay: 0s, 100ms !important;
  }
}
