/* Quest Venture Partners — shared site styles (tokens, reset, nav, footer,
   mobile menu, and the handful of components reused across multiple pages).
   Linked from every page's <head> before its own page-specific <style>
   block, so a page can still override a shared rule locally when it needs
   to (e.g. attribution.html narrows .wrap). Loading this from one cached
   file instead of duplicating it inline on all 8 pages removes the
   possibility of the token/color drift that caused earlier contrast bugs. */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --navy: #14243D;
  --navy-deep: #0E1B30;
  --blue: #2D6CB2;
  --blue-light: #9CC0E6;
  --ink: #1E2A3D;
  --muted: #5C6675;
  --muted-on-navy: #93A4BA;
  --panel: #F4F6F8;
  --line: #E1E6EC;
  --paper: #FFFFFF;
  --sans: "Libre Franklin", Arial, sans-serif;
  --mono: "IBM Plex Mono", monospace;
}
html { font-size: 16px; scroll-behavior: smooth; }
body { font-family: var(--sans); color: var(--ink); background: var(--navy); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }

/* EYEBROW */
.eyebrow { font-family: var(--mono); text-transform: uppercase; letter-spacing: .16em; font-size: 11px; font-weight: 600; color: var(--blue); }
.eyebrow.light { color: var(--blue-light); }
.eyebrow.dim { color: #c3d2e6; }

/* RULE */
.rule { height: 2px; width: 72px; background: var(--blue); margin-top: 16px; }

/* TAG */
.tag { display: inline-block; font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); border: 1px solid var(--blue); padding: 4px 11px; border-radius: 2px; }
.tag.lt { color: var(--blue-light); border-color: var(--blue-light); }

/* BUTTONS */
.btn { font-family: var(--mono); display: inline-block; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; border-radius: 2px; padding: 15px 38px; transition: opacity .2s; }
.btn-blue { background: var(--blue); color: #fff; }
.btn-blue:hover { opacity: .8; }
.btn-white { background: #fff; color: var(--blue); }
.btn-white:hover { opacity: .9; }

/* SKIP LINK */
.skip-link {
  position: absolute;
  top: -56px;
  left: 16px;
  z-index: 200;
  background: var(--blue);
  color: #fff;
  padding: 12px 20px;
  border-radius: 2px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
  transition: top .2s;
}
.skip-link:focus {
  top: 16px;
}

/* NAV */
nav { position: sticky; top: 0; z-index: 100; background: var(--navy); height: 72px; padding: 0 64px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.1); }
.nav-logo { height: 36px; width: auto; display: block; filter: invert(1) hue-rotate(180deg) brightness(1.2); opacity: .92; }
.nav-links { display: flex; gap: 34px; }
.nav-links a { font-family: var(--mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: #a4b3c6; font-weight: 500; transition: color .2s; }
.nav-links a:hover, .nav-links a.active { color: var(--blue-light); }

/* MOBILE MENU TOGGLE */
.nav-toggle {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 101;
}
.nav-toggle span {
  display: block;
  width: 26px;
  height: 3px;
  margin: 5px 0;
  background: #a4b3c6;
  border-radius: 2px;
  transition: all .3s ease;
}
.nav-toggle.active span:nth-child(1) { transform: translateY(8px) rotate(45deg); background: var(--blue-light); }
.nav-toggle.active span:nth-child(2) { opacity: 0; }
.nav-toggle.active span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); background: var(--blue-light); }

/* SECTIONS */
.section { padding: 96px 64px; position: relative; overflow: hidden; }
.section.light { background: var(--panel); }
.wrap { max-width: 1100px; margin: 0 auto; position: relative; z-index: 2; }

/* FOOTER */
footer { background: var(--navy-deep); padding: 32px 64px; display: flex; justify-content: center; align-items: center; }
.footer-copy { font-family: var(--mono); font-size: 11px; color: var(--muted-on-navy); letter-spacing: .06em; }

/* RESPONSIVE (shared nav/menu behavior only — page-specific breakpoint
   rules stay in each page's own <style> block) */
@media (max-width: 860px) {
  .nav-toggle { display: block; }
  .nav-links {
    position: fixed;
    top: 72px;
    left: 0;
    right: 0;
    flex-direction: column;
    background: var(--navy);
    border-bottom: 1px solid rgba(255,255,255,.1);
    height: calc(100vh - 72px);
    overflow-y: auto;
    gap: 0;
    transform: translateY(-150%);
    transition: transform .4s cubic-bezier(.16,1,.3,1);
    padding: 32px 28px 64px;
  }
  .nav-links.active { transform: translateY(0); }
  .nav-links a {
    display: block;
    padding: 18px 0;
    font-size: 14px;
    border-bottom: 1px solid rgba(255,255,255,.05);
    text-align: center;
  }
}
