/* Homepage navigation and accessibility. */
html { scroll-padding-top: 100px; }
nav summary { list-style: none; }
nav summary::-webkit-details-marker { display: none; }
nav .dropdown[open] .dropdown-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
nav .dropdown:not([open]) .dropdown-menu { display: none; }
nav .dropdown-trigger { min-height: 44px; }
/* Keep the pointer inside the dropdown while crossing its visual gap. */
nav .dropdown-menu::before {
  content: '';
  position: absolute;
  top: -13px;
  left: -1px;
  right: -1px;
  height: 13px;
}
nav .mobile-nav { display: none; }
a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  padding: 12px 20px;
  z-index: 100;
  background: var(--bg);
  color: var(--ink);
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

@media (max-width: 900px) {
  nav { padding: 12px 20px; }
  nav > ul { display: none; }
  nav .mobile-nav { display: block; }
  .mobile-nav > summary {
    cursor: pointer;
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 8px 16px;
    border: 1px solid var(--rule);
    border-radius: 8px;
    color: var(--ink);
  }
  .mobile-nav-links {
    position: absolute;
    top: 100%;
    right: 20px;
    width: min(340px, calc(100vw - 40px));
    max-height: calc(100dvh - 100px);
    overflow-y: auto;
    padding: 12px;
    border: 1px solid var(--rule);
    border-radius: 10px;
    background: var(--bg);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
  }
  .mobile-nav-links a {
    display: block;
    padding: 12px;
    min-height: 44px;
    color: var(--ink);
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .fade-in { opacity: 1; transform: none; }
}
