/* MIT license and copyright notice: see ../LICENSE. */
:root{--blue:#233393;--blue-light:#3043b4;--ink:#202833;--copy:#444e59;--muted:#5d6975;--paper:#f8f9fa;--tint:#eef1f6;--border:#d6dce2;--width:1080px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--paper);color:var(--copy);font:16px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
a{color:var(--blue);text-decoration:none;text-underline-offset:4px}
a:hover{text-decoration:underline}
a:focus-visible{outline:3px solid var(--blue-light);outline-offset:5px}
img{max-width:100%;display:block}
h1,h2,h3,h4{color:var(--ink);line-height:1.2}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400}
h1{font-size:clamp(3.2rem,6vw,5rem);letter-spacing:-.045em;margin:14px 0 22px}
h2{font-size:clamp(2.1rem,4vw,3rem);letter-spacing:-.035em;margin:12px 0 24px}
h4{font-size:1.04rem;font-weight:500;margin:0 0 7px}
p{margin:0 0 18px}
.container{max-width:var(--width);width:calc(100% - 80px);margin-inline:auto}
.skip-link{position:fixed;left:16px;top:-80px;z-index:100;padding:12px;background:white}
.skip-link:focus{top:12px}
.masthead{position:sticky;top:0;background:rgba(248,249,250,.97);border-bottom:1px solid var(--border);z-index:20}
.navigation{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.wordmark{font-size:1.12rem;font-weight:650;color:var(--ink);white-space:nowrap}
.wordmark span{color:var(--blue)}
.nav-links{display:flex;gap:26px;font-size:.9rem}
.nav-links a{color:var(--ink)}
.hero{padding-block:88px 84px;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:72px;align-items:center}
.hero-copy{max-width:640px;min-width:0}
.section-body{min-width:0}
.eyebrow{font-size:.72rem;letter-spacing:.12em;font-weight:650;text-transform:uppercase;color:var(--blue);line-height:1.6}
.intro{font:400 clamp(1.3rem,2.1vw,1.6rem)/1.45 Georgia,"Times New Roman",serif;color:var(--ink);margin-bottom:24px}
.portrait{margin:0;transform:rotate(1deg)}
.portrait img{width:100%;height:365px;object-fit:cover;object-position:center 30%;border-radius:3px;box-shadow:14px 14px 0 #e3e7f3}
.portrait figcaption{margin-top:28px;font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:8px;transform:rotate(-1deg)}
.location-dot{width:6px;height:6px;border-radius:50%;background:var(--blue)}
.profile-links{display:flex;flex-wrap:wrap;gap:12px 23px;margin-top:30px;font-size:.85rem;font-weight:550}
.landscape-band{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;background:#193778 url("data-landscape.jpg") center 58%/cover}
.landscape-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,rgba(12,28,71,.8),rgba(19,38,92,.68))}
.landscape-content{padding-block:48px}
.landscape-content .eyebrow{color:#c8dcff}
.landscape-content h2{color:white;font-size:clamp(2rem,4vw,2.8rem);margin-block:14px 20px}
.policy-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:24px}
.policy-heading h2{margin-bottom:0}
.policy-steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0;padding:0}
.policy-steps li{position:relative;background:rgba(255,255,255,.035);border:1px solid rgba(205,223,255,.2);border-radius:5px;padding:16px 15px 20px}
.policy-number{font-size:.7rem;letter-spacing:.12em;color:#b5c8ef}
.policy-steps img{width:100%;height:auto;margin:3px 0 10px}
.policy-steps h3{color:#fff;font-size:1rem;font-weight:550;margin:0 0 8px}
.policy-steps p{color:#d5e2f7;font-size:.78rem;line-height:1.5;margin:0}
.policy-steps li:not(:last-child)::after{content:"→";position:absolute;right:-16px;top:45%;font-size:1.15rem;color:#bdd8ff;z-index:1}
.section{display:grid;grid-template-columns:310px minmax(0,1fr);gap:72px;padding-block:76px}
.section-heading p:not(.eyebrow){font-size:.9rem;max-width:250px;color:var(--muted)}
.group-heading{font:650 .78rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);margin:0 0 20px}
.group-heading:not(:first-child){margin-top:42px}
.paper-list{list-style:none;margin:0;padding:0}
.paper-list li{padding:17px 0;border-bottom:1px solid var(--border);color:var(--ink);font-size:1.03rem;line-height:1.55}
.paper-list li:first-child{padding-top:0}
.paper-coauthors{display:block;color:var(--muted);font-size:.85rem;line-height:1.6;margin-top:6px}
.publication{padding-bottom:20px;margin-bottom:22px;border-bottom:1px solid var(--border)}
.publication h4{line-height:1.55}
.publication p,.course p{font-size:.85rem;color:var(--muted);margin:0;line-height:1.6}
.thesis-link{padding:22px 24px;border-left:3px solid var(--blue);background:var(--tint);display:grid;gap:10px;line-height:1.5}
.thesis-link .eyebrow{font-size:.66rem}
.tinted{background:var(--tint)}
.course{margin:0 0 24px}
.course-materials{display:inline-block;margin-top:7px;font-size:.85rem}
.lead{font-family:Georgia,serif;font-size:1.35rem;color:var(--ink)}
.text-link{display:inline-block;margin-top:12px;border-bottom:1px solid var(--blue);font-size:.95rem}
.media-list>a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--border)}
.media-list>a:first-child{padding-top:0}
.media-list small{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.67rem;color:var(--muted);margin-bottom:6px}
.media-list strong{display:block;font:400 1.35rem/1.4 Georgia,serif;color:var(--ink)}
.link-description{display:block;color:var(--muted);font-size:.85rem;margin-top:5px}
.podcast-feature{padding-bottom:30px;margin-bottom:24px;border-bottom:1px solid var(--border)}
.podcast-feature h3{font:400 1.7rem/1.3 Georgia,serif;margin:10px 0 14px}
.podcast-feature>p:not(.eyebrow){font-size:.9rem}
.podcast-feature video{display:block;width:100%;max-width:320px;height:auto;aspect-ratio:9/16;background:#111b2f;border-radius:4px;margin-block:24px 14px}
.podcast-feature .podcast-credit{max-width:390px;color:var(--muted);font-size:.75rem}
.footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;padding-block:30px;font-size:.82rem}
.footer p{margin:0}
.fine-print{flex-basis:100%;color:var(--muted);font-size:.72rem}
.cv{max-width:820px;padding-block:60px}
.cv h1{font-size:3.2rem}
.cv h2{font-size:1.7rem;margin-top:40px;border-bottom:1px solid var(--border);padding-bottom:10px}
.cv h3{font-size:1rem;margin-bottom:6px}
.cv .meta{color:var(--muted);font-size:.85rem}
.cv ul{padding-left:20px}
.cv-actions{display:flex;gap:24px;align-items:center}
button{font:inherit;color:var(--blue);border:1px solid var(--border);padding:8px 16px;background:white;cursor:pointer}
button:focus-visible{outline:3px solid var(--blue)}
@media(min-width:1500px){.hero{padding-block:110px}}
@media(max-width:850px){.container{width:calc(100% - 48px)}.hero{gap:40px;grid-template-columns:minmax(0,1fr) 230px;padding-block:60px}.portrait img{height:310px}.section{grid-template-columns:230px minmax(0,1fr);gap:35px}.nav-links{gap:16px}}
@media(max-width:640px){html{scroll-padding-top:118px}.navigation{align-items:flex-start;flex-direction:column;gap:12px;padding-block:16px}.nav-links{gap:20px;width:100%;overflow-x:auto;white-space:nowrap;font-size:.8rem;padding-bottom:3px}.hero{grid-template-columns:1fr;gap:35px;padding-block:40px 50px}.hero-copy{order:1}.portrait{order:0;width:155px;transform:none}.portrait img{height:190px;box-shadow:8px 8px 0 #e3e7f3}.portrait figcaption{margin-top:15px;transform:none}.hero h1{font-size:3.15rem}.section{grid-template-columns:1fr;gap:18px;padding-block:48px}.section-heading h2 br{display:none}.section-heading h2{margin-bottom:16px}.section-heading p:not(.eyebrow){max-width:none}.landscape-band{min-height:350px}.profile-links{gap:14px 20px}.cv{padding-block:35px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:850px){.policy-heading{display:block}.policy-heading>p{margin-top:18px}.policy-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.policy-steps li:nth-child(2)::after{display:none}}
@media(max-width:420px){.policy-steps{gap:12px}.policy-steps li{padding:12px 10px 16px}.policy-steps h3{font-size:.86rem}.policy-steps p{font-size:.74rem}.policy-steps li:not(:last-child)::after{right:-12px;font-size:1rem}}
@media print{.masthead,.footer,.cv-actions,.skip-link{display:none}.container{width:100%;max-width:none}.cv{padding:0}body{background:white;font-size:10pt}.cv h1{font-size:28pt}.cv h2{font-size:16pt;margin-top:20px}.cv h3{break-after:avoid}a{color:inherit}.cv article{break-inside:avoid}@page{margin:18mm}}
