:root{
  --bg:#F5F5F7;
  --surface:#FFFFFF;
  --text:#1D1D1F;
  --secondary:#6E6E73;
  --border:rgba(0,0,0,.08);
  --blue:#0071E3;
  --black:#000000;
  --dark-text:#F5F5F7;
  --max:1320px;
  --radius:30px;
  --shadow:0 20px 60px rgba(0,0,0,.06);
}

*{box-sizing:border-box}

html{
  scroll-behavior:smooth;
  scroll-padding-top:84px;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"Inter","Noto Sans JP","Hiragino Sans",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.55;
}

a{color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
img{max-width:100%}
::selection{background:rgba(0,113,227,.18)}

.lang-ja{display:none}
body[data-lang="ja"] .lang-en{display:none}
body[data-lang="ja"] .lang-ja{display:initial}

.section-shell,
.hero-shell{
  width:min(var(--max),calc(100% - 64px));
  margin:0 auto;
}

/* Navigation */
.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:100;
  border-bottom:1px solid rgba(0,0,0,.06);
  background:rgba(245,245,247,.78);
  backdrop-filter:saturate(180%) blur(22px);
  -webkit-backdrop-filter:saturate(180%) blur(22px);
}

.nav-shell{
  width:min(var(--max),calc(100% - 64px));
  min-height:58px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.brand{
  flex:0 0 auto;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  letter-spacing:-.015em;
}

.nav{
  display:flex;
  align-items:center;
  gap:26px;
  font-size:12px;
  font-weight:500;
}

.nav a{
  color:#424245;
  text-decoration:none;
  transition:color .18s ease;
}

.nav a:hover{color:var(--text)}

.nav-contact{color:var(--blue)!important}

.language-toggle{
  margin-left:2px;
  padding:6px 0;
  border:0;
  background:transparent;
  color:#424245;
  font:inherit;
  cursor:pointer;
}

/* Hero */
.hero{
  background:var(--surface);
  padding:clamp(130px,14vw,190px) 0 clamp(110px,12vw,170px);
}

.hero-shell{
  display:grid;
  grid-template-columns:minmax(0,1.17fr) minmax(360px,.83fr);
  align-items:center;
  gap:clamp(60px,8vw,124px);
}

.hero-copy{max-width:780px}

.eyebrow{
  margin:0 0 24px;
  color:var(--secondary);
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.eyebrow.light{color:#8E8E93}

.hero h1{
  margin:0;
  font-size:clamp(64px,8vw,120px);
  line-height:.9;
  font-weight:650;
  letter-spacing:-.072em;
}

.hero-jp{
  margin:26px 0 0;
  color:var(--secondary);
  font-size:20px;
  font-weight:500;
  letter-spacing:.04em;
}

.hero-lead{
  max-width:720px;
  margin:38px 0 0;
  color:#424245;
  font-size:clamp(18px,1.55vw,22px);
  line-height:1.6;
  letter-spacing:-.02em;
}

.hero-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:38px;
}

.button{
  min-height:48px;
  padding:0 20px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  justify-content:center;
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease;
}

.button:hover{transform:translateY(-1px)}

.button.primary{
  background:var(--blue);
  color:#fff;
}

.button.primary:hover{background:#0077ED}

.button.secondary{
  border:1px solid rgba(0,113,227,.42);
  color:var(--blue);
  background:#fff;
}

.button.secondary:hover{background:#F2F8FF}

.hero-portrait{
  margin:0;
  justify-self:end;
  width:min(100%,480px);
}

.portrait-frame{
  width:100%;
  aspect-ratio:1371 / 1815;
  overflow:hidden;
  border-radius:28px;
  background:#E8E8ED;
  box-shadow:var(--shadow);
}

.portrait-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 50%;
  transform:scale(1.015);
  transform-origin:center;
}

.hero-portrait figcaption{
  margin-top:12px;
  color:var(--secondary);
  font-size:11px;
  line-height:1.4;
}

/* Bento overview */
.bento-section{
  padding:120px 0 0;
  background:var(--bg);
}

.bento-grid{
  display:grid;
  grid-template-columns:1.5fr .75fr .75fr;
  grid-template-rows:auto auto;
  gap:18px;
}

.bento-card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  overflow:hidden;
}

.intro-card{
  grid-row:span 2;
  min-height:650px;
  padding:52px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.card-label{
  margin:0;
  color:var(--secondary);
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.intro-card h2{
  margin:24px 0 22px;
  font-size:clamp(42px,4.8vw,70px);
  line-height:1.02;
  font-weight:600;
  letter-spacing:-.052em;
}

.card-copy{
  max-width:700px;
  margin:0;
  color:var(--secondary);
  font-size:17px;
  line-height:1.75;
}

.metric-card,
.profile-card{
  min-height:316px;
  padding:34px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.dark-card{
  background:var(--black);
  color:var(--dark-text);
  border-color:#000;
}

.dark-card .card-label{color:#A1A1A6}

.metric{
  margin:auto 0 14px;
  font-size:clamp(72px,7vw,104px);
  line-height:.85;
  font-weight:650;
  letter-spacing:-.07em;
}

.metric-caption{
  margin:0;
  color:var(--secondary);
  font-size:14px;
  line-height:1.5;
}

.dark-card .metric-caption{color:#A1A1A6}

.profile-lines{
  margin-top:auto;
}

.profile-lines p{
  margin:7px 0 0;
  color:var(--secondary);
  font-size:14px;
}

.profile-lines strong{
  color:var(--text);
  font-size:20px;
  letter-spacing:-.025em;
}

/* Dark statement */
.statement-section{
  margin-top:160px;
  background:var(--black);
  color:var(--dark-text);
}

.statement-inner{
  padding:clamp(130px,13vw,190px) 0;
}

.statement-inner h2{
  max-width:1120px;
  margin:0;
  font-size:clamp(60px,7.5vw,110px);
  line-height:.98;
  font-weight:600;
  letter-spacing:-.065em;
}

.statement-copy{
  max-width:760px;
  margin:48px 0 0;
  color:#A1A1A6;
  font-size:18px;
  line-height:1.75;
}

/* Shared sections */
.section{
  padding:clamp(130px,14vw,190px) 0;
}

.section-heading{
  margin-bottom:70px;
}

.section-heading.row-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:36px;
}

.section-heading h2{
  margin:0;
  font-size:clamp(54px,6.5vw,92px);
  line-height:.98;
  font-weight:600;
  letter-spacing:-.06em;
}

.section-link{
  flex:0 0 auto;
  margin-bottom:10px;
  color:var(--blue);
  text-decoration:none;
  font-size:14px;
  font-weight:500;
}

/* Research */
.research-section{background:var(--bg)}

.research-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
}

.research-card{
  min-height:430px;
  padding:40px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
}

.research-card.research-large{
  grid-row:span 2;
  min-height:878px;
}

.blue-accent-card{
  background:#F0F7FF;
  border-color:rgba(0,113,227,.12);
}

.research-topline{
  display:flex;
  justify-content:space-between;
  gap:22px;
  color:var(--secondary);
  font-size:10px;
  font-weight:600;
  letter-spacing:.08em;
}

.research-card h3{
  margin:0 0 22px;
  font-size:clamp(38px,4.8vw,68px);
  line-height:.98;
  font-weight:600;
  letter-spacing:-.055em;
}

.research-card:not(.research-large) h3{
  font-size:clamp(34px,3.8vw,54px);
}

.research-card p{
  max-width:640px;
  margin:0;
  color:var(--secondary);
  font-size:16px;
  line-height:1.75;
}

/* Publications */
.publications-section{
  background:var(--surface);
}

.publication-list{
  border-top:1px solid var(--border);
}

.publication{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:44px;
  padding:38px 0 42px;
  border-bottom:1px solid var(--border);
}

.publication-meta{
  display:flex;
  flex-direction:column;
  gap:8px;
  color:var(--secondary);
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
}

.publication-meta .year{
  color:var(--text);
  font-size:16px;
  letter-spacing:-.01em;
}

.publication-main h3{
  max-width:920px;
  margin:0;
  font-size:clamp(24px,2.55vw,36px);
  line-height:1.23;
  font-weight:600;
  letter-spacing:-.035em;
}

.publication-main p{
  margin:14px 0 0;
  color:var(--secondary);
  font-size:14px;
  line-height:1.6;
}

.status{
  display:inline-block;
  margin-top:16px;
  color:var(--blue);
  font-size:12px;
  font-weight:500;
}

/* About */
.about-section{background:var(--bg)}

.about-layout{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:clamp(60px,9vw,140px);
  align-items:start;
}

.about-summary{
  position:sticky;
  top:110px;
}

.about-lead{
  margin:0;
  color:#424245;
  font-size:20px;
  line-height:1.7;
  letter-spacing:-.02em;
}

.about-links{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin-top:34px;
}

.about-links a{
  color:var(--blue);
  text-decoration:none;
  font-size:14px;
}

.timeline{
  border-top:1px solid var(--border);
}

.timeline-item{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:30px;
  padding:27px 0;
  border-bottom:1px solid var(--border);
}

.timeline-item time{
  color:var(--secondary);
  font-size:12px;
  font-weight:500;
}

.timeline-item h3{
  margin:0 0 7px;
  font-size:22px;
  line-height:1.3;
  font-weight:600;
  letter-spacing:-.025em;
}

.timeline-item p{
  margin:0;
  color:var(--secondary);
  font-size:14px;
  line-height:1.6;
}

/* Recognition */
.recognition-section{
  padding-top:0;
  background:var(--bg);
}

.recognition-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.recognition-card{
  min-height:440px;
  padding:40px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  display:flex;
  flex-direction:column;
}

.recognition-card h3{
  margin:auto 0 20px;
  font-size:clamp(64px,8vw,110px);
  line-height:.88;
  font-weight:650;
  letter-spacing:-.07em;
}

.recognition-card>p:last-child{
  max-width:620px;
  margin:0;
  color:var(--secondary);
  font-size:15px;
  line-height:1.7;
}

.recognition-card.dark-card>p:last-child{color:#A1A1A6}

.wide-card{
  grid-column:1 / -1;
  min-height:500px;
}

.wide-card h3{
  margin:auto 0 28px;
  font-size:clamp(52px,6vw,86px);
  line-height:1;
}

/* Contact */
.contact-section{
  background:var(--black);
  color:var(--dark-text);
}

.contact-inner{
  padding:clamp(130px,13vw,190px) 0;
}

.contact-inner h2{
  max-width:1050px;
  margin:0;
  font-size:clamp(58px,7.5vw,110px);
  line-height:.98;
  font-weight:600;
  letter-spacing:-.065em;
}

.contact-actions{
  display:flex;
  gap:26px;
  flex-wrap:wrap;
  margin-top:60px;
}

.contact-actions a{
  color:#2997FF;
  text-decoration:none;
  font-size:15px;
  font-weight:500;
}

.site-footer{
  background:var(--black);
  color:#86868B;
  border-top:1px solid rgba(255,255,255,.10);
}

.footer-inner{
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  font-size:11px;
}

/* Motion */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:
    opacity .7s cubic-bezier(.2,.7,.2,1),
    transform .7s cubic-bezier(.2,.7,.2,1);
}

.reveal.is-visible{
  opacity:1;
  transform:none;
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{
    opacity:1;
    transform:none;
    transition:none;
  }
  .button{transition:none}
}

/* Tablet */
@media (max-width:980px){
  .section-shell,
  .hero-shell,
  .nav-shell{
    width:min(var(--max),calc(100% - 40px));
  }

  .nav a:not(.nav-contact):not([href*="overleaf"]){
    display:none;
  }

  .hero{
    padding-top:120px;
  }

  .hero-shell{
    grid-template-columns:1fr;
    gap:54px;
  }

  .hero-portrait{
    justify-self:start;
    width:min(100%,560px);
  }

  .bento-grid{
    grid-template-columns:1fr 1fr;
  }

  .intro-card{
    grid-column:1 / -1;
    grid-row:auto;
    min-height:520px;
  }

  .profile-card{
    grid-column:1 / -1;
  }

  .research-grid{
    grid-template-columns:1fr;
  }

  .research-card.research-large{
    grid-row:auto;
    min-height:620px;
  }

  .research-card{
    min-height:420px;
  }

  .about-layout{
    grid-template-columns:1fr;
  }

  .about-summary{
    position:static;
  }
}

/* Mobile */
@media (max-width:640px){
  .section-shell,
  .hero-shell,
  .nav-shell{
    width:calc(100% - 32px);
  }

  .nav-shell{
    min-height:54px;
  }

  .brand{
    font-size:13px;
  }

  .nav{
    gap:14px;
  }

  .nav-contact{display:none}
  .nav a[href*="overleaf"]{font-size:11px}
  .language-toggle{font-size:11px}

  .hero{
    padding:104px 0 92px;
  }

  .hero h1{
    font-size:clamp(62px,20vw,86px);
  }

  .hero-jp{
    margin-top:18px;
    font-size:17px;
  }

  .hero-lead{
    margin-top:30px;
    font-size:17px;
  }

  .hero-actions{
    margin-top:30px;
  }

  .hero-portrait{
    width:100%;
  }

  .portrait-frame{
    aspect-ratio:1371 / 1815;
    border-radius:22px;
  }

  .portrait-frame img{
    transform:scale(1);
    object-position:50% 50%;
  }

  .bento-section{
    padding-top:90px;
  }

  .bento-grid{
    grid-template-columns:1fr;
    gap:12px;
  }

  .intro-card,
  .profile-card{
    grid-column:auto;
  }

  .intro-card{
    min-height:470px;
    padding:28px;
  }

  .intro-card h2{
    font-size:42px;
  }

  .metric-card,
  .profile-card{
    min-height:280px;
    padding:28px;
  }

  .statement-section{
    margin-top:110px;
  }

  .statement-inner{
    padding:105px 0;
  }

  .statement-inner h2{
    font-size:50px;
  }

  .statement-copy{
    margin-top:36px;
    font-size:16px;
  }

  .section{
    padding:105px 0;
  }

  .section-heading{
    margin-bottom:50px;
  }

  .section-heading.row-heading{
    display:block;
  }

  .section-heading h2{
    font-size:50px;
  }

  .section-link{
    display:inline-block;
    margin-top:22px;
  }

  .research-card,
  .research-card.research-large{
    min-height:480px;
    padding:28px;
    border-radius:24px;
  }

  .research-card h3,
  .research-card:not(.research-large) h3{
    font-size:42px;
  }

  .publication{
    grid-template-columns:1fr;
    gap:18px;
    padding:30px 0 34px;
  }

  .publication-meta{
    flex-direction:row;
    align-items:center;
    gap:14px;
  }

  .publication-main h3{
    font-size:25px;
  }

  .timeline-item{
    grid-template-columns:1fr;
    gap:9px;
  }

  .recognition-grid{
    grid-template-columns:1fr;
    gap:12px;
  }

  .wide-card{
    grid-column:auto;
  }

  .recognition-card,
  .wide-card{
    min-height:360px;
    padding:28px;
    border-radius:24px;
  }

  .recognition-card h3{
    font-size:72px;
  }

  .wide-card h3{
    font-size:48px;
  }

  .contact-inner{
    padding:110px 0;
  }

  .contact-inner h2{
    font-size:52px;
  }

  .contact-actions{
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
    margin-top:48px;
  }

  .footer-inner{
    min-height:110px;
    padding:24px 0;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
  }
}

/* Full-width Experience */
.about-layout-single{
  display:block;
}

.about-layout-single .timeline{
  width:100%;
}

.about-layout-single .timeline-item{
  grid-template-columns:190px minmax(0,1fr);
}

/* Selected milestones: concise, not an awards catalog */
.milestones{
  margin-top:72px;
}

.milestones-title{
  margin:0 0 24px;
  color:var(--secondary);
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.milestone-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.milestone-card{
  min-height:210px;
  padding:28px;
  border:1px solid var(--border);
  border-radius:24px;
  background:var(--surface);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.milestone-year{
  margin-bottom:auto;
  color:var(--secondary);
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
}

.milestone-card h3{
  margin:34px 0 9px;
  font-size:clamp(24px,2.3vw,34px);
  line-height:1.1;
  font-weight:600;
  letter-spacing:-.035em;
}

.milestone-card p{
  margin:0;
  color:var(--secondary);
  font-size:14px;
  line-height:1.6;
}

@media (max-width:640px){
  .about-layout-single .timeline-item{
    grid-template-columns:1fr;
  }

  .milestone-grid{
    grid-template-columns:1fr;
  }

  .milestone-card{
    min-height:190px;
  }
}


/* QueryLift-inspired ambient motion: restrained geometric objects, no heavy gradients */
.hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.hero-shell{
  position:relative;
  z-index:2;
}

.ambient-stage{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}

.ambient-ring{
  position:absolute;
  display:block;
  border:1px solid rgba(29,29,31,.085);
  border-radius:50%;
  will-change:transform;
}

.ring-one{
  width:clamp(420px,42vw,720px);
  aspect-ratio:1;
  right:-11vw;
  top:7%;
  animation:ambientFloatOne 18s ease-in-out infinite alternate;
}

.ring-two{
  width:clamp(250px,26vw,440px);
  aspect-ratio:1;
  left:39%;
  bottom:-17%;
  border-color:rgba(0,113,227,.13);
  animation:ambientFloatTwo 22s ease-in-out infinite alternate;
}

.ambient-dot{
  position:absolute;
  display:block;
  border-radius:50%;
  will-change:transform;
}

.dot-blue{
  width:18px;
  height:18px;
  right:18%;
  top:18%;
  background:var(--blue);
  opacity:.76;
  box-shadow:0 18px 44px rgba(0,113,227,.18);
  animation:ambientDotBlue 12s ease-in-out infinite alternate;
}

.dot-dark{
  width:9px;
  height:9px;
  left:47%;
  top:32%;
  background:var(--text);
  opacity:.34;
  animation:ambientDotDark 15s ease-in-out infinite alternate;
}

@keyframes ambientFloatOne{
  from{transform:translate3d(0,0,0) rotate(0deg)}
  to{transform:translate3d(-42px,32px,0) rotate(8deg)}
}

@keyframes ambientFloatTwo{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(50px,-34px,0) scale(1.08)}
}

@keyframes ambientDotBlue{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-54px,68px,0)}
}

@keyframes ambientDotDark{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(36px,-46px,0)}
}

/* Experience header: use the full canvas and surface early graduation as a single accent */
.experience-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,340px);
  align-items:end;
  gap:48px;
}

.early-grad-badge{
  min-height:154px;
  padding:24px 26px;
  border-radius:24px;
  background:var(--blue);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  box-shadow:0 18px 45px rgba(0,113,227,.13);
}

.early-grad-year{
  margin-bottom:auto;
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
  opacity:.72;
}

.early-grad-badge strong{
  font-size:20px;
  line-height:1.2;
  letter-spacing:-.025em;
}

.early-grad-badge > span:last-child{
  margin-top:5px;
  font-size:12px;
  opacity:.72;
}

/* Compact highlight strip: only the three high-signal programs */
.milestones{
  margin-top:58px;
}

.milestone-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.milestone-card{
  min-height:176px;
  padding:24px;
  border-radius:22px;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.milestone-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 44px rgba(0,0,0,.06);
  border-color:rgba(0,113,227,.18);
}

.milestone-card h3{
  margin:26px 0 8px;
  font-size:clamp(21px,1.8vw,28px);
}

@media (prefers-reduced-motion:reduce){
  .ambient-ring,
  .ambient-dot{
    animation:none!important;
  }
}

@media (max-width:900px){
  .experience-heading{
    grid-template-columns:1fr;
    align-items:start;
  }

  .early-grad-badge{
    max-width:420px;
  }

  .milestone-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .ambient-stage{
    opacity:.7;
  }

  .ring-one{
    right:-45%;
    top:12%;
  }

  .ring-two{
    left:42%;
    bottom:-7%;
  }

  .early-grad-badge{
    min-height:140px;
    border-radius:20px;
  }
}


/* Experience refinement */
.experience-heading{
  display:block;
}

.timeline-highlight{
  color:var(--blue);
  font-weight:600;
}

.timeline-item p strong.timeline-highlight{
  color:var(--blue);
}


/* Quiet footer */
.site-footer{
  background:var(--black);
  color:#6e6e73;
  border-top:1px solid rgba(255,255,255,.06);
}

.footer-inner{
  min-height:58px;
  justify-content:flex-start;
  font-size:10px;
  letter-spacing:.01em;
}


/* Compact contact section */
.contact-inner{
  padding:84px 0 92px;
}

.contact-inner h2{
  max-width:none;
  margin:0;
  font-size:clamp(38px,4.5vw,60px);
  line-height:1;
  font-weight:600;
  letter-spacing:-.045em;
}

.contact-actions{
  margin-top:34px;
  gap:22px;
}

@media (max-width:640px){
  .contact-inner{
    padding:72px 0 78px;
  }

  .contact-inner h2{
    font-size:40px;
  }

  .contact-actions{
    margin-top:28px;
  }
}


/* Minimal header: identity on the left, language switch only on the right */
.site-header{
  border-bottom:0;
  background:rgba(245,245,247,.62);
}

.language-nav{
  gap:0;
}

.language-toggle{
  min-width:36px;
  padding:7px 9px;
  border-radius:999px;
  color:var(--secondary);
  transition:background .2s ease,color .2s ease;
}

.language-toggle:hover{
  background:rgba(0,0,0,.05);
  color:var(--text);
}


/* Portfolio polish: scroll transition + publication interactions */
.section-transition{
  position:relative;
  height:clamp(92px,12vw,170px);
  overflow:hidden;
  background:var(--surface);
  border-top:1px solid rgba(0,0,0,.025);
  border-bottom:1px solid rgba(0,0,0,.035);
}

.section-transition span{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate3d(calc(-50% + var(--transition-x, 0px)),calc(-50% + var(--transition-y, 0px)),0);
  white-space:nowrap;
  color:rgba(29,29,31,.035);
  font-size:clamp(82px,15vw,220px);
  line-height:.75;
  font-weight:700;
  letter-spacing:-.075em;
  user-select:none;
  will-change:transform;
}

.publication-row{
  position:relative;
  isolation:isolate;
  padding-left:0;
  padding-right:0;
  transition:
    padding .28s cubic-bezier(.2,.7,.2,1),
    background .28s ease,
    border-color .28s ease;
}

.publication-row::before{
  content:"";
  position:absolute;
  inset:8px -20px;
  z-index:-1;
  border-radius:20px;
  background:rgba(0,113,227,0);
  transition:background .28s ease;
}

.publication-row::after{
  content:"↗";
  position:absolute;
  right:4px;
  top:50%;
  transform:translate3d(-8px,-50%,0);
  color:var(--blue);
  font-size:20px;
  opacity:0;
  transition:opacity .22s ease,transform .22s ease;
}

.publication-row:hover{
  padding-left:12px;
  padding-right:38px;
  border-color:rgba(0,113,227,.14);
}

.publication-row:hover::before{
  background:rgba(0,113,227,.035);
}

.publication-row:hover::after{
  opacity:.65;
  transform:translate3d(0,-50%,0);
}

.publication-row:hover .publication-main h3{
  color:#111;
}

.publication-row:hover .publication-meta span:last-child{
  color:var(--blue);
}

/* Keep the portrait flatter and more editorial */
.portrait-frame{
  box-shadow:0 12px 36px rgba(0,0,0,.045);
}

.portrait-frame img{
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}

.hero-portrait:hover .portrait-frame img{
  transform:scale(1.025);
}

/* Pointer parallax is applied through CSS variables set in script.js */
.hero{
  --parallax-x:0px;
  --parallax-y:0px;
}

.ring-one{
  translate:calc(var(--parallax-x) * .38) calc(var(--parallax-y) * .38);
}

.ring-two{
  translate:calc(var(--parallax-x) * -.24) calc(var(--parallax-y) * -.24);
}

.dot-blue{
  translate:calc(var(--parallax-x) * .7) calc(var(--parallax-y) * .7);
}

.dot-dark{
  translate:calc(var(--parallax-x) * -.5) calc(var(--parallax-y) * -.5);
}

@media (max-width:640px){
  .section-transition{
    height:90px;
  }

  .publication-row::after{
    display:none;
  }

  .publication-row:hover{
    padding-left:0;
    padding-right:0;
  }

  .hero-portrait:hover .portrait-frame img{
    transform:scale(1);
  }
}



/* Academic affiliations take visual priority over short-term appointments. */
.education-block{margin-bottom:92px}
.experience-subheading{margin:0 0 26px;color:var(--secondary);font-size:13px;font-weight:600;letter-spacing:.035em;line-height:1.4}
.education-title{font-size:clamp(29px,3.1vw,42px);color:var(--text);letter-spacing:-.045em;line-height:1.15}
.education-showcase{display:grid;gap:14px}
.education-feature{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(215px,.7fr);align-items:stretch;gap:30px;min-height:350px;padding:clamp(32px,5vw,62px);border-radius:30px;background:#17191e;color:#fff}
.education-feature::after{content:"";position:absolute;z-index:-1;width:400px;height:400px;top:-235px;right:-170px;border:1px solid rgba(255,255,255,.08);border-radius:50%;pointer-events:none}
.education-feature-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.education-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 34px;color:#9ecbff;font-size:12px;font-weight:600;letter-spacing:.035em}
.education-feature-indicator{width:7px;height:7px;border-radius:50%;background:#51a8ff;flex:0 0 auto}
.education-feature h4{max-width:800px;margin:auto 0 22px;font-size:clamp(38px,5.2vw,72px);font-weight:600;line-height:1.05;letter-spacing:-.065em;overflow-wrap:break-word}
.education-feature-description{max-width:680px;margin:0;color:#c8cbd0;font-size:clamp(14px,1.25vw,17px);line-height:1.65}
.education-feature-meta{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;padding-left:26px;border-left:1px solid rgba(255,255,255,.16)}
.education-feature-degree{font-size:13px;font-weight:600;color:#9ecbff}
.education-feature-meta time{font-size:clamp(22px,2.2vw,31px);font-weight:600;line-height:1.2;letter-spacing:-.04em}
.education-feature-note{color:#a7a9ad;font-size:12px}
.education-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.education-degree{min-width:0;min-height:255px;display:flex;flex-direction:column;padding:clamp(25px,3vw,38px);border:1px solid var(--border);border-radius:24px;background:var(--surface)}
.education-degree-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 18px;font-size:12px;color:var(--secondary)}
.education-degree-type{font-weight:600;color:var(--blue)}
.education-degree time{font-weight:500}
.education-degree h4{margin:30px 0 12px;font-size:clamp(26px,2.5vw,36px);font-weight:600;letter-spacing:-.045em;line-height:1.15;overflow-wrap:break-word}
.education-degree p{margin:auto 0 0;padding-top:12px;color:var(--secondary);font-size:14px;line-height:1.65}
.education-degree .education-honor{align-self:flex-start;margin:16px 0 0;padding:6px 12px;color:var(--blue);border-radius:999px;background:#eef6ff;font-size:12px;font-weight:600}
.professional-block{padding-top:48px;border-top:1px solid var(--border)}
.professional-block .experience-subheading{font-size:clamp(21px,2.4vw,28px);letter-spacing:-.035em;color:var(--text)}
.professional-block .timeline-item h3{font-size:20px}
@media(max-width:900px){
 .education-feature{grid-template-columns:minmax(0,1fr);min-height:320px}
 .education-feature-meta{flex-direction:row;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;padding:22px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.16)}
}
@media(max-width:640px){
 .education-block{margin-bottom:64px}
 .education-feature{min-height:310px;padding:30px 26px;border-radius:24px}
 .education-feature h4{font-size:clamp(35px,10vw,50px);margin:28px 0 20px}
 .education-eyebrow{margin-bottom:0}
 .education-feature-meta{align-items:flex-start;flex-direction:column;gap:8px}
 .education-secondary{grid-template-columns:1fr}
 .education-degree{min-height:210px;padding:27px;border-radius:22px}
 .education-degree h4{font-size:29px;margin:26px 0 10px}
 .professional-block{padding-top:36px}
}

.nav-board{font-size:12px;font-weight:600;letter-spacing:.015em;color:var(--secondary);text-decoration:none;white-space:nowrap}
.nav-board:hover{color:var(--blue)}
