:root{
    --bg:#F7F5EF;
    --paper:#FCFBF7;
    --ink:#1B2430;
    --ink-soft:#3A4452;
    --accent:#3D6B5C;
    --accent-deep:#2A4D41;
    --amber:#B8743D;
    --line:#DAD5C8;
    --muted:#6B7280;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'IBM Plex Sans',sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:980px;margin:0 auto;padding:0 28px;}
  a{color:var(--accent-deep);text-decoration:none;border-bottom:1px solid transparent;}
  a:hover{border-bottom-color:var(--accent-deep);}
  h1,h2,h3{font-family:'Fraunces',serif;font-weight:500;letter-spacing:-0.01em;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--muted);
  }

  /* NAV */
  .site-nav{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);z-index:50;}
  .nav-inner{max-width:980px;margin:0 auto;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
  .nav-logo{font-family:'Fraunces',serif;font-weight:600;font-size:18px;color:var(--ink);border-bottom:none;}
  .nav-links{display:flex;gap:22px;flex-wrap:wrap;}
  .nav-links a{
    font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-soft);
    text-transform:uppercase;letter-spacing:0.06em;border-bottom:none;padding-bottom:2px;
  }
  .nav-links a:hover{color:var(--accent-deep);}
  .nav-links a.active{color:var(--accent-deep);border-bottom:1px solid var(--accent-deep);}
  .nav-right{display:flex;align-items:center;gap:14px;}
  .lang-toggle{
    font-family:'IBM Plex Mono',monospace;font-size:11px;border:1px solid var(--line);
    padding:4px 11px;border-radius:3px;color:var(--ink-soft);border-bottom:1px solid var(--line);
  }
  .lang-toggle:hover{border-color:var(--accent-deep);color:var(--accent-deep);}
  @media (max-width:640px){
    .nav-inner{flex-wrap:wrap;padding:14px 20px;}
    .nav-links{gap:14px;order:3;width:100%;}
  }

  /* HERO */
  header.hero{padding:56px 0 56px;border-bottom:1px solid var(--line);}
  .hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;}
  .hero h1{font-size:42px;line-height:1.05;margin-bottom:10px;}
  .hero .role{font-size:17px;color:var(--ink-soft);margin-bottom:18px;}
  .hero .thesis{font-size:16px;max-width:560px;color:var(--ink-soft);}
  .links{display:flex;gap:18px;flex-wrap:wrap;margin-top:6px;}
  .links a{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:2px;}
  .links a:hover{color:var(--accent-deep);border-bottom-color:var(--accent-deep);}
  .langs{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;}
  .langs span{
    font-family:'IBM Plex Mono',monospace;font-size:11px;
    border:1px solid var(--line);padding:4px 10px;border-radius:3px;color:var(--ink-soft);
  }

  /* TIMELINE RIBBON */
  .timeline{margin-top:48px;}
  .timeline-track{position:relative;display:flex;border-top:1px solid var(--ink);padding-top:14px;}
  .tl-item{flex:1;position:relative;padding-right:14px;}
  .tl-item::before{
    content:'';position:absolute;top:-15px;left:0;width:7px;height:7px;border-radius:50%;
    background:var(--accent);
  }
  .tl-dates{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--muted);display:block;margin-bottom:4px;}
  .tl-org{font-size:13.5px;font-weight:600;color:var(--ink);}
  .tl-loc{font-size:11.5px;color:var(--muted);}

  /* SECTIONS */
  section{padding:64px 0;border-bottom:1px solid var(--line);}
  section.no-border{border-bottom:none;}
  .section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:36px;flex-wrap:wrap;gap:10px;}
  .section-head h2{font-size:26px;}

  /* CASE FILES (flagship research) */
  .case{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:4px;
    padding:32px 34px;
    margin-bottom:24px;
  }
  .case-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
  .case-tag{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--accent-deep);background:rgba(61,107,92,0.09);padding:3px 9px;border-radius:3px;display:inline-block;margin-bottom:10px;}
  .case h3{font-size:21px;margin-bottom:4px;}
  .case .meta{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muted);}
  .case-body p{font-size:14.5px;color:var(--ink-soft);margin-bottom:10px;}
  .case-body strong{color:var(--ink);font-weight:600;}
  .case-metrics{display:flex;gap:28px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);flex-wrap:wrap;}
  .metric .num{font-family:'IBM Plex Mono',monospace;font-size:20px;color:var(--amber);font-weight:500;}
  .metric .lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:0.04em;}
  .stack{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px;}
  .stack span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;background:var(--bg);border:1px solid var(--line);padding:3px 8px;border-radius:3px;color:var(--ink-soft);}

  /* PROJECT GRID */
  .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
  .proj{border:1px solid var(--line);border-radius:4px;padding:24px;background:var(--paper);}
  .proj .meta{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--muted);margin-bottom:8px;}
  .proj h3{font-size:16.5px;margin-bottom:8px;line-height:1.3;}
  .proj p{font-size:13.5px;color:var(--ink-soft);margin-bottom:10px;}
  .proj .result{font-size:12.5px;color:var(--accent-deep);font-weight:500;margin-top:8px;}
  .proj .stack span{font-size:10px;}

  /* SKILLS */
  .skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
  .skillcat .eyebrow{margin-bottom:10px;display:block;}
  .skillcat ul{list-style:none;}
  .skillcat li{font-size:13.5px;color:var(--ink-soft);padding:4px 0;}

  /* CERTS + PUBLICATIONS */
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
  .listrow{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
  .listrow:last-child{border-bottom:none;}
  .listrow .name{color:var(--ink);}
  .listrow .date{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muted);white-space:nowrap;text-align:right;}
  .listrow .sub{display:block;color:var(--muted);font-size:11.5px;margin-top:3px;}
  .listrow .org{display:block;color:var(--accent-deep);font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.04em;margin-top:6px;}
  .listrow.patent{align-items:flex-start;}

  footer{padding:48px 0 64px;text-align:center;}
  footer p{font-size:13px;color:var(--muted);}

  @media (max-width:720px){
    .hero h1{font-size:30px;}
    .timeline-track{flex-direction:column;gap:18px;}
    .tl-item::before{top:5px;}
    .timeline-track{border-top:none;padding-top:0;}
    .tl-item{border-top:1px solid var(--ink);padding-top:14px;}
    .grid,.skills-grid,.two-col{grid-template-columns:1fr;}
    .case-head{flex-direction:column;}
  }
