/* =========================================================
   Realm HQ · shared header nav (hamburger + full-screen drawer)
   Loaded by every page, including the self-contained ones that
   do not ship style.css. Every custom property carries a literal
   fallback so the drawer renders identically on both.
   Markup contract: .hdr-burger#hdrBurger + .hdr-drawer#hdrDrawer,
   driven by assets/js/nav.js. There is no second menu system.
   ========================================================= */

/* Hamburger button. Hidden by default (desktop). */
.hdr-burger{
  display:none;
  background:transparent;
  border:1px solid var(--border, #1c1c22);
  color:var(--bone, #e8e4d4);
  width:44px;
  height:44px;
  padding:0;
  cursor:pointer;
  position:relative;
  border-radius:2px;
  transition:border-color .18s ease, background .18s ease;
}
.hdr-burger:hover{ border-color:var(--gold, #D4AF37); background:rgba(255,255,255,.02); }
.hdr-burger span{
  position:absolute;
  left:10px; right:10px;
  height:1.5px;
  background:var(--bone, #e8e4d4);
  transition:transform .28s ease, opacity .2s ease, top .28s ease;
}
.hdr-burger span:nth-child(1){ top:14px; }
.hdr-burger span:nth-child(2){ top:21px; }
.hdr-burger span:nth-child(3){ top:28px; }
.hdr-burger[aria-expanded="true"] span:nth-child(1){ top:21px; transform:rotate(45deg); }
.hdr-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hdr-burger[aria-expanded="true"] span:nth-child(3){ top:21px; transform:rotate(-45deg); }

/* Float variant: pages built without a site header (shop, vault,
   terminal, access, lore, policy) pin the same button top-right. */
.hdr-burger-float{
  position:fixed;
  top:12px; right:12px;
  z-index:60;
  background:rgba(5,5,6,.86);
  backdrop-filter:blur(6px);
}

/* Drawer. Full-screen classified terminal. */
.hdr-drawer{
  position:fixed;
  inset:0;
  background:var(--void, #0B0B0F);
  z-index:9998;
  opacity:0;
  visibility:hidden;
  transition:opacity .28s ease, visibility .28s ease;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
}
.hdr-drawer.is-open{ opacity:1; visibility:visible; }
.hdr-drawer::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 50% 20%, rgba(168,85,247,.08), transparent 60%),
    repeating-linear-gradient(0deg, transparent 0, transparent 2px, rgba(255,255,255,.015) 2px, rgba(255,255,255,.015) 3px);
  pointer-events:none;
  z-index:0;
}
.hdr-drawer-head{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 24px;
  border-bottom:1px solid var(--border, #1c1c22);
}
.hdr-drawer-tag{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.18em;
  color:var(--gold, #D4AF37);
  text-transform:uppercase;
}
.hdr-drawer-close{
  background:transparent;
  border:1px solid var(--border, #1c1c22);
  color:var(--bone, #e8e4d4);
  width:44px;
  height:44px;
  padding:0;
  cursor:pointer;
  border-radius:2px;
  font-family:'JetBrains Mono', monospace;
  font-size:20px;
  line-height:1;
  transition:border-color .18s ease, color .18s ease;
}
.hdr-drawer-close:hover{ border-color:var(--gold, #D4AF37); color:var(--gold, #D4AF37); }
.hdr-drawer-nav{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  padding:8px 0;
  flex:1;
}
.hdr-drawer-nav a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 24px;
  color:var(--bone, #e8e4d4);
  font-family:'JetBrains Mono', monospace;
  font-size:15px;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  border-bottom:1px solid rgba(212,175,55,.14);
  transition:background .16s ease, color .16s ease, padding-left .18s ease;
}
.hdr-drawer-nav a:hover,
.hdr-drawer-nav a:focus-visible{
  background:rgba(212,175,55,.05);
  color:var(--gold, #D4AF37);
  padding-left:32px;
  outline:none;
}
.hdr-drawer-nav a.is-active{
  color:var(--gold, #D4AF37);
}
.hdr-drawer-nav a::after{
  content:"→";
  opacity:.35;
  transition:opacity .18s ease, transform .18s ease;
}
.hdr-drawer-nav a:hover::after{ opacity:1; transform:translateX(4px); }
.hdr-drawer-foot{
  position:relative;
  z-index:2;
  padding:20px 24px;
  border-top:1px solid var(--border, #1c1c22);
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--bone-faint, #6b6b6b);
  text-transform:uppercase;
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
body.drawer-open{ overflow:hidden; }

/* Show hamburger, hide inline nav under 900px */
@media (max-width: 900px){
  .hdr-nav{ display:none; }
  .hdr-burger{ display:inline-block; }
  .site-header{ gap:12px; }
}

/* No JavaScript means no drawer to open, so the button stays hidden. */
html:not(.js) .hdr-burger{ display:none; }
