/* ==========================================================================
   OpenPress — Navigation
   ========================================================================== */

.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-height);
  z-index: 1000;
  background: var(--color-nav-bg);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-base) var(--ease-apple);
}

.nav.is-scrolled {
  border-bottom-color: var(--color-divider);
}

.nav__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.nav__brand {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: var(--ls-snug);
  white-space: nowrap;
}

.nav__brand-mark {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 28px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav__link {
  font-size: 0.83rem;
  font-weight: 500;
  color: var(--color-text-secondary);
  padding: 6px 2px;
  position: relative;
  transition: color var(--dur-fast) var(--ease-apple);
}

.nav__link:hover, .nav__link.is-active {
  color: var(--color-text-primary);
}

.nav__link.is-active::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -3px;
  height: 2px;
  background: var(--color-text-primary);
  border-radius: 2px;
}

.nav__actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nav__icon-btn {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--color-text-primary);
  transition: background var(--dur-fast) var(--ease-apple);
}

.nav__icon-btn:hover {
  background: var(--color-surface-hover);
}

.nav__icon-btn svg {
  width: 18px;
  height: 18px;
}

.nav__theme-toggle .icon-sun { display: none; }
.nav__theme-toggle .icon-moon { display: block; }
html[data-theme="dark"] .nav__theme-toggle .icon-sun { display: block; }
html[data-theme="dark"] .nav__theme-toggle .icon-moon { display: none; }

.nav__menu-btn {
  display: none;
}

/* ---- Mobile nav ---- */
@media (max-width: 860px) {
  .nav__links { display: none; }
  .nav__menu-btn {
    display: flex;
    width: 34px; height: 34px;
    align-items: center;
    justify-content: center;
  }
}

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1100;
  visibility: hidden;
  pointer-events: none;
}

.mobile-menu.is-open {
  visibility: visible;
  pointer-events: auto;
}

.mobile-menu__scrim {
  position: absolute;
  inset: 0;
  background: var(--overlay-scrim);
  opacity: 0;
  transition: opacity var(--dur-base) var(--ease-apple);
}

.mobile-menu.is-open .mobile-menu__scrim { opacity: 1; }

.mobile-menu__panel {
  position: absolute;
  top: 0; right: 0;
  height: 100%;
  width: min(78vw, 360px);
  background: var(--color-bg-elevated);
  transform: translateX(100%);
  transition: transform var(--dur-base) var(--ease-apple);
  display: flex;
  flex-direction: column;
  padding: 20px 28px 40px;
  overflow-y: auto;
}

.mobile-menu.is-open .mobile-menu__panel { transform: translateX(0); }

.mobile-menu__top {
  display: flex;
  justify-content: flex-end;
  height: var(--nav-height);
  align-items: center;
}

.mobile-menu__close {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--color-surface);
}
.mobile-menu__close svg { width: 16px; height: 16px; }

.mobile-menu__links {
  display: flex;
  flex-direction: column;
  margin-top: 12px;
}

.mobile-menu__links a {
  font-family: var(--font-display);
  font-size: 1.7rem;
  font-weight: 600;
  padding: 14px 0;
  border-bottom: 1px solid var(--color-divider);
  letter-spacing: var(--ls-tight);
}
