/* Faction environmental framing — decorative only; all content stays live HTML. */
html{background:#020302}
body.home-target-page,
body.faction-release,
body.manual-page{
  --environment-image:none;
  --environment-base:#020302;
  --environment-opacity:.9;
  min-height:100vh;
  position:relative;
  isolation:isolate;
  background:var(--environment-base);
}

body.home-target-page:before,
body.faction-release:before,
body.manual-page:before{
  content:"";
  position:fixed;
  z-index:-2;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.48)),
    radial-gradient(ellipse at center,rgba(0,0,0,.38) 0 34%,rgba(0,0,0,.08) 68%,rgba(0,0,0,.28) 100%),
    var(--environment-image);
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  opacity:var(--environment-opacity);
}
body.home-target-page:after,
body.faction-release:after,
body.manual-page:after{
  content:"";
  position:fixed;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px),
    radial-gradient(ellipse at center,transparent 48%,rgba(0,0,0,.42) 100%);
  opacity:.65;
}

body.home-target-page{--environment-image:url("../assets/images/environment/home-command-environment.png");--environment-base:#050504;--environment-opacity:.72}
body.usf-release,body.manual-page[data-faction="usf"]{--environment-image:url("../assets/images/environment/usf-command-environment.png");--environment-base:#050704}
body.ukf-release,body.manual-page[data-faction="ukf"]{--environment-image:url("../assets/images/environment/ukf-command-environment.png");--environment-base:#030707}
body.wehr-release,body.manual-page[data-faction="wehr"]{--environment-image:url("../assets/images/environment/wehr-command-environment.png");--environment-base:#070303}
body.dak-release,body.manual-page[data-faction="dak"]{--environment-image:url("../assets/images/environment/dak-command-environment.png");--environment-base:#090602}

/* Defensive footer scenes close each faction page with a prepared position. */
body.usf-release,body.manual-page[data-faction="usf"]{--defensive-footer:url("../assets/images/defensive-footers/usf-defensive-footer.png")}
body.wehr-release,body.manual-page[data-faction="wehr"]{--defensive-footer:url("../assets/images/defensive-footers/wehr-defensive-footer.png")}
body.ukf-release,body.manual-page[data-faction="ukf"]{--defensive-footer:url("../assets/images/defensive-footers/ukf-defensive-footer.png")}
body.dak-release,body.manual-page[data-faction="dak"]{--defensive-footer:url("../assets/images/defensive-footers/dak-defensive-footer.png")}

/* Keep the defensive closeout at the actual bottom of short manual pages. */
.manual-shell{
  display:flex;
  flex-direction:column;
}
.manual-shell>.manual-layout{
  flex:1 0 auto;
}
.manual-shell>footer{
  flex:0 0 172px;
}

.manual-shell>footer,.release-footer{
  position:relative;
  overflow:hidden;
  min-height:172px;
  height:172px;
  border-top:2px solid var(--accent);
  background-image:
    linear-gradient(90deg,rgba(3,4,3,.76),rgba(3,4,3,.28) 28%,rgba(3,4,3,.28) 72%,rgba(3,4,3,.76)),
    linear-gradient(180deg,rgba(3,4,3,.08),rgba(3,4,3,.2)),
    var(--defensive-footer);
  background-size:cover;
  background-position:center,center,center 48%;
  box-shadow:inset 0 10px 24px rgba(0,0,0,.72),inset 0 -8px 18px rgba(0,0,0,.38);
  color:#d9d2c2;
  text-shadow:0 2px 5px #000;
}
.manual-shell>footer>*,.release-footer>*{position:relative;z-index:1}
.manual-shell>footer b,.manual-shell>footer a,.release-footer strong{color:var(--accent)}
.manual-shell>footer a{border:1px solid color-mix(in srgb,var(--accent) 55%,#3b3c34);padding:8px 11px;background:rgba(5,6,5,.7)}

@media (min-width:1280px){
  .release-footer{
    display:flex!important;
    justify-content:center;
    flex-direction:column;
    gap:9px;
    font-size:9px;
    letter-spacing:1.2px;
    text-align:center;
  }
  .release-footer strong{font-size:17px;letter-spacing:1px}
  .release-footer-badge{border-color:var(--accent)!important;color:var(--accent)!important;background:rgba(4,5,4,.72)!important}
}

/* Homepage faction cards use their own command color for framing and CTA. */
.target-faction-card{--card-accent:#b68a2c;border-color:color-mix(in srgb,var(--card-accent) 62%,#4b493f)}
.target-faction-card.usf-card{--card-accent:#a79a57}
.target-faction-card.ukf-card{--card-accent:#c49a45}
.target-faction-card.wehr-card{--card-accent:#d44338}
.target-faction-card.dak-card{--card-accent:#d59a20}
.target-faction-card .faction-card-copy:before{border-color:color-mix(in srgb,var(--card-accent) 68%,#4e4c42)!important}
.target-faction-card .faction-card-copy b{color:var(--card-accent)}
.target-faction-card:hover,.target-faction-card:focus-visible{
  border-color:var(--card-accent)!important;
  box-shadow:inset 0 -3px var(--card-accent),0 0 18px color-mix(in srgb,var(--card-accent) 24%,transparent);
  outline:0;
}

.home-shell,.release-shell,.manual-shell{
  box-shadow:0 0 0 1px rgba(151,137,99,.28),0 0 62px 22px #000;
}

.release-panel,.release-archive,.release-reference,.manual-panel{
  box-shadow:inset 0 1px rgba(255,255,255,.025),0 3px 12px rgba(0,0,0,.22);
}
.release-title,.manual-panel>h2{
  position:relative;
  background-image:linear-gradient(90deg,transparent,rgba(255,255,255,.025) 50%,transparent);
}
.release-title:before,.release-title:after,.manual-panel>h2:before,.manual-panel>h2:after{
  content:"";width:4px;height:4px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#c9bb8b,#57513e 48%,#080907 70%);
  box-shadow:0 0 5px #000;
  position:absolute;top:50%;transform:translateY(-50%);
}
.release-title:before,.manual-panel>h2:before{left:8px}
.release-title:after,.manual-panel>h2:after{right:8px}

/* Headquarters top navigation: reserve deliberate room for long faction names. */
@media (min-width:1280px){
  .release-top nav{
    display:grid;
    grid-template-columns:.82fr 1.18fr 1.22fr 1.5fr .72fr .68fr .86fr .82fr;
    align-items:stretch;
  }
  .release-top nav a{
    min-width:0!important;
    padding:0 12px!important;
    border-left:1px solid #36382f;
    border-right:0;
    overflow:hidden;
    text-overflow:clip;
  }
  .release-top nav a:nth-child(4){padding-left:16px!important;padding-right:16px!important}
  .release-top nav a:nth-child(5){padding-left:13px!important;padding-right:13px!important}
}

/* Let decoration fade away on compact screens where it cannot frame the page. */
@media (max-width:700px){
  body.home-target-page:before,body.faction-release:before,body.manual-page:before{display:none}
  .manual-shell>footer,.release-footer{min-height:116px;height:auto;background-position:center}
  .manual-shell>footer{flex-basis:auto}
}

@media (prefers-reduced-motion:reduce){
  body.home-target-page:before,body.faction-release:before,body.manual-page:before,
  body.home-target-page:after,body.faction-release:after,body.manual-page:after{position:absolute}
}
