/* =====================================================================
   DISCLOSURE REGISTER — shared shell
   Linked by every page. Holds design tokens, dark-mode hardening, and the
   shared chrome (header, nav, breadcrumb, footer, focus). Page-specific
   component styles live inline in each page's own <style> block.
   Canonical --wrap is 920px (reading width); the homepage overrides to 980px.
====================================================================== */

:root{
  --bg:#0b0e14; --panel:#11151e; --panel-2:#0d1119;
  --line:#1c2230; --line-2:#28303f;
  --ink:#e8edf4; --dim:#8b97a8; --mute:#7e8b9f;
  --evidence:#3fb98f; --anomaly:#7b6cf0;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --sans:'Public Sans',-apple-system,system-ui,sans-serif;
  --wrap:920px;
  color-scheme:dark;
}

/* ----- reset + dark hardening ----- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#0b0e14;color:#e8edf4;-webkit-text-size-adjust:100%}
body{margin:0;background:#0b0e14;background:var(--bg);color:#e8edf4;color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit}

/* ----- layout ----- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--mute)}

/* ----- header / nav ----- */
.site{border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;
  background:rgba(11,14,20,.86);backdrop-filter:blur(8px)}
.site .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.brand .mk{line-height:1}
.brand .nm{font-family:var(--mono);font-weight:600;letter-spacing:.16em;font-size:15px}
.nav{display:flex;gap:26px}
.nav a{font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--dim);
  text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current]{color:var(--ink);border-color:var(--line-2)}

/* ----- breadcrumb ----- */
.crumb{font-family:var(--mono);font-size:11.5px;color:var(--mute);padding:18px 0 0}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--dim)}
.crumb span{color:var(--line-2);margin:0 8px}

/* ----- footer ----- */
footer{border-top:1px solid var(--line);margin-top:50px;padding:34px 0 0}
footer .wrap{display:flex;justify-content:space-between;gap:28px 40px;flex-wrap:wrap;align-items:flex-start}
footer .fbrand{flex:1 1 300px;min-width:260px}
footer .fnm{font-family:var(--mono);letter-spacing:.16em;font-size:13px;color:var(--dim)}
footer .fbrand p{margin:8px 0 0;font-size:12px;color:var(--mute);max-width:42ch;line-height:1.6}
footer .fcol{display:flex;flex-direction:column;gap:9px;min-width:120px}
footer .fh{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:3px}
footer .fcol a{color:var(--dim);font-size:12.5px;font-family:var(--mono);text-decoration:none}
footer .fcol a:hover{color:var(--ink)}
footer .fbot{display:block;border-top:1px solid var(--line);margin-top:30px;padding:16px 0 40px}
footer .fbot p{margin:0;font-size:11.5px;color:var(--mute);font-family:var(--mono);letter-spacing:.02em;line-height:1.6}
@media (max-width:640px){footer .fcol{min-width:44%}}

/* ----- focus ----- */
a:focus-visible,summary:focus-visible,button:focus-visible,input:focus-visible,
label:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--evidence);outline-offset:3px;border-radius:2px}

/* ----- skip link ----- */
.skip{position:absolute;left:8px;top:-48px;z-index:60;background:var(--panel);color:var(--ink);
  border:1px solid var(--evidence);border-radius:8px;padding:9px 14px;font-family:var(--mono);
  font-size:13px;text-decoration:none;transition:top .15s ease}
.skip:focus{top:8px}

/* ----- mobile nav toggle (hidden on desktop, shown ≤640px) ----- */
.navt{position:absolute;width:1px;height:1px;opacity:0;margin:-1px;overflow:hidden}
.navbtn{display:none;cursor:pointer}
.navt:focus-visible+.navbtn{outline:2px solid var(--evidence);outline-offset:3px;border-radius:4px}

/* ----- shared responsive ----- */
@media (max-width:640px){
  body{font-size:16px}
  .navbtn{display:block;width:34px;height:34px;position:relative}
  .navbtn span,.navbtn span::before,.navbtn span::after{
    content:"";position:absolute;left:6px;right:6px;height:2px;background:var(--ink);transition:transform .2s,opacity .2s}
  .navbtn span{top:16px}
  .navbtn span::before{top:-7px}
  .navbtn span::after{top:7px}
  .nav{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;
    background:var(--panel);border-bottom:1px solid var(--line);padding:6px 0}
  .navt:checked~.nav{display:flex}
  .nav a{padding:13px 22px;font-size:14px;border-bottom:0}
  .navt:checked~.navbtn span{background:transparent}
  .navt:checked~.navbtn span::before{transform:translateY(7px) rotate(45deg)}
  .navt:checked~.navbtn span::after{transform:translateY(-7px) rotate(-45deg)}
}

/* ----- reduced motion ----- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.001ms!important;animation-duration:.001ms!important}
}
