:root{--paper:#f8f7f4;--ink:#202c35;--muted:#5b666d;--line:#dcded9;--accent:#a34c2d;--blue:#245970;--serif:Georgia,"Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:35px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none;text-underline-offset:4px}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,summary:focus-visible,video:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
img,video{display:block;max-width:100%;height:auto}
button{font:inherit}
figure,p,h1,h2,h3,h4{margin:0}
.site-width{width:calc(100% - 96px);max-width:1100px;margin-inline:auto}
.skip-link{position:fixed;left:16px;top:-100px;z-index:10;padding:10px 18px;background:var(--ink);color:white}
.skip-link:focus{top:12px}
.site-header{border-bottom:1px solid var(--line)}
.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.wordmark{font-size:20px;font-weight:650;letter-spacing:-.6px;color:var(--ink)}
.wordmark-dot,.name-period{color:var(--accent)}
nav{display:flex;gap:30px;align-items:center;font-size:14px;font-weight:500}
nav a{color:var(--ink)}
nav a[aria-current=page]{color:var(--accent);text-decoration:underline}
.nav-cv{border-left:1px solid var(--line);padding-left:28px}
.intro{display:grid;grid-template-columns:minmax(0,1fr) 216px;gap:100px;align-items:center;padding:46px 0 44px}
.eyebrow{font-size:11px;line-height:1.6;font-weight:650;letter-spacing:1.7px;text-transform:uppercase;color:var(--muted)}
.intro h1{font:normal clamp(44px,5vw,64px)/1.12 var(--serif);letter-spacing:-2.4px;margin:0 0 17px}

.intro-bio{max-width:660px;font-size:18px;line-height:1.7;color:var(--muted)}
.education-brief{margin-top:22px;display:grid;gap:14px}
.education-brief strong{font-size:16px;font-weight:600}
.education-brief p{font-size:14px;line-height:1.7;color:var(--muted)}
.gpa{display:inline-block;color:var(--ink);white-space:nowrap;margin-left:12px;font-weight:500}
.intro-bio a{border-bottom:1px solid #b4c3c7}
.contact-links{display:flex;gap:23px;flex-wrap:wrap;margin-top:22px;font-size:13px;font-weight:600}
.contact-links span{font-size:12px;margin-left:3px}
.intro-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:24px}
.intro-actions .contact-links{margin-top:0}
.intro-actions .intro-cv{min-height:50px;padding:12px 24px;font-size:16px;color:#fff;background:var(--ink);border-color:var(--ink)}
.intro-actions .intro-cv:hover{background:var(--blue);border-color:var(--blue)}
.portrait{align-self:center}
.portrait img{width:216px;height:250px;object-fit:cover;object-position:52% 50%;border-radius:3px}
.portrait figcaption{font-size:10px;line-height:1.7;color:var(--muted);margin-top:12px;letter-spacing:.1px}
.research-section{border-top:1px solid var(--line);padding-top:32px}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px}
.section-heading h2{font:normal 36px/1.25 var(--serif);letter-spacing:-1px;margin-top:4px}
.section-actions{display:flex;gap:20px;align-items:center;padding-bottom:4px}
.text-link{font-size:13px;font-weight:600;white-space:nowrap}
.section-intro{font-size:14px;color:var(--muted);margin-top:9px}
.motion-toggle{font-size:11px;color:var(--muted);border:1px solid #c8cecb;background:transparent;border-radius:3px;cursor:pointer;padding:4px 9px}
.motion-toggle:hover{background:#e9eae5}
.research-list{margin-top:29px}
.research-row{display:grid;grid-template-columns:44% minmax(0,1fr);gap:38px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}
.research-row:first-child{padding-top:0}
.research-media{min-width:0}
.research-media video,.research-media img{width:100%;aspect-ratio:16/10;object-fit:contain;background:#e8eceb;border:1px solid #e0e2dd;border-radius:4px}
.research-media--figure img{background:white;padding:12px}
.research-media figcaption{font-size:10px;line-height:1.5;color:var(--muted);margin-top:8px;letter-spacing:.2px}
.topic{color:var(--accent);font-size:10px;letter-spacing:1.4px;margin-bottom:9px}
.research-copy h3{font:normal 25px/1.25 var(--serif);letter-spacing:-.4px}
.research-copy h3 a{color:var(--ink)}
.research-summary{font-size:14px;line-height:1.65;margin:12px 0 11px;color:var(--muted)}
.authors{font-size:12px;line-height:1.65;color:var(--muted)}
.authors strong{color:var(--ink);font-weight:650}
.venue{font-size:12px;font-weight:600;color:var(--accent);margin-top:8px}
.paper-links{display:flex;flex-wrap:wrap;gap:20px;margin-top:13px;font-size:12px;font-weight:600}
.paper-links:empty{display:none}
.research-end{display:flex;justify-content:space-between;gap:20px;margin-top:17px;align-items:center}
.small-note{color:var(--muted);font-size:11px}
.section-block{padding-top:65px}
.engineering-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:28px}
.engineering-image{display:block;overflow:hidden;border-radius:4px;margin-bottom:18px;background:#e6e9e6}
.engineering-image img{aspect-ratio:1.6;width:100%;object-fit:cover;transition:transform .3s ease}
.engineering-image:hover img{transform:scale(1.025)}
.engineering-image video{width:100%;aspect-ratio:16/9;object-fit:contain;background:#10181c}
.engineering-grid--featured{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 30px}
.engineering-grid--featured .engineering-card h3{font-size:25px}
.engineering-card>.eyebrow{font-size:9px;letter-spacing:1.25px;color:var(--accent);margin-bottom:7px}
.engineering-card h3{font:normal 23px/1.3 var(--serif);letter-spacing:-.35px}
.engineering-card h3 a{color:var(--ink)}
.engineering-card>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.65;margin:10px 0 13px}
.engineering-card>.text-link{font-size:12px}
.background-section{margin-top:62px;border-top:1px solid var(--line);padding-top:35px}
.background-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:32px}
.background-grid h3{font-size:13px;font-weight:650;margin-bottom:22px}
.background-entry{margin-bottom:23px}
.entry-date{font-size:10px;color:var(--accent);letter-spacing:.6px}
.background-entry h4{font-size:14px;font-weight:600;margin:3px 0}
.background-entry p{font-size:12px;color:var(--muted);line-height:1.75}



.fpv-section{margin:40px 0 60px;padding-top:30px;border-top:1px solid var(--line)}
.fpv-section iframe{display:block;width:100%;max-width:800px;aspect-ratio:16/9;border:0;margin-top:24px;background:#10181c;border-radius:4px}
.site-footer{display:grid;grid-template-columns:1fr auto;gap:12px;padding:24px 0 30px}
.footer-name{font:normal 22px var(--serif);color:var(--ink)}
.site-footer p{font-size:11px;color:var(--muted);margin-top:6px}
.footer-links{display:flex;gap:22px;font-size:12px;align-items:center}
.colophon{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}
.index-heading{padding:60px 0 32px;max-width:800px}
.index-heading h1{font:normal 52px/1.15 var(--serif);letter-spacing:-1.8px;margin:12px 0 20px}
.index-heading>p:not(.eyebrow){color:var(--muted);font-size:15px;max-width:660px}
.index-heading .small-note{margin-top:16px;font-size:12px!important}
.publication-list{max-width:870px;padding-bottom:65px}
.publication-entry{border-top:1px solid var(--line);padding:25px 0}
.publication-entry h3{font:normal 22px/1.4 var(--serif);margin-bottom:8px}
.publication-entry h3 a{color:var(--ink)}
.publication-entry .authors{font-size:13px}
.publication-list--compact{margin-top:25px;border-bottom:1px solid var(--line)}
.publication-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 24px;align-items:center;border-top:1px solid var(--line);padding:15px 0}
.publication-compact h3{font-size:15px;line-height:1.5;font-weight:600}
.publication-compact h3 a{color:var(--ink)}
.publication-compact .authors{font-size:12px;line-height:1.65;margin-top:5px}
.publication-compact .venue{font-size:11px;margin-top:4px;font-weight:500}
.publication-paper{font-size:12px;font-weight:600;white-space:nowrap}
.publication-note{margin-top:14px}
.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:-6px 0 20px}
.project-gallery figure{min-width:0}
.project-gallery img,.project-gallery video{width:100%;aspect-ratio:4/3;border-radius:5px;background:#e6e9e6;object-fit:contain}
.project-gallery video{background:#10181c}
.project-gallery figcaption{margin-top:6px;font-size:11px;color:var(--muted)}
.engineering-grid--archive{margin:0 0 65px;row-gap:44px}
.project-detail{max-width:880px;margin:40px auto 70px}
.back-link{font-size:13px}
.project-heading{padding:34px 0 28px}
.project-heading h1{font:normal 42px/1.18 var(--serif);letter-spacing:-1px;margin:12px 0 22px}
.project-heading .authors{font-size:14px}
.project-heading .venue{font-size:14px}
.project-heading .small-note{margin-top:6px}
.project-detail>.research-media{max-width:800px;margin:0 auto 34px}
.project-detail>.research-media video,.project-detail>.research-media img{max-height:490px}
.prose{font-size:16px;line-height:1.85}
.prose h2{font:normal 29px/1.3 var(--serif);margin:36px 0 15px}
.prose h3{font:normal 23px/1.4 var(--serif);margin:28px 0 12px}
.prose p,.prose ul,.prose ol{margin:0 0 20px}
.prose img,.prose video{max-height:650px;object-fit:contain;height:auto;margin:22px auto 10px}
.prose iframe{max-width:100%;aspect-ratio:16/9;height:auto;min-height:260px;border:0}
.prose figcaption{font-size:12px;color:var(--muted);margin-bottom:25px}
.prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.prose th,.prose td{padding:10px 14px;border:1px solid var(--line)}
.prose pre{padding:18px;background:#eff0ed;overflow-x:auto;font-size:13px}
.prose hr{border:0;border-top:1px solid var(--line);margin:30px 0}
@media(min-width:1400px){.intro{gap:120px}.research-row{gap:44px}}
@media(max-width:950px){.site-width{width:calc(100% - 64px)}.intro{gap:45px;grid-template-columns:minmax(0,1fr) 190px}.portrait img{width:190px;height:230px}.research-row{gap:27px;grid-template-columns:42% minmax(0,1fr)}.research-copy h3{font-size:23px}.engineering-grid{gap:22px}.section-actions{gap:12px}.background-grid{gap:40px}}
@media(max-width:700px){.site-width{width:calc(100% - 40px)}.header-inner{min-height:74px;gap:14px}.wordmark{font-size:17px;white-space:nowrap}nav{gap:14px;font-size:11px}.nav-cv{border:0;padding:0}.intro{grid-template-columns:minmax(0,1fr) 108px;gap:22px;padding:35px 0}.intro h1{font-size:43px;letter-spacing:-1.8px}.intro-copy>.eyebrow{font-size:9px;letter-spacing:1px}.portrait{align-self:start;margin-top:30px}.portrait img{width:108px;height:142px}.portrait figcaption{display:none}.desktop-break{display:none}.intro-bio{font-size:13px}.contact-links{gap:12px;font-size:11px;line-height:2}.section-heading h2{font-size:31px}.section-actions{flex-direction:column-reverse;align-items:flex-end;gap:10px}.section-intro{font-size:13px}.text-link{font-size:12px}.research-row{grid-template-columns:1fr;gap:22px;padding:28px 0}.research-media video,.research-media img{aspect-ratio:16/9}.research-copy h3{font-size:26px}.research-summary{font-size:14px}.authors{font-size:12px}.paper-links{font-size:13px}.research-end{align-items:flex-start}.engineering-grid{grid-template-columns:1fr 1fr;gap:30px 20px}.engineering-card h3{font-size:21px}.engineering-card>p:not(.eyebrow){font-size:12px}.section-block{padding-top:43px}.background-section{margin-top:42px;padding-top:28px}.background-grid{gap:28px}.site-footer{grid-template-columns:1fr}.footer-links{margin:12px 0}.index-heading{padding-top:38px}.index-heading h1{font-size:42px}.project-heading h1{font-size:33px}.project-detail{margin-top:28px}.prose{font-size:15px}.publication-entry h3{font-size:21px}}
@media(max-width:430px){.site-width{width:calc(100% - 36px)}.header-inner{flex-wrap:wrap;padding:15px 0;gap:9px}.header-inner nav{width:100%;justify-content:space-between;font-size:12px}.intro{grid-template-columns:minmax(0,1fr) 85px;gap:15px}.intro h1{font-size:38px}.portrait img{width:85px;height:120px}.portrait{margin-top:35px}.intro-copy .contact-links{gap:9px}.background-grid{grid-template-columns:1fr;gap:10px}.engineering-grid{grid-template-columns:1fr}.section-actions .text-link{font-size:11px}.research-copy h3{font-size:24px}.research-end .text-link{white-space:normal;text-align:right}.prose iframe{min-height:180px}}
@media(max-width:700px){
  .intro{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:0 22px}
  .intro-copy{display:contents}
  .intro h1{grid-column:1;grid-row:1;padding:0;margin:0;align-self:center}
  .portrait{grid-column:2;grid-row:1;position:static;margin:0}
  .intro-bio,.education-brief,.intro-actions{grid-column:1/-1}
  .intro-actions{gap:16px}
  .intro-bio{margin-top:20px;max-width:none;font-size:16px}
  .education-brief{margin-top:16px}
  .education-brief strong{font-size:15px}
  .education-brief p{font-size:13px}
  .gpa{margin-left:8px}
  .engineering-grid--featured{grid-template-columns:1fr}
  .engineering-grid--featured .engineering-card h3{font-size:24px}
}
@media(max-width:430px){
  .intro{grid-template-columns:minmax(0,1fr) 85px;column-gap:15px}
  .intro .contact-links{gap:14px}
  .gpa{display:block;margin-left:0}
  .publication-compact{grid-template-columns:minmax(0,1fr);gap:7px}
  .publication-compact h3{font-size:14px}
}
.text-link,.section-actions .text-link,.engineering-card>.text-link,.paper-links a,.publication-paper,.motion-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 16px;border:1px solid #bcc9cb;border-radius:6px;background:#fff;font-size:14px;line-height:1.4;font-weight:600;white-space:nowrap;text-decoration:none;transition:background .15s ease,border-color .15s ease}
.text-link:hover,.paper-links a:hover,.publication-paper:hover,.motion-toggle:hover{background:#edf2f1;border-color:var(--blue);text-decoration:none}
.section-heading>.text-link,.section-actions>.text-link{color:#fff;background:var(--ink);border-color:var(--ink)}
.section-heading>.text-link:hover,.section-actions>.text-link:hover{background:var(--blue);border-color:var(--blue)}
.motion-toggle{font-size:13px;font-weight:500;color:var(--muted);background:transparent;cursor:pointer}
.motion-toggle[hidden]{display:none}
.paper-links{gap:10px}
.publication-paper{justify-self:start}
nav a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:700px){
  .section-heading{flex-wrap:wrap;align-items:center;gap:16px}
  .section-actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:0}
  .publication-compact{padding:18px 0}
  .header-inner nav{font-size:13px}
}
@media(max-width:430px){.project-gallery{gap:8px}.project-gallery figcaption{font-size:10px}.publication-compact .authors{font-size:12px}}
@media(min-width:701px){
  nav{font-size:16px}
  .intro-bio{font-size:19px}
  .education-brief strong{font-size:17px}
  .education-brief p{font-size:16px}
  .contact-links,.contact-links span{font-size:15px}
  .eyebrow,.topic,.engineering-card>.eyebrow{font-size:13px;letter-spacing:1.1px}
  .research-summary,.engineering-card>p:not(.eyebrow),.section-intro{font-size:16px}
  .authors,.publication-entry .authors,.publication-compact .authors,.project-heading .authors{font-size:15px}
  .venue,.publication-compact .venue,.project-heading .venue{font-size:14px}
  .research-media figcaption,.project-gallery figcaption,.portrait figcaption,.prose figcaption,.small-note{font-size:14px}
  .research-copy h3,.engineering-grid--featured .engineering-card h3{font-size:28px}
  .publication-compact h3{font-size:18px}
  .publication-entry h3{font-size:24px}
  .publication-compact{padding:19px 0}
  .text-link,.section-actions .text-link,.engineering-card>.text-link,.paper-links a,.publication-paper,.motion-toggle{font-size:15px}
  .background-grid h3,.background-entry h4{font-size:17px}
  .background-entry p,.footer-links,.back-link{font-size:15px}
  .entry-date,.site-footer p{font-size:14px}
  .index-heading .small-note{font-size:14px!important}
  .prose{font-size:17px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{body{background:white}nav,.motion-toggle,.site-footer,video{display:none}.site-width{width:100%;max-width:none}.research-row,.publication-entry{break-inside:avoid}.intro{padding:20px 0}a{color:inherit}.section-block{padding-top:25px}}
