:root{
  --navy-deep:#0A1B2E;
  --navy-panel:#0F2841;
  --blue-border:#1B3A5C;
  --blue-steel:#3D7FB8;
  --blue-signal:#6FB1E8;
  --paper:#F4F7FA;
  --ink:#0E1C2B;
  --ink-soft:#4A5B6E;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter', sans-serif; background:var(--paper); color:var(--ink); line-height:1.5;}
.mono{font-family:'IBM Plex Mono', monospace;}
.serif{font-family:'Source Serif 4', serif;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

/* ===== NAV ===== */
header.site-nav{background:var(--navy-deep); border-bottom:1px solid var(--blue-border); position:sticky; top:0; z-index:50;}
.nav-inner{max-width:1200px; margin:0 auto; padding:18px 24px; display:flex; align-items:center; justify-content:space-between;}
.brand{color:var(--paper); font-size:17px; letter-spacing:0.02em;}
.brand strong{font-weight:600;}
.brand span{color:var(--blue-signal); font-family:'IBM Plex Mono', monospace; font-size:12px; margin-left:8px;}
nav.links{display:flex; gap:24px; font-size:14px;}
nav.links a{color:#B8C6D6; transition:color .15s; padding-bottom:2px; border-bottom:1px solid transparent;}
nav.links a:hover{color:var(--blue-signal);}
nav.links a.active{color:var(--blue-signal); border-color:var(--blue-signal);}
.nav-cta{background:var(--blue-steel); color:#fff; padding:9px 18px; border-radius:2px; font-size:13px; font-weight:500; letter-spacing:0.02em;}
.nav-cta:hover{background:var(--blue-signal); color:var(--navy-deep);}
.mobile-toggle{display:none; background:none; border:none; color:var(--paper); font-size:22px; cursor:pointer;}

/* ===== TICKER ===== */
.ticker-wrap{background:var(--navy-panel); border-bottom:1px solid var(--blue-border); overflow:hidden; white-space:nowrap; padding:10px 0;}
.ticker-track{display:inline-block; animation:scroll-ticker 38s linear infinite; font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:0.03em;}
.ticker-track span{color:#93A6BA; margin-right:48px;}
.ticker-track span b{color:var(--blue-signal); font-weight:600;}
.ticker-track span.up{color:#7FD4A0;}
@keyframes scroll-ticker{0%{transform:translateX(0);} 100%{transform:translateX(-50%);}}

/* ===== PAGE HERO (sub-pages) ===== */
.page-hero{background:var(--navy-deep); color:var(--paper); padding:64px 24px 56px; border-bottom:1px solid var(--blue-border);}
.page-hero-inner{max-width:1200px; margin:0 auto;}
.eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.12em; color:var(--blue-signal); text-transform:uppercase; margin-bottom:16px;}
.page-hero h1{font-family:'Source Serif 4', serif; font-weight:600; font-size:clamp(32px,4.4vw,48px); line-height:1.1; letter-spacing:-0.01em; max-width:760px;}
.page-hero p.lede{margin-top:18px; font-size:16.5px; color:#B8C6D6; max-width:620px; line-height:1.6;}

/* ===== HOME HERO ===== */
.hero{background:var(--navy-deep); color:var(--paper); padding:80px 24px 90px; border-bottom:1px solid var(--blue-border);}
.hero-inner{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.3fr 1fr; gap:60px; align-items:end;}
.hero h1{font-family:'Source Serif 4', serif; font-weight:600; font-size:clamp(36px,4.8vw,58px); line-height:1.08; letter-spacing:-0.01em; max-width:640px;}
.hero h1 em{font-style:italic; color:var(--blue-signal);}
.hero p.lede{margin-top:22px; font-size:17px; color:#B8C6D6; max-width:520px; line-height:1.6;}
.hero-actions{margin-top:32px; display:flex; gap:16px; flex-wrap:wrap;}
.btn-primary{background:var(--blue-signal); color:var(--navy-deep); padding:13px 26px; border-radius:2px; font-weight:600; font-size:14px; display:inline-block;}
.btn-primary:hover{background:#fff;}
.btn-outline{border:1px solid var(--blue-border); color:var(--paper); padding:13px 26px; border-radius:2px; font-weight:500; font-size:14px; display:inline-block;}
.btn-outline:hover{border-color:var(--blue-signal); color:var(--blue-signal);}

.stat-card{background:var(--navy-panel); border:1px solid var(--blue-border); padding:28px; border-radius:2px;}
.stat-card .label{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; color:#93A6BA; text-transform:uppercase;}
.stat-card .value{font-family:'Source Serif 4', serif; font-size:44px; font-weight:600; color:var(--blue-signal); margin-top:6px;}
.stat-card .sub{font-size:13px; color:#B8C6D6; margin-top:4px;}
.stat-divider{height:1px; background:var(--blue-border); margin:18px 0;}

/* ===== SECTION SHELL ===== */
section{padding:80px 24px;}
.section-inner{max-width:1200px; margin:0 auto;}
.section-head{margin-bottom:44px; max-width:640px;}
.section-head .eyebrow{color:var(--blue-steel);}
.section-head h2{font-family:'Source Serif 4', serif; font-size:clamp(28px,3vw,36px); font-weight:600; color:var(--ink);}
.section-head p{color:var(--ink-soft); margin-top:12px; font-size:15.5px;}
.dark .section-head h2{color:var(--paper);}
.dark .section-head p{color:#B8C6D6;}

/* ===== TRACK RECORD / METRICS ===== */
.track-record{background:var(--paper);}
.metrics-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--blue-border); border:1px solid var(--blue-border);}
.metric-cell{background:var(--paper); padding:30px 26px;}
.metric-cell .num{font-family:'IBM Plex Mono', monospace; font-size:34px; font-weight:600; color:var(--navy-deep);}
.metric-cell .num small{font-size:16px; color:var(--blue-steel);}
.metric-cell .desc{font-size:13px; color:var(--ink-soft); margin-top:8px; line-height:1.5;}

/* ===== RESEARCH / PROJECTS TABLE ===== */
.research{background:var(--navy-deep); color:var(--paper);}
.research-table{border-top:1px solid var(--blue-border);}
.research-row{display:grid; grid-template-columns:44px 1.4fr 1fr 1.4fr auto; gap:20px; align-items:center; padding:20px 0; border-bottom:1px solid var(--blue-border);}
.research-row .idx{font-family:'IBM Plex Mono', monospace; color:var(--blue-steel); font-size:13px;}
.research-row .title{font-weight:600; font-size:15px;}
.research-row .type{font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--blue-signal); text-transform:uppercase; letter-spacing:0.05em;}
.research-row .output{font-size:13px; color:#B8C6D6; font-family:'IBM Plex Mono', monospace;}
.research-row .open{font-size:13px; color:var(--blue-signal); border:1px solid var(--blue-border); padding:7px 14px; border-radius:2px; white-space:nowrap;}
.research-row .open:hover{border-color:var(--blue-signal); background:var(--navy-panel);}
@media(max-width:800px){.research-row{grid-template-columns:1fr; gap:6px;}}

/* ===== SERVICES ===== */
.services{background:var(--paper);}
.services-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--blue-border); border:1px solid var(--blue-border);}
.service-card{background:var(--paper); padding:34px;}
.service-card .num{font-family:'IBM Plex Mono', monospace; color:var(--blue-steel); font-size:12px;}
.service-card h3{font-family:'Source Serif 4', serif; font-size:21px; font-weight:600; margin:10px 0 10px;}
.service-card p{font-size:14.5px; color:var(--ink-soft); line-height:1.6;}
.service-card .for{margin-top:14px; font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--blue-steel); text-transform:uppercase; letter-spacing:0.04em;}
@media(max-width:700px){.services-grid, .metrics-grid{grid-template-columns:1fr 1fr;}}

/* ===== CREDENTIALS STRIP ===== */
.credentials{background:var(--navy-panel); border-top:1px solid var(--blue-border); border-bottom:1px solid var(--blue-border); padding:28px 24px;}
.cred-inner{max-width:1200px; margin:0 auto; display:flex; flex-wrap:wrap; gap:14px 34px; align-items:center; justify-content:center;}
.cred-inner span{font-family:'IBM Plex Mono', monospace; font-size:12px; color:#B8C6D6; letter-spacing:0.03em;}
.cred-inner span b{color:var(--blue-signal);}

/* ===== TIMELINE (About page) ===== */
.timeline{border-top:1px solid var(--blue-border);}
.timeline-row{display:grid; grid-template-columns:150px 1fr; gap:30px; padding:28px 0; border-bottom:1px solid var(--blue-border);}
.timeline-row .period{font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--blue-steel); padding-top:3px;}
.timeline-row .role{font-family:'Source Serif 4', serif; font-size:19px; font-weight:600; color:var(--ink);}
.timeline-row .org{font-size:13.5px; color:var(--blue-steel); margin-top:2px; font-weight:500;}
.timeline-row .desc{font-size:14.5px; color:var(--ink-soft); margin-top:10px; line-height:1.65;}
@media(max-width:700px){.timeline-row{grid-template-columns:1fr;}}

/* ===== PHILOSOPHY (principle cards) ===== */
.principle{border-top:1px solid var(--blue-border); padding:36px 0; display:grid; grid-template-columns:64px 1fr; gap:28px;}
.principle:last-child{border-bottom:1px solid var(--blue-border);}
.principle .mark{font-family:'Source Serif 4', serif; font-size:40px; color:var(--blue-signal); line-height:1;}
.principle h3{font-family:'Source Serif 4', serif; font-size:22px; font-weight:600; margin-bottom:10px;}
.principle p{font-size:15px; color:var(--ink-soft); line-height:1.7; max-width:640px;}
@media(max-width:600px){.principle{grid-template-columns:1fr;}}

/* ===== CV / RESUME PAGE ===== */
.cv-block{border-top:1px solid var(--blue-border); padding:30px 0;}
.cv-block:last-child{border-bottom:1px solid var(--blue-border);}
.cv-block h3{font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:0.08em; color:var(--blue-steel); text-transform:uppercase; margin-bottom:18px;}
.cv-item{margin-bottom:20px;}
.cv-item .top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}
.cv-item .role{font-family:'Source Serif 4', serif; font-size:17px; font-weight:600;}
.cv-item .org{font-size:13.5px; color:var(--blue-steel); font-weight:500;}
.cv-item .period{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);}
.cv-item ul{margin-top:8px; padding-left:18px; color:var(--ink-soft); font-size:14px; line-height:1.65;}
.pill-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:6px;}
.pill{font-family:'IBM Plex Mono', monospace; font-size:11.5px; background:var(--navy-panel); color:var(--blue-signal); padding:6px 12px; border-radius:2px; border:1px solid var(--blue-border);}

/* ===== FOOTER / CONTACT ===== */
footer{background:var(--navy-deep); color:var(--paper); padding:70px 24px 40px;}
.footer-inner{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.2fr 1fr; gap:60px;}
footer h2{font-family:'Source Serif 4', serif; font-size:30px; font-weight:600; max-width:420px; line-height:1.2;}
footer p{color:#B8C6D6; margin-top:14px; font-size:15px; max-width:420px;}
.footer-links{display:flex; flex-direction:column; gap:10px;}
.footer-links a{color:#B8C6D6; font-size:14px; border-bottom:1px solid transparent;}
.footer-links a:hover{color:var(--blue-signal); border-color:var(--blue-signal);}
.footer-bottom{max-width:1200px; margin:60px auto 0; padding-top:24px; border-top:1px solid var(--blue-border); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; color:#6E82A0; font-family:'IBM Plex Mono', monospace;}

/* ===== CONTACT PAGE FORM ===== */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
.form-field{margin-bottom:18px;}
.form-field label{display:block; font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.05em; color:var(--blue-steel); text-transform:uppercase; margin-bottom:8px;}
.form-field input, .form-field textarea{width:100%; background:var(--navy-panel); border:1px solid var(--blue-border); color:var(--paper); padding:12px 14px; border-radius:2px; font-family:'Inter',sans-serif; font-size:14px;}
.form-field textarea{min-height:120px; resize:vertical;}
.form-field input:focus, .form-field textarea:focus{outline:none; border-color:var(--blue-signal);}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr;}}

@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr;}
  .metrics-grid{grid-template-columns:1fr 1fr;}
  .services-grid{grid-template-columns:1fr;}
  nav.links{display:none;}
  .footer-inner{grid-template-columns:1fr;}
}
