.site-visitors{border-top:1px solid var(--line);padding-top:28px}.site-visitors__map{aspect-ratio:420/218;border-radius:var(--radius);width:100%;max-width:420px;color:var(--ink-3);margin-top:18px;text-decoration:none;display:block;position:relative;overflow:hidden}.site-visitors__map img{width:100%;height:auto;display:block}.site-visitors__map img[hidden]{display:none}.site-visitors__notice{color:var(--ink-3);margin-top:8px;font-size:13px}.site-visitors__notice button{color:var(--blue);font:inherit;text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.site-visitors__caption{color:var(--ink-3);margin-top:12px;font-size:13px}.site-visitors__caption a{color:inherit}@media (width<=640px){.site-visitors{padding-top:22px}.site-visitors__caption span:last-child{margin-top:3px;display:block}.site-visitors__caption span[aria-hidden]{display:none}}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gW8tenXg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gf8tenXg.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gY8tenXg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gU8tenXg.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gV8tenXg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gb8tc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gW8tenXg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gf8tenXg.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gY8tenXg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gU8tenXg.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gV8tenXg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gb8tc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gW8tenXg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gf8tenXg.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gY8tenXg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gU8tenXg.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gV8tenXg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gb8tc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground:#f8f7f3;--surface:#fffefb;--sunk:#f1efe9;--line:#e6e2d9;--line-strong:#d6d0c4;--ink:#16191d;--ink-2:#41464e;--ink-3:#62666d;--ink-4:#a3a5a8;--blue:#13294b;--orange:#ff5f05;--orange-text:#b8430e;--orange-tint:#fff0e6;--orange-line:#f6c7a9;--blue-tint:#edf0f5;--blue-line:#d3dae6;--serif:"Source Serif 4","Iowan Old Style","Palatino Linotype",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--t-hover:.15s;--t-press:.12s;--t-reveal:.22s;--header-h:64px;--radius-sm:4px;--radius:6px;--radius-lg:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:80px;scroll-padding-top:calc(var(--header-h) + 16px);overflow-x:clip}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f7f3;background:var(--ground);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-family:var(--sans);text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6}img{max-width:100%;height:auto}h1,h2,h3{text-wrap:balance;color:var(--ink);font-family:"Source Serif 4",Iowan Old Style,Palatino Linotype,Georgia,serif;font-family:var(--serif);margin:0;font-weight:600}p{text-wrap:pretty}ol,p,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:var(--blue);text-decoration:underline;text-underline-offset:.2em;transition:color .15s,text-decoration-color .15s;transition:color var(--t-hover) ease,-webkit-text-decoration-color var(--t-hover) ease;transition:color var(--t-hover) ease,text-decoration-color var(--t-hover) ease;transition:color var(--t-hover) ease,text-decoration-color var(--t-hover) ease,-webkit-text-decoration-color var(--t-hover) ease;text-decoration-color:#13294b33;text-decoration-thickness:1px}@media (hover:hover) and (pointer:fine){a:hover{text-decoration-color:#ff5f05;-webkit-text-decoration-color:var(--orange);-webkit-text-decoration-color:var(--orange);text-decoration-color:var(--orange)}}a,button{-webkit-tap-highlight-color:#13294b14;touch-action:manipulation}:focus-visible{outline:2px solid #13294b;outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}::selection{color:var(--ink);background:#ff5f0533}.nowrap{white-space:nowrap}.muted{color:var(--ink-3);font-size:14px}.sep{color:var(--ink-4);margin:0 .5em}.icon{flex:none;width:20px;height:20px}.icon--sm{width:16px;height:16px}.icon--xs{width:13px;height:13px}.icon--img{object-fit:contain}.skip-link{background:#13294b;background:var(--blue);border-radius:6px;border-radius:var(--radius);color:#fff;z-index:100;padding:8px 14px;text-decoration:none;position:absolute;top:-48px;left:16px}.skip-link:focus{top:12px}.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}.topbar{background:#f8f7f3;background:var(--ground);border-bottom:1px solid #e6e2d9;border-bottom:1px solid var(--line);z-index:20;position:sticky;top:0}.topbar__inner{grid-column-gap:72px;height:64px;height:var(--header-h);grid-template-columns:224px minmax(0,1fr);align-items:center;column-gap:72px;max-width:1160px;margin:0 auto;padding:0 32px;display:grid}.brand{color:var(--ink);font-family:"Source Serif 4",Iowan Old Style,Palatino Linotype,Georgia,serif;font-family:var(--serif);letter-spacing:-.01em;flex:none;justify-self:center;font-size:21px;font-weight:600;text-decoration:none}.nav{min-width:0;margin-left:-10px}.nav ul{gap:4px;display:flex}.nav__link{color:var(--ink-2);font-size:15px;line-height:64px;line-height:var(--header-h);white-space:nowrap;padding:0 10px;text-decoration:none;display:block;position:relative}.nav__link:after{background:#ff5f05;background:var(--orange);content:"";transform-origin:0;height:2px;transition:transform .22s cubic-bezier(.23,1,.32,1);transition:transform .22s var(--ease-out);position:absolute;bottom:-1px;left:10px;right:10px;transform:scaleX(0)}.nav__link.is-active{color:var(--ink);font-weight:600}.nav__link:before{content:attr(data-label);visibility:hidden;height:0;font-weight:600;display:block;overflow:hidden}.nav__link.is-active:after{transform:scaleX(1)}@media (hover:hover) and (pointer:fine){.nav__link:hover{color:var(--ink)}}.nav-scrim,.nav__toggle{display:none}.shell{grid-column-gap:72px;grid-template-columns:224px minmax(0,1fr);column-gap:72px;max-width:1160px;margin:0 auto;padding:48px 32px 96px;display:grid}.content{animation:.22s cubic-bezier(.23,1,.32,1) backwards page-in;animation:page-in var(--t-reveal) var(--ease-out) backwards;min-width:0;max-width:760px}@keyframes page-in{0%{opacity:0}}.profile{text-align:center;top:96px;top:calc(var(--header-h) + 32px);align-self:start;position:sticky}@media (width>=961px) and (height<=720px){.profile{position:static}}.profile__avatar{background:#f1efe9;background:var(--sunk);box-shadow:0 0 0 1px #e6e2d9;box-shadow:0 0 0 1px var(--line);object-fit:cover;border-radius:50%;width:148px;height:148px;margin:0 auto;display:block}.profile__id{grid-gap:12px;justify-items:center;gap:12px;margin-top:18px;display:grid}.profile__credential{background:#fff0e6;background:var(--orange-tint);border:1px solid #f6c7a9;border:1px solid var(--orange-line);border-radius:6px;border-radius:var(--radius);text-align:center;transition:border-color .15s;transition:border-color var(--t-hover) ease;flex-direction:column;align-items:center;gap:4px;padding:10px 14px 11px;text-decoration:none;display:flex}.profile__credential-head{align-items:center;gap:7px;display:inline-flex}.profile__credential-mark{color:#191919;flex:none;width:16px;height:16px}.profile__credential-title{color:var(--orange-text);font-size:13.5px;font-weight:700;line-height:1.3}.profile__credential-program{line-height:1.35;display:grid}.profile__credential-org{color:var(--ink);font-size:13px;font-weight:650}.profile__credential-detail{color:var(--ink-3);font-size:12px;font-weight:500}@media (hover:hover) and (pointer:fine){.profile__credential:hover{border-color:#ff5f05;border-color:var(--orange)}}.profile__roles{color:var(--ink-2);font-size:14px;line-height:1.45}.profile__links,.profile__roles{grid-gap:2px;gap:2px;display:grid}.profile__links{border-top:1px solid #e6e2d9;border-top:1px solid var(--line);text-align:left;justify-content:center;margin-top:22px;padding-top:18px}.profile__links li>a,.profile__meta{color:var(--ink-2);align-items:center;gap:10px;padding:4px 0;font-size:14px;text-decoration:none;display:flex}.profile__links .icon{color:var(--ink-3);transition:color .15s;transition:color var(--t-hover) ease}@media (hover:hover) and (pointer:fine){.profile__links li>a:hover{color:var(--ink)}.profile__links li>a:hover .icon{color:var(--orange)}}.page-head{margin-bottom:36px}.page-title{color:var(--ink);letter-spacing:-.015em;font-size:34px;line-height:1.12}.page-head:after{background:linear-gradient(#ff5f05,#ff5f05) 0 0/44px 2px no-repeat,linear-gradient(#d6d0c4,#d6d0c4) 0 100%/100% 1px no-repeat;background:linear-gradient(var(--orange),var(--orange)) 0 0 /44px 2px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) 0 100% /100% 1px no-repeat;content:"";height:2px;margin-top:16px;display:block}.accent-dot{color:var(--orange)}.page-head+.pubs>.pub:first-child,.page-head+.rows>.row:first-child{border-top:0;padding-top:8px}.section{margin-top:34px}.section__title{color:var(--blue);letter-spacing:-.01em;margin-bottom:14px;font-size:23px;line-height:1.25}.prose{color:var(--ink);max-width:68ch;font-size:16.5px;line-height:1.7}.prose p+p{margin-top:14px}.prose a.org,.prose a.person{white-space:nowrap;font-weight:600}.prose a.org--uiuc{color:var(--orange-text);text-decoration-color:#f6c7a9;-webkit-text-decoration-color:var(--orange-line);-webkit-text-decoration-color:var(--orange-line);text-decoration-color:var(--orange-line)}.prose a.org--nyu{color:#57068c;text-decoration-color:#57068c40}@media (hover:hover) and (pointer:fine){.prose a.org--uiuc:hover{text-decoration-color:#ff5f05;-webkit-text-decoration-color:var(--orange);-webkit-text-decoration-color:var(--orange);text-decoration-color:var(--orange)}.prose a.org--nyu:hover{text-decoration-color:#57068c}}.intro__status{color:var(--ink);align-items:baseline;gap:10px;font-weight:600;display:flex}.intro__dot{background:#ff5f05;background:var(--orange);border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.news-box{position:relative}.news-box:after,.news-box:before{content:"";opacity:0;pointer-events:none;height:12px;transition:opacity .15s;transition:opacity var(--t-hover) ease;z-index:1;position:absolute;left:0;right:0}.news-box:before{background:linear-gradient(#16191d14,#16191d00);top:0}.news-box:after{background:linear-gradient(#16191d00,#16191d14);bottom:0}.news-box.has-above:before,.news-box.has-below:after{opacity:1}.news-scroll{scrollbar-color:#d6d0c4 #0000;scrollbar-color:var(--line-strong) #0000;scrollbar-width:thin;max-height:230px;position:relative;overflow-y:auto}.news-scroll::-webkit-scrollbar{width:6px}.news-scroll::-webkit-scrollbar-thumb{background:#d6d0c4;background:var(--line-strong);border-radius:3px}.news-scroll:focus-visible{outline-offset:4px}.news,.news__item{display:grid}.news__item{grid-column-gap:20px;border-top:1px solid #e6e2d9;border-top:1px solid var(--line);grid-template-columns:108px minmax(0,1fr);column-gap:20px;padding:12px 8px 12px 0}.news__item:last-child{border-bottom:1px solid #e6e2d9;border-bottom:1px solid var(--line)}.news__date{font-feature-settings:"tnum";color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px;font-weight:500;line-height:1.7}.news__text{color:var(--ink);font-size:15.5px;line-height:1.65}.award{grid-column-gap:20px;border-bottom:1px solid #e6e2d9;border-bottom:1px solid var(--line);border-top:1px solid #e6e2d9;border-top:1px solid var(--line);grid-template-columns:108px minmax(0,1fr);column-gap:20px;padding:16px 0;display:grid}.award__year{font-feature-settings:"tnum";color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500;line-height:1.9}.award__title{font-size:19px;line-height:1.35}.award__title a{color:var(--ink);text-decoration-color:#0000}@media (hover:hover) and (pointer:fine){.award__title a:hover{text-decoration-color:#ff5f05;-webkit-text-decoration-color:var(--orange);-webkit-text-decoration-color:var(--orange);text-decoration-color:var(--orange)}}.award__meta{color:var(--ink-2);margin-top:4px;font-size:14.5px}.award__meta strong{color:var(--ink);font-weight:600}.award__highlight{color:var(--orange-text);font-weight:650}.award__proposal{text-wrap:pretty;color:var(--ink-2);margin-top:6px;font-size:14.5px;line-height:1.55}.award__proposal cite{color:var(--ink);font-style:italic}.award__logo{color:#191919;vertical-align:-2px;width:18px;height:18px;margin-right:10px}.award__desc{text-wrap:pretty;color:var(--ink-2);margin-top:8px;font-size:15px;line-height:1.65}.pubs{display:grid}.pub{border-top:1px solid #e6e2d9;border-top:1px solid var(--line);padding:20px 0}.pub:last-child{border-bottom:1px solid #e6e2d9;border-bottom:1px solid var(--line)}.pubs--thumbs .pub{grid-column-gap:24px;grid-template-columns:196px minmax(0,1fr);align-items:start;column-gap:24px;display:grid}.pub__thumb{border:1px solid #e6e2d9;border:1px solid var(--line);border-radius:6px;border-radius:var(--radius);background:#fff;padding:6px;overflow:hidden}.pub__thumb img{width:100%;height:auto;display:block}.pub__title{letter-spacing:-.005em;font-size:18.5px;line-height:1.35}.pub__title a{color:var(--ink);text-decoration-color:#0000}@media (hover:hover) and (pointer:fine){.pub__title a:hover{color:var(--blue);text-decoration-color:#ff5f05;-webkit-text-decoration-color:var(--orange);-webkit-text-decoration-color:var(--orange);text-decoration-color:var(--orange)}}.authors{color:var(--ink-2);margin-top:6px;font-size:14.5px;line-height:1.55}.authors a{color:inherit}.authors__me{color:var(--ink);font-weight:650}.venues{flex-wrap:wrap;gap:4px 18px;margin-top:8px;display:flex}.venue{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;display:inline-flex}.venue__name{color:var(--ink);font-weight:600}.venue__prefix{color:var(--ink-3)}a.venue__name{color:var(--ink)}.tag{background:#f1efe9;background:var(--sunk);border:1px solid #d6d0c4;border:1px solid var(--line-strong);border-radius:4px;border-radius:var(--radius-sm);color:var(--ink-2);white-space:nowrap;padding:0 7px;font-size:12.5px;font-weight:600;line-height:20px;text-decoration:none;display:inline-block}.tag--accepted{background:#edf0f5;background:var(--blue-tint);border-color:#d3dae6;border-color:var(--blue-line);color:var(--blue)}.tag--spotlight{background:#fff0e6;background:var(--orange-tint);border-color:#f6c7a9;border-color:var(--orange-line);color:var(--orange-text);transition:border-color .15s;transition:border-color var(--t-hover) ease}@media (hover:hover) and (pointer:fine){.tag--spotlight:hover{border-color:#ff5f05;border-color:var(--orange)}}.link-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.link-chip{background:#fffefb;background:var(--surface);border:1px solid #d6d0c4;border:1px solid var(--line-strong);border-radius:6px;border-radius:var(--radius);color:var(--ink);height:30px;transition:border-color .15s,color .15s,transform .12s cubic-bezier(.23,1,.32,1);transition:border-color var(--t-hover) ease,color var(--t-hover) ease,transform var(--t-press) var(--ease-out);align-items:center;gap:6px;padding:0 11px 0 9px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.link-chip .icon{color:var(--ink-3);transition:color .15s;transition:color var(--t-hover) ease}@media (hover:hover) and (pointer:fine){.link-chip:hover{border-color:#62666d;border-color:var(--ink-3)}.link-chip:hover .icon{color:var(--orange)}}.button:active,.link-chip:active{transform:scale(.98)}.is-arrived{animation:1.6s cubic-bezier(.23,1,.32,1) arrive;animation:arrive 1.6s var(--ease-out)}@keyframes arrive{0%,25%{background-color:#ff5f0512;box-shadow:-12px 0 #ff5f0512,12px 0 #ff5f0512}to{background-color:#ff5f0500;box-shadow:-12px 0 #ff5f0500,12px 0 #ff5f0500}}.project,.projects{display:grid}.project{grid-column-gap:32px;border-top:1px solid #e6e2d9;border-top:1px solid var(--line);grid-template-columns:264px minmax(0,1fr);column-gap:32px;padding:36px 0}.project:first-child{border-top:0;padding-top:8px}.project__figure{border:1px solid #e6e2d9;border:1px solid var(--line);border-radius:6px;border-radius:var(--radius);background:#fff;align-self:start;margin:4px 0 0;padding:6px;overflow:hidden}.project__figure img{width:100%;height:auto;display:block}.project__head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.project__title{letter-spacing:-.01em;font-size:21px;line-height:1.3}.role{background:#edf0f5;background:var(--blue-tint);border:1px solid #d3dae6;border:1px solid var(--blue-line);border-radius:4px;border-radius:var(--radius-sm);color:var(--blue);white-space:nowrap;flex:none;margin-top:3px;padding:0 8px;font-size:12.5px;font-weight:600;line-height:22px}.project__text{color:var(--ink);margin-top:12px;font-size:15.5px;line-height:1.7}.project__text p+p{margin-top:10px}.project__funding{color:var(--ink-2);font-size:14.5px;font-style:italic}.project__foot{flex-direction:column;align-items:flex-start;gap:12px;margin-top:16px;display:flex}.project__foot .link-row{margin-top:0}.people{grid-gap:2px;color:var(--ink-2);gap:2px;margin:0;font-size:13.5px;display:grid}.people__row{gap:6px;display:flex}.people dt{color:var(--ink);font-weight:600}.people dt:after{content:":"}.people dd{margin:0}.people a{color:inherit}.row{border-top:1px solid #e6e2d9;border-top:1px solid var(--line);padding:20px 0}.row:last-child{border-bottom:1px solid #e6e2d9;border-bottom:1px solid var(--line)}.row__title{font-size:20px;line-height:1.35}.row__code{color:var(--blue)}.row__meta{color:var(--ink-2);margin-top:4px;font-size:14.5px}.row__text{color:var(--ink);max-width:68ch;margin-top:8px;font-size:15.5px;line-height:1.65}.doc-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;display:flex}.doc-tabs{gap:28px;display:flex}.doc-tab{color:var(--ink-3);cursor:pointer;font-family:"Source Serif 4",Iowan Old Style,Palatino Linotype,Georgia,serif;font-family:var(--serif);letter-spacing:-.005em;transition:color .15s;transition:color var(--t-hover) ease;background:0 0;border:0;padding:0 0 10px;font-size:19px;font-weight:600;position:relative}.doc-tab:after{background:#ff5f05;background:var(--orange);content:"";transform-origin:0;height:2px;transition:transform .22s cubic-bezier(.23,1,.32,1);transition:transform .22s var(--ease-out);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.doc-tab[aria-selected=true]{color:var(--ink)}.doc-tab[aria-selected=true]:after{transform:scaleX(1)}@media (hover:hover) and (pointer:fine){.doc-tab:hover{color:var(--ink-2)}.doc-tab[aria-selected=true]:hover{color:var(--ink)}}.doc-actions{gap:20px;padding-bottom:12px;display:flex}.doc-action{color:var(--ink-2);align-items:center;gap:6px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.doc-action,.doc-action .icon{transition:color .15s;transition:color var(--t-hover) ease}.doc-action .icon{color:var(--ink-3)}@media (hover:hover) and (pointer:fine){.doc-action:hover{color:var(--ink)}.doc-action:hover .icon{color:var(--orange)}}.doc-pages{grid-gap:20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px;display:grid}.doc-pages--single{grid-template-columns:minmax(0,360px);justify-content:center}.doc-page{border:1px solid #e6e2d9;border:1px solid var(--line);border-radius:4px;border-radius:var(--radius-sm);transition:border-color .15s;transition:border-color var(--t-hover) ease;background:#fff;display:block;overflow:hidden;box-shadow:0 1px 2px #16191d0d,0 14px 30px -20px #16191d66}.doc-page img{width:100%;height:auto;display:block}@media (hover:hover) and (pointer:fine){.doc-page:hover{border-color:#a3a5a8;border-color:var(--ink-4)}}@media (width<=640px){.doc-pages{grid-template-columns:minmax(0,1fr)}}.feature{grid-column-gap:28px;background:#fffefb;background:var(--surface);border:1px solid #e6e2d9;border:1px solid var(--line);border-radius:10px;border-radius:var(--radius-lg);grid-template-columns:148px minmax(0,1fr);column-gap:28px;padding:28px;display:grid}.feature__icon{object-fit:cover;border-radius:28px;width:148px;height:148px}.feature__kicker{color:var(--ink-3);font-size:13px;font-weight:600}.feature__title{letter-spacing:-.015em;margin-top:2px;font-size:28px;line-height:1.15}.feature__tagline{color:var(--ink-2);margin-top:8px;font-size:15.5px;line-height:1.6}.feature__actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.button{background:#fffefb;background:var(--surface);border:1px solid #d6d0c4;border:1px solid var(--line-strong);border-radius:6px;border-radius:var(--radius);color:var(--ink);height:36px;transition:border-color .15s,background-color .15s,transform .12s cubic-bezier(.23,1,.32,1);transition:border-color var(--t-hover) ease,background-color var(--t-hover) ease,transform var(--t-press) var(--ease-out);align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.button--primary{background:#13294b;background:var(--blue);border-color:#13294b;border-color:var(--blue);color:#fff}@media (hover:hover) and (pointer:fine){.button:hover{border-color:#62666d;border-color:var(--ink-3)}.button--primary:hover{background:#1d3a66;border-color:#1d3a66}}.feature__list{grid-gap:10px 20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin-top:20px;display:grid}.feature__list li{color:var(--ink-2);gap:10px;font-size:14px;line-height:1.5;display:flex}.feature__list .icon{color:var(--orange-text);margin-top:2px}.feature__note{color:var(--ink-3);margin-top:16px;font-size:13.5px;line-height:1.55}.builds{margin-top:40px;display:grid}.build{border-top:1px solid #e6e2d9;border-top:1px solid var(--line);padding:24px 0}.build--image{grid-column-gap:28px;grid-template-columns:minmax(0,1fr) 240px;column-gap:28px;display:grid}.build--image .build__head{grid-column:1/-1}.build__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.build__title{font-size:19.5px;line-height:1.35}.build__meta{font-feature-settings:"tnum";color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;gap:12px;font-size:14px;display:flex}.build__tech{color:var(--ink-2);font-weight:500}.build__list{grid-gap:6px;color:var(--ink);gap:6px;margin-top:12px;font-size:15px;line-height:1.6;display:grid}.build:not(.build--image) .build__list{max-width:68ch}.build__list li{padding-left:18px;position:relative}.build__list li:before{background:#a3a5a8;background:var(--ink-4);content:"";width:7px;height:1px;position:absolute;top:.8em;left:2px}.build__figure{border:1px solid #e6e2d9;border:1px solid var(--line);border-radius:6px;border-radius:var(--radius);background:#fff;align-self:start;margin:14px 0 0;overflow:hidden}.build__figure img{width:100%;display:block}.personal+.personal{margin-top:48px}.personal__lead{color:var(--ink);font-size:17px;line-height:1.6}.personal__grid{grid-gap:20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.personal__figure{margin:16px 0 0}.personal__figure img{border:1px solid #e6e2d9;border:1px solid var(--line);border-radius:10px;border-radius:var(--radius-lg);background:#fff;width:100%;display:block}.personal__figure--logo{max-width:360px}.personal__figure--logo img{object-fit:cover;object-position:center;height:clamp(110px,18vw,150px)}.personal__figure--portrait{max-width:360px}.personal__figure figcaption{color:var(--ink-3);margin-top:8px;font-size:13.5px}.visitor-map{max-width:560px}.visitor-map canvas,.visitor-map iframe,.visitor-map img{max-width:100%;height:auto;display:block}.footer{border-top:1px solid #e6e2d9;border-top:1px solid var(--line)}.footer__inner{color:var(--ink-3);max-width:1160px;margin:0 auto;padding:24px 32px 40px;font-size:13.5px}.footer__inner span{white-space:nowrap}@media (width<=960px){.shell{grid-template-columns:minmax(0,1fr);padding:24px 20px 72px}.shell:not(.shell--home) .profile{display:none}.profile{grid-column-gap:16px;border-bottom:1px solid #e6e2d9;border-bottom:1px solid var(--line);text-align:left;grid-template-columns:76px minmax(0,1fr);align-items:center;column-gap:16px;margin-bottom:36px;padding-bottom:24px;display:grid;position:static}.profile__avatar{width:76px;height:76px;margin:0}.profile__id{display:contents}.profile__roles{grid-area:1/2;font-size:13.5px}.profile__credential{grid-area:2/1/auto/-1;justify-self:start;width:100%;max-width:360px;margin-top:16px}.profile__links{border-top:0;flex-wrap:wrap;grid-column:1/-1;justify-content:flex-start;gap:2px 16px;margin-top:16px;padding-top:0;display:flex}.topbar__inner{gap:16px;padding:0 0 0 20px;display:flex}.nav{scrollbar-width:none;margin-bottom:-1px;margin-left:auto;padding-bottom:1px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.nav::-webkit-scrollbar{display:none}.nav ul{padding-right:24px}.footer__inner{padding:20px}}@media (width<=640px){body{font-size:15.5px}.brand{font-size:19px}.page-title{font-size:28px}.row__meta .sep--terms{display:none}.row__terms{display:block}.footer__inner{grid-gap:2px;gap:2px;display:grid}.footer__inner .sep{display:none}.section{margin-top:30px}.award,.news__item{row-gap:2px}.award,.build--image,.news__item,.project,.pubs--thumbs .pub{grid-template-columns:minmax(0,1fr)}.pub__thumb{max-width:280px;margin-bottom:14px}.project__figure{max-width:360px;margin-bottom:16px}.project__head{flex-direction:column;gap:8px}.feature{grid-template-columns:minmax(0,1fr);row-gap:16px;padding:20px}.feature__icon{border-radius:20px;width:96px;height:96px}.feature__list,.personal__grid{grid-template-columns:minmax(0,1fr)}}@media (width<=400px){.venue__prefix--long{flex-basis:100%}}@media (width<=720px){.topbar__inner{padding:0 8px 0 20px}.nav__toggle{border-radius:6px;border-radius:var(--radius);color:var(--ink);cursor:pointer;font:500 15px/1 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font:500 15px/1 var(--sans);background:0 0;border:0;align-items:center;gap:10px;height:40px;margin-left:auto;padding:0 12px;display:inline-flex;position:relative}.nav__toggle:before{content:"";position:absolute;inset:-12px -8px -12px -12px}.nav__toggle-icon{width:16px;height:10px;position:relative}.nav__toggle-icon:after,.nav__toggle-icon:before{content:"";height:1.5px;transition:transform .2s cubic-bezier(.23,1,.32,1);transition:transform .2s var(--ease-out);background:currentColor;border-radius:1px;position:absolute;left:0;right:0}.nav__toggle-icon:before{top:0}.nav__toggle-icon:after{bottom:0}.nav__toggle[aria-expanded=true] .nav__toggle-icon:before{transform:translateY(4.25px)rotate(45deg)}.nav__toggle[aria-expanded=true] .nav__toggle-icon:after{transform:translateY(-4.25px)rotate(-45deg)}.nav{background:#f8f7f3;background:var(--ground);border-bottom:1px solid #e6e2d9;border-bottom:1px solid var(--line);max-height:calc(100vh - 64px);max-height:calc(100vh - var(--header-h));max-height:calc(100dvh - 64px);max-height:calc(100dvh - var(--header-h));overscroll-behavior:contain;margin:0;padding:0;display:none;position:absolute;top:100%;left:0;right:0;overflow:hidden auto;box-shadow:0 18px 24px -18px #16191d38;-webkit-mask-image:none;mask-image:none}.nav.is-open{animation:.18s cubic-bezier(.23,1,.32,1) nav-drop;animation:nav-drop .18s var(--ease-out);display:block}.nav ul{flex-direction:column;gap:0;padding:6px 0 10px}.nav__link{padding:0 20px;font-size:17px;line-height:48px}.nav__link:after{transform-origin:50%;width:2px;height:auto;inset:14px auto 14px 0;transform:scaleY(0)}.nav__link.is-active:after{transform:scaleY(1)}.nav-scrim{touch-action:none;z-index:15;background:#16191d2e;animation:.18s ease-out scrim-in;display:block;position:fixed;inset:0}}@keyframes nav-drop{0%{opacity:0;transform:translateY(-6px)}}@keyframes scrim-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.content{animation-duration:1ms}.doc-tab:after,.nav__link:after,.nav__toggle-icon:after,.nav__toggle-icon:before{transition:none}.nav.is-open{animation-name:scrim-in}.button:active,.link-chip:active{opacity:.85;transform:none}}.page-head--hero:after{display:none}.page-head--hero{margin-bottom:0}.page-head--hero+.section{margin-top:24px}@media (width>=961px){.page-head--hero+.section{margin-top:13px}}.hero{padding-top:6px;padding-bottom:24px;position:relative}.hero__title{color:var(--ink);font-family:var(--serif);letter-spacing:-.018em;margin:0;font-size:clamp(32px,4.2vw,42px);font-weight:600;line-height:1.1}.hero__lede,.hero__title{z-index:1;position:relative}.hero__lede{color:var(--ink-2);max-width:36em;margin:14px 0 0;font-size:19px;line-height:1.7}.hero .sr-only{-webkit-user-select:none;user-select:none}.hp{white-space:nowrap}.hp[data-p]{color:var(--ink)}.hw{display:inline-block}@media (width>=961px){.hero{min-height:148px;padding-bottom:12px}}.hero .hw{animation:.7s cubic-bezier(.215,.61,.355,1) backwards hero-blur;animation-delay:var(--d,0s)}.hero__title .hw{--dy:14px}.hero__lede .hw{--dy:8px}@keyframes hero-blur{0%{filter:blur(8px);opacity:0;transform:translateY(10px);transform:translateY(var(--dy,10px))}}.hero .hero__lede{line-height:1.85}.scan-layer{pointer-events:none;z-index:2;position:absolute;inset:0}.scan-line{animation:scan-move var(--sd) linear var(--s0) both,scan-settle .7s cubic-bezier(.23,1,.32,1) calc(var(--s0) + var(--sd)) both;background:var(--orange);opacity:0;height:1.5px;position:absolute;top:0;left:-14px;right:-14px}.scan-line:before{animation:scan-glow-out .5s ease calc(var(--s0) + var(--sd)) both;content:"";background:linear-gradient(#ff5f0500,#ff5f0521);height:40px;position:absolute;bottom:1.5px;left:0;right:0}@keyframes scan-move{0%{opacity:0;animation-timing-function:linear;transform:translateY(-20px)}5%{opacity:1;animation-timing-function:linear}88%{opacity:1;transform:translateY(calc(var(--h) - 12px));animation-timing-function:cubic-bezier(.2,.7,.3,1)}to{opacity:1;transform:translateY(calc(var(--h) - 1px))}}@keyframes scan-settle{to{background-color:var(--line-strong);height:1px;left:0;right:0}}@keyframes scan-glow-out{to{opacity:0}}.scan-line.is-static{background:var(--line-strong);opacity:1;height:1px;transform:translateY(calc(var(--h) - 1px));animation:none;left:0;right:0}.scan-line.is-static:before{display:none}.scan-box{animation:scan-lock .28s cubic-bezier(.34,1.3,.64,1) var(--t) both;transform:scale(1.25)}.scan-box,.scan-box:after{opacity:0;position:absolute}.scan-box:after{animation:scan-flash .42s ease-out calc(var(--t) + 40ms) both;content:"";background:#ff5f051a;border-radius:2px;inset:0}.scan-box.is-released{animation:.6s both scan-release}.scan-box.is-released:after{animation:none}@keyframes scan-lock{to{opacity:1;transform:scale(1)}}@keyframes scan-flash{30%{opacity:1}to{opacity:0}}@keyframes scan-release{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.scan-box .c{border:0 solid var(--orange);width:8px;height:8px;position:absolute}.scan-box .tl{border-top-width:1.5px;border-left-width:1.5px;top:0;left:0}.scan-box .tr{border-top-width:1.5px;border-right-width:1.5px;top:0;right:0}.scan-box .bl{border-bottom-width:1.5px;border-left-width:1.5px;bottom:0;left:0}.scan-box .br{border-bottom-width:1.5px;border-right-width:1.5px;bottom:0;right:0}.scan-label{animation:scan-label .28s cubic-bezier(.23,1,.32,1) var(--t) backwards;color:var(--orange-text);font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:650;line-height:1;position:absolute;transform:translateY(calc(-100% - 1px))}.scan-label--right{transform:translate(-100%,calc(-100% - 1px))}.scan-label{transition:color .7s}.scan-label.is-settled{color:var(--ink-3)}@keyframes scan-label{0%{opacity:0;translate:0 4px}to{opacity:1;translate:0}}@media (prefers-reduced-motion:reduce){.hero .hw,.scan-label{animation:none}.scan-label{opacity:1}}.load-state{max-width:760px;margin:100px auto;padding:24px}.load-state p{margin:16px 0}.profile__portrait{width:224px;height:224px;overflow:hidden}.profile__portrait-image{object-fit:cover;transform-origin:50% 35%;width:100%;height:100%;display:block;transform:scale(3)}.project--text{grid-template-columns:minmax(0,1fr)}.pub__title a{color:inherit;text-decoration:none}.pub__title a:hover{text-decoration:underline}.row__text{margin-top:8px;line-height:1.65}.row .link-row{flex-wrap:wrap}.link-row{align-items:flex-start}.link-chip{overflow-wrap:anywhere;min-width:0;max-width:100%;height:auto;min-height:30px;padding:4px 11px 4px 9px;line-height:1.5}.profile__meta{justify-content:center}@media (width<=960px){.profile{grid-template-columns:112px minmax(0,1fr)}.profile__portrait{width:112px;height:112px}.profile__meta{justify-content:flex-start}}@media (width<=640px){.hero .hp{white-space:normal}.hero .scan-label,.hero .scan-box{display:none}.project__title,.pub__title{overflow-wrap:anywhere}.row .link-row{flex-direction:column;align-items:stretch}.row .link-chip{width:100%;padding-block:8px}}
