:root{color-scheme:light;--background:#f5f3ee;--surface:#ebe7df;--text:#181817;--muted:#65635e;--line:#d6d1c8;--accent:#b53b0b;--focus:#d94c12;--portrait-shadow:0 2rem 5rem #31251a29}:root[data-theme=dark]{color-scheme:dark;--background:#10100f;--surface:#1a1917;--text:#f3f0e9;--muted:#aaa69d;--line:#34312d;--accent:#fb8c42;--focus:#ff9d5c;--portrait-shadow:0 2rem 6rem #0000006b}*{box-sizing:border-box}html{background:var(--background);scroll-behavior:smooth}body{background:var(--background);min-width:20rem;min-height:100vh;color:var(--text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,sans-serif;font-size:1rem;line-height:1.5;transition:background-color .22s,color .22s}a{color:inherit;text-decoration:none;transition:color .18s}a:hover,a:focus-visible{color:var(--accent)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:5px}main:focus{outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--text);color:var(--background);border-radius:999px;padding:.75rem 1rem;font-size:.88rem;font-weight:700;transition:transform .18s;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{color:var(--background);transform:translateY(0)}.page-shell{grid-template-rows:auto 1fr auto;min-height:100svh;display:grid}.site-header,.site-footer,.about,.experience,.publications{width:min(100% - 4.5rem,82rem);margin-inline:auto}.site-header{justify-content:space-between;align-items:center;min-height:5.75rem;animation:.6s 80ms both fade-in;display:flex}.header-actions,.header-actions nav{align-items:center;display:flex}.header-actions{gap:1.25rem}.header-actions nav{gap:.75rem}.header-actions nav a{min-height:2.75rem;color:var(--muted);align-items:center;padding-inline:.25rem;font-size:.82rem;font-weight:620;display:inline-flex}.brand{letter-spacing:.075em;text-transform:uppercase;align-items:center;min-height:2.75rem;font-size:.8rem;font-weight:680;display:inline-flex}.theme-toggle{width:3.5rem;height:2.75rem;color:var(--text);cursor:pointer;opacity:0;background:0 0;border:0;place-items:center start;padding:0 .25rem;display:grid;position:relative}.theme-toggle:before{border:1px solid var(--line);background:var(--surface);content:"";border-radius:999px;transition:border-color .18s,background-color .22s;position:absolute;inset:.375rem 0}.js .theme-toggle{opacity:1}.theme-toggle:hover:before{border-color:var(--accent)}.theme-toggle__track{z-index:1;background:var(--text);width:1.5rem;height:1.5rem;color:var(--background);border-radius:50%;place-items:center;transition:transform .26s cubic-bezier(.2,.8,.2,1),background-color .22s,color .22s;display:grid;position:relative;transform:translate(0)}[data-theme=dark] .theme-toggle__track{transform:translate(1.5rem)}.theme-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:.85rem;height:.85rem;transition:opacity .18s,transform .26s;position:absolute}.theme-icon--sun{opacity:1;transform:rotate(0)scale(1)}.theme-icon--moon{opacity:0;transform:rotate(-25deg)scale(.6)}[data-theme=dark] .theme-icon--sun{opacity:0;transform:rotate(35deg)scale(.6)}[data-theme=dark] .theme-icon--moon{opacity:1;transform:rotate(0)scale(1)}main{display:grid}.about{grid-template-columns:minmax(0,1.04fr) minmax(20rem,.72fr);align-items:center;gap:clamp(3.5rem,8vw,9rem);min-height:calc(100svh - 5.75rem);padding-block:clamp(2.5rem,6vh,5rem);display:grid}.about__copy{max-width:45rem;animation:.7s .16s both rise-in}h1{letter-spacing:-.065em;max-width:12ch;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,sans-serif;font-size:clamp(3.3rem,6.5vw,6.7rem);font-weight:720;line-height:.96}h1 em{color:var(--muted);font-style:normal;font-weight:430}.intro{max-width:35rem;color:var(--muted);margin:clamp(2rem,4vh,3rem) 0 0;font-size:clamp(1.08rem,1.6vw,1.35rem);line-height:1.65}.contact-cta{border:1px solid var(--text);background:var(--text);color:var(--background);border-radius:999px;align-items:center;gap:.55rem;margin-top:1.5rem;padding:.7rem 1rem;font-size:.9rem;font-weight:680;transition:background-color .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.contact-cta:hover,.contact-cta:focus-visible{border-color:var(--accent);background:var(--accent);color:var(--background);transform:translateY(-.125rem)}.contact-cta svg,.external-link svg,.experience-entry__company svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;flex:none;width:1rem;height:1rem;transition:transform .18s}.contact-cta:hover svg,.contact-cta:focus-visible svg,.external-link:hover svg,.external-link:focus-visible svg,.experience-entry__company:hover svg,.experience-entry__company:focus-visible svg{transform:translate(.15rem,-.15rem)}.portrait{aspect-ratio:4/5;background:var(--surface);width:min(100%,30rem);box-shadow:var(--portrait-shadow);isolation:isolate;border-radius:1rem;justify-self:end;margin:0;animation:.85s .24s both portrait-in;position:relative;overflow:hidden}.portrait img{object-fit:cover;object-position:50% 50%;width:100%;height:100%}.experience,.publications{border-top:1px solid var(--line);grid-template-columns:minmax(16rem,.62fr) minmax(0,1fr);gap:clamp(3.5rem,8vw,9rem);padding-block:clamp(6rem,12vw,10rem);display:grid}.section-intro{align-self:start}.section-intro--sticky{position:sticky;top:2rem}.section-intro h2{letter-spacing:-.055em;max-width:12ch;margin:0;font-size:clamp(2.4rem,4vw,4.5rem);font-weight:700;line-height:1}.section-intro>p:last-child{max-width:31rem;color:var(--muted);margin:1.75rem 0 0;font-size:1.05rem;line-height:1.7}.experience-list,.publication-list{margin:0;padding:0;list-style:none}.external-link{align-items:center;gap:.5rem;min-height:2.75rem;margin-top:1.25rem;font-size:.88rem;font-weight:680;display:inline-flex}.experience-list,.publication-list{min-width:0}.experience-entry{border-top:1px solid var(--line);padding-block:2rem}.experience-entry:first-child{border-top:0;padding-top:0}.experience-entry__heading{justify-content:space-between;align-items:baseline;gap:2rem;display:flex}.experience-entry h3,.experience-entry__heading p{margin:0}.experience-entry h3{letter-spacing:-.025em;font-size:1.35rem}.experience-entry__company{align-items:center;gap:.45rem;min-height:2.75rem;display:inline-flex}.experience-entry__company svg{opacity:.75}.experience-entry__heading div>p,.experience-entry__period{color:var(--muted);margin-top:.1rem;font-size:.86rem}.experience-entry__period{text-align:right;flex:none}.experience-entry__description{max-width:46rem;color:var(--muted);margin:.8rem 0 0;font-size:1.02rem;line-height:1.78}.publication-entry{border-top:1px solid var(--line);padding-block:2rem}.publication-entry:first-child{border-top:0;padding-top:0}.publication-entry__heading{justify-content:space-between;align-items:baseline;gap:2rem;display:flex}.publication-entry h3,.publication-entry__heading p,.publication-entry__summary{margin:0}.publication-entry h3{letter-spacing:-.025em;font-size:1.2rem}.publication-entry__heading div>p,.publication-entry__period{color:var(--muted);margin-top:.15rem;font-size:.82rem}.publication-entry__period{text-align:right;flex:none}.publication-entry__summary{max-width:46rem;color:var(--muted);margin-top:.75rem;line-height:1.72}.publication-entry .external-link{margin-top:.75rem}.site-footer{border-top:1px solid var(--line);min-height:5.5rem;color:var(--muted);justify-content:space-between;align-items:center;font-size:.82rem;animation:.6s .42s both fade-in;display:flex}.site-footer p{margin:0}.site-footer nav{gap:.75rem;display:flex}.site-footer a{min-height:2.75rem;color:var(--text);align-items:center;padding-inline:.375rem;font-weight:600;display:inline-flex}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(1.5rem)}}@keyframes portrait-in{0%{opacity:0;clip-path:inset(0 0 100% round 1rem);transform:translateY(1.5rem)scale(.975)}to{opacity:1;clip-path:inset(0 round 1rem);transform:translateY(0)scale(1)}}@keyframes section-in{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}@supports (animation-timeline:view()){.experience-entry,.publication-entry{animation:linear both section-in view();animation-range:entry 5% cover 28%}}@media (width<=820px){.site-header,.site-footer,.about,.experience,.publications{width:min(100% - 2.5rem,42rem)}.header-actions{gap:.75rem}.header-actions nav{gap:.5rem}.about{grid-template-columns:1fr;gap:3rem;padding-block:4rem 5rem}.experience,.publications{grid-template-columns:1fr;gap:4rem;padding-block:6rem}.section-intro--sticky{position:static}h1{font-size:clamp(3.2rem,14vw,5.2rem)}.portrait{justify-self:start;width:100%;max-width:34rem}}@media (width<=620px){.header-actions nav a[href=\#about],.header-actions nav a[href=\#publications]{display:none}.about{padding-block:2.75rem 4rem}.experience,.publications{gap:3rem;padding-block:4.5rem}.experience-entry__heading,.publication-entry__heading{display:block}.experience-entry__period,.publication-entry__period{text-align:left;margin-top:.2rem}.site-footer{align-items:flex-start;gap:1rem;padding-block:1rem}.site-footer nav{gap:.25rem}}@media (width<=380px){.brand{letter-spacing:.06em;font-size:.72rem}.header-actions{gap:.25rem}.header-actions nav{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
