.nvc-menu {
  position: fixed;
  inset: 16px 16px 16px auto;
  inline-size: min(760px, calc(100% - 32px));
  block-size: calc(100dvh - 32px);
  max-inline-size: none;
  max-block-size: none;
  margin: 0;
  padding: 0;
  border: 1px solid #ffffffaa;
  border-radius: 20px;
  background: var(--nvc-surface);
  box-shadow: 0 24px 100px #10111640;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
}

.nvc-menu::-webkit-scrollbar { display: none; }
.nvc-menu::backdrop { background: #15192288; backdrop-filter: blur(6px); }
.nvc-menu[open] { animation: nvc-menu-enter 280ms ease-out; }
body.nvc-menu-open { overflow: hidden; }

.nvc-menu-top {
  position: sticky;
  inset-block-start: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 32px;
  border-block-end: 1px solid var(--nvc-line);
  background: #edeef3f5;
}

.nvc-menu-brand { font-size: 16px; font-weight: 700; letter-spacing: 1px; }
.nvc-menu-brand small { display: block; margin-block-start: 4px; font-size: 8px; letter-spacing: 1.6px; color: var(--nvc-muted); }
.nvc-menu-close { gap: 12px; min-block-size: 44px; padding: 10px 14px; font-size: 12px; font-weight: 400; }
.nvc-menu-close svg { width: 14px; height: 14px; }
.nvc-menu-body { padding: 28px 32px; }
.nvc-root .nvc-menu-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: var(--nvc-muted); font-size: 9px; letter-spacing: 1.4px; }
.nvc-menu-eyebrow::before { content: ''; inline-size: 6px; block-size: 6px; flex: 0 0 auto; border-radius: 50%; background: var(--nvc-ink); box-shadow: 0 0 0 4px #d3d7df; }
.nvc-root .nvc-menu-heading { margin: 0 0 24px; font-size: 34px; line-height: 1.15; letter-spacing: -1px; font-weight: 700; }
.nvc-menu-quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-block-end: 28px; }
.nvc-menu-quick .nvc-button { justify-content: space-between; padding: 16px; font-size: 13px; }
.nvc-menu-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.nvc-menu-columns h2 { margin: 0 0 8px; color: var(--nvc-muted); font-size: 9px; font-weight: 500; letter-spacing: 1.6px; }
.nvc-menu-list { padding: 0; margin: 0; list-style: none; }
.nvc-menu-list a { display: flex; align-items: center; gap: 10px; min-block-size: 47px; padding-block: 8px; border-block-end: 1px solid var(--nvc-line); color: var(--nvc-ink); text-decoration: none; font-size: 14px; }
.nvc-menu-list a::after { content: ''; margin-inline-start: auto; flex: 0 0 16px; width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23626977' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M7 7h10v10'/%3E%3C/svg%3E") center/contain no-repeat; }
.nvc-menu-list a:hover { background: #ffffff99; }
.nvc-menu-list a[aria-current="page"] { font-weight: 700; }
.nvc-menu-list a > span { color: #868d99; font-size: 9px; }
.nvc-menu-resources { margin-block-start: 24px; }
.nvc-menu-search { margin: 28px 0 22px; }
.nvc-menu-search label { display: block; margin-block-end: 8px; color: var(--nvc-muted); font-size: 11px; }
.nvc-menu-search-row { display: flex; gap: 8px; padding: 5px; border: 1px solid var(--nvc-line); border-radius: 10px; background: var(--nvc-paper); }
.nvc-root .nvc-menu-search input { flex: 1; min-inline-size: 0; inline-size: 100%; padding: 10px; border: 0; background: transparent; color: var(--nvc-ink); font-size: 13px; }
.nvc-menu-search .nvc-button { flex: 0 0 44px; min-block-size: 44px; padding: 8px; font-size: 20px; }
.nvc-menu-bottom { display: flex; flex-direction: column; gap: 8px; padding-block-start: 20px; border-block-start: 1px solid var(--nvc-line); font-size: 11px; }
.nvc-menu-bottom a { color: var(--nvc-ink); text-decoration: none; }
.nvc-menu-bottom span { color: var(--nvc-muted); font-size: 10px; }

@keyframes nvc-menu-enter {
  from { opacity: 0; transform: translateX(22px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 700px) {
  .nvc-menu { inset: 8px; inline-size: calc(100% - 16px); block-size: calc(100dvh - 16px); border-radius: 14px; }
  .nvc-menu-top { padding: 18px; }
  .nvc-menu-brand { font-size: 13px; }
  .nvc-menu-body { padding: 22px 18px; }
  .nvc-root .nvc-menu-heading { font-size: 28px; }
  .nvc-menu-columns { gap: 18px; }
  .nvc-menu-columns h2 { font-size: 8px; letter-spacing: 1px; }
  .nvc-menu-list a { gap: 6px; min-block-size: 49px; font-size: 12px; }
  .nvc-menu-list a::after { font-size: 13px; }
  .nvc-menu-quick .nvc-button { padding: 14px 10px; gap: 6px; font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .nvc-menu[open] { animation: none; }
}
