/* Shared site navigation — single source of truth.
   Linked by the home page, resume, code, and the blog (deploy/theme).
   Do NOT duplicate these rules in css/style.css or deploy/theme/style.css. */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: rgba(15, 15, 15, 0.88);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.nav-inner {
  max-width: 1040px; margin: 0 auto; padding: 0 1.5rem;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem;
  height: 3.25rem;
}
.nav-name {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 1.15rem; font-weight: 600; color: #fff; letter-spacing: -0.02em;
  flex-shrink: 0;
}
.nav-name:hover { color: #fff; }
.nav-links { display: flex; gap: 1rem; align-items: center; }
.nav-links a { font-size: 0.8rem; font-weight: 500; color: #888; transition: color 0.2s; white-space: nowrap; }
.nav-links a:hover { color: #fff; }
.nav-toggle {
  display: none; background: none; border: none; cursor: pointer; padding: 0.5rem;
  flex-direction: column; gap: 5px;
}
.nav-toggle span { display: block; width: 18px; height: 1.5px; background: #fff; border-radius: 1px; }

@media (max-width: 767px) {
  .nav-toggle { display: flex; }
  .nav-links {
    display: none; position: absolute; top: 3.25rem; left: 0; right: 0;
    background: rgba(15,15,15,0.96); backdrop-filter: blur(12px);
    flex-direction: column; padding: 1rem 1.5rem; gap: 0.75rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }
  .nav-links.open { display: flex; }
}
