:root{--paper:#faf9f6;--ink:#252e30;--muted:#626e70;--accent:#256761;--line:#dedfda;--soft:#edf1ec;--width:1060px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.25}p+p{margin-top:16px}strong{font-weight:600}::selection{background:#d5e8df}.skip-link{position:fixed;top:-60px;left:16px;padding:10px;background:var(--ink);color:white;z-index:20}.skip-link:focus{top:10px}
.site-header{border-bottom:1px solid var(--line)}.header-inner,.site-main,.site-footer{width:min(var(--width),calc(100% - 80px));margin-inline:auto}.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}.wordmark{font-size:23px;font-weight:700;letter-spacing:-1px;color:var(--ink)}.wordmark span{color:var(--accent)}nav{display:flex;align-items:center;gap:32px}nav a{color:var(--muted);font-size:14px}.nav-cv{color:var(--accent);border:1px solid #bdcec5;border-radius:5px;padding:5px 15px}
.intro{display:grid;grid-template-columns:minmax(0,1fr) 258px;align-items:center;gap:85px;padding:78px 0 72px}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:650;color:var(--accent);margin-bottom:17px}.intro h1{font-size:58px;letter-spacing:-2.8px;font-weight:500;line-height:1.08;margin-bottom:23px}.intro h1 span{color:var(--accent)}.intro-lead{font-size:22px;line-height:1.5;letter-spacing:-.45px;margin-bottom:22px}.intro-lead em{font-family:Georgia,serif;color:var(--accent)}.intro-copy>p:not(.eyebrow):not(.intro-lead){font-size:15px;max-width:610px}.intro .opportunity{border-left:2px solid #8ba89a;padding-left:13px;color:var(--muted);font-size:14px!important;margin-top:22px}.profile-links{display:flex;flex-wrap:wrap;gap:25px;margin-top:25px;font-size:13px;font-weight:600}.portrait img{width:258px;height:324px;object-fit:cover;object-position:center top;border-radius:5px;background:#e6e7e3}.portrait figcaption{text-align:center;color:var(--muted);font-size:12px;margin-top:14px}.small-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#799582;margin:0 6px 2px 0}
.section{padding:42px 0;border-top:1px solid var(--line);scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px}.section-heading .eyebrow{margin-bottom:9px}h2{font-family:Georgia,"Times New Roman",serif;font-size:32px;font-weight:400;letter-spacing:-.7px}.section-note{font-size:12px;color:var(--muted);padding-bottom:4px}.research-row{display:grid;grid-template-columns:310px minmax(0,1fr);gap:34px;align-items:center;padding:28px 0;border-top:1px solid var(--line)}.research-row:first-of-type{border-top:0;padding-top:0}.research-visual{background:var(--soft);border:1px solid var(--line);border-radius:5px;overflow:hidden;min-height:196px;display:flex;align-items:center;justify-content:center}.research-visual img{width:100%;height:196px;object-fit:contain;background:#fff}.project-category{font-size:9px;letter-spacing:1.2px;font-weight:600;color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:9px}.status{display:inline-block;white-space:nowrap;font-size:10px;line-height:1.6;letter-spacing:0;background:#ece9e1;color:#6a604b;padding:2px 8px;border-radius:3px;font-weight:500}.research-copy h3{font-size:22px;letter-spacing:-.4px;margin-bottom:8px}.research-copy h3 a{color:var(--ink)}.project-subtitle{font-size:14px;line-height:1.55}.authors{font-size:12px;color:var(--muted);line-height:1.6;margin-top:10px}.authors strong{color:var(--ink)}.venue{font-size:11px;color:var(--muted);margin-top:7px}.text-link{display:inline-block;font-size:12px;font-weight:600;margin:12px 20px 0 0}.typographic-visual{padding:22px;align-items:stretch;justify-content:space-between;flex-direction:column;background:#e8eee7;height:196px}.visual-caption{font-size:9px;letter-spacing:1.4px;color:#52695b}.haptic-word{font-size:37px;letter-spacing:-2px;line-height:1.05;color:#385b4e;position:relative}.haptic-word>span{display:block;font-weight:650}.haptic-word i{font-style:normal;position:absolute;right:4px;bottom:0;font-size:55px;color:#7a9682}.publication-note{display:flex;align-items:flex-start;gap:20px;border-top:1px solid var(--line);padding-top:24px;margin-top:2px}.publication-note h3{font-size:15px;font-weight:550;line-height:1.55}.accepted{background:#e4ece2;color:#406147;margin-top:3px}
.timeline-row{display:grid;grid-template-columns:190px 1fr;gap:30px;padding:17px 0}.timeline-date{font-size:11px;letter-spacing:1px;color:var(--muted);padding-top:4px}.timeline h3,.compact-entry h3{font-size:16px;font-weight:600}.timeline p:not(.timeline-date),.compact-entry p{font-size:14px;margin-top:4px}.muted{color:var(--muted)}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.details-grid h2{margin-bottom:23px}.details-grid>section>p:not(.eyebrow){font-size:14px}.skill-tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 27px}.skill-tags span{font-size:11px;border:1px solid var(--line);padding:3px 10px;border-radius:3px}.small-heading{font-size:14px;margin-bottom:7px}.compact-entry+.compact-entry{margin-top:23px}.awards ul{list-style:none;margin:0;padding:0}.awards li{display:flex;justify-content:space-between;gap:30px;font-size:13px;padding:10px 0;border-bottom:1px solid #eaeae5}.awards li:last-child{border:0}.site-footer{border-top:1px solid var(--line);padding:25px 0 30px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);margin-top:12px}
.document-page{max-width:850px;padding:50px 0 70px;min-height:65vh}.back-link{display:inline-block;font-size:13px;margin-bottom:25px}.document-page h1{font-size:34px;letter-spacing:-.8px;margin-bottom:30px}.document-page h2,.document-page h3{margin:30px 0 15px}.document-page p,.document-page ul,.document-page ol{margin-bottom:20px}.document-page img{margin:25px auto;border-radius:4px}.document-page video{width:100%;max-width:100%;height:auto}
@media(min-width:1400px){.intro{padding-top:92px;padding-bottom:86px}}
@media(max-width:900px){.intro{gap:35px;grid-template-columns:minmax(0,1fr) 210px}.portrait img{width:210px;height:275px}.intro h1{font-size:50px}.intro-lead{font-size:20px}.research-row{grid-template-columns:255px 1fr;gap:25px}.section-note{display:none}.details-grid{gap:35px}}
@media(max-width:640px){.header-inner,.site-main,.site-footer{width:calc(100% - 40px)}.header-inner{min-height:76px;gap:15px;flex-wrap:wrap;padding:15px 0}.wordmark{font-size:20px}nav{gap:15px}nav a{font-size:12px}.nav-cv{padding:2px 9px}.intro{display:flex;flex-direction:column-reverse;align-items:stretch;gap:28px;padding:36px 0 40px}.portrait{display:flex;gap:18px;align-items:flex-end}.portrait img{width:115px;height:140px}.portrait figcaption{text-align:left;margin-bottom:4px}.intro h1{font-size:46px;letter-spacing:-2px}.intro-lead{font-size:20px}.desktop-break{display:none}.eyebrow{font-size:9px;letter-spacing:1.8px}.profile-links{gap:22px}.section{padding:30px 0}.section-heading{margin-bottom:25px}h2{font-size:28px}.research-row{grid-template-columns:1fr;gap:20px;padding:25px 0}.research-visual,.research-visual img{height:auto;min-height:0}.research-visual img{max-height:240px}.typographic-visual{height:190px}.research-copy h3{font-size:21px}.publication-note{gap:12px}.timeline-row{grid-template-columns:1fr;gap:7px;padding:15px 0}.details-grid{grid-template-columns:1fr;gap:0}.awards li{gap:16px}.site-footer{flex-direction:column;gap:8px;padding:23px 0}.document-page{padding:32px 0}.document-page h1{font-size:28px;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


.publication-note + .publication-note{margin-top:24px}

/* Publication figures retain their full composition at every screen size. */
.research-visual{min-height:0;padding:10px;background:#fff}
.research-visual img{height:auto;max-height:270px;object-fit:contain}
.project-deck{font-size:20px;line-height:1.5;color:var(--muted);margin-bottom:20px}
.project-figure{margin:35px 0}
.project-figure img{width:100%;max-height:660px;object-fit:contain;margin:0 auto 14px;background:#fff}
.project-figure figcaption{font-size:12px;line-height:1.65;color:var(--muted)}
.project-figure a{display:block;border:1px solid var(--line);padding:12px;border-radius:5px;background:#fff}
@media(max-width:640px){.project-deck{font-size:17px}.project-figure a{padding:6px}.research-visual img{max-height:300px}}
