@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Libre+Franklin:wght@400;500;600;700&display=swap');

  :root{
    --bg:#F8F8F5;
    --panel:#FFFFFF;
    --ink:#14201E;
    --muted:#5C6A67;
    --line:#E2E4DE;
    --accent:#0E6B6B;
    --accent-soft:#E4F1EF;
    --serif:'Fraunces', Georgia, serif;
    --sans:'Libre Franklin', -apple-system, BlinkMacSystemFont, sans-serif;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  a{color:inherit;}
  .skip-link{
    position:absolute;left:-999px;top:0;
    background:var(--ink);color:#fff;padding:10px 16px;
  }
  .skip-link:focus{left:12px;top:12px;z-index:999;}

  a:focus-visible, button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

  .wrap{max-width:960px;margin:0 auto;padding:0 24px;}

  /* Nav */
  header.nav{
    position:sticky;top:0;z-index:20;
    background:rgba(248,248,245,0.9);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:960px;margin:0 auto;padding:16px 24px;
    display:flex;align-items:center;justify-content:space-between;
    flex-wrap:wrap;gap:10px;
  }
  .brand{font-family:var(--serif);font-weight:500;font-size:1.05rem;text-decoration:none;}
  nav.links{display:flex;gap:22px;flex-wrap:wrap;}
  nav.links a{
    font-size:0.88rem;text-decoration:none;color:var(--muted);
    border-bottom:1px solid transparent;padding-bottom:2px;
  }
  nav.links a:hover{color:var(--ink);border-color:var(--accent);}

  /* Hero */
  .hero{padding:72px 0 56px;}
  .tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;}
  .tag{
    font-size:0.78rem;color:var(--accent);
    background:var(--accent-soft);
    border:1px solid transparent;
    padding:5px 12px;
    border-radius:100px;
  }
  .kicker{font-size:0.85rem;color:var(--muted);letter-spacing:0.02em;margin-bottom:10px;}
  h1{
    font-family:var(--serif);
    font-weight:500;
    font-size:clamp(2.1rem,5vw,3.1rem);
    line-height:1.08;
    margin:0 0 16px;
    max-width:14ch;
  }
  .lede{font-size:1.15rem;color:var(--ink);max-width:52ch;margin:0 0 14px;font-family:var(--serif);font-weight:400;}
  .hero p.body{max-width:62ch;color:var(--muted);font-size:1rem;margin:0 0 30px;}

  .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:56px;}
  .btn{
    display:inline-block;
    padding:12px 22px;
    font-size:0.92rem;
    text-decoration:none;
    border-radius:6px;
  }
  .btn.primary{background:var(--ink);color:#fff;}
  .btn.primary:hover{background:var(--accent);}
  .btn.ghost{border:1px solid var(--line);color:var(--ink);}
  .btn.ghost:hover{border-color:var(--accent);color:var(--accent);}

  .stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .stat{padding:22px 18px 22px 0;border-left:1px solid var(--line);padding-left:18px;}
  .stat:first-child{border-left:none;padding-left:0;}
  .stat .num{font-family:var(--serif);font-size:1.9rem;color:var(--accent);display:block;}
  .stat .label{font-size:0.82rem;color:var(--muted);}

  /* Sections */
  section{padding:64px 0;border-bottom:1px solid var(--line);}
  section:last-of-type{border-bottom:none;}
  .section-head{display:flex;align-items:baseline;gap:12px;margin-bottom:32px;}
  .section-num{font-family:var(--serif);color:var(--accent);font-size:0.95rem;}
  h2{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin:0;}

  .summary-list{max-width:68ch;padding-left:0;list-style:none;margin:22px 0 0;}
  .summary-list li{position:relative;padding-left:20px;margin-bottom:12px;color:var(--muted);}
  .summary-list li::before{content:"";position:absolute;left:0;top:0.65em;width:6px;height:6px;background:var(--accent);border-radius:50%;}
  section#summary > p.body{max-width:68ch;color:var(--ink);font-size:1.05rem;font-family:var(--serif);}

  /* Timeline */
  .timeline{position:relative;}
  .role-row{
    display:grid;
    grid-template-columns:150px 1fr;
    gap:28px;
    padding:28px 0;
    border-top:1px solid var(--line);
    position:relative;
  }
  .role-row:first-child{border-top:none;padding-top:0;}
  .role-dates{font-size:0.85rem;color:var(--muted);white-space:pre-line;padding-top:4px;}
  .role-dates strong{display:block;color:var(--ink);font-weight:600;}
  .role-body h3{margin:0 0 4px;font-size:1.12rem;font-weight:600;}
  .role-body .company{font-size:0.9rem;color:var(--muted);margin-bottom:2px;}
  .role-body .project-line{font-size:0.82rem;color:var(--accent);margin-bottom:14px;}
  .role-body ul{margin:0 0 16px;padding-left:18px;}
  .role-body li{margin-bottom:7px;color:var(--ink);font-size:0.95rem;max-width:66ch;}
  .role-body p.compact{color:var(--ink);font-size:0.95rem;max-width:66ch;margin:0 0 16px;}
  .skill-tags{display:flex;flex-wrap:wrap;gap:7px;}
  .skill-tags span{
    font-size:0.76rem;color:var(--muted);
    border:1px solid var(--line);
    padding:4px 10px;
    border-radius:100px;
  }

  /* Skills */
  .skill-groups{display:grid;grid-template-columns:1fr 1fr;gap:32px 40px;}
  .skill-group h3{
    font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em;
    color:var(--muted);margin:0 0 12px;font-weight:600;
  }
  .skill-group .skill-tags span{background:var(--panel);}

  /* Education */
  .edu-row{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
  .edu-item h3{font-size:1rem;margin:0 0 4px;}
  .edu-item p{margin:0;color:var(--muted);font-size:0.92rem;}

  /* Closing */
  .closing{
    padding:70px 0 90px;text-align:left;
  }
  .closing h2{font-size:2rem;max-width:16ch;margin-bottom:14px;}
  .closing p{color:var(--muted);max-width:52ch;margin-bottom:24px;}

  footer{padding:26px 0 40px;font-size:0.82rem;color:var(--muted);}

  @media (max-width:720px){
    .stats{grid-template-columns:repeat(2,1fr);}
    .stat{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:16px;margin-top:8px;}
    .stat:first-child{border-top:none;margin-top:0;padding-top:0;}
    .role-row{grid-template-columns:1fr;gap:8px;}
    .skill-groups{grid-template-columns:1fr;}
    .edu-row{grid-template-columns:1fr;}
    nav.links{gap:14px;}
  }

  @media print{
    header.nav{position:static;}
    .btn, .cta-row{display:none;}
  }