*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:#fff;color:#292c32;font-family:"Lato","Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:#1763a6;text-decoration:none;text-underline-offset:4px;transition:color .15s}a:hover{color:#a04a17;text-decoration:underline}a:focus-visible{outline:2px solid #1763a6;outline-offset:5px;border-radius:2px}p{margin:0 0 12px}strong{font-weight:600}h1,h2,h3{color:#20252c;margin:0;font-weight:600}h1{font-size:32px;line-height:1.25;letter-spacing:-1px;margin-bottom:23px}h1 span{display:inline-block;font-size:15px;font-weight:400;letter-spacing:0;color:#626b75;margin-left:9px;vertical-align:middle}h2{font-size:22px;letter-spacing:-.45px;font-weight:500}h3{font-size:15px;line-height:1.5}h3 span{display:block;font-weight:400;color:#606873;font-size:14px;margin-top:2px}.page{max-width:860px;margin:auto;padding:0 32px}.navigation{display:flex;align-items:center;justify-content:space-between;padding:28px 0 38px}.navigation .wordmark{font-size:18px;letter-spacing:-1px;font-weight:700;color:#303944}.wordmark span{color:#1763a6}.navigation>div{display:flex;gap:25px}.navigation>div>a{color:#646b73;font-size:13px;padding:10px 0}.intro{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:48px;align-items:center;padding:14px 0 49px}.intro p{font-size:15px;line-height:1.75}.portrait{width:180px;height:216px;object-fit:cover;object-position:center center;border-radius:8px}.contact{display:flex;align-items:center;gap:14px;margin-top:8px}.contact a{display:inline-flex;align-items:center;min-height:44px}.contact span{color:#b5bac0;font-size:12px}section{margin-bottom:39px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid #e8eaed;padding-bottom:10px;margin-bottom:20px}.section-heading>span{color:#626b75;font-size:12px}.section-intro{max-width:680px;color:#606873;margin-top:-3px;margin-bottom:23px}.paper{display:grid;grid-template-columns:172px 1fr;gap:26px;align-items:center}.paper-label{height:144px;background:#f1f5f9;border:1px solid #e5ebf1;display:flex;flex-direction:column;justify-content:center;padding:21px;border-radius:4px}.paper-label>span{font-size:11px;color:#6b7d8d;letter-spacing:1px;margin-bottom:9px}.paper-label>strong{font-size:21px;letter-spacing:-.7px;line-height:1.2;color:#284b69}.paper-label>strong>span{color:#1763a6}.paper-label>small{font-size:10px;color:#657c8f;margin-top:8px}.paper h3{color:#1763a6;font-size:16px;line-height:1.5;margin-bottom:8px}.paper p{font-size:14px;line-height:1.65;margin-bottom:0}.paper .paper-meta{font-size:12px;color:#626b76;margin-bottom:9px}.dot{padding:0 8px}.experience-list{display:grid;gap:24px}.entry{display:grid;grid-template-columns:155px 1fr;gap:20px}.entry-date{font-size:12px;color:#626b75;padding-top:2px;line-height:1.7;font-variant-numeric:tabular-nums}.entry p{font-size:14px;line-height:1.6;margin-bottom:0}.entry .role,.role{font-size:13px;color:#69737d;margin:4px 0 6px}.project{padding:0 0 21px;margin-bottom:20px;border-bottom:1px solid #eff0f2}.project:last-child{border:0;margin-bottom:0;padding-bottom:0}.project-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:5px}.project-heading>span{flex-shrink:0;color:#626b75;font-size:12px}.project p{font-size:14px;line-height:1.65;margin-bottom:8px;max-width:700px}.project .technologies{font-size:12px;color:#66727d;margin:9px 0 0}.technologies span{padding:0 6px;color:#a5adb6}.muted{color:#626b75}.education p{margin-top:5px}footer{border-top:1px solid #e8eaed;display:flex;justify-content:space-between;gap:20px;color:#626b75;font-size:11px;padding:22px 0 32px;margin-top:46px}footer a{color:#667b8e}.skip-link{position:absolute;top:-100px;left:20px;padding:8px;background:#fff;z-index:10}.skip-link:focus{top:10px}@media(min-width:1300px){.page{padding-top:10px}}@media(max-width:640px){body{font-size:16px}.page{padding:0 23px}.navigation{padding:17px 0 25px}.navigation>div{gap:18px}.intro{grid-template-columns:minmax(0,1fr) 100px;gap:20px;padding-top:10px;padding-bottom:34px;align-items:start}.intro-text{display:contents}.intro h1{grid-column:1;grid-row:1;font-size:28px;margin:12px 0 22px;align-self:center}.intro h1 span{display:block;font-size:14px;margin:8px 0 0}.portrait{grid-column:2;grid-row:1;width:100px;height:124px;align-self:start}.intro p,.contact{grid-column:1 / -1;margin:0}.intro p{font-size:16px;line-height:1.7}.contact{margin-top:-6px}.section-heading>span{display:none}h2{font-size:21px}.section-intro{font-size:15px}.paper{grid-template-columns:1fr;gap:16px}.paper-label{display:none}.paper h3{font-size:17px}.paper p,.entry p,.project p{font-size:15px}.entry{grid-template-columns:1fr;gap:4px}.entry-date{font-size:12px}.entry-date br{display:none}.entry-date br:after{content:" "}.entry h3{font-size:16px}.entry h3 span{font-size:14px}.project-heading{display:block}.project-heading h3{font-size:16px}.project-heading>span{display:block;margin-top:3px}.experience-list{gap:25px}.section-heading{margin-bottom:19px}.desktop-break{display:none}footer{font-size:10px;margin-top:33px}.project .technologies{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a{transition:none}}
.navigation a{display:inline-flex;align-items:center;min-height:44px}

/* Publication media and full author credits. */
.paper{grid-template-columns:210px minmax(0,1fr);gap:26px}
.paper-thumbnail{display:block;border-radius:5px;overflow:hidden}
.paper-thumbnail img{display:block;width:100%;height:auto}
.paper .authors{font-size:13px;line-height:1.75;margin-bottom:7px}
.authors strong{font-weight:700;color:#20252c}
.paper .paper-meta{margin-bottom:0;font-size:13px;color:#454e59}
.paper-links{display:flex;flex-wrap:wrap;align-items:center;gap:0 9px;margin:0 0 6px;font-size:13px}
.paper-links a{display:inline-flex;align-items:center;min-height:44px}
.paper-links>span{color:#838d98;font-size:11px}
@media(max-width:640px){.paper{grid-template-columns:1fr;gap:18px}.paper-thumbnail{max-width:340px}.paper .authors{font-size:14px}.paper-links{font-size:14px}}

/* Tiny mascot beside the footer signature. */
.footer-signature{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.footer-signature img{display:block;width:32px;height:auto;object-fit:contain}
footer{align-items:center}
