*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#171717;background:#fff;line-height:1.55}a{color:inherit}.wrap{width:min(1120px,calc(100% - 44px));margin:0 auto}.narrow{width:min(780px,calc(100% - 44px))}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid #e8eaed;backdrop-filter:blur(10px)}.nav{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:780;text-decoration:none;letter-spacing:-.02em}.nav nav{display:flex;gap:20px;flex-wrap:wrap}.nav nav a{text-decoration:none;color:#43484d;font-size:.92rem}.nav nav a:hover{color:#000}.hero{padding:52px 0 34px;background:linear-gradient(180deg,#fafbfd,#fff)}.hero-grid{display:grid;grid-template-columns:1fr 205px;gap:46px;align-items:center}.hero h1{font-size:clamp(2.55rem,4.2vw,3.8rem);line-height:1;letter-spacing:-.052em;margin:0 0 14px}.lead{font-size:1.08rem;color:#3e454b;max-width:680px;margin:0 0 12px}.affiliation{color:#6b7177;margin:0;font-size:.95rem}.portrait-wrap{max-width:205px;justify-self:end}.profile-photo{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;display:block;box-shadow:0 14px 38px rgba(0,0,0,.1)}.section{padding:54px 0}.about-section{padding:30px 0 36px;border-bottom:1px solid #eceeef}.about-section h2,.simple-heading,.news-section h2{font-size:1.68rem;letter-spacing:-.032em;margin:0 0 12px}.about-section p{font-size:1.02rem;color:#343a40;margin:0}.publications-section{padding-top:44px}.year-divider{display:flex;align-items:center;gap:16px;margin:32px 0 2px}.year-divider:before,.year-divider:after{content:"";height:1px;background:#ccd2d8;flex:1}.year-divider span{font-size:1.2rem;font-weight:850}.publication{display:grid;grid-template-columns:162px 1fr;gap:24px;padding:25px 0;border-bottom:1px solid #e7eaed}.pub-thumb{width:162px;height:112px;object-fit:cover;border-radius:12px;border:1px solid #dfe3e7;box-shadow:0 7px 20px rgba(0,0,0,.07);background:#f0f2f4}.pub-meta{font-size:.75rem;font-weight:850;letter-spacing:.055em;text-transform:uppercase;color:#65717c;margin-bottom:5px}.pub-body h3{font-size:1.17rem;line-height:1.34;letter-spacing:-.02em;margin:0 0 8px;color:#363a4b}.authors,.venue{margin:2px 0}.venue{font-style:italic;color:#50565c}.pub-links{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.pub-links a,.badge{font-size:.8rem;font-weight:780;text-decoration:none;padding:5px 10px;border-radius:999px}.pub-links a{background:#f1f6fa;border:1px solid #dce7ef;color:#265db4}.badge{background:#fff4e8;border:1px solid #ffd8b1;color:#a74c00}.news-section{background:#f7f9fa;padding-top:44px}.news-list{margin-top:16px}.news-item{display:grid;grid-template-columns:95px 1fr;gap:18px;padding:15px 0;border-top:1px solid #dfe4e8}.news-item:last-child{border-bottom:1px solid #dfe4e8}.news-item time{font-weight:820;color:#66717a}.news-item p{margin:0}footer{padding:22px 0;border-top:1px solid #e5e5e5;color:#687078;font-size:.88rem}.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.cv-page{padding:86px 0}.cv-page h1{font-size:2.25rem;letter-spacing:-.04em}.cv-button{display:inline-block;margin-top:18px;padding:10px 16px;border-radius:999px;background:#171717;color:#fff;font-weight:750}.cv-button.disabled{opacity:.45}@media(max-width:760px){.nav{align-items:flex-start;flex-direction:column;padding:14px 0}.nav nav{gap:12px}.hero-grid{grid-template-columns:1fr;gap:26px}.portrait-wrap{justify-self:start;max-width:165px}.hero h1{font-size:2.7rem}.publication{grid-template-columns:1fr}.pub-thumb{width:100%;height:auto;max-height:230px}.news-item{grid-template-columns:1fr;gap:4px}.section{padding:46px 0}}

.cv-page{padding:54px 0 70px}
.cv-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.cv-header h1{font-size:2.35rem;letter-spacing:-.045em;margin:0 0 8px}
.cv-header p{margin:0;color:#697077}
.cv-actions{display:flex;gap:10px;flex-wrap:wrap}
.cv-button{display:inline-block;padding:10px 15px;border-radius:999px;text-decoration:none;background:#171717;color:#fff;font-weight:750;border:1px solid #171717}
.cv-button.secondary{background:#fff;color:#171717}
.cv-frame-wrap{border:1px solid #e1e5e8;border-radius:14px;overflow:hidden;background:#f5f6f7;box-shadow:0 8px 26px rgba(0,0,0,.06)}
.cv-frame{width:100%;height:78vh;min-height:760px;border:0;background:#fff}
@media(max-width:760px){.cv-header{align-items:flex-start;flex-direction:column}.cv-frame{height:70vh;min-height:600px}}

.profile-links{display:flex;align-items:center;gap:9px;margin:2px 0 12px;font-size:.95rem}
.profile-links a{text-decoration:none;font-weight:700;color:#2b5fb8}
.profile-links a:hover{text-decoration:underline}
.contact-section{padding:46px 0 54px;border-top:1px solid #eceeef;background:#fff}
.contact-section h2{font-size:1.68rem;letter-spacing:-.032em;margin:0 0 12px}
.contact-section p{margin:5px 0;color:#3d4348}
.contact-email{font-weight:750;text-decoration:none}
.contact-email:hover{text-decoration:underline}

/* v10 publication media + about refinements */
.about-section p + p{margin-top:12px}

.publication{
  grid-template-columns:220px 1fr;
  gap:28px;
}

.pub-thumb{
  width:220px;
  height:148px;
  object-fit:contain;
  object-position:center;
  background:#f7f8f9;
  padding:4px;
}


@media(max-width:760px){
  .publication{grid-template-columns:1fr}
  .pub-thumb{
    width:100%;
    height:auto;
    max-height:300px;
    object-fit:contain;
  }
}

/* v12 expanded news */
.news-list{margin-top:20px}
.news-item{padding:17px 0}
.news-item p{line-height:1.55}

/* v14 publication media reliability */
.pub-thumb{
  display:block;
  width:220px;
  height:148px;
  object-fit:contain;
  object-position:center;
  background:#f7f8f9;
  padding:4px;
}
@media(max-width:760px){
  .pub-thumb{
    width:100%;
    height:auto;
    max-height:300px;
    object-fit:contain;
  }
}

/* About/bio university links */
.about-section a {
  color: #2563eb;
  text-decoration: none;
}
.about-section a:hover {
  text-decoration: underline;
}
