:root{
  --ink:#0F131A;
  --panel:#151B24;
  --line:#2A3444;
  --line-soft:#212A38;
  --paper:#E9EAE4;
  --muted:#8B95A3;
  --accent:#C9812E;
  --teal:#4C8577;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink); color:var(--paper);
  font-family:'IBM Plex Sans', sans-serif; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}
.grid-bg{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(var(--line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size:64px 64px; opacity:0.35;
  mask-image:radial-gradient(ellipse 90% 60% at 50% 0%, #000 40%, transparent 90%);
}
a{ color:inherit; }
.wrap{ max-width:1040px; margin:0 auto; padding:0 24px; position:relative; z-index:1;}
.eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent);}

header.nav{ position:sticky; top:0; z-index:50; background:rgba(15,19,26,0.86); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.nav-inner{ max-width:1040px; margin:0 auto; padding:18px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.nav-name{ font-family:'Archivo',sans-serif; font-weight:800; font-size:15px; text-decoration:none; white-space:nowrap; display:flex; align-items:center; gap:10px;}
.nav-logo{ height:26px; width:auto; display:block; }
.nav-name span{ color:var(--accent); }
nav.links{ display:flex; gap:26px; flex-wrap:wrap; }
nav.links a{ font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:13.5px; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color .2s ease;}
nav.links a:hover, nav.links a:focus-visible{ color:var(--paper); }
nav.links a.active{ color:var(--accent); }

.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:32px; height:32px; background:none; border:none; cursor:pointer; padding:0;
}
.nav-toggle span{ display:block; width:100%; height:2px; background:var(--paper); transition:transform .25s ease, opacity .25s ease; }
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:760px){
  .nav-toggle{ display:flex; }
  nav.links{
    display:none; flex-direction:column; gap:0; width:100%;
    border-top:1px solid var(--line); margin-top:14px; padding-top:10px;
  }
  nav.links.open{ display:flex; }
  nav.links a{ padding:12px 4px; border-bottom:1px solid var(--line-soft); font-size:14px; }
}

.title-block{
  border:1px solid var(--line); background:var(--panel);
  font-family:'IBM Plex Mono', monospace; font-size:10.5px; color:var(--muted);
  display:inline-grid; grid-template-columns:repeat(4, auto);
}
.title-block .cell{ padding:7px 12px; border-right:1px solid var(--line);}
.title-block .cell:last-child{ border-right:none; }
.title-block .cell b{ display:block; color:var(--paper); font-weight:600;}
.title-block .cell .k{ color:var(--accent); letter-spacing:0.14em; font-size:9px;}

@media (max-width:640px){
  .title-block{ grid-template-columns:repeat(2, 1fr); width:100%; }
  .hero .tb-row{ justify-content:stretch; }
}

/* HERO */
.hero{ padding:110px 0 80px; }
.hero.sub-hero{ padding:70px 0 60px; }
.hero .tb-row{ margin-bottom:40px; display:flex; justify-content:flex-end; }
.hero h1{
  font-family:'Archivo', sans-serif; font-weight:900;
  font-size:clamp(32px, 6vw, 58px); line-height:1.05; letter-spacing:-0.01em; max-width:820px;
}
.sub-hero h1{ font-size:clamp(28px, 4.6vw, 44px); }
.hero h1 em{ font-style:normal; color:var(--accent); }
.lede{ margin-top:24px; max-width:600px; font-size:16.5px; color:#C7CCD4; }
.hero-actions{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }
.btn{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
  padding:13px 22px; border:1px solid var(--accent); color:var(--ink); background:var(--accent);
  text-decoration:none; transition:transform .15s ease; display:inline-block;
}
.btn:hover{ transform:translateY(-2px); }
.btn.ghost{ background:transparent; color:var(--paper); border-color:var(--line); }
.btn.ghost:hover{ border-color:var(--accent); color:var(--accent); }

.cred-strip{ margin-top:56px; padding-top:26px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:12px; }
.cred{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.05em; padding:8px 14px; border:1px solid var(--line); color:var(--muted); white-space:nowrap; }

section{ padding:84px 0; border-top:1px solid var(--line); }
.sec-head{ margin-bottom:44px; max-width:640px; }
.sec-title{ font-family:'Archivo', sans-serif; font-weight:800; font-size:clamp(24px,3.6vw,34px); letter-spacing:-0.01em;}
.sec-title .num{ color:var(--accent); margin-right:10px; font-family:'IBM Plex Mono',monospace; font-size:0.5em; vertical-align:middle;}
.sec-sub{ margin-top:14px; color:var(--muted); font-size:14.5px; }

/* FOCUS AREAS / ENGAGEMENT (services grid) */
.svc-list{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:760px){ .svc-list{ grid-template-columns:1fr; } }
.svc{ background:var(--panel); padding:30px 26px; }
.svc .tag{ font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--teal); letter-spacing:0.14em; text-transform:uppercase; margin-bottom:12px;}
.svc h3{ font-family:'Archivo',sans-serif; font-weight:700; font-size:19px; margin-bottom:10px;}
.svc p{ color:#C7CCD4; font-size:14.5px; }

/* APPROACH */
.approach-list{ display:flex; flex-direction:column; }
.ap-row{ display:grid; grid-template-columns:60px 1fr; gap:22px; padding:26px 0; border-bottom:1px solid var(--line);}
.ap-row:first-child{ padding-top:0; }
.ap-row:last-child{ border-bottom:none; padding-bottom:0; }
.ap-mark{ font-family:'IBM Plex Mono',monospace; color:var(--accent); font-size:13px; padding-top:3px;}
.ap-row h3{ font-family:'Archivo',sans-serif; font-weight:700; font-size:18px; margin-bottom:8px;}
.ap-row p{ color:#C7CCD4; font-size:14.5px; max-width:600px; }

/* PROOF / achievements */
.ach-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:860px){ .ach-grid{ grid-template-columns:repeat(2,1fr); } }
.ach{ background:var(--panel); padding:28px 22px; }
.ach .big{ font-family:'Archivo',sans-serif; font-weight:900; font-size:26px; color:var(--accent); line-height:1.1;}
.ach .lab{ margin-top:10px; font-size:12px; color:var(--muted); line-height:1.5; }

.field-strip{ margin-top:40px; display:flex; flex-wrap:wrap; gap:10px; }
.field-strip span{ font-family:'IBM Plex Mono',monospace; font-size:11px; padding:8px 14px; border:1px solid var(--line); color:var(--muted); }

/* SELECTED PROGRAMS */
.prog-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:760px){ .prog-grid{ grid-template-columns:1fr; } }
.prog-card{ background:var(--panel); }
.prog-photo{ position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--ink); }
.prog-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(0.55) contrast(1.08) brightness(0.85) sepia(0.12);
  transition:transform .5s ease;
}
.prog-card:hover .prog-photo img{ transform:scale(1.04); }
.prog-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(165deg, var(--ink) 0%, transparent 55%), linear-gradient(0deg, rgba(201,129,46,0.18), transparent 60%);
  mix-blend-mode:multiply;
}
.prog-body{ padding:24px 26px 28px; }
.prog-tag{ font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--teal); letter-spacing:0.14em; text-transform:uppercase; margin-bottom:10px;}
.prog-body h3{ font-family:'Archivo',sans-serif; font-weight:700; font-size:19px; margin-bottom:10px;}
.prog-body p{ color:#C7CCD4; font-size:14px; }

/* CONTACT / CTA */
.cta-panel{
  border:1px solid var(--line); background:var(--panel); padding:56px;
  display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center;
}
@media (max-width:760px){ .cta-panel{ grid-template-columns:1fr; padding:36px 26px; } }
.cta-panel h2{ font-family:'Archivo',sans-serif; font-weight:800; font-size:clamp(22px,3vw,30px); margin-bottom:16px;}
.cta-panel p{ color:#C7CCD4; font-size:15px; }
.contact-list a{ text-decoration:none; }
.contact-row{ display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid var(--line);}
.contact-row:last-child{ border-bottom:none; }
.contact-row .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted);}
.contact-row .v{ font-size:14.5px; }
.contact-row a.v:hover{ color:var(--accent); }

/* HOMEPAGE PREVIEW CARDS */
.preview-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:760px){ .preview-grid{ grid-template-columns:1fr; } }
.preview-card{ background:var(--panel); padding:32px 28px; display:flex; flex-direction:column; }
.preview-card .num{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--accent); letter-spacing:0.1em; margin-bottom:10px;}
.preview-card h3{ font-family:'Archivo',sans-serif; font-weight:700; font-size:20px; margin-bottom:10px;}
.preview-card p{ color:#C7CCD4; font-size:14px; margin-bottom:18px; flex:1; }
.preview-link{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--accent); text-decoration:none; }
.preview-link:hover{ text-decoration:underline; }

/* ABOUT PAGE */
.bio-text{ max-width:680px; }
.bio-text p{ color:#C7CCD4; font-size:16px; line-height:1.75; margin-bottom:22px; }
.quote-block{
  margin-top:96px; padding:64px 0; border-top:1px solid var(--line);
  display:flex; justify-content:center;
}
.quote-inner{ max-width:680px; text-align:center; position:relative; }
.quote-mark{ font-family:'Archivo',sans-serif; font-weight:900; font-size:72px; color:var(--accent); line-height:1; margin-bottom:8px; opacity:0.5; }
.quote-text{
  font-family:'Archivo',sans-serif; font-weight:600; font-size:clamp(20px,2.6vw,26px);
  color:var(--paper); line-height:1.5; font-style:italic;
}
.quote-rule{ width:64px; height:2px; background:var(--accent); margin:32px auto; }
.quote-closing{
  font-family:'IBM Plex Mono',monospace; font-size:14px; letter-spacing:0.04em;
  color:var(--accent); text-transform:uppercase;
}

/* PAGE FOOTER NAV (prev/next between section pages) */
.page-nav{ display:flex; justify-content:space-between; margin-top:44px; padding-top:24px; border-top:1px solid var(--line); }
.page-nav a{ font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.05em; text-transform:uppercase; color:var(--muted); text-decoration:none; }
.page-nav a:hover{ color:var(--accent); }
.page-nav .next{ text-align:right; }

footer{ border-top:1px solid var(--line); padding:30px 0; }
.footer-top{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.footer-disclaimer{ margin-top:18px; padding-top:18px; border-top:1px solid var(--line-soft); font-family:'IBM Plex Sans',sans-serif; font-size:11px; line-height:1.6; color:#5A6474; max-width:820px; }


.reveal.in{ opacity:1; transform:translateY(0); }
