/* ─────────────────────────────────────────────────────────────
   DESIGN TOKENS — mirrors presentation.css design system
   ───────────────────────────────────────────────────────────── */
:root {
  --color-bg:         #0a0a0a;
  --color-accent:     rgb(237, 187, 64);   /* title gold   */
  --color-text:       #ffffff;
  --color-muted:      rgba(255, 255, 255, 0.55);
  --color-nav-link:   #666666;             /* slide-nav a  */
  --color-nav-hover:  #999999;             /* slide-nav a:hover */

  --font-display:     'Bebas Neue', sans-serif;    /* from slides */
  --font-title:       'Cormorant Garamond', Georgia, serif;
  --font-body:        'Barlow', sans-serif;         /* from slides */

  --page-pad:         6vw;    /* mirrors --slide-padding in presentation.css */
}

body {
  background: var(--color-bg);
}

/* ─────────────────────────────────────────────────────────────
   HEADER
   Fixed top bar. Transparent over the hero — gains a
   dark frosted-glass background once the user scrolls away.
   ───────────────────────────────────────────────────────────── */
.site-header {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.75rem var(--page-pad);
  transition: background 0.45s ease, backdrop-filter 0.45s ease;
}

.site-header.scrolled {
  background: rgba(10, 10, 10, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.site-logo {
  font-family: var(--font-body);
  font-size: clamp(0.6rem, 0.85vw, 0.82rem);
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-nav-link);
  transition: color 0.2s;
}
.site-logo:hover { color: var(--color-nav-hover); }


/* ── Hamburger button ──────────────────────────────────────── */
.hamburger-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: flex-end;
}
.hamburger-btn .bar {
  display: block;
  height: 1px;
  background: var(--color-nav-link);
  transition:
    width     0.25s ease,
    background 0.2s ease,
    transform  0.3s  ease,
    opacity    0.25s ease;
}
.hamburger-btn .bar:nth-child(1) { width: 26px; }
.hamburger-btn .bar:nth-child(2) { width: 18px; }
.hamburger-btn .bar:nth-child(3) { width: 26px; }
.hamburger-btn:hover .bar { background: var(--color-nav-hover); }

/* Animate bars → × when open */
.hamburger-btn.is-open .bar:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
  width: 26px;
}
.hamburger-btn.is-open .bar:nth-child(2) { opacity: 0; width: 0; }
.hamburger-btn.is-open .bar:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
  width: 26px;
}


/* ═════════════════════════════════════════════════════════════
   OFF-CANVAS MENU
   ═════════════════════════════════════════════════════════════ */
.menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 150;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}
.menu-backdrop.is-visible { opacity: 1; pointer-events: all; }

.menu-panel {
  position: fixed;
  inset-block: 0;
  inset-inline-end: 0;
  z-index: 200;
  width: min(340px, 82vw);
  background: #0f0f0f;
  border-inline-start: 1px solid rgba(255, 255, 255, 0.05);
  transform: translateX(100%);
  transition: transform 0.42s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  padding: 2rem 2.5rem 3rem;
  overflow-y: auto;
}
.menu-panel.is-open { transform: translateX(0); }

/* Close button */
.menu-close {
  align-self: flex-end;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-nav-link);
  font-family: var(--font-body);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 2px 0;
  margin-block-end: 3.5rem;
  transition: color 0.2s;
}
.menu-close:hover { color: var(--color-text); }

/* Level-1 list */
.main-menu { list-style: none; }

.menu-item {
  border-block-end: 1px solid rgba(255, 255, 255, 0.05);
}
.menu-item:first-child {
  border-block-start: 1px solid rgba(255, 255, 255, 0.05);
}

.item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Level-1 links */
.menu-item > .item-header > a {
  flex: 1;
  display: block;
  padding: 1rem 0;
  font-family: var(--font-body);
  font-size: clamp(0.76rem, 1.2vw, 0.9rem);
  font-weight: 400;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-nav-link);
  transition: color 0.2s;
}
.menu-item > .item-header > a:hover { color: var(--color-text); }

/* Chevron toggle */
.dropdown-toggle {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.6rem 0.3rem;
  color: var(--color-nav-link);
  transition: color 0.2s, transform 0.25s;
}
.dropdown-toggle::after {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}
.dropdown-toggle:hover { color: var(--color-nav-hover); }
.dropdown-toggle.is-open { transform: rotate(180deg); }

/* Level-2 sub-menu */
.sub-menu {
  list-style: none;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}
.sub-menu.is-open { max-height: 400px; }

.sub-menu .menu-item { border: none; }

.sub-menu .menu-item a {
  display: block;
  padding: 0.5rem 0 0.5rem 1.4rem;
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 300;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.28);
  transition: color 0.2s;
}
.sub-menu .menu-item a:hover { color: var(--color-nav-hover); }
