.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid transparent;
  transition: border-color 150ms linear, background-color 180ms linear, color 180ms linear;
}

.site-header.on-dark {
  --paper: var(--d-paper);
  --ink: var(--d-ink);
  --ink-2: var(--d-ink-2);
  --accent: var(--d-accent);
  --rule: var(--d-rule);
  --rule-2: var(--d-rule-2);
  --idx: var(--d-idx);
  background: color-mix(in srgb, var(--d-paper) 88%, transparent);
  color: var(--d-ink);
}

.site-header.is-stuck { border-bottom-color: var(--rule); }

.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  height: var(--headerH);
}

.wordmark {
  display: inline-flex;
  align-items: center;
  gap: var(--s3);
  padding-block: var(--s3);
  font-size: var(--step-0);
  font-weight: 600;
  letter-spacing: -0.02em;
  text-decoration: none;
  white-space: nowrap;
}

.wordmark .dot {
  width: 7px;
  height: 7px;
  flex: none;
  border-radius: 1px;
  background: var(--accent);
}

.site-nav { display: flex; gap: var(--s2); }

.site-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-inline: var(--s3);
  color: var(--ink-2);
  font-family: var(--font-mono);
  font-size: var(--step--2);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: color 150ms linear;
}

.site-nav a::after {
  content: "";
  position: absolute;
  left: var(--s3);
  right: var(--s3);
  bottom: 12px;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms cubic-bezier(0.2,0,0,1);
}

.site-nav a:hover, .site-nav a.is-active { color: var(--ink); }
.site-nav a:hover::after, .site-nav a.is-active::after { transform: scaleX(1); }

.progress {
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 1px;
  background: var(--accent);
  transform-origin: left;
}

@media (max-width: 767px) {
  .site-nav .wide-only { display: none; }
}

@media (max-width: 520px) {
  .site-nav .compact-hide { display: none; }
}
