/* ==========================================================================
   Ulthor Group Intelligence — shared chrome
   Header, navigation, title band, document typography, footer, motion.
   Page-specific layout stays in each page's own <style> block.
   ========================================================================== */

:root{
  --bg-deep:#020809;
  --text:#d6dcdd;
  --text-dim:#9fb0b2;
  --line:rgba(255,255,255,.35);
  --line-dim:rgba(255,255,255,.14);
  --accent:#8fd3d0;
  --amber:#e8cd86;
  --pad:clamp(24px,4.5vw,72px);
  --measure:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg-deep);color:var(--text);font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}

/* ============ ACCESSIBILITY ============ */
.skip{position:absolute;left:-9999px;top:0;z-index:100;
  background:#050f11;color:#fff;border:1px solid var(--accent);
  padding:13px 20px;font-size:12px;letter-spacing:2px;text-transform:uppercase}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ============ HEADER ============ */
header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--pad);
  background:rgba(3,9,10,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-dim)}
.brand{display:flex;align-items:center;gap:16px}
.brand .mark{width:64px;height:auto;flex:none;display:block}
.brand-name{display:flex;flex-direction:column;gap:3px}
.brand-name .t1{font-weight:700;font-size:21px;letter-spacing:6px;color:#fff;line-height:1}
.brand-name .t2{font-weight:500;font-size:8px;letter-spacing:3.8px;color:var(--text-dim)}
nav{display:flex;gap:clamp(14px,2.2vw,38px)}
nav a{font-size:11.5px;font-weight:500;letter-spacing:2.6px;color:var(--text);opacity:.8;
  transition:opacity .2s}
nav a:hover,nav a[aria-current]{opacity:1}
nav a[aria-current]{color:#fff}

.nav-toggle{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:11px;cursor:pointer;border:1px solid var(--line);flex:none}
.burger span{display:block;height:1.5px;background:#fff;transition:transform .25s,opacity .25s}
.nav-toggle:focus-visible + .burger{outline:2px solid var(--accent);outline-offset:2px}

.btn{display:inline-flex;align-items:center;gap:22px;border:1px solid var(--line);padding:13px 20px;
  font-size:11px;font-weight:500;letter-spacing:2.6px;color:#fff;background:rgba(255,255,255,.02);
  transition:background .2s,border-color .2s;white-space:nowrap;cursor:pointer;font-family:inherit}
.btn:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6)}
.btn .arw{width:11px;height:11px;flex:none}
.arw path{stroke:currentColor;stroke-width:1.6;fill:none}

/* ============ TITLE BAND ============ */
.band{position:relative;overflow:hidden;border-bottom:1px solid var(--line-dim);
  padding:clamp(44px,7vw,84px) var(--pad) clamp(34px,4.5vw,56px)}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  filter:grayscale(.2) brightness(.5)}
.band::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(2,9,11,.9) 0%,rgba(2,9,11,.76) 34%,rgba(2,11,13,.6) 100%)}
.band .inner{position:relative;z-index:2;max-width:var(--measure);margin:0 auto}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:3px;
  color:var(--text-dim);text-transform:uppercase;margin-bottom:16px}
h1{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(32px,5vw,66px);line-height:1;letter-spacing:.5px;color:#dfe4e5;
  text-shadow:0 4px 30px rgba(0,0,0,.5)}
.band p{margin-top:18px;max-width:62ch;font-size:15px;font-weight:300;line-height:1.65;color:#c3ced0}

/* ============ DOCUMENT LAYOUT ============ */
main{max-width:var(--measure);margin:0 auto;padding:clamp(34px,4.5vw,60px) var(--pad) 0}
.doc{max-width:74ch}
.doc p{font-size:16px;font-weight:300;line-height:1.85;color:#c6d0d1}
.doc p + p{margin-top:24px}
.doc h2{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.5px;
  font-size:clamp(24px,2.8vw,36px);line-height:1.05;color:#dfe4e5;margin-top:clamp(46px,5vw,68px)}
.doc h2:first-child{margin-top:0}
.doc h3{font-size:12px;font-weight:600;letter-spacing:2.6px;color:#fff;text-transform:uppercase;
  margin-top:34px}
.doc h2 + p,.doc h3 + p{margin-top:16px}
.doc ul{margin-top:16px;padding-left:0;list-style:none}
.doc li{position:relative;padding-left:20px;font-size:15.5px;font-weight:300;line-height:1.8;
  color:#c6d0d1;margin-top:9px}
.doc li::before{content:"";position:absolute;left:0;top:12px;width:7px;height:1px;
  background:rgba(143,211,208,.75)}
.doc a.inline{color:var(--accent);border-bottom:1px solid rgba(143,211,208,.35)}
.doc a.inline:hover{border-bottom-color:var(--accent)}
.lead{font-size:17.5px;line-height:1.75;color:#d3dcdd}

.rule{height:1px;background:var(--line-dim);margin:clamp(44px,5vw,64px) 0 0;max-width:74ch}

/* callout: neutral by default, amber for "needs attention" */
.callout{max-width:74ch;margin-top:clamp(30px,3.6vw,44px);
  border:1px solid var(--line-dim);border-left:2px solid rgba(150,200,200,.5);
  background:rgba(255,255,255,.02);padding:22px 26px}
.callout.warn{border-left-color:rgba(232,205,134,.75)}
.callout h4{font-size:10.5px;font-weight:600;letter-spacing:2.4px;color:#fff;text-transform:uppercase}
.callout.warn h4{color:var(--amber)}
.callout p{margin-top:11px;font-size:14.5px;font-weight:300;line-height:1.7;color:var(--text-dim)}
.callout p + p{margin-top:12px}

/* ============ CARD GRID (hub pages) ============ */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));
  gap:clamp(14px,1.8vw,22px);margin-top:clamp(26px,3.4vw,40px)}
.rcard{display:flex;flex-direction:column;border:1px solid var(--line-dim);
  background:rgba(255,255,255,.02);padding:clamp(20px,2.4vw,28px);
  transition:border-color .2s,transform .2s;min-height:172px}
a.rcard:hover{border-color:rgba(255,255,255,.4);transform:translateY(-3px)}
.rcard .k{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:2px;
  text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.rcard h3{font-size:17px;font-weight:600;color:#fff;line-height:1.3}
.rcard p{margin-top:11px;font-size:14px;font-weight:300;line-height:1.65;color:var(--text-dim)}
.rcard .go{margin-top:auto;padding-top:16px;font-family:'IBM Plex Mono',monospace;font-size:9.5px;
  letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}
a.rcard:hover .go{color:var(--accent)}
.rcard.soon{opacity:.62}
.rcard.soon .k{color:var(--amber)}

/* ============ TABLES ============ */
.tablewrap{overflow-x:auto;margin-top:20px;max-width:100%}
table{border-collapse:collapse;width:100%;min-width:520px}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line-dim);vertical-align:top}
th{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:2px;text-transform:uppercase;
  color:var(--text-dim);font-weight:500;white-space:nowrap}
td{font-size:14.5px;font-weight:300;line-height:1.65;color:#c6d0d1}
td strong{font-weight:600;color:#fff}
td code{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--accent)}

/* ============ FOOTER ============ */
footer{margin-top:clamp(56px,7vw,96px);border-top:1px solid var(--line-dim);
  background:rgba(3,9,10,.92)}
.foot-in{max-width:var(--measure);margin:0 auto;display:flex;align-items:center;
  justify-content:space-between;gap:24px;flex-wrap:wrap;padding:22px var(--pad)}
.foot-in p{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:2.2px;
  color:var(--text-dim);text-transform:uppercase;line-height:1.9}

/* ============ MOTION ============ */
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes rise-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
header{animation:fade-in .5s ease both}
.band .inner{animation:rise-in .6s cubic-bezier(.16,1,.3,1) both .04s}
main{animation:rise-in .6s cubic-bezier(.16,1,.3,1) both .13s}
footer{animation:fade-in .5s ease both .22s}
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-leave .22s ease both}
@keyframes vt-leave{to{opacity:0}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  header,.band .inner,main,footer,::view-transition-old(root){animation:none}
}

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  .burger{display:flex;order:3}
  nav{display:none;order:4;position:absolute;top:100%;left:0;right:0;margin:0;
    flex-direction:column;gap:0;background:#050f11;
    border-top:1px solid var(--line-dim);border-bottom:1px solid var(--line-dim)}
  .nav-toggle:checked ~ nav{display:flex;animation:rise-in .28s ease both}
  nav a{padding:17px var(--pad);opacity:1;border-bottom:1px solid rgba(255,255,255,.07)}
  nav a:last-child{border-bottom:none}
  .nav-toggle:checked ~ .burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .nav-toggle:checked ~ .burger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  header .btn{padding:11px 16px}
}
@media (max-width:560px){
  header .btn{display:none}
  .doc p{font-size:15.5px}
}

/* small spacing utilities, so no inline style attribute is needed */
.mt-md{margin-top:34px}
.mt-lg{margin-top:clamp(40px,5vw,64px)}
