@font-face{font-family:Source;src:url('/assets/fonts/source-sans-3-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Source;src:url('/assets/fonts/source-sans-3-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Source;src:url('/assets/fonts/source-sans-3-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Baskerville;src:url('/assets/fonts/libre-baskerville-700.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--ink:#22313e;--muted:#677782;--blue:#315e8b;--teal:#247c74;--line:#e2e9e9;--wash:#f1f7f5;--body:Source,'Segoe UI',sans-serif;--serif:Baskerville,Georgia,serif;--gradient:linear-gradient(105deg,#345f96 0%,#27887c 100%);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff;color:var(--ink);font:18px/1.65 var(--body);-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline;color:var(--teal)}button{font:inherit;color:inherit;cursor:pointer}img,video{max-width:100%}img{height:auto}button,a{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--teal);outline-offset:5px}p{margin:0 0 1em}h1,h2,h3{margin:0;font-weight:700}strong,b{font-weight:600}::selection{background:#d7eae5}.shell{width:min(1240px,calc(100% - 88px));margin-inline:auto}.skip{position:fixed;top:-60px;left:12px;background:#fff;padding:8px 15px;z-index:100}.skip:focus{top:8px}.preview-strip{background:#f2f6f7;border-bottom:1px solid #e8eeee;font-size:12px;color:#6a7982}.preview-strip .shell{min-height:29px;display:flex;align-items:center;justify-content:space-between;gap:16px}.preview-strip a{font-size:12px}.site-header{background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.header-inner{height:79px;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{display:inline-flex;align-items:center;gap:12px;font:700 19px/1.4 var(--serif);letter-spacing:-.5px;color:var(--ink)}.wordmark:hover{text-decoration:none}.wordmark::before{content:'';width:7px;height:22px;border-radius:2px;background:var(--gradient)}.nav{display:flex;align-items:center;gap:32px;font-size:16px;font-weight:600}.nav a{position:relative;padding:27px 0;color:#5a6b77}.nav a[aria-current=page]{color:var(--teal)}.nav a[aria-current=page]::after{content:'';position:absolute;bottom:16px;left:0;right:0;height:2px;background:var(--gradient)}.nav a:hover{text-decoration:none;color:var(--teal)}.nav .nav-github{display:flex;padding:22px 0}.nav-github svg{width:20px;height:20px;fill:currentColor}.hero{display:grid;grid-template-columns:minmax(0,1fr) 258px;column-gap:88px;padding-top:62px;padding-bottom:56px;align-items:center}.eyebrow{font-size:12px;font-weight:600;letter-spacing:1.7px;text-transform:uppercase;color:var(--teal);margin:0 0 15px}.gradient-label{background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.hero h1{font:700 49px/1.3 var(--serif);letter-spacing:-1.7px;color:#223342;margin-bottom:19px}.hero-lead{max-width:34ch;font-size:25px;font-weight:400;line-height:1.42;letter-spacing:-.25px;margin-bottom:21px}.hero-lead em{font-style:normal;color:var(--teal)}.hero-copy .intro{max-width:75ch;font-size:18px;line-height:1.65;margin-bottom:13px}.previous{font-size:16px;color:var(--muted);margin-bottom:20px}.personal-links{display:flex;align-items:center;flex-wrap:wrap;gap:22px;font-size:15px;font-weight:600}.personal-links a{display:inline-flex;gap:7px;align-items:center}.personal-links svg{width:17px;height:17px;fill:currentColor}.portrait{margin:0}.portrait img{display:block;width:258px;aspect-ratio:3/4;object-fit:cover;border-radius:3px}.portrait figcaption{margin-top:9px;font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:8px}.portrait figcaption span:first-child::before{content:'';display:inline-block;width:5px;height:5px;background:#398b7e;border-radius:50%;margin-right:6px;vertical-align:middle}.page-section{padding:36px 0 39px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.section-heading h2{font:700 29px/1.4 var(--serif);letter-spacing:-.7px}.section-heading .subtle-link{font-size:15px;white-space:nowrap}.section-description{color:var(--muted);font-size:17px;margin-top:7px;margin-bottom:0}.featured-note{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);border:1px solid #dce8e5;border-radius:5px;overflow:hidden;background:linear-gradient(100deg,#f0f6f4 0%,#f7fafb 66%,#f1f6f9 100%);color:var(--ink);transition:border-color .2s}.featured-note:hover{color:var(--ink);text-decoration:none;border-color:#9bbdb6}.note-copy{padding:33px 39px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.note-meta{display:flex;align-items:center;gap:11px;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:16px}.draft-tag{font-weight:600;font-size:11px;letter-spacing:.6px;background:#fff9e8;color:#8b6b2d;border:1px solid #eadfc7;border-radius:3px;padding:2px 7px;white-space:nowrap}.featured-note h3{font:700 28px/1.4 var(--serif);letter-spacing:-.6px;margin-bottom:13px;max-width:20ch}.featured-note p{font-size:17px;color:#5e7378;line-height:1.55;max-width:49ch;margin-bottom:20px}.read-link{font-size:15px;font-weight:600;color:var(--teal)}.note-art{display:flex;align-items:center;justify-content:center;padding:27px 32px 27px 16px}.note-art img{display:block;width:100%;height:auto;border:1px solid #e0e7e4;background:#fff}.research-section{border-bottom:1px solid var(--line)}.research-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:29px}.research-card{min-width:0}.research-art{display:block;position:relative;width:100%;aspect-ratio:8/5;border:1px solid #e0e7e9;background:#f8fafb;overflow:hidden;border-radius:3px}.research-art img,.research-art video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}.research-art video{opacity:0;transition:opacity .2s}.research-art video.is-playing{opacity:1}.card-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--muted);margin:15px 0 5px}.card-meta .award{color:var(--teal)}.research-card h3{font:700 19px/1.5 var(--serif);letter-spacing:-.25px;margin-bottom:9px}.research-card h3 a{color:var(--ink)}.research-card p{font-size:16px;line-height:1.6;color:var(--muted);margin-bottom:0}.text-button{border:0;padding:0;background:transparent;color:var(--blue);font-size:13px}.text-button:hover{color:var(--teal);text-decoration:underline}.updates{padding-top:38px;padding-bottom:50px}.updates-list{list-style:none;margin:0;padding:0}.updates-list li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:25px;padding:12px 0;border-bottom:1px solid #eef1f1;font-size:17px;line-height:1.65}.updates-list li:last-child{border-bottom:0}.updates-list time{padding-top:2px;color:var(--teal);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.updates-list abbr{text-decoration:none}.updates-list b{font-weight:600}.updates-list .news-badge{display:none}.updates-list .news-copy{color:var(--ink);font-weight:400}.updates-list .news-date{display:none}.site-footer{margin-top:28px;border-top:1px solid var(--line);padding:28px 0 30px}.footer-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;font-size:14px;color:var(--muted)}.footer-inner p{margin:0 0 4px}.footer-right{text-align:right}.footer-right a{margin-left:16px}.page-intro{padding:60px 0 34px}.page-intro h1{font:700 42px/1.4 var(--serif);letter-spacing:-1.2px;margin-bottom:13px}.page-intro p{font-size:20px;color:var(--muted);max-width:65ch;margin-bottom:0}.writing-list{padding:8px 0 35px}.writing-endnote{color:var(--muted);font-size:15px;margin-top:23px}.publication-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-top:12px;margin-bottom:30px}.chips{display:flex;flex-wrap:wrap;gap:6px 10px}.chip{border:1px solid transparent;padding:6px 12px;border-radius:3px;background:transparent;color:var(--blue);font-size:14px;font-weight:600}.chip:hover{background:#f0f5f5}.chip[aria-pressed=true]{background:#e7f2ef;color:#236a61;border-color:#d5e6e1}.publications{padding-bottom:20px}.pubs{list-style:none;margin:0;padding:0}.pub{display:grid;grid-template-columns:320px minmax(0,1fr);gap:34px;padding:29px 0;border-bottom:1px solid var(--line);scroll-margin-top:108px}.pub:first-child{padding-top:0}.pub .fig{margin:0;min-width:0;align-self:start}.figure-open{border:0;display:block;width:100%;position:relative;padding:0;background:#fff;text-align:left}.figure-open>img{display:block;width:100%;height:auto;max-height:255px;object-fit:contain;object-position:top}.figure-open>.paper-motion{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:#fff;opacity:0}.figure-open>.paper-motion.is-playing{opacity:1}.pub .body{min-width:0}.pub .title{font:700 20px/1.5 var(--serif);letter-spacing:-.2px;margin:0 0 10px}.pub .title a{color:var(--ink)}.pub .fire{display:none}.pub .authors{color:var(--muted);font-size:16px;line-height:1.65;margin-bottom:8px}.pub .authors b{color:var(--ink)}.pub .author-note{font-size:13px;color:var(--muted);line-height:1.5;margin:8px 0}.pub .venue{margin:7px 0 5px;font-size:16px;color:var(--blue)}.pub .status{font-size:14px;color:var(--muted)}.pub-links{margin:0 0 5px;display:flex;flex-wrap:wrap;align-items:center;gap:7px 14px;font-size:15px}.pub-links button{border:0;padding:0;background:none;color:var(--blue);font:inherit}.pub-links .code-label{color:var(--blue)}.pub .award{font-size:15px;color:#b44c47;font-weight:600;margin:6px 0}.pub .inline-icon{width:17px;height:17px;vertical-align:middle;margin-right:5px}.pub .summary{font-size:16px;line-height:1.7;margin:13px 0 0;padding:12px 16px;background:var(--wash);border-left:2px solid #a5c9bf;color:#50666e}.life-focus{max-width:850px;padding:15px 0 60px}.life-focus h3{font:700 27px/1.5 var(--serif);margin:15px 0}.life-focus .current-focus{font-size:13px;color:var(--muted)}.life-focus p{line-height:1.8}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:80px;padding-bottom:28px}.about-copy p{font-size:18px;line-height:1.8}.about-grid img{width:245px;border-radius:3px}.about-section{padding:32px 0 20px}.about-section h2{font:700 29px/1.4 var(--serif);letter-spacing:-.6px;margin-bottom:23px}.about-section h3{font-size:20px;margin:24px 0 12px}.about-section h4{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--teal);margin:24px 0 14px}.rows,.talks,.service-list,.honors,.plain{list-style:none;margin:0;padding:0}.row{display:grid;grid-template-columns:64px minmax(0,1fr) 135px;gap:24px;padding:23px 0;border-bottom:1px solid var(--line)}.logo-wrap{display:flex;align-items:center;justify-content:center;align-self:start;padding-top:4px}.logo{max-width:55px;max-height:55px;object-fit:contain}.row .org{font-weight:600;font-size:18px;margin-bottom:2px}.row .role{font-size:16px;margin-bottom:5px}.row .desc{color:var(--muted);font-size:15px;margin:0;max-width:84ch}.row .when{font-size:12px;color:var(--muted);text-align:right;padding-top:4px}.talks li,.plain li{margin-bottom:13px;font-size:17px;line-height:1.8}.talk-title{color:var(--muted);font-size:16px}.talk-date,.upcoming{font-size:14px;color:var(--muted)}.honors li{margin-bottom:12px}.about-section .inline-icon{width:16px;height:16px;vertical-align:middle}.about-section .section-body{margin:0}.about-section h2.sec{font:700 29px/1.4 var(--serif);margin-bottom:23px}.about-section hr{display:none}.about-section .service-years li{padding:8px 0;border-bottom:1px solid #eff2f2}.contact-layout{display:flex;align-items:start;justify-content:space-between;gap:30px}.contact-links{display:flex;flex-wrap:wrap;gap:16px}.contact-layout p{margin-bottom:10px}.article-band{background:linear-gradient(112deg,#f0f6f3,#f5f8fa);border-bottom:1px solid #e5ece8}.article-hero{max-width:1010px;margin:auto;padding:47px 0 43px}.breadcrumbs{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--muted);margin-bottom:27px}.article-hero h1{font:700 43px/1.4 var(--serif);letter-spacing:-1px;max-width:23ch;margin:14px 0 17px}.article-standfirst{font-size:21px;line-height:1.55;color:#536e74;max-width:64ch;margin-bottom:22px}.article-meta{display:flex;align-items:center;gap:13px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.article-meta .author{color:var(--blue);font-weight:600}.article-meta .separator{color:#b8c6c5}.article-layout{max-width:1070px;display:grid;grid-template-columns:minmax(0,790px) 175px;gap:80px;margin:36px auto 0;align-items:start}.article-content{min-width:0;font-size:19px;line-height:1.82}.article-content h2{font:700 25px/1.5 var(--serif);letter-spacing:-.45px;margin:43px 0 16px;scroll-margin-top:108px}.article-content h3{font-size:21px;margin:26px 0 10px}.article-content p{margin-bottom:20px}.tldr{background:#f2f7f5;border:1px solid #dce9e3;border-radius:4px;padding:23px 27px;margin:0 0 31px;font-size:18px;line-height:1.75}.tldr .eyebrow{font-size:11px;margin-bottom:10px}.tldr p:last-child{margin:0}.article-content figure{margin:31px 0}.article-content figure img{display:block;width:100%;border:1px solid #e1e7e4;padding:12px;background:#fff}.article-content figcaption{font-size:14px;line-height:1.6;color:var(--muted);margin-top:11px}.article-content blockquote{margin:28px 0;padding:1px 0 1px 22px;border-left:3px solid #80b3a7;color:#38695f;font-size:22px;font-style:italic;line-height:1.6}.article-content blockquote p{margin:8px 0}.article-content ol{padding-left:24px}.article-content li{padding-left:4px;margin:8px 0}.article-content pre{padding:21px 24px;overflow:auto;font:14px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;background:#f5f7f8;border:1px solid #e3e9e9;border-radius:4px;color:#34555f}.article-content code{font:14px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.article-content .references{font-size:16px;line-height:1.8}.article-content .references p{margin-bottom:12px}.article-aside{position:sticky;top:115px;padding-top:6px}.article-aside .eyebrow{font-size:10px;letter-spacing:1px;color:var(--muted);margin-bottom:14px}.toc{list-style:none;padding:0 0 0 15px;margin:0;border-left:1px solid var(--line)}.toc li{font-size:13px;line-height:1.6;margin:0 0 13px}.toc a{color:var(--muted)}.toc a.is-active{color:var(--teal);font-weight:600}.article-tools{display:flex;flex-wrap:wrap;gap:17px;margin:27px 0;font-size:14px}.article-tools button{background:none;border:0;padding:0;color:var(--blue);font-size:14px}.article-end{border-top:1px solid var(--line);margin-top:39px;padding-top:23px;font-size:16px;color:var(--muted)}.article-related{padding:16px 0 30px;font-size:16px}.article-related a{display:block;margin-bottom:8px}.lightbox{border:1px solid #dce6e3;border-radius:5px;width:min(1150px,92vw);max-height:90vh;padding:20px 25px;color:var(--ink);box-shadow:0 20px 80px #102c3b22}.lightbox::backdrop{background:#1c2c3aab}.lightbox header{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:15px}.lightbox h2{font-size:19px}.lightbox button{border:0;background:none;padding:0 4px;color:var(--blue);font-size:25px;line-height:1}.lightbox img{display:block;max-width:100%;max-height:65vh;margin:0 auto;object-fit:contain}.lightbox .caption{font-size:14px;color:var(--muted);margin:17px 0 8px}.lightbox .image-links{display:flex;gap:20px;font-size:14px}.article-progress{position:fixed;top:0;left:0;height:2px;background:var(--gradient);width:0;z-index:30}
@media(min-width:1600px){.hero{column-gap:110px}.hero-lead{max-width:40ch}}
@media(max-width:1100px){.shell{width:calc(100% - 64px)}.hero{column-gap:50px;grid-template-columns:minmax(0,1fr) 225px}.portrait img{width:225px}.hero h1{font-size:43px}.hero-lead{font-size:23px}.note-copy{padding:27px}.note-art{padding:25px 25px 25px 5px}.featured-note h3{font-size:25px}.research-grid{gap:22px}.research-card h3{font-size:18px}.pub{grid-template-columns:275px minmax(0,1fr);gap:28px}.article-layout{grid-template-columns:minmax(0,1fr) 160px;gap:40px}.article-hero{max-width:100%}}
@media(max-width:800px){.nav{gap:22px}.hero{column-gap:30px;grid-template-columns:minmax(0,1fr) 180px;padding-top:42px;padding-bottom:34px}.portrait img{width:180px}.hero h1{font-size:36px}.hero-lead{font-size:22px}.hero-copy .intro{font-size:17px}.previous{font-size:15px}.featured-note{grid-template-columns:1.15fr .85fr}.featured-note h3{font-size:23px}.note-copy{padding:25px}.note-art{padding:18px 18px 18px 0}.note-meta{font-size:10px;gap:8px;letter-spacing:.6px}.featured-note p{font-size:16px}.research-grid{gap:20px}.research-card h3{font-size:17px}.research-card p{font-size:15px}.card-meta{font-size:11px}.pub{grid-template-columns:235px minmax(0,1fr);gap:24px}.publication-tools{align-items:start;flex-direction:column;gap:10px}.pub .title{font-size:18px}.about-grid{gap:35px;grid-template-columns:minmax(0,1fr) 190px}.about-grid img{width:190px}.article-layout{display:block;max-width:790px}.article-aside{display:none}.article-hero h1{font-size:37px}.article-content{font-size:18px}.row{grid-template-columns:52px minmax(0,1fr) 100px;gap:20px}}
@media(max-width:600px){html{scroll-padding-top:125px}.shell{width:calc(100% - 40px)}.preview-strip .shell{font-size:10px;min-height:27px}.preview-strip a{font-size:10px}.header-inner{height:auto;min-height:104px;flex-direction:column;align-items:stretch;gap:9px;padding:14px 0 7px}.wordmark{font-size:17px;gap:9px}.wordmark::before{height:18px;width:5px}.nav{gap:27px;font-size:14px;justify-content:flex-start}.nav a{padding:6px 0 11px}.nav a[aria-current=page]::after{bottom:3px}.nav .nav-github{margin-left:auto;padding:6px 0 10px}.nav-github svg{width:17px;height:17px}.hero{position:relative;display:block;padding-top:35px;padding-bottom:16px}.hero-copy{padding-top:0}.hero .eyebrow{font-size:9px;letter-spacing:1.3px;max-width:calc(100% - 122px);min-height:27px;margin-bottom:12px}.hero h1{font-size:30px;line-height:1.4;max-width:calc(100% - 115px);letter-spacing:-.8px;margin-bottom:20px;min-height:85px;display:flex;align-items:center}.hero-lead{font-size:22px;max-width:none;margin-bottom:17px}.hero-copy .intro{font-size:17px}.previous{font-size:15px}.portrait{position:absolute;top:36px;right:0;width:101px}.portrait img{width:101px;aspect-ratio:3/4;border-radius:2px}.portrait figcaption{display:none}.personal-links{gap:21px;font-size:14px}.personal-links svg{width:15px;height:15px}.page-section{padding-top:29px;padding-bottom:25px}.section-heading{gap:14px;margin-bottom:18px;align-items:baseline}.section-heading h2{font-size:25px;letter-spacing:-.55px}.section-heading .subtle-link{font-size:13px}.section-description{font-size:15px;line-height:1.5}.featured-note{grid-template-columns:1fr}.note-copy{padding:24px 23px 6px}.featured-note h3{font-size:24px;max-width:22ch}.note-meta{font-size:10px;margin-bottom:13px}.featured-note p{font-size:16px;margin-bottom:15px}.note-art{padding:17px 23px 24px}.note-art img{max-height:215px;object-fit:contain}.read-link{font-size:14px}.research-grid{grid-template-columns:1fr;gap:29px}.research-art{aspect-ratio:8/5}.research-card h3{font-size:20px;margin-bottom:6px}.research-card p{font-size:16px}.card-meta{font-size:12px;margin-top:11px}.updates-list li{grid-template-columns:62px minmax(0,1fr);gap:16px;font-size:16px;padding:13px 0}.updates-list time{font-size:12px}.footer-inner{flex-direction:column;gap:16px;font-size:13px}.footer-right{text-align:left}.footer-right a{margin:0 16px 0 0}.site-footer{padding-top:23px}.page-intro{padding:35px 0 25px}.page-intro h1{font-size:34px}.page-intro p{font-size:18px}.writing-endnote{font-size:14px}.publication-tools{margin-top:0;margin-bottom:22px}.chips{gap:5px 4px}.chip{font-size:12px;padding:5px 8px}.pub{grid-template-columns:1fr;gap:18px;padding:25px 0}.pub .fig{width:100%;max-width:none}.figure-open>img{max-height:235px;object-position:center}.pub .title{font-size:20px}.pub .authors{font-size:15px}.pub .summary{font-size:15px}.life-focus h3{font-size:23px}.about-grid{display:block}.about-grid>img{display:none}.about-copy p{font-size:17px}.about-section{padding-top:26px}.about-section h2,.about-section h2.sec{font-size:25px}.row{grid-template-columns:44px minmax(0,1fr);gap:13px;padding:20px 0}.row .when{grid-column:2;text-align:left;padding:0;margin-top:-9px;font-size:12px}.logo{max-width:40px;max-height:45px}.row .org{font-size:17px}.row .role{font-size:15px}.row .desc{font-size:15px}.contact-layout{flex-direction:column;gap:10px}.article-hero{padding:29px 0 30px}.breadcrumbs{font-size:12px;margin-bottom:22px}.article-hero h1{font-size:32px;letter-spacing:-.7px;line-height:1.4}.article-standfirst{font-size:18px}.article-meta{font-size:13px;gap:10px}.article-layout{margin-top:25px}.article-content{font-size:18px;line-height:1.8}.article-content h2{font-size:24px;margin-top:34px}.tldr{padding:18px 19px;font-size:17px}.article-content figure img{padding:5px}.article-content figcaption{font-size:13px}.article-content blockquote{font-size:20px;padding-left:17px}.article-content pre{padding:17px;font-size:12px}.lightbox{padding:15px;width:95vw}.lightbox h2{font-size:16px}.lightbox img{max-height:61vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* Reference-inspired proportions; original layout and styling for this site. */
@font-face{font-family:'Hanken';src:url('/fonts/hanken-grotesk-variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
:root{--ink:#202124;--muted:#5f6368;--blue:#1967d2;--teal:#1967d2;--line:#e5e7eb;--wash:#f7f9fa;--body:Hanken,'Helvetica Neue',Arial,sans-serif;--serif:Hanken,'Helvetica Neue',Arial,sans-serif;--gradient:linear-gradient(90deg,#1967d2,#1967d2)}
body{font:400 16px/1.55 var(--body);color:var(--ink)}.shell{width:min(1068px,calc(100% - 48px))}.preview-strip{display:none}.header-inner{height:72px}.wordmark{font:600 21px/1.4 var(--body);letter-spacing:-.35px;gap:0}.wordmark::before{display:none}.nav{font-size:16px;gap:28px}.nav a{font-weight:600;color:#3c4043;padding:24px 0}.nav a[aria-current=page]{color:#202124}.nav a[aria-current=page]::after{bottom:15px;background:#1a73e8}.nav-github svg{fill:#5f6368}.nav .nav-github{padding:23px 0}.profile{display:grid;grid-template-columns:290px minmax(0,1fr);column-gap:86px;align-items:start;padding:72px 0 46px}.profile-photo{display:block;width:290px;height:290px;object-fit:cover;object-position:50% 80%;border-radius:7px}.profile-social{display:flex;align-items:center;justify-content:space-around;gap:22px;margin:24px 0 31px}.profile-social a{display:flex;align-items:center;justify-content:center;width:25px;height:25px;color:#637282}.profile-social a:hover{color:var(--blue)}.profile-social svg{width:20px;height:20px;fill:currentColor}.affiliations{display:grid;gap:20px}.affiliation{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:12px}.affiliation img{max-width:34px;max-height:41px;object-fit:contain}.affiliation a{display:block;color:#202124;font-size:16px;font-weight:600;line-height:1.3}.affiliation span{display:block;color:#5f6368;font-size:13px;line-height:1.4;margin-top:4px}.profile-copy h1{font:600 46px/1.1 var(--body);letter-spacing:-1.1px;margin:0 0 27px}.profile-copy p{font-size:18px;line-height:1.6;color:#3c4043;margin:0 0 18px}.profile-copy p:last-child{margin-bottom:0}.profile-copy p a{color:#202124;border-bottom:1px solid #bdd3fb;text-decoration:none}.profile-copy p a:hover{color:var(--blue);border-color:#1a73e8}.profile-copy strong,.profile-copy b{font-weight:600}.page-section{padding:34px 0 25px}.section-heading{margin-bottom:25px;align-items:center}.section-heading h2{font:600 30px/1.2 var(--body);letter-spacing:-.5px}.section-heading .subtle-link{font-size:15px;line-height:1.4}.blog-section{padding-top:29px}.blog-list{display:grid;gap:25px}.blog-entry{padding:0 0 6px}.blog-date{font-size:13px;color:#6e7378;margin:0 0 8px}.blog-entry h3{font-size:23px;line-height:1.35;font-weight:600;letter-spacing:-.3px;margin:0 0 9px}.blog-entry h3 a{color:#202124}.blog-entry h3 a:hover{color:var(--blue)}.blog-entry>p:last-child{font-size:16px;line-height:1.6;color:#5f6368;margin:0}.updates{padding-top:35px;padding-bottom:26px}.updates-list li{padding:5px 0;border:0;grid-template-columns:84px minmax(0,1fr);gap:18px;font-size:16px;line-height:1.65}.updates-list time{font-size:13px;font-weight:400;color:#73767b;padding-top:3px}.research-section{border:0;padding-top:35px}.research-grid{display:grid;grid-template-columns:1fr;gap:28px}.research-card{display:grid;grid-template-columns:174px minmax(0,1fr);grid-template-rows:auto auto auto;gap:0 24px;align-items:start}.research-art{grid-column:1;grid-row:1/4;width:174px;aspect-ratio:8/5;border-radius:3px}.card-meta{grid-column:2;font-size:12px;margin:0 0 4px;justify-content:start;gap:12px}.card-meta .award{color:#5f6368}.research-card h3{grid-column:2;font:600 20px/1.4 var(--body);letter-spacing:-.2px;margin:0 0 6px}.research-card h3 a{color:#202124}.research-card p{grid-column:2;font-size:15px;line-height:1.55;max-width:80ch;margin:0}.motion-controls{text-align:right;margin-top:17px}.site-footer{margin-top:42px;padding:26px 0}.footer-inner{font-size:13px}.design-credit{font-size:11px;color:#7c8389}.footer-inner p{margin-bottom:5px}.page-intro{padding:49px 0 26px}.page-intro h1{font:600 40px/1.2 var(--body);letter-spacing:-.8px}.page-intro p{font-size:18px;line-height:1.6;color:#5f6368}.eyebrow{font-weight:500;font-size:11px;letter-spacing:1px}.gradient-label{background:none;color:#5f6368}.featured-note{display:block;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:0 0 25px}.note-copy{display:block;padding:0}.note-art{display:none}.note-meta{font-size:11px;margin-bottom:10px;letter-spacing:.4px}.draft-tag{border:0;border-left:1px solid #d9dde2;border-radius:0;background:transparent;color:#6f7379;font-size:10px;padding:0 0 0 12px}.featured-note h3{font:600 25px/1.4 var(--body);letter-spacing:-.3px;max-width:none;margin-bottom:10px}.featured-note p{max-width:none;font-size:17px;line-height:1.65;color:#5f6368;margin-bottom:13px}.read-link{color:var(--blue);font-weight:400;font-size:14px}.featured-note:hover{border-color:var(--line)}.writing-list{padding-top:5px}.chip{font-weight:500;border-radius:3px;color:#3c4043;font-size:14px}.chip[aria-pressed=true]{color:#1967d2;background:#eff5ff;border-color:#dce8fc}.chip:hover{background:#f5f8fc}.publication-tools{margin-top:10px;padding-bottom:17px}.pub{grid-template-columns:300px minmax(0,1fr);gap:30px}.pub .title{font:600 21px/1.4 var(--body);letter-spacing:-.25px}.pub .authors{font-size:15px;line-height:1.6}.pub .venue{font-size:15px}.pub .award{font-size:14px}.pub .summary{background:#f7f9fc;border-left:2px solid #bed3f8;color:#475c73}.about-grid{gap:50px;grid-template-columns:minmax(0,1fr) 220px}.about-grid img{width:220px}.about-copy p{font-size:18px;line-height:1.65}.about-section h2,.about-section h2.sec{font:600 29px/1.3 var(--body);letter-spacing:-.4px}.about-section h3{font-weight:600}.about-section h4{color:#5f6368}.row .org{font-size:17px}.row .role{font-size:15px}.row .desc{font-size:15px}.challenge-list{list-style:none;padding:0;margin:0}.challenge-list>li{display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px;padding:25px 0;border-bottom:1px solid var(--line)}.challenge-cover{position:relative;display:block;aspect-ratio:8/5;border:1px solid var(--line);overflow:hidden}.challenge-cover img,.challenge-cover video{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0;background:#fff}.challenge-cover video{opacity:0}.challenge-cover video.is-playing{opacity:1}.challenge-title{font:600 20px/1.4 var(--body);margin:0 0 8px!important}.challenge-role{font-size:15px;margin-bottom:7px}.challenge-links{font-size:14px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.challenge-description{font-size:15px;color:var(--muted);margin:0}.challenge-venue{font-weight:600;color:var(--blue)}.about-section .section-heading h2{margin-bottom:0}.article-band{background:#f5f8fa}.article-hero{max-width:960px;padding:43px 0 40px}.article-hero h1{font:600 43px/1.18 var(--body);letter-spacing:-1px;max-width:27ch}.article-standfirst{font-size:20px;color:#52606a}.article-meta{font-size:13px}.article-layout{max-width:1020px;grid-template-columns:minmax(0,760px) 170px;gap:70px}.article-content{font-size:18px;line-height:1.8}.article-content h2{font:600 27px/1.3 var(--body);letter-spacing:-.4px}.tldr{background:#f5f8fa;border:1px solid #e1e8ed;font-size:17px}.article-content blockquote{border-color:#9dbbe8;color:#486a98;font-style:normal;font-size:21px}.article-progress{background:#1a73e8}.article-content figcaption{font-size:13px}.article-aside .eyebrow{font-size:10px}.toc a.is-active{color:#1967d2}.lightbox{font-family:var(--body)}
@media(max-width:1100px){.profile{grid-template-columns:250px minmax(0,1fr);gap:55px}.profile-photo{width:250px;height:250px}.profile-copy h1{font-size:42px}.profile-copy p{font-size:17px}.pub{grid-template-columns:270px minmax(0,1fr);gap:27px}}
@media(max-width:800px){.profile{grid-template-columns:215px minmax(0,1fr);gap:35px;padding-top:44px;padding-bottom:30px}.profile-photo{width:215px;height:215px}.profile-copy h1{font-size:37px;margin-bottom:22px}.profile-copy p{font-size:17px}.profile-social{gap:14px;margin:21px 0 26px}.affiliations{gap:15px}.affiliation a{font-size:14px}.affiliation span{font-size:12px}.nav{gap:23px}.pub{grid-template-columns:235px minmax(0,1fr);gap:24px}.pub .title{font-size:20px}.challenge-list>li{grid-template-columns:240px minmax(0,1fr);gap:23px}.article-layout{display:block;max-width:760px}.article-hero h1{font-size:38px}.about-grid{gap:30px;grid-template-columns:minmax(0,1fr) 190px}.about-grid img{width:190px}}
@media(max-width:640px){.shell{width:calc(100% - 40px)}.header-inner{height:auto;min-height:101px;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:16px 0 7px}.wordmark{font-size:20px;line-height:1.3}.nav{gap:29px;font-size:14px}.nav a{padding:6px 0 10px}.nav a[aria-current=page]::after{bottom:2px}.nav .nav-github{margin-left:auto;padding:5px 0 10px}.profile{grid-template-columns:1fr;gap:29px;padding:31px 0 22px}.profile-sidebar{display:grid;grid-template-columns:132px minmax(0,1fr);column-gap:24px;row-gap:15px;align-items:start}.profile-photo{width:132px;height:147px;grid-column:1;grid-row:1/3;border-radius:5px}.profile-social{grid-column:2;grid-row:1;justify-content:space-between;margin:3px 0 0;gap:10px}.profile-social a{width:20px;height:20px}.profile-social svg{width:18px;height:18px}.affiliations{grid-column:2;grid-row:2;gap:13px}.affiliation{grid-template-columns:25px minmax(0,1fr);gap:9px}.affiliation img{max-width:25px;max-height:31px}.affiliation a{font-size:13px;line-height:1.25}.affiliation span{font-size:11px;margin-top:3px}.profile-copy h1{font-size:36px;margin-bottom:20px;letter-spacing:-.8px}.profile-copy p{font-size:17px;line-height:1.65;margin-bottom:17px}.section-heading h2{font:600 27px/1.2 var(--body);letter-spacing:-.4px}.page-section{padding:28px 0 18px}.blog-section{padding-top:25px}.section-heading{margin-bottom:21px}.section-heading .subtle-link{font-size:13px}.blog-entry h3{font-size:21px;line-height:1.4}.blog-entry>p:last-child{font-size:15px}.updates-list li{grid-template-columns:64px minmax(0,1fr);gap:14px;font-size:15px;line-height:1.65;padding:6px 0}.updates-list time{font-size:11px}.research-grid{gap:26px}.research-card{grid-template-columns:112px minmax(0,1fr);gap:0 17px}.research-art{width:112px;aspect-ratio:1/1;grid-row:1/4}.research-card h3{font:600 17px/1.35 var(--body);margin-bottom:5px}.card-meta{font-size:10px;gap:3px 8px;margin-bottom:5px}.research-card p{font-size:13px;line-height:1.5}.motion-controls{margin-top:20px}.site-footer{margin-top:31px}.footer-inner{font-size:12px}.design-credit{font-size:11px}.page-intro{padding:33px 0 23px}.page-intro h1{font-size:35px}.page-intro p{font-size:17px}.featured-note h3{font-size:23px}.featured-note p{font-size:16px}.note-copy{padding:0}.pub{grid-template-columns:1fr;gap:17px}.pub .title{font-size:21px}.pub .fig{width:100%}.figure-open>img{max-height:235px}.challenge-list>li{grid-template-columns:1fr;gap:15px}.challenge-cover{width:100%;max-width:350px}.about-grid{display:block}.about-grid>img{display:none}.about-copy p{font-size:17px}.about-section h2,.about-section h2.sec{font-size:27px}.article-hero{padding:28px 0 30px}.article-hero h1{font-size:33px;line-height:1.22}.article-standfirst{font-size:18px}.article-content h2{font:600 25px/1.3 var(--body)}.article-content{font-size:17px;line-height:1.8}.tldr{font-size:16px}.article-aside{display:none}}

/* Portrait and biography balance for the current preview. */
.shell{width:min(1100px,calc(100% - 56px))}.profile{grid-template-columns:264px minmax(0,1fr);column-gap:64px;padding-top:60px;padding-bottom:24px}.profile-photo-frame{display:block;width:264px;height:280px;max-width:100%;border:0;padding:0;border-radius:7px;overflow:hidden;background:#f3f5f5;cursor:zoom-in}.profile-photo-frame .profile-photo{display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:50% 70%;transform:scale(2.05);transform-origin:50% 50%;border-radius:0}.profile-social{width:244px;max-width:100%;justify-content:space-between;margin:19px 0 24px}.profile-copy h1{font-size:44px;line-height:1.13;letter-spacing:-1px;margin-bottom:25px}.profile-copy p{font-size:18px;line-height:1.68;color:#3c4043;margin-bottom:17px}.profile-copy p a{color:#315f93;border-bottom-color:#c8d7e8}.profile-copy p:last-child{max-width:42em;margin-bottom:0}.affiliations{gap:15px}.affiliation{grid-template-columns:30px minmax(0,1fr);gap:11px}.affiliation img{max-width:30px;max-height:37px}.affiliation a{font-size:15px;font-weight:550}.affiliation span{font-size:12px;margin-top:4px}.blog-section{padding-top:22px}.blog-entry h3{font-size:22px;line-height:1.4}.blog-entry>p:last-child{font-size:16px;line-height:1.65}.section-heading h2{font-size:28px;line-height:1.25}.section-heading{margin-bottom:22px}.updates{padding-top:29px}.research-section{padding-top:29px}
@media(max-width:1100px){.profile{grid-template-columns:238px minmax(0,1fr);column-gap:45px;padding-top:48px}.profile-photo-frame{width:238px;height:260px}.profile-social{width:226px}.profile-copy h1{font-size:41px}.profile-copy p{font-size:17px}}
@media(max-width:800px){.profile{grid-template-columns:210px minmax(0,1fr);gap:34px;padding-top:38px}.profile-photo-frame{width:210px;height:235px}.profile-social{width:205px;margin-top:18px;margin-bottom:22px}.profile-copy h1{font-size:36px}.profile-copy p{font-size:17px;line-height:1.65}.affiliation a{font-size:14px}.affiliation span{font-size:12px}}
@media(max-width:640px){.shell{width:calc(100% - 40px)}.profile{grid-template-columns:1fr;gap:27px;padding-top:30px;padding-bottom:14px}.profile-sidebar{grid-template-columns:132px minmax(0,1fr);column-gap:24px;row-gap:15px}.profile-photo-frame{width:132px;height:147px;grid-column:1;grid-row:1/3;border-radius:5px}.profile-photo-frame .profile-photo{width:100%;height:100%;object-position:50% 70%}.profile-social{width:auto;max-width:none;grid-column:2;grid-row:1;margin:3px 0 0;gap:10px}.affiliations{grid-column:2;grid-row:2;gap:13px}.affiliation{grid-template-columns:25px minmax(0,1fr);gap:9px}.affiliation img{max-width:25px;max-height:31px}.affiliation a{font-size:13px}.affiliation span{font-size:11px}.profile-copy h1{font-size:34px;margin-bottom:19px}.profile-copy p{font-size:17px;line-height:1.68;margin-bottom:16px}.blog-section{padding-top:23px}.section-heading h2{font-size:26px}.blog-entry h3{font-size:21px}.blog-entry>p:last-child{font-size:15px}}

/* White surfaces, blue-violet headings, and a separate vivid news gradient. */
:root {
  --ink: #253044;
  --muted: #6a6e7e;
  --blue: #3863bb;
  --teal: #6753a1;
  --line: #e5e8f1;
  --gradient: linear-gradient(100deg, #325eaa 0%, #7650aa 48%, #2e6bc5 100%);
  --news-gradient: linear-gradient(100deg, #b52f3f 0%, #7b459c 48%, #2f65c4 100%);
}
::selection { background: #e4e9fa; }
.home-page {
  background: #fff;
}
.site-header { border-bottom-color: var(--line); }
.header-inner { height: 68px; }
.nav a[aria-current=page] { color: #8450a7; }
.nav a[aria-current=page]::after { background: var(--gradient); }
.profile {
  grid-template-columns: 240px minmax(0, 1fr);
  column-gap: 58px;
  padding: 38px 0 17px;
}
.profile-photo-frame {
  width: 240px;
  height: 246px;
  border-radius: 8px;
  box-shadow: 0 6px 22px #693a8c12;
}
.profile-social { width: 230px; margin: 17px 0 20px; }
.profile-social a { color: #5c64a1; }
.profile-social a:hover { color: var(--teal); }
.affiliation-profile { color: inherit; text-decoration: none; }
.affiliation-profile .affiliation-name { display: block; color: var(--blue); font-size: 15px; font-weight: 550; line-height: 1.3; }
.affiliation-profile:hover { text-decoration: none; }
.affiliation-profile:hover .affiliation-name { text-decoration: underline; }

.profile-copy h1 { font-size: 44px; margin-bottom: 20px; }
.profile-copy p { font-size: 18px; line-height: 1.62; margin-bottom: 14px; }
.profile-copy p a { color: #4863a4; border-bottom-color: #d0d9ed; }
.profile-copy p:last-of-type { margin-bottom: 0; }
.research-topics { display: flex; flex-wrap: wrap; gap: 7px 18px; margin-top: 18px; }
.research-topics a { color: #775397; font-size: 13px; font-weight: 600; }
.research-topics a:nth-child(2n) { color: #486bb0; }
.research-topics a:hover { text-decoration-color: #7650aa; }
.section-heading {
  margin-bottom: 17px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.section-heading h2 {
  font: 700 25px/1.35 Baskerville, Georgia, serif;
  letter-spacing: -.6px;
}
.section-heading .subtle-link { font-size: 14px; color: #6654a5; }
.page-section { padding: 22px 0 17px; }
.blog-section { padding-top: 20px; }
.featured-note {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 196px;
  align-items: center;
  gap: 28px;
  padding: 19px 23px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faff;
}
.featured-note:hover { border-color: #c5abd9; text-decoration: none; }
.note-copy { padding: 0; }
.note-meta { margin-bottom: 7px; font-size: 10px; color: #66769b; }
.draft-tag { color: #73758b; border-left-color: #d6ddec; }
.featured-note h3 {
  font: 600 23px/1.32 var(--body);
  max-width: none;
  margin: 0 0 8px;
  color: #40334d;
}
.featured-note p { font-size: 15px; line-height: 1.5; margin-bottom: 10px; color: #74657e; }
.read-link { font-size: 13px; color: #6b53ac; font-weight: 600; }
.note-art { display: block; padding: 0; }
.note-art img {
  display: block;
  width: 196px;
  height: 123px;
  object-fit: contain;
  border: 1px solid #e5deeb;
  border-radius: 3px;
  background: #fff;
}
.updates { padding-top: 24px; padding-bottom: 12px; }
.updates-list li {
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 15px;
  padding: 6px 0;
  font-size: 16px;
  line-height: 1.65;
}
.updates-list time { color: #6572a0; font-weight: 500; padding-top: 2px; }
.updates-list .update-copy { width: fit-content; max-width: 100%; color: #8852a1; font-weight: 500; }
.updates-list b { font-weight: 700; }
.updates-list abbr { text-decoration: none; }
.research-section { padding-top: 24px; }
.research-grid { gap: 23px; }
.research-card { grid-template-columns: 174px minmax(0, 1fr); gap: 0 24px; }
.card-meta { color: #816693; }
.card-meta .award { color: #ae466f; }
.research-card h3 a { color: #3e3950; }
.page-intro h1 { color: #354873; }
.article-band { background: #f5f8ff; }
.article-progress { background: var(--gradient); }
.tldr { background: #f7f9ff; border-color: var(--line); }
.chip[aria-pressed=true] { color: #754d9d; background: #f0e9f8; border-color: #e2d5ed; }
.site-footer { margin-top: 30px; padding: 23px 0; border-top-color: var(--line); }

@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .profile-copy h1,
  .profile-copy p:last-of-type strong,
  .section-heading h2,
  .gradient-label,
  .updates-list .update-copy {
    background-image: var(--gradient);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  .profile-copy h1, .section-heading h2 { width: fit-content; max-width: 100%; }
  .updates-list .update-copy { background-image: var(--news-gradient); }
  .updates-list .update-copy * { color: inherit; -webkit-text-fill-color: inherit; }
}
@media (max-width: 1100px) {
  .profile { grid-template-columns: 220px minmax(0, 1fr); gap: 42px; }
  .profile-photo-frame { width: 220px; height: 236px; }
  .profile-social { width: 210px; }
  .profile-copy h1 { font-size: 40px; }
  .profile-copy p { font-size: 17px; }
}
@media (max-width: 800px) {
  .profile { grid-template-columns: 190px minmax(0, 1fr); gap: 30px; padding-top: 30px; }
  .profile-photo-frame { width: 190px; height: 214px; }
  .profile-social { width: 185px; }
  .profile-copy h1 { font-size: 35px; }
  .profile-copy p { font-size: 17px; }
  .affiliation a { font-size: 13px; }
  .affiliation-profile .affiliation-name { font-size: 13px; }
  .affiliation span { font-size: 11px; }
  .research-topics { gap: 7px 14px; margin-top: 14px; }
  .featured-note { grid-template-columns: minmax(0, 1fr) 170px; gap: 20px; padding: 18px 20px; }
  .featured-note h3 { font-size: 21px; }
  .note-art img { width: 170px; height: 112px; }
}
@media (max-width: 640px) {
  .header-inner { height: auto; }
  .profile { grid-template-columns: 1fr; gap: 23px; padding-top: 26px; padding-bottom: 12px; }
  .profile-sidebar { grid-template-columns: 124px minmax(0, 1fr); gap: 15px 22px; }
  .profile-photo-frame { width: 124px; height: 142px; }
  .profile-social { width: auto; margin: 3px 0 0; }
  .profile-copy h1 { font-size: 34px; margin-bottom: 17px; }
  .profile-copy p { font-size: 17px; line-height: 1.62; margin-bottom: 14px; }
  .research-topics { margin-top: 16px; font-size: 13px; gap: 7px 18px; }
  .section-heading { padding-bottom: 10px; margin-bottom: 14px; }
  .section-heading h2 { font-size: 23px; }
  .page-section { padding-top: 22px; padding-bottom: 12px; }
  .featured-note { grid-template-columns: minmax(0, 1fr) 88px; gap: 12px; padding: 16px; }
  .note-meta { flex-wrap: wrap; gap: 4px 8px; font-size: 9px; letter-spacing: .2px; }
  .draft-tag { font-size: 9px; padding-left: 8px; }
  .featured-note h3 { font-size: 18px; line-height: 1.35; max-width: none; }
  .featured-note p { font-size: 14px; line-height: 1.5; }
  .note-art img { width: 88px; height: auto; aspect-ratio: 1; object-fit: contain; }
  .updates-list li { grid-template-columns: 60px minmax(0, 1fr); gap: 11px; font-size: 15px; padding: 6px 0; }
  .updates-list time { font-size: 11px; }
  .research-card { grid-template-columns: 112px minmax(0, 1fr); gap: 0 17px; }
}
@media (forced-colors: active) {
  .profile-copy h1, .profile-copy p:last-of-type strong, .section-heading h2,
  .gradient-label, .updates-list .update-copy { background: none; color: CanvasText; -webkit-text-fill-color: CanvasText; }
}
@media print {
  .profile-copy h1, .profile-copy p:last-of-type strong, .section-heading h2,
  .gradient-label, .updates-list .update-copy { background: none; color: #222; -webkit-text-fill-color: #222; }
}

/* Put the substance of the research back on the landing page. */
.home-research { padding-top: 23px; }
.research-topics > span { color: #88728f; font-size: 13px; }

/* Keep the profile mark small and aligned with the footer text links. */
.footer-right .footer-links { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 16px; min-height: 22px; }
.footer-right .footer-links a { margin: 0; }
.footer-stanford { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; }
.footer-stanford img { display: block; width: 16px; height: 20px; object-fit: contain; }
@media (max-width: 640px) {
  .footer-right .footer-links { justify-content: flex-start; }
}

/* Contact uses the same small blue icon treatment as the profile links. */
#contact .contact-address {
  color: var(--ink);
  font-size: 16px;
  font-style: normal;
  line-height: 1.75;
}
#contact .contact-institution { font-weight: 500; }
#contact .contact-email {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  color: var(--blue);
  line-height: 1.5;
}
#contact .stanford-email-mark {
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 24px;
  object-fit: contain;
}
#contact .contact-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px 24px;
  margin-top: 18px;
}
#contact .contact-social {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--blue);
  font-size: 15px;
  font-style: normal;
  line-height: 1.5;
  white-space: nowrap;
}
#contact .contact-social svg {
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  fill: currentColor;
}
#contact .social-stanford-mark {
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 22px;
  object-fit: contain;
}
.research-recognition {
  display: grid;
  grid-template-columns: 1fr 1.15fr 1.2fr;
  margin: 0 0 20px;
  border: 1px solid #e6dded;
  border-radius: 6px;
  background: linear-gradient(110deg, #fff5f9, #faf6ff 53%, #f2f6ff);
}
.research-recognition > a, .research-recognition > div {
  padding: 15px 18px;
  min-width: 0;
  border-right: 1px solid #e7dfef;
}
.research-recognition > :last-child { border-right: 0; }
.research-recognition strong { display: block; color: #a63e79; font-size: 14px; margin-bottom: 4px; }
.research-recognition span { display: block; color: #796184; font-size: 12px; line-height: 1.5; }
.research-recognition span a { color: #705a99; }
.research-jump { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding-bottom: 15px; }
.research-jump nav { display: flex; flex-wrap: wrap; gap: 7px 22px; }
.research-jump nav a { font-size: 14px; font-weight: 600; }
.research-jump .text-button { white-space: nowrap; font-size: 12px; }
.research-domain { scroll-margin-top: 94px; }
.domain-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-top: 16px;
  padding: 14px 0 12px;
  border-top: 1px solid #e6e0ed;
}
.domain-heading h3 { font: 600 22px/1.4 var(--body); color: #69518d; letter-spacing: -.3px; }
.domain-heading p { color: #7b7386; font-size: 14px; line-height: 1.5; margin: 5px 0 0; }
.domain-heading > a { font-size: 13px; white-space: nowrap; }
.home-research .pub { grid-template-columns: 224px minmax(0, 1fr); gap: 29px; padding: 22px 0; }
.home-research .pub:first-child { padding-top: 17px; }
.home-research .pub:last-child { border-bottom: 0; }
.home-research .pub .figure-open > img { max-height: 210px; }
.home-research .pub .title { font-size: 20px; line-height: 1.35; margin: 0 0 7px; }
.home-research .pub .research-takeaway { color: #5a5670; font-size: 15px; line-height: 1.55; margin-bottom: 9px; }
.home-research .pub .authors { font-size: 13.5px; line-height: 1.55; margin-bottom: 7px; }
.home-research .pub .venue { font-size: 14px; line-height: 1.5; margin: 5px 0; }
.home-research .pub-links { font-size: 14px; gap: 5px 13px; line-height: 1.5; }
.home-research .pub .award { font-size: 14px; line-height: 1.5; margin: 6px 0 0; }
.home-research .pub .author-note { font-size: 12px; margin: 7px 0 0; }
.science-direction {
  display: grid;
  grid-template-columns: 205px minmax(0, 1fr);
  align-items: center;
  gap: 5px 25px;
  padding: 20px 23px;
  margin-top: 15px;
  border: 1px solid #e7dfee;
  border-radius: 6px;
  background: #f8faff;
  scroll-margin-top: 96px;
}
.science-direction > div { grid-column: 1; grid-row: 1 / 3; }
.direction-status { font-size: 11px; color: #94729d; }
.science-direction h3 { font-size: 20px; line-height: 1.4; color: #71528f; margin-top: 4px; }
.science-direction p { grid-column: 2; font-size: 14px; line-height: 1.6; color: #6c6478; margin: 0; }
.science-direction > a { grid-column: 2; font-size: 13px; }
.further-work { display: flex; flex-wrap: wrap; gap: 7px 17px; margin: 18px 0 4px; font-size: 13px; line-height: 1.7; }
.further-work strong { color: #776783; }
.home-challenges .challenge-list > li { grid-template-columns: 224px minmax(0, 1fr); gap: 29px; padding: 20px 0; }
.home-challenges hr { display: none; }
.home-challenges .challenge-title { font-size: 20px; }
.home-challenges .challenge-role { font-size: 14px; }
.challenge-authors {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
  margin: 8px 0 10px;
}
.challenge-authors b { color: var(--ink); }
.challenge-author-label { color: #796886; font-size: 12px; font-weight: 600; }
.home-challenges .challenge-authors { font-size: 13.5px; }
.home-challenges .challenge-description { font-size: 14px; }
.home-challenges .challenge-links { font-size: 13px; }
.home-honors hr { display: none; }
.home-honors .section-body { display: grid; grid-template-columns: 1fr 1fr; gap: 0 35px; }
.home-honors h3 { color: #766185; font-size: 16px; margin: 1px 0 12px; }
.home-honors h3:first-child { grid-column: 1; grid-row: 1; }
.home-honors h3:nth-of-type(2) { grid-column: 2; grid-row: 1; }
.home-honors .plain:first-of-type { grid-column: 1; grid-row: 2; }
.home-honors .plain:nth-of-type(2) { grid-column: 2; grid-row: 2; }
.home-honors .plain li { font-size: 14px; line-height: 1.6; margin: 0 0 12px; }
.home-honors .inline-icon { display: inline-block; width: 16px; height: 16px; vertical-align: -2px; margin-right: 4px; }
.home-honors .honor-detail { color: #7f748c; font-size: 13px; }

/* A real rollout, with a matched before/after view, leads the published blog. */
.blog-list { display: grid; gap: 22px; }
.blog-feature {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: 36px;
  padding: 28px;
  border: 1px solid #dce3f2;
  border-radius: 10px;
  background: linear-gradient(120deg, #fcfcff 0%, #f7f9ff 68%, #f5f7fe 100%);
}
.blog-feature-copy { min-width: 0; }
.blog-feature-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 16px;
  margin-bottom: 15px;
  color: #606d8a;
  font-size: 11px;
  line-height: 1.5;
}
.blog-feature-meta > span { color: #5a53a0; font-weight: 600; letter-spacing: .8px; text-transform: uppercase; }
.blog-feature h3 { font: 600 29px/1.2 var(--body); letter-spacing: -.7px; margin: 0 0 15px; }
.blog-feature h3 a { color: var(--ink); }
.blog-feature h3 a:hover { color: var(--blue); text-decoration: none; }
.blog-feature-copy > p { color: #5e677d; font-size: 15px; line-height: 1.65; margin: 0 0 23px; }
.blog-feature-links { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 22px; }
.blog-read { font-size: 14px; font-weight: 600; color: #5554a4; }
.blog-language { color: #6b7286; font-size: 12px; }
.blog-demo { min-width: 0; }
.blog-demo-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 10px; line-height: 1.5; }
.blog-demo-heading > span { font-weight: 600; color: #4e5c79; }
.blog-demo-heading .text-button { font-size: 10px; white-space: nowrap; }
.blog-demo-instruction { font-size: 11.5px; line-height: 1.45; color: #626d84; margin: 7px 0 12px; }
.blog-demo-labels, .blog-demo-outcomes { display: grid; grid-template-columns: 1fr 1fr; text-align: center; }
.blog-demo-labels { font-size: 11px; line-height: 1.4; font-weight: 600; margin-bottom: 7px; color: #626c80; }
.blog-demo-labels > :last-child { color: #5153a4; }
.blog-demo-media { display: block; position: relative; aspect-ratio: 2 / 1; overflow: hidden; border-radius: 5px; background: #e8e9ed; }
.blog-demo-media::after { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; background: #fff; pointer-events: none; }
.blog-demo-media img, .blog-demo-media video { display: block; width: 100%; height: 100%; object-fit: contain; }
.blog-demo-media video { position: absolute; inset: 0; opacity: 0; }
.blog-demo-media video.is-playing { opacity: 1; }
.blog-demo-media:hover { outline: 1px solid #808ec2; outline-offset: 3px; }
.blog-demo-outcomes { margin-top: 7px; font-size: 10px; line-height: 1.4; color: #6e7481; }
.blog-demo-outcomes > :last-child { color: #4e5897; font-weight: 600; }
.blog-demo-caption { font-size: 10px; line-height: 1.5; color: #747e90; text-align: center; margin: 10px 0 0; }
.blog-draft .featured-note { padding: 18px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; grid-template-columns: minmax(0, 1fr) 140px; gap: 28px; }
.blog-draft .featured-note h3 { font-size: 19px; color: #434e64; }
.blog-draft .featured-note p { font-size: 14px; color: #71798b; }
.blog-draft .note-art img { width: 140px; height: 90px; }
.blog-draft .read-link { font-size: 12px; }
@media (max-width: 840px) {
  .blog-feature { grid-template-columns: 1fr; gap: 25px; padding: 25px; }
  .blog-feature h3 { max-width: 28ch; font-size: 28px; }
  .blog-feature-copy > p { max-width: 65ch; margin-bottom: 18px; }
  .blog-demo { width: 100%; max-width: 560px; justify-self: center; }
}
@media (max-width: 480px) {
  .blog-feature { padding: 19px 17px; gap: 23px; }
  .blog-feature h3 { font-size: 25px; line-height: 1.22; letter-spacing: -.5px; }
  .blog-feature-meta { margin-bottom: 12px; font-size: 10px; }
  .blog-feature-copy > p { font-size: 14px; line-height: 1.6; }
  .blog-demo-heading { flex-wrap: wrap; gap: 4px 12px; }
  .blog-demo-instruction { font-size: 11px; }
  .blog-demo-labels { font-size: 10px; }
  .blog-draft .featured-note { grid-template-columns: minmax(0, 1fr) 78px; gap: 12px; padding-top: 20px; }
  .blog-draft .featured-note h3 { font-size: 17px; }
  .blog-draft .note-art img { width: 78px; height: auto; aspect-ratio: 1; }
}
@media (max-width: 800px) {
  .research-recognition { grid-template-columns: 1fr; }
  .research-recognition > a, .research-recognition > div { padding: 11px 16px; border-right: 0; border-bottom: 1px solid #e7dfef; }
  .research-recognition > :last-child { border-bottom: 0; }
  .research-recognition span { display: inline; }
  .research-recognition strong { display: inline; margin-right: 9px; }
  .home-research .pub { grid-template-columns: 190px minmax(0, 1fr); gap: 23px; }
  .home-research .pub .title { font-size: 19px; }
  .domain-heading { align-items: start; }
  .domain-heading > a { padding-top: 6px; }
  .domain-heading h3 { font-size: 21px; }
  .home-challenges .challenge-list > li { grid-template-columns: 190px minmax(0, 1fr); gap: 23px; }
}
@media (max-width: 640px) {
  .home-research { padding-top: 22px; }
  .research-recognition { margin-bottom: 16px; }
  .research-recognition strong { display: block; font-size: 13px; margin: 0 0 3px; }
  .research-jump { align-items: start; flex-wrap: wrap; gap: 12px; padding-bottom: 10px; }
  .research-jump nav { gap: 7px 17px; }
  .research-jump nav a { font-size: 13px; }
  .domain-heading { display: block; margin-top: 9px; padding: 14px 0 6px; }
  .domain-heading h3 { font-size: 21px; }
  .domain-heading p { font-size: 14px; margin-bottom: 6px; }
  .domain-heading > a { font-size: 12px; }
  .home-research .pub { grid-template-columns: 1fr; gap: 15px; padding: 23px 0; }
  .home-research .pub:first-child { padding-top: 20px; }
  .home-research .pub .fig { width: 100%; max-width: 350px; }
  .home-research .pub .figure-open > img { max-height: 205px; }
  .home-research .pub .title { font-size: 20px; line-height: 1.4; }
  .home-research .pub .research-takeaway { font-size: 15px; }
  .home-research .pub .authors { font-size: 13px; }
  .science-direction { grid-template-columns: 1fr; gap: 10px; padding: 18px; }
  .science-direction > div, .science-direction p, .science-direction > a { grid-column: 1; grid-row: auto; }
  .further-work { font-size: 13px; }
  .home-challenges .challenge-list > li { grid-template-columns: 1fr; gap: 16px; }
  .home-challenges .challenge-cover { max-width: 350px; }
  .home-honors .section-body { display: block; }
  .home-honors h3 { margin-top: 20px; }
}
