*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}

:root{
  --bg:      #F8F6F2;
  --bg2:     #F1EFE9;
  --surface: #FFFFFF;
  --border:  #E3DFD8;
  --border2: #C8C3BA;
  --text:    #1C1A17;
  --muted:   #6E6A62;
  --dim:     #A39E96;
  --accent:  #3D3A35;
  --tag-bg:  #EDEBE6;
  --tag-txt: #5C5850;
  --r:       8px;
}

html{scroll-behavior:smooth;}

body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',sans-serif;
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
}

/* NAV */
nav{
  position:fixed;top:0;width:100%;z-index:100;
  background:rgba(248,246,242,0.92);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  height:58px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 5vw;
}
.nav-logo{
  font-family:'Playfair Display',serif;
  font-size:1rem;font-weight:500;
  color:var(--text);text-decoration:none;
}
.nav-links{display:flex;gap:2rem;list-style:none;}
.nav-links a{
  font-size:0.77rem;font-weight:400;
  color:var(--muted);text-decoration:none;
  transition:color 0.2s;
}
.nav-links a:hover{color:var(--text);}
.nav-note{
  font-family:'Fira Code',monospace;
  font-size:0.67rem;color:var(--dim);
  letter-spacing:0.04em;
}

/* HERO */
#hero{
  min-height:100vh;
  padding:0 5vw;
  padding-top:58px;
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;
}
.hero-inner{
  display:grid;
  grid-template-columns:1fr 320px;
  gap:5rem;
  align-items:center;
  width:100%;
  padding:4rem 0;
}
.hero-sup{
  font-family:'Fira Code',monospace;
  font-size:0.68rem;
  color:var(--dim);
  letter-spacing:0.12em;
  text-transform:uppercase;
  margin-bottom:1.5rem;
}
h1{
  font-family:'Playfair Display',serif;
  font-size:clamp(2.6rem,5.5vw,4.2rem);
  font-weight:500;
  color:var(--text);
  line-height:1.12;
  letter-spacing:-0.01em;
  margin-bottom:1.25rem;
}
h1 em{font-style:italic;color:var(--muted);}
.hero-desc{
  font-size:0.97rem;
  color:var(--muted);
  line-height:1.85;
  max-width:460px;
  margin-bottom:2.25rem;
}
.hero-desc strong{color:var(--text);font-weight:400;}
.hero-btns{display:flex;gap:0.75rem;flex-wrap:wrap;}
.btn{
  display:inline-block;
  padding:0.68rem 1.5rem;
  border-radius:5px;
  font-size:0.81rem;font-weight:500;
  text-decoration:none;
  transition:all 0.18s;
  letter-spacing:0.02em;
}
.btn-solid{background:var(--text);color:#fff;border:1px solid var(--text);}
.btn-solid:hover{background:#333;}
.btn-outline{background:transparent;color:var(--muted);border:1px solid var(--border2);}
.btn-outline:hover{border-color:var(--text);color:var(--text);}

/* Sidebar stats */
.hero-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
}
.hc-row{
  padding:1.1rem 1.4rem;
  border-bottom:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:baseline;
}
.hc-row:last-child{border-bottom:none;}
.hc-lbl{font-family:'Fira Code',monospace;font-size:0.63rem;color:var(--dim);letter-spacing:0.1em;text-transform:uppercase;}
.hc-val{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:500;color:var(--text);}

/* SHARED */
.wrap{max-width:1200px;margin:0 auto;padding:0 5vw;}
section{padding:6.5rem 0;}
.sep{border:none;border-top:1px solid var(--border);max-width:1200px;margin:0 auto;}
.eyebrow{
  font-family:'Fira Code',monospace;
  font-size:0.67rem;color:var(--dim);
  letter-spacing:0.14em;text-transform:uppercase;
  margin-bottom:0.6rem;
}
h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.75rem,3.2vw,2.4rem);
  font-weight:500;color:var(--text);line-height:1.2;
  letter-spacing:-0.01em;
}

/* Inline tag — subtle, no background box */
.itag{
  display:inline-block;
  font-family:'Fira Code',monospace;
  font-size:0.67rem;
  color:var(--dim);
  letter-spacing:0.05em;
  padding:0.12rem 0;
  border-bottom:1px solid var(--border2);
  margin-right:0.6rem;
  margin-bottom:0.35rem;
}

/* Soft chip — very low contrast */
.chip{
  display:inline-block;
  padding:0.22rem 0.65rem;
  background:var(--tag-bg);
  border-radius:3px;
  font-size:0.72rem;font-weight:400;
  color:var(--tag-txt);
  margin-right:0.4rem;margin-bottom:0.4rem;
}

/* ABOUT */
#about{background:var(--bg2);}
.about-grid{
  display:grid;grid-template-columns:280px 1fr;
  gap:6rem;margin-top:2.75rem;align-items:start;
}
.about-chips{display:flex;flex-wrap:wrap;margin-top:1.5rem;}
.about-text p{font-size:0.96rem;color:var(--muted);line-height:1.9;margin-bottom:1.3rem;}
.about-text p:last-child{margin-bottom:0;}
.about-text strong{color:var(--text);font-weight:400;}

/* EDUCATION */
#education{}
.edu-cards{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1.2rem;margin-top:2.75rem;
}
.edu-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:1.6rem;
  transition:box-shadow 0.2s,border-color 0.2s;
}
.edu-card:hover{border-color:var(--border2);box-shadow:0 3px 16px rgba(0,0,0,0.05);}
.edu-period{
  font-family:'Fira Code',monospace;font-size:0.64rem;
  color:var(--dim);letter-spacing:0.08em;
  margin-bottom:0.85rem;display:block;
}
.edu-uni{
  font-family:'Playfair Display',serif;
  font-size:1rem;font-weight:500;color:var(--text);
  margin-bottom:0.25rem;line-height:1.35;
}
.edu-deg{font-size:0.79rem;color:var(--muted);margin-bottom:1rem;}
.edu-facts{list-style:none;}
.edu-facts li{
  font-size:0.79rem;color:var(--muted);
  padding:0.18rem 0;padding-left:0.8rem;
  position:relative;line-height:1.5;
}
.edu-facts li::before{
  content:'';position:absolute;left:0;top:0.58rem;
  width:3px;height:3px;border-radius:50%;background:var(--dim);
}
.edu-note{
  display:block;margin-top:0.9rem;
  font-family:'Fira Code',monospace;font-size:0.63rem;
  color:var(--dim);letter-spacing:0.04em;
}

/* RESEARCH */
#research{background:var(--bg2);}
.research-intro{
  display:grid;grid-template-columns:1fr 1fr;
  gap:4rem;margin-bottom:3rem;align-items:end;
}
.research-note{font-size:0.93rem;color:var(--muted);line-height:1.85;}

.r-item{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);
  padding:2rem 2.25rem;
  margin-bottom:1.25rem;
  transition:border-color 0.2s;
}
.r-item:last-child{margin-bottom:0;}
.r-item:hover{border-color:var(--border2);}
.r-header{
  display:grid;grid-template-columns:1fr auto;
  gap:2rem;align-items:start;
  margin-bottom:1.25rem;
}
.r-title{
  font-family:'Playfair Display',serif;
  font-size:1.2rem;font-weight:500;color:var(--text);
  margin-bottom:0.25rem;line-height:1.3;
}
.r-meta{font-size:0.79rem;color:var(--muted);}
.r-badge{
  font-family:'Fira Code',monospace;
  font-size:0.63rem;color:var(--dim);
  white-space:nowrap;text-align:right;
  line-height:1.7;
}
.r-body p{font-size:0.9rem;color:var(--muted);line-height:1.8;margin-bottom:0.85rem;}
.r-body p:last-child{margin-bottom:0;}
.r-body strong{color:var(--text);font-weight:400;}
.r-tags{display:flex;flex-wrap:wrap;margin-top:1.1rem;}

/* Result pills — very subtle */
.r-result{
  display:inline-flex;align-items:center;gap:0.35rem;
  font-family:'Fira Code',monospace;
  font-size:0.67rem;color:var(--tag-txt);
  background:var(--tag-bg);
  border-radius:3px;
  padding:0.2rem 0.6rem;
  margin-right:0.5rem;margin-bottom:0.4rem;
}
.r-result b{color:var(--accent);font-weight:500;}

/* PROJECTS */
#projects{}
.projects-header{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:2.75rem;
}
.proj-count{
  font-family:'Playfair Display',serif;
  font-size:2.8rem;font-weight:400;
  color:var(--border2);font-style:italic;line-height:1;
}
.proj-list{
  border:1px solid var(--border);border-radius:var(--r);
  overflow:hidden;background:var(--surface);
}
.proj-item{
  display:grid;
  grid-template-columns:50px 1fr 190px 130px;
  gap:1.5rem;align-items:center;
  padding:1.4rem 1.75rem;
  border-bottom:1px solid var(--border);
  text-decoration:none;color:inherit;
  transition:background 0.18s;
}
.proj-item:last-child{border-bottom:none;}
.proj-item:hover{background:var(--bg2);}
.proj-item.static{cursor:default;}
.proj-num{
  font-family:'Fira Code',monospace;
  font-size:0.68rem;color:var(--dim);
  letter-spacing:0.08em;transition:color 0.2s;
}
.proj-item:hover .proj-num{color:var(--text);}
.proj-name{font-weight:500;font-size:0.93rem;color:var(--text);margin-bottom:0.18rem;}
.proj-desc{font-size:0.79rem;color:var(--muted);line-height:1.6;}
.proj-tags{display:flex;flex-wrap:wrap;gap:0.3rem;}
.proj-tag{
  padding:0.14rem 0.48rem;
  border:1px solid var(--border);border-radius:3px;
  font-size:0.63rem;color:var(--dim);
  font-family:'Fira Code',monospace;
}
.proj-item:hover .proj-tag{border-color:var(--border2);}
.proj-arrow{font-size:0.78rem;color:var(--dim);text-align:right;transition:color 0.18s;}
.proj-item:hover .proj-arrow{color:var(--text);}

/* SKILLS */
#skills{background:var(--bg2);}
.skills-top{
  display:grid;grid-template-columns:1fr 1fr;
  gap:4rem;margin-bottom:2.75rem;align-items:end;
}
.skills-note{font-size:0.92rem;color:var(--muted);line-height:1.85;}
.skills-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--border);
  border:1px solid var(--border);border-radius:var(--r);overflow:hidden;
}
.sg{background:var(--surface);padding:1.5rem;transition:background 0.18s;}
.sg:hover{background:var(--bg2);}
.sg-lbl{
  font-family:'Fira Code',monospace;font-size:0.62rem;
  color:var(--dim);letter-spacing:0.13em;text-transform:uppercase;
  margin-bottom:1rem;padding-bottom:0.65rem;
  border-bottom:1px solid var(--border);
}
.sg ul{list-style:none;display:flex;flex-direction:column;gap:0.3rem;}
.sg ul li{font-size:0.81rem;color:var(--muted);}
.sg:hover ul li{color:var(--text);}
.sg ul li b{color:var(--text);font-weight:500;}
.lang-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.2rem;
}
.lang-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:1rem 1.35rem;
  display:flex;justify-content:space-between;align-items:center;
}
.lang-name{font-weight:500;font-size:0.88rem;color:var(--text);}
.lang-lvl{font-family:'Fira Code',monospace;font-size:0.63rem;color:var(--dim);}

/* AWARDS */
#awards{}
.awards-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1.1rem;margin-top:2.75rem;
}
.award-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:1.4rem;
  transition:box-shadow 0.2s,border-color 0.2s;
}
.award-card:hover{border-color:var(--border2);box-shadow:0 3px 14px rgba(0,0,0,0.05);}
.award-yr{
  font-family:'Fira Code',monospace;font-size:0.62rem;
  color:var(--dim);letter-spacing:0.08em;
  display:block;margin-bottom:0.7rem;
}
.award-name{font-weight:500;font-size:0.9rem;color:var(--text);margin-bottom:0.35rem;line-height:1.35;}
.award-desc{font-size:0.79rem;color:var(--muted);line-height:1.55;}
.award-note{
  display:block;margin-top:0.65rem;
  font-family:'Fira Code',monospace;font-size:0.63rem;color:var(--dim);
}

/* EXPERIENCE */
#experience{background:var(--bg2);}
.exp-list{
  margin-top:2.75rem;display:flex;flex-direction:column;gap:1px;
  background:var(--border);border:1px solid var(--border);
  border-radius:var(--r);overflow:hidden;
}
.exp-item{
  background:var(--surface);padding:1.6rem 2rem;
  display:grid;grid-template-columns:180px 1fr;
  gap:2.5rem;transition:background 0.18s;
}
.exp-item:hover{background:var(--bg2);}
.exp-period{font-family:'Fira Code',monospace;font-size:0.65rem;color:var(--dim);letter-spacing:0.06em;line-height:1.7;}
.exp-role{font-weight:500;font-size:0.93rem;color:var(--text);margin-bottom:0.2rem;}
.exp-org{font-size:0.79rem;color:var(--muted);margin-bottom:0.65rem;}
.exp-bul{list-style:none;}
.exp-bul li{font-size:0.81rem;color:var(--muted);padding:0.16rem 0;padding-left:0.85rem;position:relative;line-height:1.6;}
.exp-bul li::before{content:'';position:absolute;left:0;top:0.58rem;width:3px;height:3px;border-radius:50%;background:var(--dim);}

/* CONTACT */
#contact{}
.contact-layout{
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:start;margin-top:2.75rem;
}
.contact-h{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.9rem,3.8vw,3rem);
  font-weight:500;color:var(--text);line-height:1.2;
  margin-bottom:1rem;
}
.contact-h em{color:var(--muted);}
.contact-note{font-size:0.92rem;color:var(--muted);line-height:1.85;margin-bottom:2rem;}
.contact-links{display:flex;flex-direction:column;gap:0.6rem;}
.contact-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:0.9rem 1.25rem;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);text-decoration:none;
  transition:border-color 0.18s;
}
.contact-link:hover{border-color:var(--border2);}
.cl-lbl{font-family:'Fira Code',monospace;font-size:0.61rem;color:var(--dim);letter-spacing:0.1em;text-transform:uppercase;display:block;margin-bottom:0.1rem;}
.cl-val{font-size:0.85rem;color:var(--text);}
.cl-arr{font-size:0.78rem;color:var(--dim);transition:color 0.18s;}
.contact-link:hover .cl-arr{color:var(--text);}
.info-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:1.9rem;position:sticky;top:4.5rem;
}
.ic-name{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:500;color:var(--text);margin-bottom:0.2rem;}
.ic-sub{font-size:0.77rem;color:var(--muted);margin-bottom:1.6rem;}
.ic-rows{display:flex;flex-direction:column;}
.ic-row{padding:0.7rem 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:0.1rem;}
.ic-row:last-child{border-bottom:none;}
.ic-lbl{font-family:'Fira Code',monospace;font-size:0.59rem;color:var(--dim);letter-spacing:0.1em;text-transform:uppercase;}
.ic-val{font-size:0.83rem;color:var(--text);}

/* FOOTER */
footer{
  border-top:1px solid var(--border);
  padding:1.6rem 5vw;
  display:flex;justify-content:space-between;align-items:center;
}
.ft-l{font-family:'Playfair Display',serif;font-size:0.88rem;font-weight:500;color:var(--muted);}
.ft-r{font-family:'Fira Code',monospace;font-size:0.62rem;color:var(--dim);}

/* FADE */
.fade{opacity:0;transform:translateY(18px);transition:opacity 0.55s ease,transform 0.55s ease;}
.fade.in{opacity:1;transform:none;}

@media(max-width:960px){
  nav{padding:0 1.25rem;}
  .nav-links{gap:1rem;}
  .nav-note{display:none;}
  .hero-inner{grid-template-columns:1fr;gap:2.5rem;}
  .about-grid{grid-template-columns:1fr;gap:3rem;}
  .edu-cards{grid-template-columns:1fr;}
  .research-intro{grid-template-columns:1fr;gap:2rem;}
  .proj-item{grid-template-columns:38px 1fr;}
  .proj-tags,.proj-arrow{display:none;}
  .skills-grid{grid-template-columns:1fr 1fr;}
  .skills-top{grid-template-columns:1fr;gap:2rem;}
  .awards-grid{grid-template-columns:1fr 1fr;}
  .contact-layout{grid-template-columns:1fr;}
  .exp-item{grid-template-columns:1fr;gap:0.75rem;}
  .lang-row{grid-template-columns:1fr;}
  footer{flex-direction:column;gap:0.4rem;text-align:center;}
  .r-header{grid-template-columns:1fr;}
}
