
/* Locked Realm Guard header sizing shared by nested server pages. */
:root{--rg-global-header-height:58px;--brand-icon-size:28px;--brand-font-size:.88rem}
.rg-global-header{
  position:fixed;
  inset:0 0 auto;
  z-index:3000;
  height:var(--rg-global-header-height);
  background:#030811;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.rg-global-shell{
  width:min(1180px,calc(100% - 40px));
  height:100%;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.rg-global-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:#f6f8fb;
  font-family:Georgia,"Times New Roman",serif;
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;
}
.rg-global-brand img{width:28px;height:28px;object-fit:contain;display:block}
.rg-global-nav{display:flex;align-items:center;gap:24px}
.rg-global-nav a{
  color:#cfd8e2;
  text-decoration:none;
  font:700 .86rem/1 Inter,"Segoe UI",Arial,sans-serif;
  padding:20px 0 17px;
  position:relative;
}
.rg-global-nav a:hover{color:#fff0b3}
.rg-global-nav a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:10px;height:2px;
  background:#e7c56d;
  transform:scaleX(0);
  transition:transform .18s ease;
}
.rg-global-nav a:hover::after{transform:scaleX(1)}

/* Perfect Realm pages use this single Realm Guard header. */
body:has(.rg-global-header) .site-header{
  display:none!important;
}
body:has(.rg-global-header).subpage{
  padding-top:var(--rg-global-header-height)!important;
}
body:has(.rg-global-header):not(.subpage) .hero{
  padding-top:var(--rg-global-header-height)!important;
}
@media(max-width:760px){
  .rg-global-header{position:static;height:auto}
  .rg-global-shell{min-height:58px;padding:10px 0;align-items:center}
  .rg-global-nav{display:none}
  body:has(.rg-global-header).subpage{padding-top:0!important}
  body:has(.rg-global-header):not(.subpage) .hero{padding-top:0!important}
}

/* Final lock for Perfect Realm pages. This file loads after their page CSS. */
.site-header{
  height:var(--rg-global-header-height)!important;
  min-height:var(--rg-global-header-height)!important;
}
.site-header .nav-shell{
  height:var(--rg-global-header-height)!important;
  min-height:var(--rg-global-header-height)!important;
  width:min(1180px,calc(100% - 40px))!important;
  padding:0!important;
  align-items:center!important;
}
.site-header .brand,
.site-header .rg-global-brand{
  gap:10px!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:var(--brand-font-size)!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.11em!important;
  text-transform:uppercase!important;
}
.site-header .brand-icon,
.site-header .brand-mark,
.rg-global-brand img{
  width:var(--brand-icon-size)!important;
  height:var(--brand-icon-size)!important;
  flex:0 0 var(--brand-icon-size)!important;
  object-fit:contain!important;
}
.site-header .main-nav{
  display:flex!important;
  align-items:center!important;
  gap:26px!important;
}
.site-header .main-nav a{
  position:relative!important;
  padding:20px 0 18px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#d5dde7!important;
  font:700 .86rem/1 Inter,"Segoe UI",Arial,sans-serif!important;
}
.site-header .main-nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:10px;
  height:2px;
  background:#e7c56d;
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .18s ease;
}
.site-header .main-nav a:hover,
.site-header .main-nav a.active{
  color:#fff0b3!important;
}
.site-header .main-nav a:hover::after,
.site-header .main-nav a.active::after{
  transform:scaleX(1);
}
body.subpage{
  padding-top:var(--rg-global-header-height)!important;
}
@media(max-width:760px){
  .site-header{position:static!important;height:auto!important;min-height:0!important}
  .site-header .nav-shell{
    width:min(1180px,calc(100% - 28px))!important;
    height:auto!important;
    min-height:var(--rg-global-header-height)!important;
    padding:10px 0!important;
    gap:14px!important;
  }
  .site-header .main-nav{
    display:flex!important;
    gap:10px!important;
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
  }
  .site-header .main-nav a{padding:8px 0!important;font-size:.78rem!important}
  .site-header .main-nav a::after{bottom:3px!important}
  body.subpage{padding-top:0!important}
}
