
:root{
  --ink:#121927; --ink-soft:#3f4b5e; --muted:#6d7787; --line:#d9dde4;
  --paper:#fbfbfa; --panel:#f3f4f4; --accent:#31415d;
  --wide:1450px; --content:1120px;
}
*{box-sizing:border-box}
html{background:var(--paper);scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);overflow-x:hidden;font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:4px}
a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
img{max-width:100%}
.site-shell{min-height:100vh;display:flex;flex-direction:column}
.site-header{width:min(calc(100% - 8vw),var(--wide));margin:0 auto;padding:44px 0 38px;display:flex;justify-content:space-between;gap:44px;align-items:flex-start}
.brand{display:inline-flex;flex:0 0 auto;flex-direction:column;width:max-content;max-width:100%;text-decoration:none!important}.brand-name{font-size:clamp(27px,2.15vw,40px);line-height:1;letter-spacing:-.02em}.brand-role{margin-top:7px;font-size:17px;color:#4f596b}
.main-nav{display:flex;flex:0 0 auto;gap:clamp(18px,1.65vw,30px);align-items:center;justify-content:flex-end;margin-left:auto;padding-top:7px;font-size:16.5px;white-space:nowrap}.main-nav a{position:relative;padding-bottom:6px;text-decoration:none;white-space:nowrap}.main-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--ink);transition:right .18s ease}.main-nav a:hover:after,.main-nav a.active:after{right:0}
.site-footer{width:min(calc(100% - 8vw),var(--wide));margin:82px auto 0;padding:27px 0 34px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:28px;color:var(--muted);font-size:14px}.site-footer nav{display:flex;gap:26px;flex-wrap:wrap}

/* Home */
.home{width:min(calc(100% - 8vw),var(--wide));margin:26px auto 0;display:grid;grid-template-columns:minmax(280px,375px) minmax(500px,1fr) minmax(265px,315px);gap:34px;align-items:start}
.home-portrait{width:100%;height:auto;display:block}
.home-copy{align-self:center;padding:4px 0}.eyebrow{font-family:inherit;letter-spacing:.18em;text-transform:uppercase;font-size:12px;color:#7b8492}.eyebrow:after{content:"";display:block;width:40px;height:1px;background:var(--ink);margin-top:23px}
.home h1{font-size:clamp(38px,2.6vw,48px);line-height:1.03;letter-spacing:-.025em;font-weight:500;margin:29px 0 5px;max-width:none;text-wrap:balance}.home-role{font-size:clamp(25px,2vw,34px);line-height:1.12;color:#263044;margin-bottom:32px}.home-copy p{font-size:clamp(18px,1.25vw,21px);line-height:1.52;color:#465267;margin:0 0 22px;max-width:760px}.position{font-size:18px;line-height:1.48;color:#4b586e;margin-top:24px}.home-cta{display:inline-flex;margin-top:29px;border:1px solid #929aa7;padding:12px 18px 13px;gap:22px;font-size:16px;text-decoration:none!important}.home-cta:hover{background:#f0f1f2}.home-cta span:last-child{font-family:inherit;font-size:20px}.home-profiles{display:flex;align-items:center;gap:9px 18px;flex-wrap:wrap;margin-top:22px;font-size:15px;line-height:1.4;color:#536076}.home-profiles-label{color:var(--muted);font-size:14px}.home-profiles a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.home-profiles a span{display:inline-block;margin-left:2px;font-size:.9em}
.news{border-left:1px solid var(--line);padding-left:27px}.news-panel{background:linear-gradient(135deg,#f7f7f6,#f0f1f2);padding:28px 25px 20px}.news-panel h2{font-size:29px;font-weight:500;margin:0 0 24px}.news-panel h2:after{content:"";display:block;width:40px;height:1px;background:var(--ink);margin-top:15px}.news-item{display:grid;grid-template-columns:94px 1fr;gap:15px;border-top:1px solid var(--line);padding:17px 0 19px}.news-item:first-child{border-top:0;padding-top:0}.news-date{font-size:14px;line-height:1.35;color:var(--muted)}.news-title{font-size:17px;line-height:1.35}.news-content{min-width:0}.news-meta{font-size:13.5px;line-height:1.4;color:var(--muted);margin-top:5px}.news-item[href]{text-decoration:none}.news-item[href]:hover .news-title{text-decoration:underline;text-underline-offset:4px}

/* Pages */
.page-shell{width:min(calc(100% - 8vw),var(--content));margin:30px auto 0;flex:1}.page-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:42px 0 56px;margin-bottom:0}.page-head h1{font-size:clamp(48px,4.3vw,58px);line-height:1.02;letter-spacing:-.025em;font-weight:500;margin:0 0 20px}.lead{font-size:clamp(21px,1.55vw,24px);line-height:1.45;color:#344054;margin:0;max-width:780px}.page-intro{max-width:780px}.page-head .pub-tools{margin-top:24px}.section{border-top:1px solid var(--line);padding:38px 0 46px}.page-head + .section{border-top:0;padding-top:48px}.page-head + .research-field{border-top:0;padding-top:48px}.section-grid{display:grid;grid-template-columns:minmax(215px,.58fr) minmax(0,1.45fr);gap:62px}.section h2{font-size:30px;line-height:1.18;font-weight:500;margin:0}.prose p{font-size:18px;line-height:1.64;color:var(--ink-soft);margin:0 0 17px;max-width:830px}.prose p:last-child{margin-bottom:0}.mini-links{display:flex;gap:12px 18px;flex-wrap:wrap;margin-top:22px}.mini-links a{font-size:15px;text-decoration:underline;text-underline-offset:4px;color:#4f5b6d}

.page-head.privacy-head{padding-bottom:72px}

/* Profile */
.profile-page .page-head .lead{max-width:none}
.image-credits-page .page-head .lead{max-width:none}.profile-statement{font-size:20px;line-height:1.6;color:#334055;max-width:830px}.profile-statement p{margin:0 0 19px}

/* Research */
.research-field{border-top:1px solid var(--line);padding:33px 0 37px}.research-field:first-of-type{border-top:0;padding-top:0}.research-field h2{font-size:31px;line-height:1.17;font-weight:500;margin:0 0 13px}.research-field p{font-size:18px;line-height:1.62;color:var(--ink-soft);max-width:850px;margin:0 0 14px}.related{display:flex;gap:9px 17px;flex-wrap:wrap;margin-top:15px}.related a{font-size:15px;color:#536076;text-decoration:underline;text-underline-offset:4px}.simple-list{list-style:none;padding:0;margin:0}.simple-list li{padding:12px 0;border-top:1px solid #e4e6e9;font-size:17px;line-height:1.48;color:var(--ink-soft)}.simple-list li:first-child{border-top:0;padding-top:0}.simple-list time{display:inline-block;min-width:115px;color:var(--muted);font-size:14px}

/* Publications */
.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;align-items:start}.book{min-width:0}.cover-frame{width:100%;aspect-ratio:981/1500;display:flex;align-items:flex-end;justify-content:center;background:transparent;padding:0;overflow:visible}.cover-frame img{width:100%;height:auto;display:block;object-fit:contain;transform-origin:center bottom}.book:nth-child(2) .cover-frame img{transform:scale(1.019)}.book:nth-child(3){transform:translateY(-13px)}.book:nth-child(3) .cover-frame img{transform:scale(.965)}.book h3{font-size:20px;line-height:1.27;font-weight:500;margin:18px 0 7px}.book .book-meta{font-size:15px;line-height:1.45;color:#5c6778}.book .book-link{display:inline-block;margin-top:9px;font-size:14px;text-decoration:underline;text-underline-offset:4px}.selected-work{border-top:1px solid #e3e6e9;padding:18px 0}.selected-work:first-child{border-top:0;padding-top:0}.selected-work h3{font-size:21px;line-height:1.3;font-weight:500;margin:0 0 7px}.selected-work .citation{font-size:16px;line-height:1.55;color:var(--ink-soft)}.selected-work .note{font-size:16px;line-height:1.52;color:var(--muted);margin-top:7px;max-width:800px}.pub-tools{display:flex;gap:12px;flex-wrap:wrap;margin-top:23px}.pub-tools a{border:1px solid var(--line);padding:8px 11px;font-size:14px;background:#fff;text-decoration:none}.pub-tools a:hover{background:#f2f3f4}.pub-section{border-top:1px solid var(--line);padding:31px 0 36px}.pub-section h2{font-size:27px;line-height:1.2;font-weight:500;margin:0 0 18px}.pub-list{list-style:none;padding:0;margin:0}.pub-list li{font-size:15.8px;line-height:1.55;color:var(--ink-soft);padding:10px 0;border-top:1px solid #e7e9ec}.pub-list li:first-child{border-top:0;padding-top:0}.pub-list strong{color:var(--ink);font-weight:600}.pub-link{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}

/* Teaching & CV */
.course{border-top:1px solid #e4e6e9;padding:15px 0}.course:first-child{border-top:0;padding-top:0}.course h3{font-size:20px;line-height:1.3;font-weight:500;margin:0 0 5px}.course p{font-size:15.5px;line-height:1.45;color:#647083;margin:0}.timeline-row{display:grid;grid-template-columns:125px minmax(0,1fr);gap:26px;border-top:1px solid #e4e6e9;padding:14px 0}.timeline-row:first-child{border-top:0;padding-top:0}.timeline-date{font-size:14px;color:var(--muted);line-height:1.4}.timeline-text{font-size:17px;line-height:1.5;color:var(--ink-soft)}

/* Contact and legal */
.contact-grid{grid-template-columns:minmax(350px,.78fr) minmax(0,1.3fr)}.contact-name{white-space:nowrap}.contact-block{font-size:18px;line-height:1.65;color:var(--ink-soft)}.contact-block strong{color:var(--ink)}.contact-block a{text-decoration:underline;text-underline-offset:4px}

.contact-block a,
.legal-text a{
  overflow-wrap:anywhere;
}

.notice{border:1px solid #c9ced6;background:#f7f7f5;padding:16px 18px;font-family:inherit;font-size:14px;line-height:1.5;color:#465267;margin-bottom:28px}.legal-text h2{font-size:24px;font-weight:500;margin:29px 0 9px}.legal-text h2:first-child{margin-top:0}.legal-text p,.legal-text li{font-size:16.5px;line-height:1.62;color:var(--ink-soft)}.legal-text ul{padding-left:20px}.legal-text small{font-size:13px;color:var(--muted)}.legal-separator{border:0;border-top:1px solid var(--line);margin:46px 0 40px}
.credit{border-top:1px solid var(--line);padding:22px 0}.credit:first-child{border-top:0;padding-top:0}.credit h2{font-size:23px;font-weight:500;margin:0 0 8px}.credit p{font-size:16px;line-height:1.58;color:var(--ink-soft);margin:0 0 7px}.credit code{font-size:13px}



/* Responsive layout */
@media (min-width:1540px){
  .home h1{white-space:nowrap;text-wrap:nowrap}
}

@media (max-width:1380px){
  .home{grid-template-columns:330px minmax(0,1fr)}
  .news{grid-column:1/-1;border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:26px}
  .news-panel{display:grid;grid-template-columns:160px 1fr;gap:20px}
  .news-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px}
  .news-item{grid-template-columns:1fr}
}

@media (max-width:1120px){
  .site-header{display:block;padding-top:32px;padding-bottom:30px}
  .main-nav{margin:25px 0 0;padding-top:0;justify-content:flex-start;flex-wrap:wrap;white-space:normal}
}

@media (max-width:900px){
  .home{grid-template-columns:1fr;margin-top:8px;gap:30px}
  .home-portrait{width:min(100%,520px);max-width:520px}
  .home-copy{padding-top:0}
  .news-panel{display:block}
  .news-items{display:block}
  .news-item{grid-template-columns:100px 1fr}
  .section-grid{grid-template-columns:1fr;gap:24px}
  .contact-grid{grid-template-columns:1fr}
  .page-head{padding-bottom:48px}
  .book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:620px){
  .site-header,.home,.page-shell,.site-footer{width:min(calc(100% - 32px),var(--wide))}
  .site-header{padding-top:24px;padding-bottom:22px}
  .brand{width:100%}
  .brand-name{font-size:clamp(25px,7.4vw,30px);line-height:1.06}
  .brand-role{font-size:16px;margin-top:6px}
  .main-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}
  .main-nav a{padding:10px 4px 9px;min-width:0;white-space:normal;line-height:1.2}
  .main-nav a:after{display:none}
  .main-nav a.active{font-weight:600}

  .home{margin-top:4px;gap:25px}
  .home-portrait{width:100%;max-width:none;height:auto}
  .eyebrow{font-size:11px}
  .eyebrow:after{margin-top:18px}
  .home h1{font-size:clamp(35px,10.7vw,45px);line-height:1.02;margin-top:23px;text-wrap:balance;white-space:normal}
  .home-role{font-size:25px;margin-bottom:25px}
  .home-copy p{font-size:17.5px;line-height:1.55}
  .position{font-size:16.5px;line-height:1.5;margin-top:21px}
  .home-cta{margin-top:23px}
  .home-profiles{margin-top:19px;gap:8px 16px;font-size:14.5px}
  .home-profiles-label{width:100%;font-size:13.5px;margin-bottom:1px}
  .news{padding-top:22px}
  .news-panel{padding:22px 19px 17px}
  .news-panel h2{font-size:26px;margin-bottom:20px}
  .news-item{grid-template-columns:1fr;gap:4px;padding:14px 0 16px}
  .news-date{font-size:13.5px}
  .news-title{font-size:16.5px}

  .page-shell{margin-top:20px}
  .page-head{padding-top:30px;padding-bottom:39px}
  .page-head h1{font-size:clamp(40px,12vw,48px);margin-bottom:16px}
  .lead{font-size:20px;line-height:1.45}
  .page-head + .section,.page-head + .research-field{padding-top:35px}
  .section{padding:31px 0 37px}
  .section h2{font-size:27px}
  .prose p,.research-field p{font-size:17px;line-height:1.62}
  .research-field{padding:28px 0 31px}
  .research-field h2{font-size:27px}
  .simple-list li{font-size:16px}
  .simple-list time{display:block;min-width:0;margin-bottom:4px}

  .book-grid{grid-template-columns:1fr;gap:34px}
  .cover-frame{width:min(100%,320px);margin:0 auto;aspect-ratio:981/1500}
  .book:nth-child(3){transform:none}
  .book:nth-child(3) .cover-frame img{transform:scale(.965)}
  .book h3{font-size:20px}
  .selected-work h3{font-size:20px}
  .pub-list li{font-size:15.2px;overflow-wrap:anywhere}
  .pub-link{white-space:normal}
  .timeline-row{grid-template-columns:1fr;gap:4px}

  .site-footer{flex-direction:column;align-items:flex-start;margin-top:56px;gap:18px;padding-bottom:28px}
  .site-footer nav{gap:12px 20px}
}

@media (max-width:390px){
  .main-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home h1{font-size:35px}
}

@media (max-width:500px){
  .contact-name{white-space:normal}
}

/* Research editorial redesign */
.research-page .page-head{padding-bottom:58px}
.research-page .lead{max-width:900px}
.research-page .research-field{position:relative;padding:48px 0 51px}
.research-page .page-head + .research-field{padding-top:48px}
.research-number{font-size:12px;line-height:1;letter-spacing:.16em;color:#8a94a3;margin:0 0 14px;font-variant-numeric:tabular-nums}
.research-page .research-field h2{font-size:clamp(30px,2.45vw,37px);line-height:1.14;letter-spacing:-.015em;font-weight:500;margin:0 0 15px;max-width:850px}
.research-kicker{font-size:20px!important;line-height:1.48!important;color:#25344a!important;max-width:830px!important;margin-bottom:17px!important}
.research-page .research-field>p:not(.research-kicker){max-width:850px}
.research-selected{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;margin-top:25px;padding-top:17px;border-top:1px solid #e4e6e9;max-width:920px}
.research-selected>span{font-size:13px;line-height:1.45;color:#778294;text-transform:uppercase;letter-spacing:.08em;padding-top:2px}
.research-selected-links{display:flex;flex-wrap:wrap;gap:8px 19px}
.research-selected-links a,.research-selected-links>span{font-size:15px;line-height:1.5;color:#46556b}
.research-selected-links a{text-decoration:underline;text-decoration-color:#9aa3af;text-underline-offset:4px;text-decoration-thickness:1px}
.research-selected-links a:hover{color:var(--ink);text-decoration-color:var(--ink)}
.research-selected-links small{font-size:12px;color:#8a94a3;font-style:normal;margin-left:4px}
.doi-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#7c8797;margin-left:4px;text-decoration:none}
.research-page .methodology-section{padding-top:52px;padding-bottom:54px}
.research-page .methodology-section h2{margin-bottom:15px}
.research-page .methodology-section .research-kicker{max-width:850px!important}

@media (max-width:620px){
  .research-page .page-head{padding-bottom:40px}
  .research-page .research-field,.research-page .page-head + .research-field{padding:34px 0 37px}
  .research-number{margin-bottom:11px}
  .research-page .research-field h2{font-size:29px;margin-bottom:13px}
  .research-kicker{font-size:18.5px!important;line-height:1.5!important}
  .research-selected{grid-template-columns:1fr;gap:8px;margin-top:21px;padding-top:15px}
  .research-selected-links{display:grid;gap:9px}
  .research-selected-links a,.research-selected-links>span{font-size:15px}
  .research-page .methodology-section{padding-top:38px;padding-bottom:40px}
}

.research-selected-links>span{display:inline}
.research-doi{font-size:12px!important;letter-spacing:.04em;text-transform:uppercase;margin-left:5px;color:#687487!important;text-decoration:underline!important;text-underline-offset:3px!important;white-space:nowrap}
