/* =================================================================
   SIGNAL DIVISION — Operational Dossier
   Protecting truth. Steadfast in chaos.
   ================================================================= */

/* ---- Fonts ---- */
@font-face{font-family:'Archivo';font-style:normal;font-weight:900;font-display:swap;
  src:url('../fonts/archivo-900.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/archivo-700.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/inter-600.woff2') format('woff2');}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/spacemono-400.woff2') format('woff2');}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/spacemono-700.woff2') format('woff2');}

/* ---- Tokens ---- */
:root{
  --ink:#0B0B0B;
  --ink-2:#141210;
  --paper:#F4EEE3;
  --paper-2:#EAE2D2;
  --orange:#F37021;
  --concrete:#8a8782;
  --body:#3a352e;
  --line:rgba(11,11,11,.16);
  --line-2:rgba(11,11,11,.30);
  --line-smoke:rgba(244,238,227,.18);
  --line-smoke-2:rgba(244,238,227,.34);

  --display:'Archivo',system-ui,sans-serif;
  --sans:'Inter',system-ui,sans-serif;
  --mono:'Space Mono',ui-monospace,monospace;

  --maxw:1240px;
  --gut:clamp(20px,4vw,56px);
  --rail:248px;

  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* page-wide grain substrate */
body::before{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;
  background-image:var(--grain);background-size:160px;
  opacity:.05;mix-blend-mode:multiply;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--orange);color:var(--ink)}

/* visible keyboard focus */
:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:1px}
.smoke :focus-visible,.ground-ink :focus-visible,.topbar.dark :focus-visible,
.hero :focus-visible,.closer :focus-visible,.masthead :focus-visible,.foot :focus-visible{
  outline-color:var(--orange);outline-offset:3px}

/* ---- Type primitives ---- */
.eyebrow{
  font-family:var(--mono);font-size:12px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--concrete);
  display:inline-flex;align-items:center;gap:.7em;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--line-2);display:inline-block}
.eyebrow.smoke{color:rgba(244,238,227,.66)}
.eyebrow.smoke::before{background:var(--line-smoke-2)}
.eyebrow.no-tick::before{display:none}

.mono{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--concrete)}

h1,h2,h3,h4{font-family:var(--display);font-weight:900;line-height:.94;
  letter-spacing:-.02em;color:var(--ink);margin:0;text-transform:uppercase}
.h-xl{font-size:clamp(48px,8vw,110px)}
.h-lg{font-size:clamp(38px,6.5vw,80px)}
.h-md{font-size:clamp(30px,4.4vw,52px)}
.h-sm{font-size:clamp(22px,3vw,32px)}
.lede{font-size:clamp(18px,2.1vw,22px);line-height:1.5;color:var(--body)}
.measure{max-width:62ch}
.measure-sm{max-width:46ch}
.orange{color:var(--orange)}
.smoke h1,.smoke h2,.smoke h3,.smoke h4{color:var(--paper)}
h1.smoke,h2.smoke,h3.smoke,h4.smoke{color:var(--paper)}

/* ---- Layout ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.section{padding-block:clamp(72px,11vw,140px);position:relative}
.section-tight{padding-block:clamp(48px,7vw,84px)}
.ground-ink{background:var(--ink);color:rgba(244,238,227,.74)}
.ground-ink .lede{color:rgba(244,238,227,.74)}
.ground-paper2{background:var(--paper-2)}

.sec-head{display:flex;flex-direction:column;gap:18px;margin-bottom:clamp(36px,5vw,64px)}
.sec-head.center{align-items:center;text-align:center}

/* corner-ticked card */
.tick{position:relative}
.tick::before,.tick::after{content:"";position:absolute;width:10px;height:10px;
  border-color:var(--line-2);border-style:solid;opacity:0;transition:opacity .35s ease}
.tick::before{top:0;left:0;border-width:1px 0 0 1px}
.tick::after{bottom:0;right:0;border-width:0 1px 1px 0}
.tick:hover::before,.tick:hover::after{opacity:1}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.65em;font-family:var(--mono);
  font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  padding:15px 24px;border:1px solid var(--ink);color:var(--ink);background:transparent;
  transition:background .25s ease,color .25s ease,border-color .25s ease;cursor:pointer}
.btn .arr{transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn:hover .arr{transform:translate(3px,-3px)}
.btn-fill{background:var(--ink);color:var(--paper)}
.btn-fill:hover{background:var(--orange);border-color:var(--orange);color:var(--ink)}
.btn-orange{background:var(--orange);border-color:var(--orange);color:var(--ink)}
.btn-orange:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.smoke .btn{border-color:var(--line-smoke-2);color:var(--paper)}
.smoke .btn:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn-ghost{color:var(--paper);border-color:rgba(244,238,227,.4)}
.btn-ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* ---- Global status (LED + chip, visible on every page) ---- */
.led{--led-c:var(--orange);--led-r:243,112,33;
  width:6px;height:6px;border-radius:50%;background:var(--led-c);flex:0 0 auto;display:inline-block;
  box-shadow:0 0 0 0 rgba(var(--led-r),.7);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(var(--led-r),.7)}70%{box-shadow:0 0 0 9px rgba(var(--led-r),0)}100%{box-shadow:0 0 0 0 rgba(var(--led-r),0)}}
@media (prefers-reduced-motion:reduce){.led{animation:none}}

.drawer-status{color:var(--orange);display:inline-flex;align-items:center;gap:8px;margin-bottom:8px}



/* ---- Skip link (keyboard access) ---- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:300;background:var(--orange);color:var(--ink);
  font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:12px 18px}
.skip-link:focus{left:0}

/* ---- Header / side-rail nav ---- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:200;
  padding:16px 0;
  background:rgba(244,238,227,.82);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);transition:transform .4s ease,background .3s ease}
.topbar-inner{max-width:var(--maxw);margin:0 auto;width:100%;padding-inline:var(--gut);
  display:flex;align-items:center;justify-content:space-between;gap:24px}
.topbar.dark{background:rgba(11,11,11,.78);border-bottom-color:var(--line-smoke)}
.brandmark{display:flex;align-items:center;gap:12px}
.brandmark svg{height:22px;width:auto;fill:var(--ink)}
.topbar.dark .brandmark svg{fill:var(--paper)}
.brandmark .desig{font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--concrete);border-left:1px solid var(--line-2);padding-left:12px}
.topbar.dark .brandmark .desig{color:rgba(244,238,227,.6);border-left-color:var(--line-smoke-2)}

.nav{display:flex;align-items:center;gap:30px}
.nav a{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--body);position:relative;padding-block:4px}
.topbar.dark .nav a{color:rgba(244,238,227,.72)}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--orange);transition:width .3s ease}
.nav a:hover::after,.nav a.active::after{width:100%}
.nav a.active{color:var(--ink)}
.topbar.dark .nav a.active{color:var(--paper)}
.nav .nav-cta{padding:9px 16px;border:1px solid var(--orange);display:inline-flex;align-items:center;gap:9px}
.nav .nav-cta .led{width:8px;height:8px}
.nav .nav-cta:hover .led,.nav .nav-cta:focus-visible .led{--led-c:var(--paper);--led-r:244,238,227}
.topbar.dark .nav .nav-cta{border-color:var(--orange)}
.nav .nav-cta::after{display:none}
.nav .nav-cta:hover{background:var(--orange);color:var(--ink)}
.topbar.dark .nav .nav-cta:hover{background:var(--orange);color:var(--ink)}

.menu-btn{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.menu-btn span{width:24px;height:2px;background:var(--ink);transition:.3s}
.topbar.dark .menu-btn span{background:var(--paper)}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:190;background:var(--ink);color:var(--paper);
  display:flex;flex-direction:column;justify-content:center;gap:6px;padding:var(--gut);
  transform:translateY(-100%);transition:transform .45s cubic-bezier(.7,0,.2,1);visibility:hidden}
.drawer.open{transform:translateY(0);visibility:visible}
.drawer a{font-family:var(--display);font-weight:900;font-size:clamp(28px,7vw,42px);
  text-transform:uppercase;color:var(--paper);line-height:1.1;padding-block:5px;
  display:flex;align-items:baseline;gap:16px}
.drawer a .n{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--orange);
  flex:0 0 auto;letter-spacing:.1em}
.drawer a:hover{color:var(--orange)}
.drawer .drawer-foot{margin-top:36px;font-family:var(--mono);font-size:12px;
  letter-spacing:.14em;color:rgba(244,238,227,.6);text-transform:uppercase}

/* ---- data strip ---- */
.datastrip{display:flex;flex-wrap:wrap;gap:8px 28px;align-items:center;
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--concrete);padding-block:14px;border-block:1px solid var(--line)}
.datastrip .dot{width:5px;height:5px;border-radius:50%;background:var(--orange);display:inline-block}
.datastrip.smoke{color:rgba(244,238,227,.6);border-block-color:var(--line-smoke)}
.datastrip b{color:var(--ink);font-weight:700}
.datastrip.smoke b{color:var(--paper)}

/* ---- footer ---- */
.foot{background:var(--ink);color:rgba(244,238,227,.7);padding-block:clamp(56px,8vw,90px)}
.foot a{color:rgba(244,238,227,.7);transition:color .2s}
.foot a:hover{color:var(--orange)}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px}
.foot h4{color:var(--paper);font-size:13px;font-family:var(--mono);font-weight:700;
  letter-spacing:.18em;margin-bottom:18px;text-transform:uppercase}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.foot ul a{font-family:var(--mono);font-size:13px;letter-spacing:.06em}
.foot .foot-mark svg{height:30px;fill:var(--paper);margin-bottom:18px}
.foot .foot-tag{font-family:var(--mono);font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(244,238,227,.5);max-width:30ch;line-height:1.7}
.foot-about{display:table;margin-top:20px;font-family:var(--mono);font-size:13px;
  letter-spacing:.06em;color:rgba(244,238,227,.7);border-bottom:1px solid var(--orange);
  padding-bottom:2px;transition:color .2s ease}
.foot-about:hover{color:var(--orange)}
/* footer legal row (inside dark footer) */
.foot-legal{border-top:1px solid var(--line-smoke);margin-top:clamp(44px,6vw,68px);
  padding-top:26px;display:flex;flex-wrap:wrap;gap:14px 18px;justify-content:space-between;align-items:center}
.foot-legal p{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(244,238,227,.4)}
.foot-legal a{color:rgba(244,238,227,.4)}
.foot-legal a:hover{color:var(--orange)}
.foot-legal .foot-mark-line{color:rgba(244,238,227,.55);letter-spacing:.14em}

/* HCWSY strip — separate paper band below footer (house CTA) */
.hcwsy-strip{background:var(--paper);border-top:1px solid var(--line)}
.hcwsy-strip .wrap{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;
  align-items:center;padding-block:12px}
.hcwsy-strip a{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--concrete);transition:color .2s}
.hcwsy-strip .hcwsy-left:hover{color:var(--ink)}
.hcwsy-strip .hcwsy-right{color:var(--concrete);display:inline-flex;align-items:center;gap:.5em}
.hcwsy-strip .hcwsy-right:hover{color:var(--orange)}
.hcwsy-strip .hcwsy-arrow{color:var(--orange);transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.hcwsy-strip .hcwsy-right:hover .hcwsy-arrow{transform:translateX(3px)}

/* ---- reveal ---- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* =================================================================
   RESPONSIVE
   ================================================================= */
@media (max-width:1240px){
  .nav{gap:18px}
  .nav a{font-size:10.5px;letter-spacing:.11em}
  .nav .nav-cta{padding:8px 12px;gap:7px}
}
@media (max-width:1080px){
  .brandmark .desig{display:none}
  .nav{gap:14px}
}
@media (max-width:880px){
  .nav{display:none}
  .menu-btn{display:flex}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px}
  .foot .foot-mark{grid-column:1/-1}
}
@media (max-width:560px){
  body{font-size:16px}
  .foot-grid{grid-template-columns:1fr}
}


/* ================= STATS (shared — dossier readout) ================= */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.stat{background:var(--paper);padding:clamp(26px,3vw,40px) clamp(20px,2.2vw,30px);
  display:flex;flex-direction:column;gap:0;text-align:left;position:relative;min-height:200px}
.stat-ix{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;
  color:var(--orange);margin-bottom:auto}
.stat-n{font-family:var(--display);font-weight:900;font-size:clamp(44px,5.5vw,76px);
  line-height:.86;color:var(--ink);letter-spacing:-.02em;margin-top:18px}
.stat-n .plus{color:var(--orange)}
.stat-l{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--concrete);line-height:1.4;
  margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.stat::after{content:"";position:absolute;left:clamp(20px,2.2vw,30px);right:clamp(20px,2.2vw,30px);
  bottom:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;
  transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.stat:hover::after{transform:scaleX(1)}
.ground-ink .stat,.smoke .stat{background:var(--ink-2)}
.ground-ink .stat-n,.smoke .stat-n{color:var(--paper)}
.ground-ink .stat-l,.smoke .stat-l{border-top-color:var(--line-smoke)}
.ground-ink .stat::after,.smoke .stat::after{background:var(--orange)}

@media (max-width:760px){.stats{grid-template-columns:1fr 1fr}.stat{min-height:170px}}
@media (max-width:420px){.stats{grid-template-columns:1fr 1fr}.stat{min-width:0;overflow:hidden}
  .stat-n{font-size:clamp(30px,9.5vw,44px)}}

/* ===== Standardized closer CTA ===== */
.closer-cta{text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px;
  padding-block:clamp(20px,4vw,40px)}
.closer-cta .cta-eyebrow{font-family:var(--mono);font-size:12px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--orange);
  display:flex;align-items:center;gap:12px}
.closer-cta .cta-eyebrow::before{content:"";width:32px;height:1px;background:var(--orange)}
.closer-cta h2{margin:0}
.closer-cta .cta-sub{color:rgba(244,238,227,.74);max-width:54ch;margin:0}
.closer-cta .btn{margin-top:6px}

/* closer on paper ground */
.ground-paper2 .closer-cta .cta-sub,
.section-tight:not(.ground-ink) .closer-cta .cta-sub{color:var(--body)}

/* ===== frame viewer ===== */
.gallery figure:not(.gal-pending), .report-gallery figure{cursor:zoom-in;position:relative}
.gallery figure:not(.gal-pending)::after, .report-gallery figure::after{
  content:"";position:absolute;inset:10px;pointer-events:none;opacity:0;transition:opacity .2s ease;
  border-image:none;
  background:
    linear-gradient(var(--orange),var(--orange)) top left/18px 3px no-repeat,
    linear-gradient(var(--orange),var(--orange)) top left/3px 18px no-repeat,
    linear-gradient(var(--orange),var(--orange)) bottom right/18px 3px no-repeat,
    linear-gradient(var(--orange),var(--orange)) bottom right/3px 18px no-repeat}
.gallery figure:not(.gal-pending):hover::after, .gallery figure:not(.gal-pending):active::after,
.report-gallery figure:hover::after, .report-gallery figure:active::after{opacity:1}

.viewer{position:fixed;inset:0;z-index:200;background:rgba(11,11,11,.96);display:flex;
  align-items:center;justify-content:center;padding:56px 20px 64px}
.viewer[hidden]{display:none}
.viewer img{max-width:100%;max-height:100%;display:block}
.viewer-count{position:absolute;top:20px;left:24px;font-family:var(--mono);font-weight:700;
  font-size:12px;letter-spacing:.14em;color:var(--orange)}
.viewer-close{position:absolute;top:12px;right:16px;background:transparent;border:0;cursor:pointer;
  font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.12em;color:var(--paper);padding:10px}
.viewer-close:hover{color:var(--orange)}
.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);background:transparent;border:1px solid rgba(244,238,227,.3);
  color:var(--paper);font-family:var(--mono);font-size:18px;width:46px;height:46px;cursor:pointer;
  transition:border-color .2s ease,color .2s ease}
.viewer-nav:hover{border-color:var(--orange);color:var(--orange)}
.viewer-prev{left:16px}.viewer-next{right:16px}
@media (max-width:600px){.viewer-nav{width:40px;height:40px}.viewer{padding:52px 8px 56px}}
