:root{
  color-scheme:light;
  --bg:#fafafa;
  --surface:#f1f1f0;
  --surface-raised:#fff;
  --ink:#202120;
  --secondary:#646663;
  --faint:#757773;
  --line:#dfdfdc;
  --soft:#e8e9e6;
  --shadow:0 8px 28px #1718170a;
  --body:'DM Sans',sans-serif;
  --display:'Inter Tight',sans-serif;
  --ease:cubic-bezier(.22,1,.36,1)
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0
}
.typing-name{
  display:inline-grid;
  position:relative;
  vertical-align:baseline
}
.typing-reserve,.typing-line{
  grid-area:1/1;
  white-space:nowrap
}
.typing-reserve{
  visibility:hidden;
  padding-right:.14em
}
.typing-line{
  justify-self:start;
  position:relative
}
.typing-cursor{
  position:absolute;
  width:2px;
  height:.78em;
  background:currentColor;
  right:-.09em;
  top:.14em;
  opacity:0
}
.is-typing .typing-cursor{
  opacity:1;
  animation:cursor-blink .65s steps(1,end) 5
}
@keyframes cursor-blink{
  50%{
    opacity:0
  }
}
.project-visual,.system-node,.node-symbol,.orbit-core img,.mini-brand img,.company-icon,.education-logo,.research-feature,.education-card,.experience-row,.source-chips span,.orbit-person{
  border-radius:0!important
}
.research-partner{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap
}
.research-partner img{
  width:96px;
  height:42px;
  object-fit:contain
}
.experience-row{
  padding:30px;
  margin-top:16px;
  background:var(--surface);
  border:1px solid var(--line)
}
.education-card{
  padding:28px;
  background:var(--surface);
  border:1px solid var(--line)
}
.education-card h3{
  max-width:calc(100% - 55px)
}
.education-logo{
  top:24px;
  right:22px
}
.chapters{
  margin-bottom:110px
}
.chapter-stage{
  position:relative
}
.chapter-heading h2{
  font:500 20px/1.3 var(--display);
  letter-spacing:-.025em
}
.chapter-heading>p{
  color:var(--secondary);
  font-size:12px;
  margin-top:12px
}
.chapter-stack{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-top:32px
}
.chapter-card{
  position:relative;
  aspect-ratio:1.35;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:30px;
  color:#202120;
  border:1px solid #00000008;
  overflow:hidden
}
.chapter-card>img{
  max-width:58%;
  height:42%;
  object-fit:contain
}
.chapter-card>div{
  position:absolute;
  left:26px;
  right:26px;
  bottom:24px
}
.chapter-card h3{
  font:500 15px/1.3 var(--body);
  letter-spacing:-.02em
}
.chapter-card p{
  font-size:11px;
  margin-top:5px;
  color:#555b58
}
.chapter-type{
  position:absolute;
  top:24px;
  left:26px;
  font-size:10px;
  color:#555b58
}
.chapter-honeywell{
  background:#f2e6e2
}
.chapter-tata{
  background:#e5eef3
}
.chapter-manchester{
  background:#ece5f1
}
.chapter-vit{
  background:#e3e9ee
}
.chapter-fujitsu{
  background:#f2e9e6
}
.chapter-side{
  display:none
}
.chapters.is-enhanced{
  height:240vh;
  min-height:1400px
}
.is-enhanced .chapter-stage{
  height:100vh;
  min-height:600px;
  position:sticky;
  top:0;
  display:grid;
  grid-template-columns:1fr minmax(320px,480px) 1fr;
  align-items:center;
  gap:28px
}
.is-enhanced .chapter-stack{
  position:relative;
  height:min(460px,60vh);
  margin:0;
  display:block
}
.is-enhanced .chapter-card{
  position:absolute;
  left:50%;
  top:50%;
  width:100%;
  aspect-ratio:1.35;
  transform:translate(-50%,-50%) translateY(var(--card-y,0px)) rotate(var(--card-rotate,0deg)) scale(var(--card-scale,1));
  opacity:var(--card-opacity,1);
  transform-origin:center center;
  box-shadow:0 5px 30px #00000008;
  will-change:transform;
  z-index:var(--card-z,1)
}
.is-enhanced .chapter-side{
  display:block;
  justify-self:end;
  font-size:12px;
  color:var(--secondary);
  line-height:1.7
}
.chapter-counter{
  display:block;
  font-size:11px;
  margin-bottom:22px;
  font-variant-numeric:tabular-nums
}
.chapter-scroll{
  display:block;
  font-size:10px;
  margin-top:30px
}
@media(max-width:850px){
  .is-enhanced .chapter-stage{
    grid-template-columns:1fr minmax(260px,420px) 1fr;
    gap:16px
  }
  .chapter-heading h2{
    font-size:16px
  }
  .chapter-heading>p{
    font-size:10px
  }
  .chapter-side p{
    font-size:10px
  }
  .experience-row{
    padding:24px
  }
}
@media(max-width:700px){
  .chapters{
    margin-bottom:75px
  }
  .chapters.is-enhanced{
    height:220vh;
    min-height:1250px
  }
  .is-enhanced .chapter-stage{
    grid-template-columns:1fr;
    align-content:center;
    gap:0;
    min-height:520px
  }
  .chapter-heading{
    text-align:center;
    align-self:end;
    padding-bottom:40px
  }
  .chapter-heading h2{
    font-size:20px
  }
  .chapter-heading h2 br{
    display:none
  }
  .chapter-heading>p{
    font-size:11px
  }
  .is-enhanced .chapter-stack{
    width:min(88%,420px);
    height:360px;
    justify-self:center
  }
  .is-enhanced .chapter-side{
    justify-self:center;
    text-align:center
  }
  .chapter-side p{
    display:none
  }
  .chapter-counter{
    margin:0
  }
  .chapter-scroll{
    margin-top:10px
  }
  .chapter-card{
    padding:20px
  }
  .chapter-card h3{
    font-size:13px
  }
  .chapter-card p{
    font-size:10px
  }
  .chapter-card>div{
    left:20px;
    right:20px;
    bottom:18px
  }
  .chapter-type{
    top:20px;
    left:20px;
    font-size:9px
  }
  .chapter-stack{
    grid-template-columns:1fr
  }
  .experience-row{
    padding:22px
  }
  .education-card{
    padding:24px
  }
  .research-partner{
    gap:8px
  }
  .research-partner img{
    width:76px
  }
  .research-partner>span{
    font-size:11px
  }
}
@media(prefers-reduced-motion:reduce){
  .typing-cursor{
    display:none
  }
  .chapter-stack{
    margin-top:24px
  }
  .chapter-card{
    will-change:auto
  }
}
@media print{
  .chapters{
    display:none!important
  }
  .typing-text{
    visibility:visible
  }
  .typing-cursor{
    display:none
  }
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth;
  scroll-padding-top:32px
}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:400 16px/1.65 var(--body);
  -webkit-font-smoothing:antialiased
}
::selection{
  background:var(--ink);
  color:var(--bg)
}
a{
  color:inherit;
  text-decoration:none
}
button,a{
  -webkit-tap-highlight-color:transparent
}
a:focus-visible{
  outline:2px solid var(--ink);
  outline-offset:5px;
  border-radius:3px
}
img{
  display:block;
  max-width:100%
}
h1,h2,h3,p{
  margin:0
}
h1,h2,h3{
  font-family:var(--display);
  font-weight:500;
  letter-spacing:-.035em
}
p{
  overflow-wrap:break-word
}
section,footer{
  scroll-margin-top:32px
}
.section-shell{
  width:calc(100% - 96px);
  max-width:1440px;
  margin-inline:auto
}
.skip-link{
  position:fixed;
  top:12px;
  left:12px;
  z-index:20;
  background:var(--ink);
  color:var(--bg);
  padding:10px 18px;
  transform:translateY(-180%)
}
.skip-link:focus{
  transform:none
}
.site-header{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  align-items:center;
  padding:30px 48px;
  font-size:14px;
  line-height:1.4
}
.identity{
  justify-self:start;
  font-weight:600;
  letter-spacing:-.03em;
  font-size:17px;
  min-height:44px;
  display:flex;
  align-items:center
}
.identity-dot{
  color:var(--faint)
}
.header-location{
  justify-self:center;
  color:var(--secondary);
  font-size:12px;
  white-space:nowrap
}
.header-location span{
  padding-inline:8px
}
.header-role{
  justify-self:end;
  color:var(--secondary);
  font-size:13px
}
.hero{
  padding-top:clamp(100px,13vw,210px);
  padding-bottom:100px
}
.hero-eyebrow{
  font-size:13px;
  color:var(--secondary);
  margin-bottom:28px
}
.hero h1{
  font-size:clamp(38px,4.45vw,72px);
  line-height:1.13;
  letter-spacing:-.047em;
  max-width:1180px;
  font-weight:450;
  text-wrap:pretty
}
.muted-name{
  color:var(--faint)
}
.hero-bottom{
  margin-top:46px;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  max-width:1180px
}
.hero-bottom p{
  font-size:14px;
  line-height:1.65;
  color:var(--secondary)
}
.text-link{
  display:inline-flex;
  gap:20px;
  align-items:center;
  font-size:14px;
  min-height:44px;
  position:relative
}
.text-link::after{
  content:'';
  position:absolute;
  bottom:7px;
  height:1px;
  background:currentColor;
  left:0;
  right:0;
  transform-origin:left;
  transform:scaleX(.25);
  transition:transform .4s var(--ease)
}
.text-link:hover::after{
  transform:scaleX(1)
}
.text-link span{
  transition:transform .4s var(--ease)
}
.text-link:hover span{
  transform:translate(2px,-2px)
}
.section-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-bottom:30px
}
.section-heading h2{
  font:500 15px var(--body);
  letter-spacing:-.02em
}
.section-heading>span{
  font-size:12px;
  color:var(--secondary)
}
.project-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:64px 28px
}
.project{
  min-width:0
}
.project-visual{
  display:block;
  position:relative;
  aspect-ratio:1.45;
  background:var(--surface);
  border-radius:12px;
  overflow:hidden;
  isolation:isolate;
  border:1px solid #20212006;
  transition:box-shadow .5s var(--ease),transform .6s var(--ease)
}
.project-visual:hover{
  box-shadow:var(--shadow);
  transform:translateY(-3px)
}
.visual-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:25px 28px;
  gap:10px
}
.mini-brand{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  font-size:12px;
  letter-spacing:-.02em
}
.mini-brand img{
  border-radius:5px;
  filter:grayscale(1)
}
.visual-label{
  color:var(--secondary);
  font-size:10px
}
.visual-open{
  position:absolute;
  bottom:20px;
  right:22px;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--surface-raised);
  font-size:16px;
  transition:transform .4s var(--ease)
}
.project-visual:hover .visual-open{
  transform:rotate(45deg)
}
.project-caption{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  margin-top:22px
}
.project-caption h3{
  font-size:22px;
  letter-spacing:-.035em
}
.project-caption p{
  color:var(--secondary);
  font-size:13px;
  margin-top:3px
}
.project-status{
  color:var(--secondary);
  font-size:11px;
  white-space:nowrap
}
.project-description{
  font-size:14px;
  line-height:1.8;
  color:var(--secondary);
  max-width:590px;
  margin-top:17px
}
.project-links{
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  margin-top:12px
}
.project-links a{
  font-size:12px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:12px
}
.project-links a:hover{
  text-decoration:underline;
  text-underline-offset:5px
}
.celerity-visual{
  background:linear-gradient(145deg,var(--surface),var(--soft))
}
.intelligence-sketch{
  width:75%;
  max-width:430px;
  margin:5% auto 0
}
.source-chips{
  display:flex;
  justify-content:space-around;
  font-size:11px
}
.source-chips span{
  padding:9px 20px;
  background:var(--surface-raised);
  border:1px solid var(--line);
  border-radius:7px;
  box-shadow:0 3px 5px #00000003
}
.connection-lines{
  height:58px;
  width:100%;
  display:block;
  fill:none;
  stroke:var(--line);
  stroke-width:1.1;
  overflow:visible
}
.connection-lines .signal{
  stroke:var(--secondary);
  stroke-dasharray:30 300;
  stroke-dashoffset:330;
  animation:transmit 3.8s var(--ease) 1 both
}
.system-node{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  background:var(--surface-raised);
  padding:21px 18px;
  border:1px solid var(--line);
  border-radius:9px;
  box-shadow:0 12px 28px #00000004;
  font-family:var(--display);
  font-size:21px;
  letter-spacing:-.03em
}
.system-node small{
  display:block;
  font:10px/1.5 var(--body);
  letter-spacing:0;
  color:var(--secondary);
  margin-top:3px
}
.node-symbol{
  width:34px;
  height:34px;
  background:var(--ink);
  color:var(--bg);
  border-radius:8px;
  display:grid;
  place-items:center;
  font-size:20px
}
.insight-note{
  text-align:center;
  color:var(--secondary);
  font-size:11px;
  margin-top:22px
}
.spark{
  font-size:17px;
  vertical-align:middle;
  margin-right:5px
}
.orbit-visual{
  background:var(--soft)
}
.orbit-sketch{
  position:absolute;
  width:290px;
  height:260px;
  left:50%;
  top:56%;
  transform:translate(-50%,-50%)
}
.orbit-ring{
  position:absolute;
  border:1px solid #77797330;
  border-radius:50%;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%)
}
.ring-one{
  width:156px;
  height:156px
}
.ring-two{
  width:255px;
  height:255px
}
.orbit-core{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center
}
.orbit-core img{
  border-radius:15px;
  filter:grayscale(1);
  box-shadow:0 10px 24px #00000010
}
.orbit-person{
  position:absolute;
  border:1px solid var(--line);
  background:var(--surface-raised);
  padding:7px 17px;
  border-radius:30px;
  font-size:11px;
  box-shadow:0 4px 14px #00000004
}
.students{
  top:12px;
  left:95px
}
.teachers{
  top:106px;
  right:-5px
}
.schools{
  bottom:16px;
  left:98px
}
.parents{
  top:106px;
  left:-9px
}
.schedule-sketch{
  width:78%;
  margin:4% auto 0
}
.schedule-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:8px;
  margin-bottom:26px
}
.schedule-heading>span{
  font:450 27px/1.1 var(--display);
  letter-spacing:-.04em
}
.schedule-heading small{
  font-size:10px;
  color:var(--secondary)
}
.schedule-grid{
  display:grid;
  grid-template-columns:48px repeat(5,1fr);
  gap:9px
}
.schedule-grid>span{
  font-size:9px;
  color:var(--secondary);
  text-align:center;
  padding-bottom:6px
}
.schedule-grid b{
  font-size:10px;
  font-weight:400;
  align-self:center;
  color:var(--secondary)
}
.schedule-grid i{
  height:30px;
  border-radius:4px;
  background:var(--soft)
}
.schedule-grid .fill{
  background:#a8aca4
}
.sketch-footnote{
  display:block;
  font-size:9px;
  color:var(--secondary);
  margin-top:20px
}
.energy-visual{
  background:#e9eae8
}
.energy-sketch{
  width:77%;
  margin:0 auto
}
.energy-sketch>p{
  font:450 33px/1.1 var(--display);
  letter-spacing:-.04em
}
.tradeoff-lines{
  width:100%;
  height:115px;
  overflow:visible;
  margin-top:8px;
  fill:none
}
.tradeoff-lines path{
  stroke:#b9bdb6;
  stroke-width:1.5
}
.tradeoff-lines path:first-child{
  stroke:#5e655b
}
.tradeoff-lines path:nth-child(2){
  stroke-dasharray:3 4
}
.tradeoff-lines circle{
  fill:#5e655b;
  stroke:var(--surface);
  stroke-width:3
}
.energy-legend{
  display:flex;
  gap:20px;
  font-size:10px;
  color:var(--secondary)
}
.energy-legend span::before{
  content:'';
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#7e857a;
  margin-right:6px
}
.energy-legend span:nth-child(2)::before{
  background:#b9bdb6
}
.energy-legend span:nth-child(3)::before{
  background:#969d91
}
.energy-sketch .sketch-footnote{
  margin-top:10px
}
.about,.experience,.research,.education{
  padding-top:130px
}
.about{
  margin-top:20px
}
.about-layout{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:12%;
  padding-top:32px
}
.about-statement{
  font:450 clamp(30px,3vw,46px)/1.18 var(--display);
  letter-spacing:-.045em;
  max-width:510px
}
.about-statement span{
  color:var(--secondary)
}
.about-copy{
  max-width:560px;
  font-size:15px;
  line-height:1.85;
  color:var(--secondary)
}
.about-copy>p+p{
  margin-top:20px
}
.about-copy .personal-note{
  font-size:13px;
  margin-top:28px
}
.capabilities{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:44px
}
.capabilities span{
  font-size:12px;
  border:1px solid var(--line);
  border-radius:7px;
  padding:8px 13px;
  color:var(--secondary)
}
.experience .section-heading{
  margin-bottom:16px
}
.experience-row{
  display:grid;
  grid-template-columns:1fr 1.25fr .6fr;
  gap:48px;
  border-top:1px solid var(--line);
  padding:37px 0
}
.experience-company{
  display:flex;
  align-items:start;
  gap:14px
}
.company-icon{
  width:48px;
  height:48px;
  background:white;
  border:1px solid #eeeeeb;
  border-radius:10px;
  display:grid;
  place-items:center;
  flex:0 0 48px;
  overflow:hidden
}
.company-icon img{
  width:38px;
  height:34px;
  object-fit:contain;
  filter:grayscale(1)
}
.experience-company h3{
  font-size:19px;
  letter-spacing:-.03em;
  line-height:1.3
}
.experience-company p{
  font-size:12px;
  color:var(--secondary);
  margin-top:6px
}
.experience-detail{
  font-size:14px;
  line-height:1.8;
  color:var(--secondary)
}
.experience-detail>p+p{
  margin-top:12px
}
.inline-tags{
  font-size:11px;
  display:block;
  margin-top:20px
}
.experience-date{
  font-size:12px;
  text-align:right;
  white-space:nowrap
}
.experience-date span{
  display:block;
  font-size:11px;
  color:var(--secondary);
  margin-top:6px
}
.research-feature{
  background:var(--surface);
  padding:36px 40px 32px;
  border:1px solid var(--line);
  border-radius:12px
}
.research-feature-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size:13px
}
.research-partner{
  font-weight:550
}
.ongoing{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  color:var(--secondary)
}
.ongoing>span{
  height:5px;
  width:5px;
  border-radius:50%;
  background:currentColor
}
.research-feature-body{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:12%;
  padding:50px 0 36px
}
.small-label{
  font-size:11px;
  color:var(--secondary)
}
.research-feature h3{
  font-size:clamp(28px,3vw,44px);
  line-height:1.1;
  margin-top:16px;
  letter-spacing:-.045em
}
.research-feature-body>div>p:not(.small-label){
  font-size:15px;
  line-height:1.8
}
.research-feature-body .secondary-copy{
  color:var(--secondary);
  margin:14px 0 8px
}
.evidence-flow{
  display:flex;
  align-items:center;
  gap:20px;
  padding-top:23px;
  border-top:1px solid var(--line);
  font-size:11px;
  color:var(--secondary)
}
.evidence-flow i{
  height:1px;
  background:var(--line);
  flex:1;
  position:relative
}
.evidence-flow i::after{
  content:'';
  position:absolute;
  right:0;
  top:-2px;
  height:5px;
  width:5px;
  border-right:1px solid var(--faint);
  border-top:1px solid var(--faint);
  transform:rotate(45deg)
}
.publication{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:12%;
  padding:48px 0 0
}
.publication h3{
  font-size:28px;
  line-height:1.2;
  margin-top:14px
}
.publication>div>p{
  font-size:14px;
  line-height:1.85;
  color:var(--secondary)
}
.publication .publication-authors{
  font-size:11px;
  margin-top:14px
}
.publication .text-link{
  margin-top:12px
}
.education-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px
}
.education-card{
  position:relative;
  padding-top:27px;
  border-top:1px solid var(--line);
  padding-right:86px
}
.education-logo{
  position:absolute;
  top:27px;
  right:0;
  display:grid;
  place-items:center;
  width:60px;
  height:45px
}
.education-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:grayscale(1)
}
.education-card h3{
  font-size:22px;
  line-height:1.25;
  margin:14px 0 10px
}
.education-card>p:not(.small-label){
  font-size:14px;
  line-height:1.7
}
.education-card .education-note{
  color:var(--secondary);
  font-size:12px!important;
  margin-top:8px
}
.education-card .education-topics{
  color:var(--secondary);
  font-size:12px!important;
  margin-top:20px;
  max-width:420px
}
.foundation-notes{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  padding-top:30px;
  margin-top:34px;
  border-top:1px solid var(--line)
}
.foundation-notes p{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:12px
}
.foundation-notes img{
  object-fit:contain;
  filter:grayscale(1)
}
.foundation-notes small{
  display:block;
  color:var(--secondary);
  font-size:11px
}
.foundation-notes p:last-child{
  display:block;
  color:var(--secondary);
  line-height:1.9
}
.foundation-notes .small-label{
  display:block;
  margin-bottom:4px
}
.contact{
  margin-top:130px;
  padding-top:80px;
  border-top:1px solid var(--line);
  padding-bottom:130px
}
.contact-heading h2{
  font-size:clamp(42px,6.3vw,96px);
  line-height:1.1;
  margin:22px 0 24px;
  letter-spacing:-.055em
}
.email-link{
  font-size:clamp(16px,2vw,24px);
  letter-spacing:-.035em;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:24px
}
.email-link:hover{
  text-decoration:underline;
  text-underline-offset:8px
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:24px;
  margin-top:90px;
  font-size:11px;
  color:var(--secondary)
}
.footer-bottom>div{
  display:flex;
  gap:26px
}
.footer-bottom a{
  min-height:44px;
  display:flex;
  align-items:center
}
.footer-bottom>span{
  display:flex;
  align-items:center;
  gap:3px
}
.floating-nav{
  position:fixed;
  bottom:max(24px,env(safe-area-inset-bottom));
  left:50%;
  transform:translateX(-50%);
  z-index:10;
  display:flex;
  align-items:center;
  gap:3px;
  padding:6px;
  border:1px solid #ffffffa6;
  background:#e4e5e2d9;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-radius:16px;
  box-shadow:0 6px 26px #0000000d,inset 0 1px 0 #ffffffa6
}
.floating-nav a{
  font-size:12px;
  line-height:1;
  min-height:44px;
  padding:0 17px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  border-radius:11px;
  color:#595c55;
  transition:background .25s,color .25s
}
.floating-nav a:hover{
  background:#ffffff70;
  color:#202120
}
.floating-nav a.is-current{
  background:#ffffffb3;
  color:#202120;
  box-shadow:0 1px 3px #00000006
}
.floating-nav .nav-contact{
  background:#242622;
  color:#fff;
  margin-left:5px
}
.floating-nav .nav-contact:hover,.floating-nav .nav-contact.is-current{
  background:#40443c;
  color:#fff
}
.enter{
  animation:entrance 1s var(--ease) both
}
.hero h1.enter{
  animation-delay:.08s
}
.hero-bottom.enter{
  animation-delay:.16s
}
@keyframes entrance{
  from{
    opacity:0;
    transform:translateY(16px)
  }
  to{
    opacity:1;
    transform:none
  }
}
@keyframes transmit{
  to{
    stroke-dashoffset:-70
  }
}
.reveal{
  opacity:1;
  transform:none
}
.reveal.will-reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .85s var(--ease),transform .85s var(--ease)
}
.reveal.will-reveal.is-visible{
  opacity:1;
  transform:none
}
@media(min-width:1700px){
  .hero{
    padding-top:200px
  }
}
@media(max-width:1100px){
  .section-shell{
    width:calc(100% - 64px)
  }
  .site-header{
    padding:24px 32px;
    grid-template-columns:1fr auto
  }
  .header-location{
    display:none
  }
  .hero{
    padding-top:140px;
    padding-bottom:80px
  }
  .hero h1{
    font-size:52px
  }
  .visual-topline{
    padding:20px
  }
  .visual-label{
    font-size:9px
  }
  .project-visual{
    aspect-ratio:1.2
  }
  .intelligence-sketch{
    width:82%;
    margin-top:5%
  }
  .orbit-sketch{
    transform:translate(-50%,-50%) scale(.9)
  }
  .schedule-sketch{
    width:83%;
    margin-top:7%
  }
  .schedule-heading{
    display:block;
    margin-bottom:20px
  }
  .schedule-heading small{
    display:block;
    margin-top:8px
  }
  .energy-sketch{
    margin-top:3%
  }
  .experience-row{
    grid-template-columns:1fr 1.4fr;
    gap:24px
  }
  .experience-date{
    grid-column:1;
    grid-row:2;
    text-align:left
  }
  .experience-detail{
    grid-column:2;
    grid-row:1/span 2
  }
  .research-feature-body{
    gap:7%
  }
  .about-layout{
    gap:7%
  }
}
@media(max-width:700px){
  html{
    scroll-padding-top:24px
  }
  .section-shell{
    width:calc(100% - 40px)
  }
  .site-header{
    padding:18px 20px
  }
  .identity{
    font-size:16px
  }
  .header-role{
    font-size:11px
  }
  .hero{
    padding-top:100px;
    padding-bottom:72px
  }
  .hero-eyebrow{
    font-size:11px;
    margin-bottom:24px
  }
  .hero h1{
    font-size:clamp(34px,7.7vw,49px);
    line-height:1.16;
    letter-spacing:-.045em
  }
  .hero-bottom{
    display:block;
    margin-top:30px
  }
  .hero-bottom p{
    font-size:13px
  }
  .hero-bottom .text-link{
    margin-top:18px
  }
  .section-heading{
    align-items:start;
    margin-bottom:24px;
    gap:16px
  }
  .section-heading h2{
    font-size:14px
  }
  .section-heading>span{
    font-size:10px;
    max-width:140px;
    text-align:right
  }
  .project-grid{
    grid-template-columns:1fr;
    gap:44px
  }
  .project-visual{
    aspect-ratio:1.2
  }
  .visual-topline{
    padding:20px
  }
  .intelligence-sketch{
    max-width:370px;
    margin-top:5%
  }
  .system-node{
    font-size:20px;
    padding:19px 12px
  }
  .source-chips span{
    padding:8px 16px
  }
  .orbit-sketch{
    transform:translate(-50%,-50%) scale(.88)
  }
  .project-caption{
    margin-top:17px
  }
  .project-caption h3{
    font-size:21px
  }
  .project-status{
    font-size:10px
  }
  .project-description{
    font-size:14px;
    margin-top:14px
  }
  .about,.experience,.research,.education{
    padding-top:80px
  }
  .about-layout{
    grid-template-columns:1fr;
    gap:28px;
    padding-top:12px
  }
  .about-statement{
    font-size:34px
  }
  .about-copy{
    font-size:14px
  }
  .capabilities{
    gap:8px;
    margin-top:28px
  }
  .capabilities span{
    font-size:11px;
    padding:7px 10px
  }
  .experience-row{
    grid-template-columns:1fr;
    padding:28px 0;
    gap:18px
  }
  .experience-detail{
    grid-column:auto;
    grid-row:auto;
    font-size:14px
  }
  .experience-date{
    grid-column:auto;
    grid-row:2;
    display:flex;
    justify-content:space-between;
    text-align:left;
    font-size:11px
  }
  .experience-date span{
    margin:0
  }
  .experience-company h3{
    font-size:20px
  }
  .research-feature{
    padding:24px
  }
  .research-feature-meta{
    font-size:12px
  }
  .research-feature-body{
    grid-template-columns:1fr;
    gap:28px;
    padding:34px 0 26px
  }
  .research-feature h3{
    font-size:33px
  }
  .research-feature-body>div>p:not(.small-label){
    font-size:14px
  }
  .evidence-flow{
    gap:8px;
    font-size:9px;
    align-items:center
  }
  .evidence-flow span{
    max-width:84px
  }
  .evidence-flow i{
    min-width:12px
  }
  .publication{
    grid-template-columns:1fr;
    gap:24px;
    padding-top:36px
  }
  .publication h3{
    font-size:27px
  }
  .education-grid{
    grid-template-columns:1fr;
    gap:32px
  }
  .education-card{
    padding-right:76px
  }
  .education-card h3{
    font-size:22px
  }
  .foundation-notes{
    grid-template-columns:1fr;
    gap:24px
  }
  .contact{
    margin-top:80px;
    padding-top:56px;
    padding-bottom:110px
  }
  .contact-heading h2{
    font-size:48px
  }
  .email-link{
    font-size:18px;
    gap:14px
  }
  .footer-bottom{
    margin-top:55px;
    display:block;
    font-size:10px
  }
  .footer-bottom>div{
    gap:24px;
    margin-top:12px
  }
  .floating-nav{
    width:max-content;
    max-width:calc(100% - 24px);
    bottom:max(12px,env(safe-area-inset-bottom));
    border-radius:14px;
    padding:5px;
    gap:0
  }
  .floating-nav a{
    padding:0 12px;
    font-size:11px;
    border-radius:9px;
    gap:8px
  }
  .floating-nav .nav-contact{
    margin-left:2px
  }
  .floating-nav .nav-contact span{
    display:none
  }
  .schedule-sketch{
    margin-top:5%
  }
  .schedule-heading{
    display:flex
  }
  .schedule-heading>span{
    font-size:24px
  }
  .schedule-heading small{
    font-size:9px
  }
  .energy-sketch>p{
    font-size:30px
  }
  .tradeoff-lines{
    height:100px
  }
}
@media(max-width:360px){
  .section-shell{
    width:calc(100% - 32px)
  }
  .site-header{
    padding-inline:16px
  }
  .header-role{
    max-width:110px;
    text-align:right;
    font-size:10px
  }
  .hero{
    padding-top:72px
  }
  .hero h1{
    font-size:33px
  }
  .floating-nav a{
    padding-inline:9px;
    font-size:10px
  }
  .project-caption{
    flex-wrap:wrap;
    gap:4px
  }
  .project-visual{
    aspect-ratio:1
  }
  .visual-label{
    max-width:90px;
    text-align:right
  }
  .system-node{
    font-size:17px;
    gap:9px
  }
  .system-node small{
    font-size:8px
  }
  .source-chips{
    font-size:10px
  }
  .insight-note{
    font-size:10px
  }
  .schedule-heading{
    display:block
  }
  .schedule-grid{
    gap:6px;
    grid-template-columns:38px repeat(5,1fr)
  }
  .schedule-heading small{
    margin-top:6px
  }
  .energy-sketch>p{
    font-size:28px
  }
  .energy-sketch .sketch-footnote{
    font-size:8px
  }
  .research-feature{
    padding:20px
  }
  .research-feature h3{
    font-size:29px
  }
  .email-link{
    font-size:16px;
    gap:10px
  }
}

@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }
  *,*::before,*::after{
    animation:none!important;
    transition:none!important
  }
  .reveal.will-reveal{
    opacity:1;
    transform:none
  }
  .project-visual:hover{
    transform:none
  }
}
@media(prefers-contrast:more){
  :root{
    --secondary:var(--ink);
    --faint:var(--ink)
  }
  .floating-nav{
    background:var(--bg);
    border:2px solid var(--ink)
  }
  .floating-nav a{
    color:var(--ink)
  }
  .floating-nav a.is-current{
    text-decoration:underline;
    text-underline-offset:4px
  }
  .floating-nav .nav-contact{
    background:var(--ink);
    color:var(--bg)
  }
}
/* Brand colour belongs to the work;
the introduction and navigation stay neutral. */
.floating-nav a{
  min-width:44px
}
.mini-brand img,.orbit-core img,.company-icon img,.education-logo img,.foundation-notes img{
  filter:none
}
.celerity-visual{
  --surface:#edf3e8;
  --soft:#dfead7;
  --surface-raised:#fbfff7;
  --ink:#24422d;
  --secondary:#52664b;
  --line:#cdddc4;
  background:linear-gradient(145deg,#f0f5e9,#deead4);
  color:var(--ink)
}
.celerity-visual .node-symbol{
  background:#315d39;
  color:#eaf8dd
}
.celerity-visual .connection-lines .signal{
  stroke:#668e3e
}
.project.will-reveal .signal{
  animation-play-state:paused
}
.project.is-visible .signal{
  animation-play-state:running
}
.orbit-visual{
  --surface-raised:#fcfaff;
  --ink:#42355d;
  --secondary:#70617e;
  --line:#d8cde4;
  background:linear-gradient(145deg,#f0eaf6,#dfd2ec);
  color:var(--ink)
}
.orbit-visual .orbit-ring{
  border-color:#9b80b83d
}
.staff-visual{
  --ink:#27485e;
  --secondary:#526b7a;
  --soft:#d5e3ee;
  --surface-raised:#f8fcff;
  background:linear-gradient(145deg,#edf5fa,#dceaf5);
  color:var(--ink)
}
.staff-visual .schedule-grid .fill{
  background:#779bb4
}
.staff-visual .schedule-grid i:nth-child(3n).fill{
  background:#9ab9cb
}
.energy-visual{
  --ink:#58492e;
  --secondary:#76674b;
  --surface:#f2ecdf;
  --surface-raised:#fffaf0;
  background:linear-gradient(145deg,#f7f1e5,#ebe0c9);
  color:var(--ink)
}
.energy-visual .tradeoff-lines path:first-child{
  stroke:#64835f
}
.energy-visual .tradeoff-lines path:nth-child(2){
  stroke:#c49b55
}
.energy-visual .tradeoff-lines path:nth-child(3){
  stroke:#a5ad78
}
.energy-visual .tradeoff-lines circle{
  fill:#64835f
}
.energy-visual .energy-legend span:first-child::before{
  background:#64835f
}
.energy-visual .energy-legend span:nth-child(2)::before{
  background:#c49b55
}
.energy-visual .energy-legend span:nth-child(3)::before{
  background:#a5ad78
}
.research-feature{
  background:linear-gradient(135deg,#f9f5f4,#f2eeec);
  border-color:#e8dedb
}
.research-partner{
  color:#a33b31
}
.research-feature .ongoing{
  color:#71544b
}
.research-feature .research-feature-body h3{
  color:#473833
}
.research-feature .evidence-flow{
  border-color:#e2d5ce;
  color:#755a4c
}
.research-feature .evidence-flow i{
  background:#ddc5b5
}
.education-logo{
  background:#fff;
  border-radius:5px;
  padding:3px
}
.education-note{
  color:#68427a!important
}
.experience-company h3,.education-card h3{
  color:var(--ink)
}


  .orbit-visual{
    --secondary:#5d4d68
  }
  .energy-visual{
    --secondary:#63553e
  }

@media(prefers-contrast:more){
  .project-visual{
    --secondary:var(--ink)
  }
  .research-feature .ongoing,.research-feature .evidence-flow{
    color:var(--ink)
  }
}
@media print{
  .floating-nav,.skip-link,.visual-open{
    display:none!important
  }
  .reveal.will-reveal,.enter{
    opacity:1;
    transform:none;
    animation:none
  }
  .section-shell{
    width:100%
  }
  .hero{
    padding:40px 0
  }
  .hero h1{
    font-size:34px
  }
  .project-visual{
    max-height:260px
  }
  .about,.experience,.research,.education{
    padding-top:40px
  }
  .project,.experience-row,.research-feature,.education-card{
    break-inside:avoid
  }
  .contact{
    margin-top:40px;
    padding:40px 0
  }
  .site-header{
    padding:0
  }
  .footer-bottom{
    margin-top:20px
  }
  body{
    background:white;
    color:black
  }
}
