.wrap{max-width:var(--maxw);margin:0 auto;padding-left:1.75rem;padding-right:1.75rem;}
.sec-rule{border-top:1px solid var(--line);}
.kicker{font-size:.78rem;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.7rem;}
.sec-title{font-weight:700;font-size:clamp(1.8rem,3.4vw,2.4rem);line-height:1.2;letter-spacing:-.02em;margin-bottom:2.4rem;}

/* HERO */
.hero{padding:5rem 0 4rem;}
.hero-grid{display:grid;grid-template-columns:1fr;gap:4rem;align-items:start;}
.hero-eyebrow{font-size:.92rem;color:var(--muted);font-weight:500;margin-bottom:1.1rem;}
h1.hero-name{font-weight:700;font-size:clamp(2.7rem,6.4vw,4.6rem);line-height:1.04;letter-spacing:-.03em;margin-bottom:1.4rem;}
h1.hero-name em{font-style:normal;color:var(--ink);}
.hero-lede{font-size:1.15rem;max-width:600px;color:var(--ink-soft);line-height:1.6;margin-bottom:1.8rem;font-weight:400;}
.hero-lede strong{font-weight:600;color:var(--ink);}
.hero-ctas{display:flex;gap:1.4rem;flex-wrap:wrap;align-items:center;}
.avail-line{display:inline-flex;align-items:center;gap:.55rem;font-size:.85rem;font-weight:600;color:var(--ink-soft);margin-bottom:1.5rem;}
.avail-line::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;}
.btn-text{display:inline-flex;align-items:center;gap:.4rem;font-size:.95rem;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line-strong);text-decoration:none;transition:color .2s,border-color .2s;}
.btn-text:hover,.btn-text:focus-visible{color:var(--accent);border-color:var(--accent);}
.text-link{font-size:.9rem;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px;transition:color .2s;}
.text-link:hover,.text-link:focus-visible{color:var(--accent);}
.btn{display:inline-block;padding:.85rem 1.7rem;border-radius:var(--radius-sm);font-size:.9rem;text-decoration:none;font-weight:600;transition:background .2s,color .2s,border-color .2s;cursor:pointer;border:1px solid var(--ink);}
.btn-fill{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn-fill:hover,.btn-fill:focus-visible{background:var(--accent-dark);border-color:var(--accent-dark);}
.btn:disabled{opacity:.55;cursor:not-allowed;}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.stat{padding:1.9rem 1.6rem;border-left:1px solid var(--line);display:block;text-decoration:none;color:inherit;transition:background .2s;}
.stat:first-child{border-left:none;}
.stat:hover,.stat:focus-visible{background:var(--accent-wash);}
.stat-n{font-weight:700;font-size:2.2rem;line-height:1;color:var(--ink);letter-spacing:-.01em;}
.stat-n em{font-style:normal;color:var(--ink);}
.stat-l{font-size:.85rem;color:var(--muted);margin-top:.6rem;font-weight:500;transition:color .2s;}
.stat:hover .stat-l,.stat:focus-visible .stat-l{text-decoration:underline;}
.stat-src{font-size:.74rem;color:var(--faint);font-weight:500;margin-top:.5rem;}

/* ABOUT */
.about{padding:5rem 0;}
.about-grid{display:grid;grid-template-columns:260px 1fr;gap:3.5rem;align-items:start;}
.portrait-shot{overflow:hidden;}
.portrait{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center;display:block;}
.portrait-ph{width:100%;aspect-ratio:1/1;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.5rem;}
.portrait-cap{font-size:.85rem;color:var(--faint);margin-top:.9rem;}
@media(min-width:901px){.portrait-frame{position:sticky;top:110px;}}
.about-body p{font-size:1.05rem;color:var(--ink-soft);line-height:1.75;margin-bottom:1.2rem;max-width:42rem;}
.about-body p:last-child{margin-bottom:0;}
.about-body strong{font-weight:600;color:var(--ink);}

/* EXPERIENCE */
.exp{padding:5rem 0;}
.exp-timeline{display:flex;flex-direction:column;}
.exp-item{display:grid;grid-template-columns:220px 1fr;gap:3rem;padding:2rem 0;border-bottom:1px solid var(--line);}
.exp-timeline .exp-item:first-child{padding-top:0;}
.exp-tag-live{font-size:.78rem;font-weight:600;color:var(--muted);margin-left:.5rem;}
.exp-meta .exp-date{font-weight:700;font-size:.92rem;color:var(--ink);margin-bottom:.4rem;}
.exp-meta .exp-co{font-size:.85rem;color:var(--muted);font-weight:500;line-height:1.4;}
.exp-role{font-size:1.2rem;font-weight:700;margin-bottom:.9rem;}
.exp-points{list-style:none;}
.exp-points li{position:relative;padding-left:1.1rem;margin-bottom:.65rem;color:var(--muted);font-size:.98rem;line-height:1.6;}
.exp-points li::before{content:'\2013';position:absolute;left:0;color:var(--faint);}
.exp-points li:last-child{margin-bottom:0;}

/* PROJECTS */
.projects{padding:5rem 0;}
.proj-grid{display:flex;flex-direction:column;}
.proj-card{display:grid;grid-template-columns:48px 1fr;gap:1.75rem;padding:1.75rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;}
.proj-grid .proj-card:first-child{padding-top:0;}
.proj-num{font-size:.85rem;color:var(--faint);font-weight:700;}
.proj-body{display:flex;flex-direction:column;gap:.5rem;}
.proj-kicker{font-size:.85rem;color:var(--faint);}
.proj-title{font-size:1.25rem;font-weight:700;line-height:1.25;transition:color .2s;}
.proj-card:hover .proj-title,.proj-card:focus-visible .proj-title{color:var(--accent);text-decoration:underline;}
.proj-desc{color:var(--muted);font-size:.98rem;line-height:1.6;}
.proj-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.2rem;}
.proj-tags .tag{font-size:.78rem;padding:.26rem .65rem;}
@media(max-width:680px){.proj-card{grid-template-columns:1fr;gap:.6rem;}}

/* SKILLS */
.skills{padding:5rem 0;}
.cl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2.2rem;}
.cl-ad h3{font-size:.85rem;color:var(--ink);font-weight:700;margin-bottom:.9rem;}
.skill-pills{display:flex;flex-wrap:wrap;gap:.5rem;}
.skill-pills .tag{font-size:.8rem;}
@media(max-width:900px){.cl-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.cl-grid{grid-template-columns:1fr;}}

/* EDUCATION */
.edu{padding:5rem 0;}
.edu-row{display:grid;grid-template-columns:1fr auto;gap:1rem 2.5rem;padding:1.4rem 0;border-bottom:1px solid var(--line);align-items:baseline;}
.edu-date{font-weight:700;color:var(--ink);font-size:.92rem;}
.edu-school{font-size:1.1rem;font-weight:700;margin-bottom:.3rem;}
.edu-degree{color:var(--muted);font-size:.95rem;}
.edu-activities{margin-top:1.6rem;color:var(--muted);font-size:.92rem;line-height:1.7;}
.edu-activities strong{color:var(--ink);font-weight:600;font-size:.85rem;}

/* CONTACT */
.contact{padding:5rem 0;}
.contact-grid{max-width:640px;}
.contact-left .sec-title{margin-bottom:1.3rem;}
.contact-left p:not(.kicker){color:var(--ink-soft);font-size:1.05rem;line-height:1.65;margin-bottom:1.8rem;}
.contact-links{display:flex;flex-direction:column;}
.c-link{display:flex;align-items:center;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:color .2s;}
.c-link:hover,.c-link:focus-visible{color:var(--accent);}
.c-link .c-label{font-size:.75rem;color:var(--faint);display:block;margin-bottom:.15rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.c-link .c-val{font-size:1rem;font-weight:500;}
.c-inner{display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit;flex:1;min-width:0;}
.c-copy{margin-left:1rem;flex-shrink:0;font-family:inherit;font-size:.76rem;font-weight:600;color:var(--faint);background:none;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.4rem .8rem;cursor:pointer;transition:color .2s,border-color .2s;}
.c-copy:hover,.c-copy:focus-visible{color:var(--accent);border-color:var(--accent);}
.c-copy.copied{color:var(--accent);border-color:var(--accent);}

@media(max-width:900px){
  .wrap{padding-left:1.25rem;padding-right:1.25rem;}
  .hero{padding:3.5rem 0 3rem;}
  .about,.exp,.projects,.skills,.edu,.contact{padding:3.5rem 0;}
  .hero-grid{grid-template-columns:1fr;gap:2.4rem;}
  .stats{grid-template-columns:1fr 1fr;}
  .stat:nth-child(2){border-left:none;}
  .stat:nth-child(3){border-left:1px solid var(--line);}
  .about-grid{grid-template-columns:1fr;gap:2rem;}
  .portrait-frame{max-width:260px;}
  .exp-item{grid-template-columns:1fr;gap:.9rem;padding:1.6rem 0;}
  .edu-row{grid-template-columns:1fr;gap:.4rem;}
}
@media(max-width:520px){
  .stats{grid-template-columns:1fr;}
  .stat{border-left:none!important;border-top:1px solid var(--line);}
  .stat:first-child{border-top:none;}
}

/* ===== Print edition — clean dossier on Ctrl+P ===== */
@media print{
  @page{margin:1.6cm;}
  html,body{background:#fff!important;color:#000!important;font-size:10.5pt;line-height:1.4;}
  *{box-shadow:none!important;text-shadow:none!important;}
  nav,.topbar,.menu-btn,.skip-link,
  .hero-ctas,.avail-line,.back-top,.cmdk-btn,.cmdk-overlay{display:none!important;}
  main,.wrap{max-width:none!important;padding:0!important;margin:0!important;}
  section,header{padding:.5rem 0!important;border:none!important;}
  a{color:#000!important;text-decoration:none!important;}
  h1.hero-name{font-size:30pt;line-height:1;}
  .hero-name em,.stat-n em,.kicker,.proj-num,.exp-date,.edu-date{color:#000!important;}
  .sec-title{font-size:16pt;margin-bottom:.6rem;}
  .stats{display:grid!important;grid-template-columns:repeat(4,1fr);border:1px solid #000!important;}
  .stat{border-right:1px solid #999!important;break-inside:avoid;padding:.6rem .8rem!important;}
  .stat-n{font-size:16pt;}
  .portrait-frame{max-width:150px;}
  .exp-item,.proj-card,.edu-row{break-inside:avoid;border:1px solid #999!important;}
  .contact-left p,.about-body p,.exp-points li,.proj-desc{color:#000!important;}
  footer{border-top:1px solid #000!important;}
}
