  :root{
    --black:#2F2F2F;
    --gray-1:#e3e3e3;
    --gray-2:#868686;
    --hair:#d2d2d7;
    --hair-light:#e3e3e3;
    --white:#f8fafc;
    --accent: #047CB4;
  }


  /* ---------- Top bar ---------- */
  .topbar{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(255,255,255,0.8);
    backdrop-filter:saturate(180%) blur(20px);
    -webkit-backdrop-filter:saturate(180%) blur(20px);
    border-bottom:1px solid var(--hair-light);
  }

  .topbar-inner{
    max-width: 960px;
	margin: 0 auto;
    padding:12px 0px;
    display:flex;
    justify-content:space-between;
    gap:16px;
  }

  .topbar-brand{
    font-size:14px;
    font-weight:600;
    letter-spacing:-0.01em;
    color:var(--black);
    white-space:nowrap;
  }

  .topbar-controls{
    display:flex;
    align-items:center;
    gap:10px;
  }

  .select-wrap{
    position:relative;
    display:inline-flex;
    align-items:center;
  }

  .select-wrap::after{
    content:"";
    position:absolute;
    right:12px;
    top:50%;
    width:8px;
    height:8px;
    border-right:1.5px solid var(--gray-2);
    border-bottom:1.5px solid var(--gray-2);
    transform:translateY(-70%) rotate(45deg);
    pointer-events:none;
  }

  select#resumeSwitch{
    -webkit-appearance:none;
    appearance:none;
    font-family:inherit;
    font-size:13px;
    font-weight:500;
    background:#FFF;
    border:1px solid var(--hair);
    border-radius:980px;
    padding:8px 34px 8px 16px;
    cursor:pointer;
    transition:border-color .2s ease;
  }

  select#resumeSwitch:hover{ border-color:var(--gray-1); }
  select#resumeSwitch:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

  .btn-download{
    font-family:inherit;
    font-size:13px;
    font-weight:600;
    color: #FFF;
    background: #047CB4 !important;;
    border:none;
    border-radius:20px;
    padding:9px 18px;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    gap:6px;
    transition:background .2s ease, transform .1s ease;
    white-space:nowrap;
  }

  .btn-download: hover{ background:#115e82  !important; }
  .btn-download:active{ transform:scale(0.97); }
  .btn-download:focus-visible{ outline:2px solid #115e82; outline-offset:2px; }

  .btn-download svg{ width:16px; height:16px; }

  /* ---------- Hero ---------- */
  .hero{
    max-width: 960px;
  	margin: 0 auto;
    padding: 40px 0px 20px;
    text-align: left;
    border-bottom: 1px solid var(--hair-light);
    margin-bottom: 20px
  }

  .hero-name{
    font-size:56px;
    font-weight:600;
    letter-spacing:-0.02em;
    margin:0 0 6px;
    line-height:1.05;
  }

  .hero-title{
    font-size:21px;
    font-weight:400;
    color:var(--black);
    margin:0 0 14px;
    letter-spacing:-0.01em;
  }

  .hero-meta{
    display:flex;
    gap:6px 14px;
    font-size:14px;
  }

  .hero-meta a{
    color:var(--accent);
    text-decoration:none;
    border-bottom:1px solid transparent;
    transition:color .15s ease, border-color .15s ease;
  }

  .hero-meta a:hover{
    color:var(--black);
    border-color:var(--gray-2);
  }

  .hero-meta .dot{ color:var(--hair); }

  /* ---------- Summary ---------- */
  .summary{
    max-width: 960px;
  	margin: 0 auto;
    margin-bottom: 30px;
  }

  .summary p{
    font-size:19px;
    line-height:1.55;
    letter-spacing:-0.01em;
    margin:0 0 28px;
  }

  .strengths{
    display:flex;
    flex-wrap:wrap;
    gap: 12px;
  }

  .pill{
    font-size:12.5px;
    font-weight:500;
    color:var(--gray-2);
    background: var(--gray-1);
    border-radius:20px;
    padding:6px 14px;
    letter-spacing:0;
  }

  /* ---------- Section shell ---------- */
  section.block{
    max-width: 960px;
  	margin: 0 auto;
    padding:44px 22px;
    border-top:1px solid var(--hair-light);
  }

  .eyebrow{
    font-size:12px;
    font-weight:600;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--gray-2);
    margin:0 0 28px;
  }

  /* ---------- Experience timeline ---------- */
  .timeline{
    position:relative;
  }

  .role{
    position:relative;
    padding-left:26px;
    margin-bottom:38px;
  }

  .role:last-child{ margin-bottom:0; }

  .role::before{
    content:"";
    position:absolute;
    left:0;
    top:6px;
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--black);
  }

  .role::after{
    content:"";
    position:absolute;
    left:3.5px;
    top:16px;
    bottom:-38px;
    width:1px;
    background:var(--hair-light);
  }

  .role:last-child::after{ display:none; }

  .role-head{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    justify-content:space-between;
    gap:6px 16px;
    margin-bottom:2px;
  }

  .role-title{
    font-size:17px;
    font-weight:600;
    letter-spacing:-0.01em;
  }

  .role-dates{
    font-size:13px;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
  }

  .role-company{
    font-size:14px;
    margin-bottom:12px;
  }


  ul.role-bullets{
    margin:0;
    padding:0;
    list-style:none;
  }

  ul.role-bullets li{
    position:relative;
    padding-left:16px;
    font-size:14.5px;
    line-height:1.6;
    color: #3a3a3c;
    margin-bottom:8px;
  }

  ul.role-bullets li:last-child{ margin-bottom:0; }

  ul.role-bullets li::before{
    content:"–";
    position:absolute;
    left:0;
  }

  .role-note{
    font-size:14.5px;
    line-height:1.6;
  }

  .sub-roles{
    margin-top:6px;
  }

  .sub-role-title{
    font-size:14.5px;
    font-weight:600;
    margin-top:2px;
  }

  /* ---------- Freelance / earlier career ---------- */
  .simple-role{
    margin-bottom:26px;
  }
  .simple-role:last-child{ margin-bottom:0; }

  .simple-role .role-head{ margin-bottom:2px; }
  .simple-role .role-company{ margin-bottom:10px; }

  .earlier-list{
    display:grid;
    gap:14px;
  }

  .earlier-item{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:4px 16px;
    padding-bottom:14px;
    border-bottom:1px solid var(--hair-light);
  }

  .earlier-item:last-child{ border-bottom:none; padding-bottom:0; }

  .earlier-left .title{
    font-size:14.5px;
    font-weight:600;
  }

  .earlier-left .company{
    font-size:13.5px;
  }

  .earlier-dates{
    font-size:13px;
    white-space:nowrap;
  }

  /* ---------- Skills grid ---------- */
  .skills-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px 40px;
  }

  .skill-group .label{
    font-size:12.5px;
    font-weight:600;
    margin-bottom:8px;
  }

  .skill-group .value{
    font-size:14px;
    line-height:1.6;
  }

  /* ---------- Education ---------- */
  .edu-item{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:4px 16px;
    padding-bottom:16px;
    margin-bottom:16px;
    border-bottom:1px solid var(--hair-light);
  }
  .edu-item:last-child{ border-bottom:none; margin-bottom:0; padding-bottom:0; }

  .edu-item .degree{ font-size:14.5px; font-weight:600;}
  .edu-item .school{ font-size:13.5px;}
  .edu-item .focus{ font-size:13px; margin-top:2px; }


  /* ---------- Responsive ---------- */
  @media (max-width:600px){
    .hero{ padding:56px 20px 32px; }
    .hero-name{ font-size:38px; }
    .hero-title{ font-size:17px; }
    .summary p{ font-size:16px; }
    .skills-grid{ grid-template-columns:1fr; }
    .topbar-brand{ display:none; }
  }

  /* ---------- Print ---------- */
  @media print{
    .topbar{ display:none; }
    body{ font-size:12px; }
    section.block{ padding:20px 0; break-inside:avoid; }
    .hero{ padding:0 0 24px; }
    .role{ break-inside:avoid; }
    a{ color:inherit !important; text-decoration:none !important; }
  }