/* netCoders shared public shell — header, mobile menu and footer */
:root{--nc-shell-line:rgba(65,139,205,.28);--nc-shell-panel:rgba(3,12,22,.94);--nc-shell-muted:#91a8bc}

body{min-height:100vh}
.nav{z-index:10020;position:relative!important;top:auto!important;left:auto;right:auto}
.nav__bar{background:rgba(3,12,22,.88)!important;border-color:var(--nc-shell-line)!important;box-shadow:0 18px 52px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.nav__links a.active{color:#fff}
.nav__menu{align-items:center;justify-content:center;flex-direction:column;gap:4px}
.nav__menu span{width:20px;height:2px;margin:0;background:#f4f8fc;border-radius:4px;transition:transform .2s ease,opacity .2s ease}
.nav__menu.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav__menu.is-open span:nth-child(2){opacity:0}
.nav__menu.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.sheet{z-index:10040;background:var(--nc-shell-panel);border-color:rgba(38,149,255,.38);box-shadow:0 25px 75px rgba(0,0,0,.5)}

.foot.nc-site-footer{width:min(1200px,calc(100% - 40px));margin:clamp(52px,7vw,88px) auto 0;padding:0 0 max(30px,env(safe-area-inset-bottom));color:var(--nc-shell-muted)}
.nc-site-footer .foot__row{display:grid;grid-template-columns:130px minmax(0,1fr) auto;align-items:center;gap:24px;padding:24px 0;border-top:1px solid var(--nc-shell-line);border-bottom:1px solid rgba(65,139,205,.18)}
.nc-site-footer .brand__mark{height:auto;width:112px;max-width:100%;display:block}
.nc-site-footer .foot__links{display:flex;align-items:center;justify-content:center;gap:10px 20px;flex-wrap:wrap}
.nc-site-footer .foot__links a{color:#91a8bc;text-decoration:none;font:700 12px/1.35 "IBM Plex Sans",system-ui,sans-serif;white-space:nowrap}
.nc-site-footer .foot__links a:hover,.nc-site-footer .foot__links a:focus-visible{color:#42a5ff;outline:none}
.nc-site-footer .foot__legal{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:16px 0 0;color:#647b8f;font:500 11px/1.5 "IBM Plex Mono",monospace}
.nc-site-footer .nc-footer-desktop-toggle{margin:0;white-space:nowrap}

/* Pages that previously used standalone headers now share the fixed site shell. */
.info-page .info-wrap{padding-top:28px}
.features-page .features-main{padding-top:0}
.status-page main.wrap{padding-top:20px}
.simple-public-page{background:radial-gradient(circle at 50% -10%,#10345a 0,#061321 38%,#030b14 72%);color:#f4f8fc;font-family:"IBM Plex Sans",system-ui,sans-serif}
.simple-public-page main{min-height:55vh}

@media(max-width:1120px){
  .nc-site-footer .foot__row{grid-template-columns:110px minmax(0,1fr)}
  .nc-site-footer .nc-footer-desktop-toggle{grid-column:1/-1;justify-self:center}
}
@media(max-width:720px){
  .foot.nc-site-footer{width:min(100% - 28px,1200px);margin-top:48px}
  .nc-site-footer .foot__row{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:22px 0}
  .nc-site-footer .foot__links{justify-content:flex-start;gap:12px 18px}
  .nc-site-footer .nc-footer-desktop-toggle{align-self:stretch;justify-content:center;width:100%;min-height:44px}
  .nc-site-footer .foot__legal{align-items:flex-start;flex-direction:column;gap:5px}
  .info-page .info-wrap{padding-top:20px}
  .features-page .features-main{padding-top:0}
  .status-page main.wrap{padding-top:12px}
}
@media(max-width:390px){
  .foot.nc-site-footer{width:calc(100% - 20px)}
  .nc-site-footer .foot__links{display:grid;grid-template-columns:1fr 1fr;width:100%}
}

