@font-face{font-family:'Source Sans 3';src:url('assets/fonts/SourceSans3-Variable.ttf') format('truetype');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:'Old Standard TT';src:url('assets/fonts/OldStandard-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Old Standard TT';src:url('assets/fonts/OldStandard-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Old Standard TT';src:url('assets/fonts/OldStandard-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
/* Homepage typography inspired by the LaTeX article document class.
   Kept separate from the project page's shared stylesheet. */
:root{color-scheme:light;--paper:#fffffc;--ink:#202020;--muted:#555;--line:#d6d6ce;--blue:#253d78}
:root[data-theme="dark"]{color-scheme:dark;--paper:#151c20;--ink:#e6ece9;--muted:#b5bdbe;--line:#475155;--blue:#b2c2ee}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Old Standard TT','Computer Modern','CMU Serif','Times New Roman',serif;font-size:18px;line-height:1.55}
[hidden]{display:none!important}
.wrap{width:min(760px,calc(100% - 48px));margin-inline:auto}
a{color:var(--blue);text-decoration:none;text-underline-offset:3px}
a:hover{text-decoration:underline}
button{font:inherit;cursor:pointer}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
p,h1,h2,h3,figure{margin:0}
p+p{margin-top:12px}
h1,h2,h3{line-height:1.25}
h2{font-size:26px;margin-bottom:20px}
h3{font-size:19px}
.skip-link{position:fixed;top:-80px;left:16px;background:var(--paper);padding:12px;z-index:10}
.skip-link:focus{top:12px}
.site-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:20px;border-bottom:1px solid var(--line);font-size:14px}
.identity{color:var(--ink)}
.identity-sub{display:none}
nav{display:flex;align-items:center;gap:18px}
nav a{padding-block:10px}
.theme-toggle{display:grid;place-items:center;width:38px;height:38px;border:0;background:transparent;color:var(--ink)}
.theme-icon-sun{display:none}
[data-theme="dark"] .theme-icon-moon{display:none}
[data-theme="dark"] .theme-icon-sun{display:block}
.hero{padding-top:64px;padding-bottom:24px}
.hero h1{text-align:center;font-size:38px;font-weight:400;letter-spacing:0}
.document-subtitle{text-align:center;font-size:20px;margin-top:12px}
.abstract-title{text-align:center;font-size:18px;margin:36px 0 10px}
.hero-intro{max-width:650px;margin-inline:auto;text-align:justify;hyphens:auto;font-size:17px;line-height:1.5}
.hero-actions{display:flex;justify-content:center;gap:24px;margin-top:18px;font-size:15px}
.current-role{display:flex;justify-content:center;align-items:baseline;gap:14px;text-align:center;margin-top:26px;font-size:15px}
.current-role>.small-label{display:none}
.current-role br{display:none}
.current-role strong{font-weight:400}
.current-role strong::before{content:' · '}
.role-city{white-space:nowrap}
.research-focus{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 12px;font-size:15px;padding-block:14px;border-block:1px solid var(--line)}
.research-focus .small-label{font-weight:bold}
.research-focus .small-label::after{content:':' }
.research-focus .focus-plus{font-size:0}
.research-focus .focus-plus::after{content:'·';font-size:15px}
.section,.about-section,.contact-section{padding-top:44px}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px}
.section-heading>.text-link{font-size:14px;white-space:nowrap}
.section-lede{font-size:17px}
.research-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 6px}
.filters{display:flex;flex-wrap:wrap;gap:6px 14px}
.filters button{border:0;padding:5px 0;background:transparent;color:var(--muted);font-size:14px;text-decoration:underline;text-underline-offset:4px}
.filters button[aria-pressed="true"]{color:var(--ink);font-weight:bold;text-decoration-thickness:2px}
#research-count{font-size:11px;white-space:nowrap;color:var(--muted)}
.paper-list{counter-reset:reference}
.paper{position:relative;counter-increment:reference;display:grid;grid-template-columns:62px minmax(0,1fr);column-gap:18px;padding:22px 0;border-bottom:1px solid var(--line);scroll-margin-top:24px}
.paper-year{font-size:16px}
.paper-year>span{display:block;font-size:12px;margin-top:3px}
.paper-year .oral-badge{font-size:11px;font-style:italic}
.paper-content h3{font-size:18px;line-height:1.4;font-weight:bold}
.paper-content h3 a{color:var(--ink)}
.paper-content h3 a>span{font-size:12px;color:var(--muted)}
.paper-content>p{font-size:16px;margin-top:7px}
.paper-content .authors{font-size:14px;color:var(--muted);line-height:1.5}
.paper-links{grid-column:2;display:flex;gap:18px;margin-top:8px;font-size:14px}
.paper:target{outline:1px solid var(--line);outline-offset:8px}
.paper:focus{outline:2px solid var(--blue);outline-offset:5px}
.equal-mark{font-size:.8em;line-height:0}
.research-note{font-size:13px;color:var(--muted);margin-top:12px}
.experience-aside{margin-bottom:18px;font-size:16px}
.experience-aside .small-label{font-weight:bold;font-size:16px}
.experience-aside h3{display:inline;font-size:16px;font-weight:400}
.experience-aside h3::before{content:' - '}
.experience-aside h3 br{display:none}
.experience-aside p{margin-top:8px}
.location{display:none}
.timeline-row{display:grid;grid-template-columns:155px minmax(0,1fr);gap:20px;padding-block:14px}
.timeline-date{font-size:14px;color:var(--muted);padding-top:3px}
.timeline-row h3{font-size:17px}
.timeline-row p{font-size:16px}
.timeline-organisation{margin-top:3px}
.organisation-icon{display:none}
.timeline-detail{color:var(--muted);margin-top:4px}
.earlier-experience summary{cursor:pointer;font-size:15px;margin-block:12px;color:var(--blue)}
.earlier-experience summary>span{display:none}
.about-main{display:block}
.portrait-block{float:right;margin:0 0 16px 26px}
.portrait-block img{width:100px;height:100px;object-fit:cover;filter:grayscale(1)}
.about-copy>p{font-size:17px;margin-top:12px;text-align:justify;hyphens:auto}
.about-copy .languages{font-size:15px;color:var(--muted)}
.about-details{clear:both;display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:26px}
.about-details h3{font-size:18px;margin-bottom:14px}
.education-list{margin:0}
.education-list>div{margin-bottom:14px}
.education-list dt{font-size:16px}
.education-list dd{margin:2px 0 0;color:var(--muted);font-size:14px}
.service-list{list-style:none;margin:0;padding:0;font-size:15px}
.service-list li{margin-bottom:12px}
.service-list li>span{display:block;font-weight:bold}
.contact-section{padding-bottom:38px}
.contact-section p{font-size:17px}
.contact-links{margin-top:15px}
.email-link{font-size:18px}
.social-links{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:15px;margin-top:14px}
.contact-links>.text-link{display:inline-block;font-size:15px;margin-top:14px}
.site-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-block:18px 30px;font-size:13px;color:var(--muted)}
@media(max-width:600px){
 body{font-size:17px}.wrap{width:calc(100% - 36px)}
 .site-header{flex-wrap:wrap;justify-content:center;gap:0;padding-block:12px}.identity{display:none}nav{gap:18px;font-size:14px}
 .hero{padding-top:38px}.hero h1{font-size:31px}.document-subtitle{font-size:18px}
 .hero-intro,.about-copy>p{text-align:left}.current-role{font-size:14px}.current-role br{display:block}.current-role strong::before{content:''}
 .research-focus{justify-content:flex-start;font-size:14px}.research-focus>.small-label{flex-basis:100%;font-size:13px}
 .section-heading{display:block}.section-heading>.text-link{display:inline-block;margin-bottom:14px}
 h2{font-size:24px}.research-tools{display:block}#research-count{display:block;margin-top:8px}
 .paper{grid-template-columns:48px minmax(0,1fr);column-gap:12px}.paper-content h3{font-size:17px}
 .timeline-row{grid-template-columns:1fr;gap:4px}.timeline-date{font-style:italic}
 .about-details{grid-template-columns:1fr;gap:20px}.portrait-block img{width:76px;height:76px}.portrait-block{margin-left:16px}
 .site-footer{font-size:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Editorial treatment: a title page, running heads and reference numbers. */
:root{--paper:#f7f4ed;--ink:#292622;--muted:#696159;--line:#d9d2c6;--blue:#863d3d;--wash:#eee9df}
:root[data-theme="dark"]{--paper:#1c1b1a;--ink:#eee8dc;--muted:#b7ada0;--line:#49413a;--blue:#dea69b;--wash:#272320}
body{line-height:1.65}
.wrap{width:min(800px,calc(100% - 64px))}
.site-header{border-top:3px solid var(--ink);margin-top:22px;padding-block:12px;font-size:13px}
.running-title{font-variant:small-caps;letter-spacing:.05em}.running-title>span{color:var(--blue);padding-inline:8px}
 .site-header>nav{margin-left:auto}
nav{gap:22px;flex-wrap:wrap}nav a{min-height:44px;display:inline-flex;align-items:center}
.theme-toggle{width:44px;height:44px}
.hero{padding-top:64px;padding-bottom:30px}
.document-kicker{text-align:center;color:var(--blue);text-transform:uppercase;letter-spacing:.22em;font-size:11px;margin-bottom:24px}
.hero h1{font-family:'Old Standard TT','Times New Roman',serif;font-size:clamp(56px,7.5vw,88px);line-height:.98;letter-spacing:-.045em;position:relative}
.hero h1 span{font-style:normal}.hero h1 sup{display:inline-block;color:var(--blue);font-size:26px;vertical-align:top;margin:-4px -20px 0 5px;letter-spacing:0}
.document-subtitle{font-size:21px;font-style:italic;margin-top:24px}
.abstract-title{font-variant:small-caps;font-weight:400;letter-spacing:.09em;margin:38px 0 14px;font-size:18px}
.hero-intro{max-width:620px;font-size:18px;line-height:1.65}
.hero-actions{margin-top:22px;font-size:15px;gap:28px}
.hero-actions a{padding:8px 0;border-bottom:1px solid var(--line)}
.hero-actions a:hover{border-color:var(--blue);text-decoration:none}
.current-role{margin-top:26px;font-size:13px;color:var(--muted);gap:8px}
.affiliation-mark{color:var(--blue);font-size:16px}.current-role br{display:block}.current-role strong::before{content:''}
.research-focus{border-top:0;border-bottom:1px solid var(--ink);font-size:13px;padding-bottom:24px;gap:6px 10px}
.research-focus .small-label{font-style:italic;font-weight:400}.research-focus .small-label::after{content:'.'}
.section,.about-section,.contact-section{padding-top:60px}
h2{font-size:29px;font-weight:400;letter-spacing:-.025em}
.section-number{font-size:14px;color:var(--blue);font-style:italic;letter-spacing:0;display:inline-block;min-width:36px;vertical-align:middle}
.section-heading{align-items:baseline}.section-heading>.text-link{font-size:13px;white-space:normal;text-align:right;max-width:165px;line-height:1.5}
.section-lede{color:var(--muted);font-size:17px;max-width:650px}
.research-tools{margin-top:26px;padding-bottom:10px;border-bottom:1px solid var(--ink);gap:20px}
.filters{gap:4px 18px}.filters button{min-height:44px;text-decoration:none;font-size:14px;position:relative}
.filters button[aria-pressed="true"]{color:var(--blue);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
#research-count{font-size:10px;letter-spacing:.06em}
.paper{grid-template-columns:64px minmax(0,1fr);gap:0 24px;padding:26px 0;transition:background-color .18s}
.paper:hover{background:var(--wash)}
.paper-year{font-size:14px;color:var(--muted)}
.paper-year .reference-index{font-size:18px;color:var(--blue);margin:0 0 10px;font-style:italic}
.paper-year .oral-badge{display:inline-block;border:1px solid var(--line);padding:1px 5px;font-size:10px;color:var(--blue);font-style:normal;letter-spacing:.06em;margin-top:8px}
.paper-content h3{font-size:20px;font-weight:400;line-height:1.35}
.paper-content>p{font-size:16px;line-height:1.6}.paper-content .authors{font-size:13px;margin-top:10px}
.paper-links{gap:20px;font-size:13px;margin-top:12px}.paper-links a{padding:6px 0}
.research-note{font-style:italic}
.experience-aside{padding:18px 22px;border-left:2px solid var(--blue);background:var(--wash);margin:6px 0 24px}
.timeline-row{border-top:1px solid var(--line);padding-block:20px;grid-template-columns:150px minmax(0,1fr)}
.timeline-row h3{font-weight:400;font-size:19px}.timeline-date{font-size:12px;font-variant-numeric:tabular-nums}.timeline-detail{font-size:15px!important}
.earlier-experience summary{padding-block:8px}
.portrait-block{padding:5px;border:1px solid var(--line);transform:rotate(2deg);margin-top:4px}
.portrait-block img{display:block;filter:grayscale(1) sepia(.15)}
.about-copy>p{line-height:1.7}.about-details{border-top:1px solid var(--line);padding-top:26px;margin-top:30px;gap:40px}
.about-details h3{font-weight:400;font-size:20px}.service-list li>span{font-weight:400;color:var(--blue)}
.contact-section{margin-top:52px;border-top:1px solid var(--ink);padding-top:30px;padding-bottom:44px}
.email-link{font-size:clamp(23px,4.5vw,34px);letter-spacing:-.025em;overflow-wrap:anywhere}
.social-links a,.contact-links>.text-link{padding-block:8px}.site-footer{font-variant:small-caps;letter-spacing:.025em}
@media(max-width:600px){
 .wrap{width:calc(100% - 40px)}.site-header{margin-top:12px;padding-block:4px}nav{width:100%;justify-content:space-between;gap:8px;font-size:13px}
 .hero{padding-top:44px}.document-kicker{font-size:10px;margin-bottom:22px}.hero h1{font-size:clamp(49px,13vw,74px)}.hero h1 sup{font-size:20px;margin-top:-3px}
 .document-subtitle{font-size:17px;max-width:280px;margin:22px auto 0;line-height:1.45}.abstract-title{margin-top:30px}.hero-intro{font-size:17px;line-height:1.65}
 .current-role{font-size:12px}.research-focus{justify-content:center;font-size:12px;gap:4px 8px}.research-focus>.small-label{flex-basis:auto;font-size:12px}
 .section,.about-section{padding-top:44px}h2{font-size:26px}.section-number{min-width:30px;font-size:13px}.section-heading>.text-link{text-align:left;max-width:none}
 .research-tools{margin-top:18px;padding-bottom:12px}.filters{gap:0 16px}.filters button{font-size:13px}#research-count{margin-top:6px;font-size:9px}
 .paper{grid-template-columns:42px minmax(0,1fr);column-gap:14px;padding-block:24px}.paper-content h3{font-size:19px}.paper-content>p{font-size:15px}.paper-content .authors{font-size:12px}.paper-year{font-size:12px}.paper-year>span{font-size:10px}.paper-year .reference-index{font-size:16px}
 .timeline-row{grid-template-columns:1fr;gap:6px}.experience-aside{padding:16px}.about-details{gap:24px}.contact-section{margin-top:36px;padding-top:28px}.site-footer{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.paper{transition:none}}

/* Humanist sans-serif for navigation and supporting information. */
:root{--sans:'Source Sans 3',Arial,sans-serif}
.site-header nav,.document-kicker,.small-label,.filters button,#research-count,
.paper-year,.paper-links,.timeline-date,.education-list dd,.social-links,
.contact-links>.text-link,.section-heading>.text-link,.site-footer,
.project-breadcrumb,.project-actions,.example-jumps,.project-return,
.publication-date,.subject-label,.sample-duration,.player-heading{font-family:var(--sans);font-style:normal}
.site-header nav,.filters button,.paper-links,.project-actions{font-weight:400}
.filters button[aria-pressed="true"]{font-weight:600}
.paper-year .reference-index{font-family:'Old Standard TT','Times New Roman',serif}
.site-footer{font-variant:normal}

@media print{
 :root,:root[data-theme="dark"]{--paper:#fff;--ink:#000;--muted:#333;--line:#ccc;--blue:#000;color-scheme:light}
 body{font-size:11pt}.wrap{width:100%;max-width:none}.site-header,.hero-actions,.research-tools,.site-footer{display:none}
 .hero{padding-top:0}.hero h1{font-size:24pt}.hero h1 br{display:none}.hero h1 br::after{content:" "}.document-kicker{display:none}body{background-image:none}.section,.about-section,.contact-section{padding-top:24px}
 .paper,.timeline-row,.about-details>div{break-inside:avoid}h2,h3{break-after:avoid}a{color:#000}.portrait-block{display:none}
}
