:root{--color-bg:#fcfcfa;--color-surface:#fff;--color-text:#202833;--color-heading:#142131;--color-muted:#657180;--color-faint:#8a94a0;--color-accent:#173a5e;--color-accent-hover:#0d2a47;--color-rule:#dde2e7;--color-rule-strong:#cbd2d9;--font-serif:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;--font-sans:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--content-width:1210px;--sidebar-width:268px;--header-height:78px;--focus-ring:0 0 0 3px #173a5e33}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--color-bg);min-width:320px}body{color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.65}img,object{max-width:100%;display:block}a{color:var(--color-accent);text-underline-offset:.18em;text-decoration-color:#173a5e59;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}a:hover{color:var(--color-accent-hover);text-decoration-color:currentColor}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;box-shadow:var(--focus-ring);border-radius:2px}h1,h2,h3,p,ul,ol{margin-top:0}h1,h2,h3{color:var(--color-heading);font-family:var(--font-serif);text-wrap:balance;font-weight:600;line-height:1.18}h1{letter-spacing:-.025em;margin-bottom:.75rem;font-size:clamp(1.95rem,3.5vw,2.75rem)}h2{letter-spacing:-.012em;font-size:clamp(1.45rem,2.2vw,1.8rem)}h3{font-size:1.22rem}::selection{color:#fff;background:var(--color-accent)}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:100;color:#fff;background:var(--color-accent);border-radius:3px;padding:.55rem .8rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;border-bottom:1px solid var(--color-rule);backdrop-filter:blur(10px);background:#fcfcfaf2;position:sticky;top:0}.header-inner{min-height:var(--header-height);max-width:var(--content-width);justify-content:space-between;align-items:center;gap:3rem;margin:0 auto;padding:0 32px;display:flex}.site-name{color:var(--color-heading);font-family:var(--font-serif);letter-spacing:-.01em;flex:none;font-size:1.24rem;font-weight:600;text-decoration:none}.site-name:hover{color:var(--color-accent)}.primary-nav ul,.profile-fields ul,.profile-links ul,.resource-links ul,.field-list{margin:0;padding:0;list-style:none}.primary-nav ul{align-items:center;gap:clamp(1.15rem,2.6vw,2.15rem);display:flex}.primary-nav a{color:#4b5663;padding:1.7rem 0 1.6rem;font-size:.91rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex;position:relative}.primary-nav a:after{content:"";background:var(--color-accent);opacity:0;height:2px;transition:opacity .15s,transform .15s;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(.35)}.primary-nav a:hover,.primary-nav a.active{color:var(--color-accent)}.primary-nav a:hover:after,.primary-nav a.active:after{opacity:1;transform:scaleX(1)}.page-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);max-width:var(--content-width);min-height:calc(100vh - var(--header-height) - 150px);align-items:start;gap:clamp(3.5rem,6vw,5.4rem);margin:0 auto;padding:62px 32px 88px;display:grid}.page-shell.without-profile{max-width:920px;display:block}.profile-sidebar{top:calc(var(--header-height) + 34px);color:var(--color-muted);position:sticky}.profile-photo{aspect-ratio:1;object-fit:cover;border:1px solid var(--color-rule);background:#e9edf1;border-radius:6px;width:208px;height:208px;box-shadow:0 8px 24px #1c2a3812}.profile-photo-placeholder{color:#51657a;background:linear-gradient(145deg,#ffffffbf,#e3e9efe0),#e8edf2;place-items:center;display:grid}.profile-photo-placeholder span{font-family:var(--font-serif);letter-spacing:.08em;font-size:2rem;font-weight:600}.profile-identity{margin-top:1.65rem}.profile-identity h2{margin-bottom:.45rem;font-size:1.35rem}.profile-identity p{margin:.07rem 0;font-size:.92rem;line-height:1.5}.profile-identity-mobile-only{display:none}.profile-fields,.profile-links{border-top:1px solid var(--color-rule);margin-top:1.35rem;padding-top:1.3rem}.profile-fields h3{color:var(--color-faint);font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.7rem;font-size:.7rem;font-weight:700}.profile-fields li{color:#4d5966;margin:.18rem 0;font-size:.86rem;line-height:1.45}.profile-links ul{gap:.48rem;display:grid}.profile-links a{align-items:center;gap:.58rem;width:fit-content;font-size:.86rem;line-height:1.35;text-decoration:none;display:inline-flex}.profile-link-icon{object-fit:contain;opacity:.68;flex:0 0 15px;width:15px;height:15px;transition:opacity .15s}.profile-link-label-mobile{display:none}.profile-links a:hover .profile-link-icon,.profile-links a:focus-visible .profile-link-icon{opacity:.95}.main-content{min-width:0;max-width:790px}.main-content:focus{box-shadow:none;outline:none}.page-heading{border-bottom:1px solid var(--color-rule);max-width:760px;margin-bottom:2.5rem;padding-bottom:2rem}.home-heading{margin-bottom:1.9rem;padding-bottom:1.8rem}.eyebrow{color:var(--color-accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.55rem;font-size:.72rem;font-weight:700;line-height:1.3}.page-subtitle,.page-deck{max-width:660px;color:var(--color-muted);margin-bottom:0;font-size:.96rem;line-height:1.55}.page-deck{text-align:justify;hyphens:auto}.page-subtitle{font-family:var(--font-serif);font-size:1.13rem}.prose{max-width:72ch}.prose p{margin-bottom:1rem}.prose p:last-child{margin-bottom:0}.intro-copy{color:#303a46;font-family:var(--font-serif);text-align:justify;hyphens:auto;font-size:1.08rem;line-height:1.74}.content-section,.research-section,.teaching-section,.experience-section,.project-section{margin-top:3.6rem}.section-heading-row,.research-section>h2,.teaching-section>h2,.experience-section>h2,.project-section>h2{border-bottom:1px solid var(--color-rule-strong);margin-bottom:0;padding-bottom:.85rem}.section-heading-row h2,.research-section>h2,.teaching-section>h2,.experience-section>h2,.project-section>h2{margin-bottom:0}.updates-list{margin:0;padding:0;list-style:none}.updates-list li{border-bottom:1px solid var(--color-rule);grid-template-columns:112px minmax(0,1fr);gap:1.2rem;padding:1.25rem 0;display:grid}.updates-list time{color:var(--color-muted);letter-spacing:.02em;white-space:nowrap;padding-top:.08rem;font-size:.78rem;font-weight:600}.updates-list p{font-family:var(--font-serif);text-align:justify;hyphens:auto;margin:0;font-size:.98rem;line-height:1.58}.research-section:first-of-type,.teaching-section:first-of-type,.experience-section:first-of-type{margin-top:0}.experience-section-primary .experience-list{border-bottom-color:var(--color-rule-strong);border-bottom-width:2px}.experience-section-primary .experience-item{padding-top:2rem;padding-bottom:2.15rem}.experience-section-primary .experience-item h3{font-size:1.42rem}.experience-section+.experience-section{margin-top:5.2rem}.research-list,.course-list,.experience-list{border-bottom:1px solid var(--color-rule)}.research-item{border-top:1px solid var(--color-rule);padding:2.05rem 0 2.2rem}.research-item:first-child{border-top:0}.research-item h3{text-align:justify;text-align-last:left;text-wrap:wrap;max-width:720px;margin-bottom:.45rem;font-size:clamp(1.28rem,2vw,1.5rem);line-height:1.28}.research-item h3 a{color:var(--color-heading);text-decoration:none}.research-item h3 a:hover{color:var(--color-accent)}.working-title-label{color:var(--color-faint);letter-spacing:.06em;text-transform:uppercase;margin:.25rem 0 .45rem;font-size:.74rem;font-weight:600}.research-authors,.research-status,.project-authors,.project-status{color:var(--color-muted);margin-bottom:.28rem;font-size:.9rem}.research-status,.project-status{font-family:var(--font-serif);font-style:italic}.research-summary{color:#47515d;max-width:720px;font-family:var(--font-serif);text-align:justify;hyphens:auto;margin-top:1.05rem;font-size:.96rem;line-height:1.66}.resource-links{margin-top:.85rem}.resource-links ul{flex-wrap:wrap;gap:.3rem 1.25rem;display:flex}.resource-links a{font-size:.8rem;font-weight:600;text-decoration:none;position:relative}.resource-links a:after{content:"";opacity:.32;background:currentColor;width:100%;height:1px;transition:opacity .15s;position:absolute;bottom:-.1rem;left:0}.resource-links a:hover:after{opacity:.8}.project-header{border-bottom:1px solid var(--color-rule-strong);padding-bottom:2.2rem}.project-back-link{color:var(--color-muted);border-bottom:1px solid var(--color-rule-strong);letter-spacing:.015em;align-items:center;gap:.42rem;margin-bottom:1.8rem;padding-bottom:.14rem;font-size:.76rem;font-weight:600;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.project-back-link:hover{color:var(--color-accent);border-color:var(--color-accent);text-decoration:none}.project-header h1{text-align:justify;text-align-last:left;text-wrap:wrap;max-width:760px;font-size:clamp(1.9rem,3.6vw,2.75rem);line-height:1.17}.field-list{flex-wrap:wrap;gap:.25rem 0;margin-top:1.25rem;display:flex}.field-list li{color:var(--color-muted);font-size:.78rem}.field-list li:not(:last-child):after{color:var(--color-rule-strong);content:"/";margin:0 .65rem}.jel-codes{color:var(--color-muted);align-items:baseline;gap:.65rem;margin:.55rem 0 0;font-size:.78rem;display:flex}.jel-codes span{color:var(--color-faint);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:700}.project-section{margin-top:3rem}.project-abstract{color:#303a46;max-width:760px;font-family:var(--font-serif);text-align:justify;hyphens:auto;padding-top:1.45rem;font-size:1.02rem;line-height:1.72}.presentations-list{margin:0;padding:0;list-style:none}.presentations-overview{margin-top:5.2rem}.presentation-subsection{margin-top:2.2rem}.presentation-subsection+.presentation-subsection{margin-top:3.4rem}.presentation-subsection>h3{color:var(--color-text);margin-bottom:.3rem;font-size:clamp(1.18rem,1.8vw,1.36rem)}.presentations-list li{border-bottom:1px solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1.25rem;padding:1rem 0;display:grid}.presentation-title,.presentation-title>span{display:block}.presentation-project{width:fit-content;color:var(--color-muted);font-family:var(--font-serif);margin-top:.24rem;font-size:.84rem;font-style:italic}.presentation-meta{color:var(--color-muted);font-size:.86rem}.course-item,.experience-item{border-top:1px solid var(--color-rule);padding:1.75rem 0 1.9rem}.course-item:first-child,.experience-item:first-child{border-top:0}.course-item h3,.experience-item h3{margin-bottom:.35rem;font-size:1.3rem}.course-role,.course-year,.experience-institution,.experience-dates{color:var(--color-muted);margin-bottom:.2rem;font-size:.88rem}.course-role,.experience-institution{color:#44505d;font-weight:500}.course-description,.experience-description{color:#4b5663;max-width:68ch;font-family:var(--font-serif);text-align:justify;hyphens:auto;margin-top:.9rem;font-size:.96rem}.experience-honours{margin-bottom:0}.experience-honours+.experience-description{margin-top:.3rem}.experience-heading{justify-content:space-between;align-items:baseline;gap:1.5rem;display:flex}.experience-dates{white-space:nowrap;font-weight:700}.cv-heading{max-width:none}.cv-actions{align-items:center;gap:1.6rem;display:flex}.cv-actions a{font-size:.9rem;font-weight:600}.cv-actions .primary-link{color:#fff;background:var(--color-accent);border:1px solid var(--color-accent);border-radius:3px;padding:.68rem 1rem;text-decoration:none;display:inline-flex}.cv-actions .primary-link:hover{background:var(--color-accent-hover)}.cv-embed{border:1px solid var(--color-rule);background:#f2f4f6;border-radius:4px;margin-top:2.4rem;overflow:hidden}.cv-embed object{width:100%;height:min(78vh,920px)}.cv-unavailable{max-width:600px;color:var(--color-muted);border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);padding:1.25rem 0}.cv-unavailable p{margin:0}.not-found{max-width:600px;padding:5vh 0}.not-found p{color:var(--color-muted)}.footer-shell{max-width:var(--content-width);margin:0 auto;padding:0 32px}.site-footer{color:var(--color-faint);border-top:1px solid var(--color-rule);justify-content:space-between;align-items:center;gap:1rem;padding:1.55rem 0 2.5rem;font-size:.74rem;display:flex}.site-footer p{margin:0}@media (width<=900px){:root{--sidebar-width:226px}.page-shell{gap:3.25rem}.profile-photo{width:184px;height:184px}}@media (width<=720px){:root{--header-height:auto}.site-header{backdrop-filter:none;position:relative}.header-inner{min-height:0;padding:1rem 20px 0;display:block}.site-name{margin-bottom:.7rem;display:inline-block}.primary-nav{scrollbar-width:none;width:calc(100% + 40px);margin-left:-20px;overflow-x:auto}.primary-nav::-webkit-scrollbar{display:none}.primary-nav ul{gap:1.35rem;width:max-content;min-width:100%;padding:0 20px}.primary-nav a{padding:.7rem 0 .85rem;font-size:.84rem}.page-shell,.page-shell.without-profile{min-height:0;padding:24px 20px 64px;display:block}.profile-sidebar{border-bottom:1px solid var(--color-rule-strong);margin-bottom:1.4rem;padding-bottom:1.1rem;position:static}.page-shell:not(.home-page) .profile-sidebar{display:none}.profile-intro{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:1rem;display:grid}.profile-photo{border-radius:5px;width:96px;height:96px}.profile-photo-placeholder span{font-size:1.35rem}.profile-identity{margin-top:0}.profile-identity-mobile-only{display:block}.profile-identity h2{margin-bottom:.2rem;font-size:1.42rem}.profile-identity p{font-size:.78rem}.profile-fields{margin-top:.75rem;padding-top:.7rem}.profile-fields h3{margin-bottom:.45rem;font-size:.66rem}.profile-fields ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem 1rem;display:grid}.profile-fields li{margin:0;font-size:.73rem;line-height:1.35}.profile-fields li:not(:last-child):after{content:none}.profile-links{margin-top:.58rem;padding-top:.58rem}.profile-links ul{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:.35rem;display:grid}.profile-links li{min-width:0}.profile-links a{text-align:center;flex-direction:column;gap:.28rem;width:100%;padding:.1rem 0;font-size:.65rem;line-height:1.15;display:flex}.profile-link-icon{flex-basis:14px;width:14px;height:14px}.profile-link-label-desktop{display:none}.profile-link-label-mobile{display:inline}.main-content{max-width:none}h1{font-size:clamp(1.68rem,8vw,2.2rem)}.page-heading{margin-bottom:2rem;padding-bottom:1.45rem}.page-deck{font-size:.92rem;line-height:1.5}.home-heading{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.intro-copy{font-size:1.02rem;line-height:1.7}.content-section,.research-section,.teaching-section,.experience-section,.project-section{margin-top:3rem}.experience-section+.experience-section{margin-top:4.2rem}.updates-list li{padding:1.1rem 0;display:block}.updates-list time{margin-bottom:.3rem;display:block}.research-item{padding:1.65rem 0 1.85rem}.research-item h3{font-size:1.17rem}.project-header h1{font-size:clamp(1.65rem,7.5vw,2.15rem)}.experience-heading,.presentations-list li{display:block}.experience-dates,.presentation-meta,.presentations-list a{margin-top:.25rem;display:block}.cv-embed{display:none}.footer-shell{padding:0 20px}.site-footer{padding-bottom:2rem;display:block}.site-footer p+p{margin-top:.2rem}}@media (width<=420px){.profile-intro{grid-template-columns:88px minmax(0,1fr);gap:1rem}.profile-photo{width:88px;height:88px}.profile-identity h2{font-size:1.34rem}.profile-identity p{font-size:.78rem}.cv-actions{flex-wrap:wrap;gap:1rem 1.35rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.site-header,.profile-sidebar,.site-footer,.skip-link{display:none}.page-shell,.page-shell.without-profile{max-width:none;padding:0;display:block}body{color:#000;background:#fff;font-size:11pt}}
