/* Header (PiratePLGame) */
:root {
  --header-height: 68px;
}

/* Skip link */
.skip-link {
  position: absolute;
  top: -40px; left: 12px;
  background: var(--color-primary);
  color: var(--color-primary-contrast);
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  z-index: 1000;
  transition: transform var(--duration-150) var(--ease);
}
.skip-link:focus { top: 12px; }

.site-header {
  position: sticky; top: 0; z-index: 60;
  backdrop-filter: saturate(1.2) blur(8px);
}

.header-bar {
  display: flex; align-items: center; justify-content: space-between;
  min-height: var(--header-height);
}

.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; letter-spacing: 0.2px; }
.brand .brand-mark { color: var(--color-primary); font-size: 1.25rem; display: inline-flex; }
.brand .brand-name { font-family: var(--font-serif); font-size: var(--font-size-500); }
.brand:hover { text-decoration: none; }

/* Nav list */
.primary-nav { /* defaults for non-JS (visible) */ }
.nav-list { display: flex; align-items: center; gap: 18px; }
.nav-list a {
  color: var(--color-text);
  padding: 8px 10px; border-radius: var(--radius-sm);
  text-decoration: none;
}
.nav-list a:hover,
.nav-list a:focus-visible { color: var(--color-primary); background: rgba(255,255,255,0.06); outline: none; }

/* Toggle (hamburger) */
.nav-toggle { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-md); }
.hamburger { position: relative; width: 22px; height: 2px; background: var(--color-text); border-radius: 2px; transition: background var(--duration-150) var(--ease); }
.hamburger::before, .hamburger::after {
  content: ""; position: absolute; left: 0; width: 22px; height: 2px; background: var(--color-text); border-radius: 2px; transition: transform var(--duration-250) var(--ease), top var(--duration-150) var(--ease), bottom var(--duration-150) var(--ease), opacity var(--duration-150) var(--ease);
}
.hamburger::before { top: -7px; }
.hamburger::after { bottom: -7px; }

.nav-toggle[aria-expanded="true"] .hamburger { background: transparent; }
.nav-toggle[aria-expanded="true"] .hamburger::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .hamburger::after { bottom: 0; transform: rotate(-45deg); }

/* Responsive behavior: collapse nav only when JS is enabled */
html.js .primary-nav { /* mobile collapsed state */ }
@media (max-width: 900px) {
  .nav-toggle { display: inline-flex; }
  .nav-list { flex-direction: column; align-items: flex-start; gap: 8px; }

  html.js .primary-nav {
    position: fixed; top: var(--header-height); left: 0; right: 0;
    background: var(--color-surface);
    border-top: 1px solid rgba(255,255,255,0.08);
    box-shadow: var(--shadow-lg);
    padding: 16px;
    display: none; /* hidden until opened */
  }
  html.js .primary-nav.is-open { display: block; }
}

@media (min-width: 901px) {
  .primary-nav { display: block; }
}

/* High-contrast focus affordance on header controls */
.nav-toggle:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
