/* =======================================================
   NAVIGATION
   Top nav bar, logo, links, mobile menu.
======================================================= */

.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 1.1rem 0;
  transition: background .4s var(--ease-out),
              backdrop-filter .4s var(--ease-out),
              border-color .4s;
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  background: rgba(10, 9, 8, .72);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom-color: var(--rule-soft);
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Logo */
.logo {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: -.025em;
}
.logo-mark {
  width: 28px;
  height: 28px;
  position: relative;
  display: grid;
  place-items: center;
}
.logo-mark svg { width: 100%; height: 100%; }
.logo em {
  font-style: italic;
  color: var(--amber);
  font-weight: 400;
}
/* Nav links */
.nav-links {
  display: flex;
  gap: 2.4rem;
  font-size: 14px;
  color: var(--ink-2);
}
.nav-links a {
  transition: color .2s;
  position: relative;
}
.nav-links a:hover { color: var(--ink); }
.nav-links a::after {
  content: "";
  position: absolute;
  left: 0; bottom: -4px;
  width: 0;
  height: 1px;
  background: var(--amber);
  transition: width .3s var(--ease-out);
}
.nav-links a:hover::after { width: 100%; }

/* Nav CTA button */
.nav-cta {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem 1rem;
  background: var(--ink);
  color: var(--bg);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  transition: transform .25s var(--ease-out), background .25s;
}
.nav-cta:hover {
  transform: translateY(-1px);
  background: var(--amber);
}
.nav-cta svg { width: 12px; height: 12px; }

/* Hamburger button (mobile only) */
.menu-btn {
  display: none;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--rule);
  border-radius: 10px;
}
.menu-btn span {
  width: 16px;
  height: 1.5px;
  background: var(--ink);
  display: block;
  position: relative;
}
.menu-btn span::before,
.menu-btn span::after {
  content: "";
  position: absolute;
  left: 0;
  width: 16px;
  height: 1.5px;
  background: var(--ink);
  transition: transform .3s;
}
.menu-btn span::before { top: -5px; }
.menu-btn span::after { top: 5px; }

/* Mobile fullscreen menu */
.mobile-menu {
  position: fixed;
  inset: 0;
  background: var(--bg);
  z-index: 99;
  padding: 6rem var(--pad-x) 2rem;
  transform: translateY(-100%);
  transition: transform .5s var(--ease-in-out);
  display: flex;
  flex-direction: column;
}
.mobile-menu.open { transform: translateY(0); }
.mobile-menu a {
  font-family: var(--font-display);
  font-size: 2.2rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--rule-soft);
  color: var(--ink);
}
.mobile-menu a span {
  color: var(--ink-3);
  font-family: var(--font-mono);
  font-size: .8rem;
  margin-right: .8rem;
}
