@import url(https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap);:root{--paper:#fbfbfa;--paper-2:#f1f1ef;--ink:#16181d;--ink-2:#5c6069;--ink-3:#8d9199;--rule:#d8d8d4;--rule-strong:#16181d;--accent:#031c7a;--accent-soft:#e6e9f6;--series-1:#2a78d6;--series-2:#eb6834;--font-display:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;--font-body:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--step--1:0.8125rem;--step-0:1rem;--step-1:1.25rem;--step-2:clamp(1.5rem,1.15rem + 1.3vw,2.25rem);--step-display:clamp(2.25rem,5.4vw,4.5rem);--gutter:clamp(1.25rem,4vw,4rem);--max:1280px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0d0e12;--paper-2:#16181d;--ink:#f2f2f0;--ink-2:#a3a7b0;--ink-3:#6f737c;--rule:#2b2e36;--rule-strong:#f2f2f0;--accent:#8ba2ff;--accent-soft:#1b2038;--series-1:#3987e5;--series-2:#d95926;color-scheme:dark}}:root[data-theme=dark]{--paper:#0d0e12;--paper-2:#16181d;--ink:#f2f2f0;--ink-2:#a3a7b0;--ink-3:#6f737c;--rule:#2b2e36;--rule-strong:#f2f2f0;--accent:#8ba2ff;--accent-soft:#1b2038;--series-1:#3987e5;--series-2:#d95926;color-scheme:dark}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fbfbfa;background:var(--paper);color:#16181d;color:var(--ink);font-family:Archivo,Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-body);font-size:1rem;line-height:1.55;margin:0;overflow-x:hidden}img{display:block;max-width:100%}a{color:inherit}:focus-visible{outline:2px solid #031c7a;outline:2px solid var(--accent);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{--annotation-unfocused-field-background:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>')}.annotationLayer section{position:absolute;text-align:left;text-align:initial}.annotationLayer .buttonWidgetAnnotation.pushButton>a,.annotationLayer .linkAnnotation>a{font-size:1em;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .buttonWidgetAnnotation.pushButton>canvas{left:0;position:relative;top:0;z-index:-1}.annotationLayer .buttonWidgetAnnotation.pushButton>a:hover,.annotationLayer .linkAnnotation>a:hover{background:#ff0;box-shadow:0 2px 10px #ff0;opacity:.2}.annotationLayer .textAnnotation img{cursor:pointer;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input,.annotationLayer .buttonWidgetAnnotation.radioButton input,.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .textWidgetAnnotation input,.annotationLayer .textWidgetAnnotation textarea{background-image:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');background-image:var(--annotation-unfocused-field-background);border:1px solid transparent;box-sizing:border-box;font-size:9px;height:100%;margin:0;padding:0 3px;vertical-align:top;width:100%}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{font:message-box;font-size:9px;resize:none}.annotationLayer .buttonWidgetAnnotation.checkBox input[disabled],.annotationLayer .buttonWidgetAnnotation.radioButton input[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .textWidgetAnnotation input[disabled],.annotationLayer .textWidgetAnnotation textarea[disabled]{background:none;border:1px solid transparent;cursor:not-allowed}.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,.annotationLayer .buttonWidgetAnnotation.radioButton input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation input:hover,.annotationLayer .textWidgetAnnotation textarea:hover{border:1px solid #000}.annotationLayer .choiceWidgetAnnotation select:focus,.annotationLayer .textWidgetAnnotation input:focus,.annotationLayer .textWidgetAnnotation textarea:focus{background:none;border:1px solid transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus,.annotationLayer .buttonWidgetAnnotation.radioButton :focus,.annotationLayer .choiceWidgetAnnotation select :focus,.annotationLayer .textWidgetAnnotation input :focus,.annotationLayer .textWidgetAnnotation textarea :focus{background-color:transparent;background-image:none;outline:auto}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:#000;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation.checkBox input,.annotationLayer .buttonWidgetAnnotation.radioButton input{-webkit-appearance:none;appearance:none;padding:0}.annotationLayer .popupWrapper{position:absolute;width:20em}.annotationLayer .popup{word-wrap:break-word;background-color:#ff9;border-radius:2px;box-shadow:0 2px 5px #888;cursor:pointer;font:message-box;font-size:9px;margin-left:5px;max-width:20em;padding:6px;position:absolute;white-space:normal;z-index:200}.annotationLayer .popup>*{font-size:9px}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:5px}.annotationLayer .popupContent{border-top:1px solid #333;margin-top:2px;padding-top:2px}.annotationLayer .richText>*{white-space:pre-wrap}.annotationLayer .caretAnnotation,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .fileAttachmentAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .highlightAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .lineAnnotation svg line,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .squareAnnotation svg rect,.annotationLayer .squigglyAnnotation,.annotationLayer .stampAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .underlineAnnotation{cursor:pointer}dd,dl,figure,h1,h2,h3,ol,p,ul{margin:0}ol,ul{list-style:none;padding:0}h1,h2,h3{text-wrap:balance;font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.1}em{font-style:italic}.wrap{margin-inline:auto;max-width:var(--max);padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));width:100%}.grid-12{grid-column-gap:clamp(1rem,2vw,1.5rem);grid-row-gap:1.5rem;-webkit-column-gap:clamp(1rem,2vw,1.5rem);column-gap:clamp(1rem,2vw,1.5rem);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:1.5rem}.grid-12>*{min-width:0}.col-label{grid-column:1/span 3}.col-main{grid-column:4/-1}@media (max-width:700px){.col-label,.col-main{grid-column:1/-1}}.label{color:var(--ink-2);font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.section-label{border-bottom:2px solid var(--rule-strong);display:flex;gap:1.5rem;grid-column:1/-1;padding-bottom:.6rem}.section-label .label{color:var(--ink)}.text-link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;transition:text-decoration-thickness .12s ease,color .12s ease}.text-link:hover{text-decoration-thickness:2px}.accent,.text-link:hover{color:var(--accent)}.prose{display:flex;flex-direction:column;gap:1rem;max-width:38rem}.prose a{text-decoration-thickness:1px;text-underline-offset:.22em}.prose a:hover{color:var(--accent);text-decoration-thickness:2px}.site-header{border-bottom:1px solid var(--rule);position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0)}.site-header,body:before{background:var(--paper);z-index:10}body:before{content:"";height:env(safe-area-inset-top,0);inset:0 0 auto;position:fixed}.site-header .wrap{align-items:center;display:flex;gap:1rem;justify-content:space-between;min-height:3.75rem}.brand{color:var(--accent);display:inline-flex}.brand svg{height:auto;width:2.75rem}.site-nav{align-items:center}.site-nav,.site-nav ul{display:flex;gap:clamp(1rem,3vw,2rem)}.nav-link{border-bottom:2px solid transparent;display:inline-block;font-size:.9375rem;font-weight:500;margin-bottom:-1px;padding-block:1.2rem;text-decoration:none}.nav-link:hover{color:var(--accent)}.nav-link.active{border-bottom-color:var(--accent)}.theme-toggle{background:none;border:1px solid var(--rule);color:var(--ink-2);cursor:pointer;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;padding:.3rem .55rem;text-transform:uppercase}.theme-toggle:hover{border-color:var(--ink);color:var(--ink)}.section{padding-block:clamp(3rem,7vw,6rem) 0}.section:last-child{padding-bottom:clamp(3rem,7vw,6rem)}.page-title{font-size:var(--step-display);font-weight:700;letter-spacing:-.045em;line-height:.95}.lede{color:var(--ink-2);font-size:var(--step-1);line-height:1.45;max-width:34rem}.hero{padding-block:clamp(2.5rem,7vw,6rem) 0}.hero-hello,.hero-name{grid-column:1/-1}.hero-name{font-size:var(--step-display);font-weight:700;letter-spacing:-.045em;line-height:.95}.hero-meta{align-self:start;gap:1.25rem;grid-column:1/span 7}.hero-meta,.hero-roles{display:flex;flex-direction:column}.hero-roles{border-top:1px solid var(--rule-strong);font-size:var(--step-2);font-weight:500;gap:.2rem;letter-spacing:-.015em;line-height:1.2;padding-top:1rem}.hero-affiliation{color:var(--ink-2);max-width:34rem}.hero-figure{align-self:start;grid-column:9/-1;grid-row:3}.hero-figure img{height:auto;width:100%}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .hero-figure img{-webkit-filter:invert(1) hue-rotate(180deg) saturate(1.3);filter:invert(1) hue-rotate(180deg) saturate(1.3)}}:root[data-theme=dark] .hero-figure img{-webkit-filter:invert(1) hue-rotate(180deg) saturate(1.3);filter:invert(1) hue-rotate(180deg) saturate(1.3)}@media (max-width:900px){.hero-figure,.hero-meta,.hero-name{grid-column:1/-1}.hero-figure{grid-row:auto;max-width:26rem}}.intro-body{font-size:var(--step-1);grid-column:4/span 6;line-height:1.5}.intro-body b{color:var(--accent);font-weight:600}.intro-avatar{align-self:start;grid-column:10/-1}.intro-avatar img{height:auto;width:100%}@media (max-width:900px){.intro-body{grid-column:4/-1}.intro-avatar{grid-column:4/span 5}}@media (max-width:700px){.intro-avatar,.intro-body{grid-column:1/-1}.intro-avatar{max-width:16rem}}.connect{display:flex;flex-direction:column;gap:1.25rem}.connect p{color:var(--ink-2);font-size:var(--step-1)}.profile-links{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem}.profile-links a{font-size:var(--step-1);font-weight:500}.research-lede{grid-column:2/span 7}@media (max-width:900px){.research-lede{grid-column:1/-1}}.project-list{display:flex;flex-direction:column;grid-column:1/-1}.project{grid-column-gap:clamp(1rem,2vw,1.5rem);grid-row-gap:1.25rem;border-top:1px solid var(--rule);-webkit-column-gap:clamp(1rem,2vw,1.5rem);column-gap:clamp(1rem,2vw,1.5rem);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));padding-block:clamp(2rem,4vw,3rem);row-gap:1.25rem}.project:first-child{border-top:0}.project>*{min-width:0}.project-no{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--accent);font-family:var(--font-mono);font-size:var(--step-1);font-variant-numeric:tabular-nums;font-weight:500;grid-column:1/span 1;line-height:1.3}.project-body{display:flex;flex-direction:column;gap:1rem;grid-column:2/span 6}.project-tags{display:flex;flex-wrap:wrap;gap:.375rem}.project-tags li{border:1px solid;color:var(--accent);font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.08em;padding:.2rem .5rem;text-transform:uppercase}.project-title{font-size:var(--step-2);letter-spacing:-.025em;line-height:1.15}.project-text{color:var(--ink-2);display:flex;flex-direction:column;gap:.75rem;max-width:38rem}.project-text a{color:var(--ink);text-underline-offset:.22em}.project-text a:hover{color:var(--accent)}.project-links{display:flex;flex-wrap:wrap;font-family:var(--font-mono);font-size:.875rem;gap:.5rem 1.5rem}.project-links a{border-bottom:1px solid;text-decoration:none}.project-links a:hover{border-bottom-width:2px;color:var(--accent)}.project-links a:after{content:" ↗"}.project-wide .project-body{grid-column:2/span 9}.project-media{align-self:start;grid-column:8/-1;margin:0}.project-media img,.project-media video{background:var(--paper-2);display:block;height:auto;width:100%}@media (max-width:900px){.project-body,.project-media,.project-no,.project-wide .project-body{grid-column:1/-1}.project-media{max-width:36rem}}.publication-list{display:flex;flex-direction:column;grid-column:1/-1}.publication{grid-column-gap:clamp(1rem,2vw,1.5rem);grid-row-gap:.5rem;border-top:1px solid var(--rule);-webkit-column-gap:clamp(1rem,2vw,1.5rem);column-gap:clamp(1rem,2vw,1.5rem);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));padding-block:1.5rem;row-gap:.5rem}.publication:first-child{border-top:0;padding-top:.5rem}.publication>*{min-width:0}.publication-year{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--ink-2);font-variant-numeric:tabular-nums;grid-column:1/span 1}.publication-body{display:flex;flex-direction:column;gap:.35rem;grid-column:2/span 9;max-width:44rem}.publication-status{color:var(--accent);font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.publication-title{font-size:var(--step-1);font-weight:600;letter-spacing:-.01em;line-height:1.3}.publication-title a{text-decoration:none}.publication-title a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}.publication-authors,.publication-meta{color:var(--ink-2);font-size:.9375rem;overflow-wrap:anywhere}@media (max-width:700px){.publication-body,.publication-year{grid-column:1/-1}}.chart{border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:.75rem;padding-top:1rem}.chart-scroll{overflow-x:auto;position:relative}.chart svg{display:block;height:auto;min-width:18rem;overflow:visible;width:100%}.chart-grid{stroke:var(--rule);stroke-width:1}.chart-axis,.chart-grid{fill:none;shape-rendering:crispEdges}.chart-axis{stroke:var(--ink-3);stroke-width:1}.chart-tick,.chart-unit{fill:var(--ink-3);font-family:var(--font-mono);font-size:11px}.chart-value{fill:var(--ink);font-family:var(--font-mono);font-size:12px;font-weight:500}.chart-range{stroke:var(--series-1);stroke-width:2;fill:none}.chart-dot{fill:var(--series-1);stroke:var(--paper);stroke-width:2;pointer-events:none}.chart-hit{fill:transparent;cursor:default;outline:none}.chart-point.is-active .chart-dot,.chart-point:focus-within .chart-dot{stroke:var(--ink)}.chart-bar{fill:var(--series-1)}.chart-cell{stroke:var(--series-1);stroke-width:1}.chart-cell.bound{fill:var(--series-1)}.chart-cell.unbound{fill:var(--paper);stroke:var(--ink-3)}.chart-tooltip{background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:.75rem;padding:.4rem .6rem;pointer-events:none;position:absolute;-webkit-transform:translate(-50%,calc(-100% - 10px));transform:translate(-50%,calc(-100% - 10px));white-space:nowrap}.chart-caption{color:var(--ink-2);font-size:var(--step--1)}.chart-facts{color:var(--ink);display:flex;flex-wrap:wrap;font-family:var(--font-mono);font-size:.8125rem;gap:.25rem 1.5rem}.cv-entries{display:flex;flex-direction:column}.cv-entries>div{grid-gap:.25rem clamp(1rem,2vw,1.5rem);border-top:1px solid var(--rule);display:grid;gap:.25rem clamp(1rem,2vw,1.5rem);grid-template-columns:7.5rem minmax(0,1fr);padding-block:.9rem}.cv-entries>div:first-child{border-top:0;padding-top:.25rem}.cv-entries dt{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--ink-2);font-variant-numeric:tabular-nums;padding-top:.15rem}.cv-entries dd{display:flex;flex-direction:column;gap:.1rem;margin:0}.cv-entries dd strong{font-size:1.0625rem;font-weight:600}.cv-entries dd span{color:var(--ink-2);font-size:.9375rem}@media (max-width:560px){.cv-entries>div{grid-template-columns:minmax(0,1fr)}}.cv-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;grid-column:1/-1}.button{background:var(--accent);border:1px solid var(--accent);color:var(--paper);display:inline-block;font-weight:600;padding:.7rem 1.2rem;text-decoration:none}.button:hover{background:var(--paper);color:var(--accent)}.cv-document{background:var(--paper-2);border:1px solid var(--rule);grid-column:1/-1;overflow-x:auto;padding:clamp(.5rem,2vw,1.5rem)}.cv-document .react-pdf__Document{align-items:center;display:flex;flex-direction:column;gap:1rem}.cv-document .react-pdf__Page canvas{height:auto!important;max-width:100%}.cv-status{color:var(--ink-2);font-family:var(--font-mono);font-size:.875rem;padding:2rem}.site-footer{border-top:1px solid var(--rule-strong);margin-top:clamp(3rem,7vw,6rem);padding-block:1.25rem 2.5rem}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between}.site-footer ul{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.site-footer a{font-size:.9375rem}.App{display:flex;flex-direction:column;min-height:100vh}.App main{flex:1 1}
/*# sourceMappingURL=main.99126f16.css.map*/