/* ---------- Humint Driven — mid-fi tokens & primitives ---------- */
:root{
  --bg:#0a0e1a;
  --bg-2:#0d1220;
  --panel:#11172a;
  --panel-2:#161d34;
  --line:#23304e;
  --line-soft:#1a2238;
  --text:#ece6d3;
  --text-2:#b8b09a;
  --muted:#7a7563;
  --gold:#e07b2e;
  --gold-2:#f4a052;
  --gold-soft:#b85f1a;
  --red:#c0533a;
  --serif:'Sora', system-ui, sans-serif;
  --body:'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --mono:'IBM Plex Sans', system-ui, -apple-system, sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
body{
  background-image:
    radial-gradient(1200px 600px at 70% -10%, rgba(200,162,58,.06), transparent 60%),
    radial-gradient(900px 500px at 10% 110%, rgba(35,48,78,.5), transparent 60%);
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ---------- nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 56px;
  background:rgba(10,14,26,.78);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.brand{display:flex; align-items:center; gap:12px; cursor:pointer}
.brand-mark{
  width:34px;height:34px;flex-shrink:0;border:1px solid var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center; position:relative;
  transform:rotate(calc(180deg + var(--scroll-rot, 0deg)));
}
.brand-mark::before, .brand-mark::after{
  content:""; position:absolute; background:var(--gold);
}
.brand-mark::before{ width:14px; height:14px; border-radius:50%; background:transparent; border:1px solid var(--gold)}
.brand-mark::after{ width:5px; height:5px; border-radius:50%; bottom:-1px }
.brand-name{
  font-family:var(--serif); font-size:22px; letter-spacing:.18em;
  text-transform:uppercase; font-weight:500;
}
.brand-name .gold{color:var(--gold)}
.navlinks{display:flex; align-items:center; gap:38px}
.navlinks a{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--text-2); transition:color .15s; cursor:pointer;
}
.navlinks a:hover{color:var(--gold-2)}
.navlinks a.active{color:var(--text)}
.navlinks a.active::after{
  content:""; display:block; height:1px; background:var(--gold); margin-top:6px;
}
.cta-pill{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--bg); background:var(--gold);
  padding:10px 18px; border-radius:999px;
  transition:background .15s, transform .15s;
}
.cta-pill:hover{background:var(--gold-2); transform:translateY(-1px)}
.cta-pill .arr{display:inline-block; transition:transform .2s}
.cta-pill:hover .arr{transform:translateX(3px)}

/* ---------- mobile nav (shared by landing + research) ---------- */
/* On desktop the panel is transparent: its children (navlinks + CTA) act as
   direct flex items of .nav, preserving the original space-between layout. */
.nav-panel{display:contents}
.nav-toggle{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none}
.nav-burger{display:none}

/* ---------- typography ---------- */
.label{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--text-2);
}
h1,h2,h3,h4{font-family:var(--serif); font-weight:400; letter-spacing:-.01em; margin:0; color:var(--text)}
h1{font-size:84px; line-height:.95}
h2{font-size:56px; line-height:1.02}
h3{font-size:32px; line-height:1.15}
h4{font-size:22px; line-height:1.25}
p{margin:0 0 1em 0; color:var(--text-2); max-width:60ch}
.lede{font-size:19px; line-height:1.55; color:var(--text-2)}
.serif-italic{font-style:italic; color:var(--gold-2); font-family:var(--serif)}

/* placeholder copy — "to come" annotations describing what content goes here */
.tk{
  color: rgba(232,200,105,.7);
  font-style: italic;
  font-weight: 400;
  font-family: var(--body);
  background: rgba(200,162,58,.05);
  padding: .05em .4em;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 rgba(200,162,58,.25);
}
.tk::before{ content: "[ "; opacity:.55 }
.tk::after { content: " ]"; opacity:.55 }
h1 .tk, h2 .tk, h3 .tk, h4 .tk{ font-size: .65em; vertical-align: middle; line-height:1.4; display:inline-block; max-width:30ch }
.tk-block{
  display:block;
  color: rgba(232,200,105,.75);
  font-style: italic;
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.55;
  background: rgba(200,162,58,.05);
  border-left: 2px solid rgba(200,162,58,.5);
  padding: 14px 18px;
  border-radius: 0 4px 4px 0;
  max-width: 60ch;
  margin: 0 0 1em 0;
}
.tk-block::before{ content: "[ "; opacity:.55 }
.tk-block::after { content: " ]"; opacity:.55 }
.tk-num{
  font-family: var(--serif);
  font-style: italic;
  color: rgba(232,200,105,.55);
  font-size: .55em;
  letter-spacing: 0;
  display:inline-block;
}
.gold-rule{width:48px; height:1px; background:var(--gold); border:0; margin:18px 0}
.gold-rule.center{margin-left:auto; margin-right:auto}

/* ---------- layout ---------- */
.page{display:none}
.page.active{display:block}
section.bleed{padding:120px 56px}
section.bleed.tight{padding:80px 56px}
.container{max-width:1280px; margin:0 auto}
.grid{display:grid; gap:24px}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.row{display:flex; gap:14px}
.row.between{justify-content:space-between; align-items:center}
.col{display:flex; flex-direction:column; gap:12px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  padding:13px 22px; border-radius:999px; cursor:pointer;
  border:1px solid var(--line); background:transparent; color:var(--text);
  transition:all .2s;
}
.btn:hover{border-color:var(--gold); color:var(--gold-2)}
.btn.primary{background:var(--gold); color:var(--bg); border-color:var(--gold)}
.btn.primary:hover{background:var(--gold-2); color:var(--bg)}
.btn.ghost{border-color:transparent; padding-left:0}
.btn.ghost:hover{border-color:transparent}

/* ---------- cards / panels ---------- */
.card{
  background:var(--panel); border:1px solid var(--line-soft); border-radius:6px;
  padding:28px; transition:border-color .2s, transform .2s;
}
.card:hover{border-color:var(--line)}
.card .num{
  font-family:var(--mono); font-size:11px; letter-spacing:.24em; color:var(--gold);
}
.card h4{margin-top:14px; margin-bottom:8px}
.card p{font-size:15px; margin-bottom:0}

/* ---------- image placeholders ---------- */
.ph{
  background:
    repeating-linear-gradient(135deg,
      rgba(200,162,58,.06) 0 12px,
      rgba(200,162,58,.02) 12px 24px),
    var(--panel);
  border:1px solid var(--line-soft);
  display:flex; align-items:center; justify-content:center; position:relative;
  font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--text-2);
}
.ph.tall{aspect-ratio:3/4}
.ph.wide{aspect-ratio:16/9}
.ph .corners::before,.ph .corners::after{
  content:""; position:absolute; width:16px; height:16px;
  border:1px solid var(--gold);
}
.ph .corners::before{top:8px; left:8px; border-right:none; border-bottom:none}
.ph .corners::after{bottom:8px; right:8px; border-left:none; border-top:none}

/* ---------- footer ---------- */
footer{
  border-top:1px solid var(--line-soft);
  padding:56px;
  background:var(--bg-2);
}
.footer-grid{
  display:grid; grid-template-columns:2fr 1fr 1fr; gap:32px;
  max-width:1280px; margin:0 auto;
}
.footer-grid h4{font-size:14px; font-family:var(--mono); letter-spacing:.22em; text-transform:uppercase; color:var(--text-2); margin-bottom:16px; font-weight:400}
.footer-grid a{display:block; color:var(--text-2); padding:4px 0; font-size:14px}
.footer-grid a:hover{color:var(--gold-2)}
.footer-bottom{
  max-width:1280px; margin:48px auto 0; padding-top:24px;
  border-top:1px solid var(--line-soft);
  display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted);
}

/* ---------- view-toggle (home only) ---------- */
.view-toggle{
  position:fixed; bottom:28px; left:50%; transform:translateX(-50%);
  z-index:40;
  display:flex; gap:0;
  background:rgba(10,14,26,.92);
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px;
  backdrop-filter:blur(10px);
  box-shadow:0 8px 30px rgba(0,0,0,.6);
}
.view-toggle button{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.22em; text-transform:uppercase;
  background:transparent; border:0; color:var(--text-2);
  padding:10px 18px; border-radius:999px; cursor:pointer;
  transition:all .2s;
}
.view-toggle button.active{background:var(--gold); color:var(--bg)}
.view-toggle .vlabel{
  font-family:var(--mono); font-size:9.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--muted); align-self:center; padding:0 12px 0 12px;
  border-right:1px solid var(--line);
}

/* ---------- responsive nav (shared by landing + research) ---------- */
@media (max-width:680px){
  .nav{padding:14px 20px}

  /* Show the burger; it toggles the dropdown panel via the hidden checkbox. */
  .nav-burger{
    display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    width:44px; height:44px; flex-shrink:0;
    border:1px solid var(--line-soft); border-radius:8px;
    background:transparent; cursor:pointer;
  }
  .nav-burger span{
    display:block; width:20px; height:2px; border-radius:2px; background:var(--gold);
    transition:transform .2s ease, opacity .2s ease;
  }
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-toggle:focus-visible ~ .nav-burger{outline:2px solid var(--gold); outline-offset:2px}

  /* Panel becomes a full-width dropdown under the bar, hidden until toggled. */
  .nav-panel{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    padding:8px 20px 22px;
    background:rgba(10,14,26,.97);
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line-soft);
  }
  .nav-toggle:checked ~ .nav-panel{display:flex}
  .nav-panel .navlinks{flex-direction:column; align-items:stretch; gap:0}
  .nav-panel .navlinks a{
    padding:15px 2px; font-size:13px;
    border-bottom:1px solid var(--line-soft);
  }
  .nav-panel .cta-pill{align-self:flex-start; margin-top:18px}
}
