/* Shared town signposts. Native disclosures remain usable without JavaScript. */
.siteNav { display:flex; align-items:center; gap:4px; font:12px/1.4 "IBM Plex Mono",ui-monospace,monospace; }
.siteNav .navGroup { position:relative; margin:0; padding:0; border:0; }
.siteNav > a, .siteNav .navGroup > summary { display:flex; align-items:center; gap:8px; min-height:44px; padding:0 12px; margin:0; border:0; border-radius:7px; color:var(--text2, var(--text)); background:none; font:inherit; font-weight:500; text-decoration:none; white-space:nowrap; cursor:pointer; list-style:none; }
.siteNav summary::-webkit-details-marker { display:none; }
.siteNav > a:hover, .siteNav .navGroup > summary:hover, .siteNav .navGroup[open] > summary { color:var(--text); background:var(--panel2); }
/* A quiet inset outline marks the current destination without moving its label. */
.siteNav > a[aria-current], .siteNav .navCurrent > summary { color:var(--text); background:var(--panel2); box-shadow:inset 0 0 0 1px var(--line); }
.siteNav .navChevron { width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); }
.siteNav [open] > summary .navChevron { transform:translateY(1px) rotate(225deg); }
.siteNav .navDropdown { position:absolute; top:100%; left:0; width:300px; padding:7px; background:var(--panel); border:1px solid var(--line); border-radius:0 12px 12px; box-shadow:0 18px 38px -16px #0008; max-height:calc(100dvh - 120px); overflow-y:auto; z-index:30; }
.siteNav .navDropdown a { display:block; padding:10px 12px; border:0; border-radius:6px; color:var(--text); background:none; text-decoration:none; white-space:normal; line-height:1.4; }
.siteNav .navDropdown a:hover, .siteNav .navDropdown a:focus-visible { background:var(--panel2); }
.siteNav .navDropdown a[aria-current] { box-shadow:inset 0 0 0 1px var(--line); background:var(--panel2); }
.siteNav .navDropdown a > span { display:block; font-weight:600; }
.siteNav .navDropdown small { display:block; margin-top:3px; font:11px/1.5 "IBM Plex Mono",ui-monospace,monospace; color:var(--text2, var(--dim)); }
.siteNav :focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
/* The wall's compact menu uses the same four entries as an accordion. */
.more .siteNav { display:flex; flex-direction:column; align-items:stretch; gap:2px; }
.more .siteNav .navDropdown { position:static; width:auto; border:0; border-left:2px solid var(--line); border-radius:0; box-shadow:none; margin:2px 10px 8px; padding:0 0 0 4px; max-height:none; }
.more .siteNav .navGroup > summary { justify-content:space-between; }
.more .siteNav > a { padding:0 12px; }
@media (max-width:760px) {
  .top .siteNav { width:100%; justify-content:space-between; gap:0; }
  .top .siteNav .navGroup { position:static; }
  .top .siteNav > a, .top .siteNav .navGroup > summary { padding:0 5px; font-size:10px; gap:5px; }
  .top .siteNav .navDropdown { left:12px; right:12px; width:auto; border-radius:0 0 12px 12px; }
}
