body.menu-open { overflow: hidden; }

.site-menu {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--app-width);
  max-width: none;
  height: var(--app-height);
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  color: var(--ink);
  background: transparent;
}
.site-menu[open] {
  display: grid;
  grid-template-columns: min(400px, 100%) minmax(0, 1fr);
  grid-template-rows: var(--header-height) minmax(0, 1fr);
}
.site-menu[open].is-closing { pointer-events: none; }
.site-menu::backdrop {
  background: rgb(0 0 0 / 35%);
  opacity: 0;
  transition: opacity 240ms linear;
}
.site-menu.is-open::backdrop { opacity: 1; }
.menu-topbar {
  grid-column: 1 / -1;
  z-index: 1;
  display: flex;
  min-width: 0;
  align-items: center;
  height: var(--header-height);
  border-bottom: 1px solid var(--paper);
  color: var(--paper);
  background: var(--ink);
}
.menu-topbar-label {
  display: flex;
  min-width: 0;
  align-items: center;
  height: 100%;
  padding: 0 24px;
}
.menu-topbar .header-version { align-self: stretch; }
.menu-tiles {
  grid-column: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 1fr 1.18fr .9fr 1.18fr .9fr;
  gap: 1px;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border-right: 1px solid var(--ink);
  background: var(--paper);
  opacity: .98;
  transform: translateX(calc(-100% - 1px));
  transition:
    transform 320ms cubic-bezier(.2, 0, 0, 1),
    opacity 220ms linear;
  will-change: transform;
}
.menu-topbar,
.menu-tiles {
  touch-action: pan-y pinch-zoom;
  user-select: none;
  -webkit-user-select: none;
}
.site-menu.is-open .menu-tiles { opacity: 1; transform: translateX(0); }
.menu-tile {
  min-width: 0;
  min-height: 0;
}
.menu-tile:nth-child(3),
.menu-tile:nth-child(6) { grid-column: 1 / -1; }
.menu-tile--ink { color: var(--paper); background: #161616; }
.menu-tile--gray-90 { background: #262626; }
.menu-tile--gray-70 { background: #525252; }
.menu-tile--gray-60 { background: #6f6f6f; }
.menu-tile--gray-50 { background: #8d8d8d; }
.menu-tile--gray-40 { background: #a8a8a8; }
.menu-tile--gray-30 { background: #c6c6c6; }
.menu-item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 4px;
  padding: 44px 40px 16px 16px;
  text-decoration: none;
}
.menu-number { position: absolute; top: 16px; left: 16px; font-size: 11px; }
.menu-title { font-size: 18px; line-height: 1.3; font-weight: 600; }
.menu-description { font-size: 11px; line-height: 1.4; }
.menu-arrow { position: absolute; right: 16px; top: 11px; font-size: 23px; }
.menu-item:hover { color: var(--ink); background: var(--paper); }
.menu-item:focus-visible { outline-offset: -5px; }
.menu-item[aria-current="location"] .menu-title { text-decoration: underline; text-underline-offset: 5px; }
.fallback-navigation {
  position: fixed;
  z-index: 30;
  right: 0;
  bottom: var(--status-height);
  left: 0;
  display: grid;
  grid-template-columns: 1fr;
  height: 44px;
  color: var(--paper);
  background: var(--ink);
  border-top: 1px solid var(--paper);
  border-bottom: 1px solid var(--paper);
}
.fallback-navigation a { display: grid; place-items: center; border-right: 1px solid var(--paper); font-size: 11px; text-decoration: none; }
.fallback-navigation a:last-child { border-right: 0; }
body:has(.fallback-navigation) .viewport-stage { padding-bottom: 44px; }
