
:root{
  --ink:#0b1715;
  --ink-soft:#13201e;
  --paper:#f3f0e8;
  --paper-2:#ebe7dd;
  --paper-3:#dfdbd0;
  --text:#111814;
  --muted:#69706c;
  --light:#f6f3ea;
  --rule:rgba(17,24,20,.22);
  --rule-dark:rgba(246,243,234,.26);
  --coral:#ff6047;
  --mineral:#79a092;
  --ochre:#c9aa68;
  --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua","URW Palladio L",Georgia,serif;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --max:1460px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
body.dark{background:var(--ink);color:var(--light)}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--coral);outline-offset:4px}
::selection{background:var(--coral);color:#08100f}
.shell{max-width:var(--max);margin:0 auto;padding:0 38px}
.site-header{
  position:sticky;top:0;z-index:30;
  background:color-mix(in srgb,var(--paper) 94%,transparent);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--rule);
}
.dark .site-header{
  background:color-mix(in srgb,var(--ink) 94%,transparent);
  border-bottom-color:var(--rule-dark);
}
.header-inner{height:72px;display:flex;align-items:center;gap:36px}
.wordmark{
  font-family:var(--serif);font-size:19px;line-height:1;white-space:nowrap;
  letter-spacing:-.02em;
}
.nav{margin-left:auto;display:flex;align-items:center;gap:25px;font-size:12px}
.nav a{opacity:.82;position:relative}
.nav a:hover,.nav a[aria-current="page"]{opacity:1}
.nav a[aria-current="page"]::after{
  content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:currentColor;
}
.lang-link{
  flex:0 0 auto;padding-left:18px;border-left:1px solid currentColor;
  font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;opacity:.72;
}
.lang-link:hover{opacity:1}
.menu-button{display:none;margin-left:auto;border:0;background:none;color:inherit;padding:8px}
.menu-button span{display:block;width:24px;height:1px;background:currentColor;margin:6px 0}
.mobile-nav{display:none}
.page{min-height:calc(100vh - 72px)}
.indexline{
  display:flex;align-items:center;gap:16px;
  font-size:11px;font-weight:650;letter-spacing:.16em;text-transform:uppercase;
}
.indexline::after{content:"";width:110px;height:1px;background:currentColor;opacity:.42}
.eyebrow{
  font-size:10px;text-transform:uppercase;letter-spacing:.24em;font-weight:650;
}
.display{
  font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:.92;
}
.page-title{font-size:clamp(56px,7vw,110px);margin:22px 0 20px}
.lede{
  font-family:var(--serif);font-size:clamp(20px,2vw,31px);line-height:1.24;
  max-width:760px;
}
.micro{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:650}
.muted{color:var(--muted)}
.dark .muted{color:#aeb7b2}
.rule{border-top:1px solid var(--rule)}
.dark .rule{border-top-color:var(--rule-dark)}
.arrow{font-size:18px;line-height:1}
.text-link{
  display:inline-flex;align-items:center;gap:12px;
  text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:700;
}
.text-link:hover .arrow{transform:translateX(4px)}
.text-link .arrow{transition:transform .18s ease}
.field{
  position:relative;min-height:300px;overflow:hidden;isolation:isolate;
}
.field svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.field .f-line{stroke:currentColor;stroke-width:.7;opacity:.34}
.field .f-point{fill:currentColor;opacity:.78}
.field .f-hot{fill:var(--coral)}
.field .f-mint{fill:var(--mineral)}
.field .f-stem{stroke:currentColor;stroke-width:.55;opacity:.22}
.home-hero{padding:54px 0 0}
.home-grid{
  display:grid;grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);
  gap:70px;min-height:570px;align-items:center;
}
.home-name{font-size:clamp(74px,8.5vw,138px);margin:38px 0 28px;max-width:720px}
.home-intro{
  font-family:var(--serif);font-size:clamp(22px,2vw,31px);
  line-height:1.28;max-width:590px;margin:0 0 30px;
}
.home-field{height:520px;color:#ebe8df}
.home-field::after{
  content:"";position:absolute;inset:auto 12% 8% 22%;
  height:1px;background:var(--rule-dark);
}
.home-index{
  margin-top:18px;border-top:1px solid var(--rule-dark);
  display:grid;grid-template-columns:repeat(4,1fr);
}
.home-index a{
  min-height:148px;padding:22px 20px 18px 0;
  border-right:1px solid var(--rule-dark);
  display:flex;flex-direction:column;
}
.home-index a:nth-child(4n){border-right:0;padding-left:20px}
.home-index a:not(:nth-child(4n+1)){padding-left:20px}
.home-index strong{font-family:var(--serif);font-weight:400;font-size:25px;margin:9px 0 4px}
.home-index p{font-size:12px;max-width:170px;margin:0;color:#aab5af}
.home-index .arrow{margin-top:auto}
.home-current{
  background:var(--paper);color:var(--text);padding:52px 0 70px;
  border-top:1px solid rgba(255,255,255,.03);
}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}
.section-head h2{
  font-family:var(--serif);font-size:42px;font-weight:400;line-height:1;margin:0;
}
.current-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule)}
.current-item{padding:26px 26px 12px 0;border-right:1px solid var(--rule);min-height:250px}
.current-item:nth-child(n+2){padding-left:26px}
.current-item:last-child{border-right:0}
.current-item .code{font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.current-item h3{font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.06;margin:22px 0 12px}
.current-item p{font-size:13px;color:#525b56;max-width:320px}
.current-item .text-link{margin-top:22px}
.interior-hero{padding:54px 0 34px}
.interior-hero-grid{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  gap:70px;align-items:start;
}
.interior-hero .field{height:330px;color:#283733}
.dark .interior-hero .field{color:#f2efe7}
.research-layout{
  display:grid;grid-template-columns:250px minmax(0,1fr);
  gap:54px;padding:10px 0 80px;
}
.side-index{position:sticky;top:102px;align-self:start;border-top:1px solid var(--rule)}
.side-index a{
  display:grid;grid-template-columns:48px 1fr;gap:10px;
  padding:15px 0;border-bottom:1px solid var(--rule);font-family:var(--serif);font-size:17px;
}
.side-index .num{font-family:var(--sans);font-size:10px;letter-spacing:.12em;padding-top:4px}
.research-section{padding:8px 0 48px;border-top:1px solid var(--rule)}
.research-section:first-child{border-top:0}
.research-section .section-num{font-size:10px;letter-spacing:.14em}
.research-section h2{font-family:var(--serif);font-size:48px;line-height:1.03;font-weight:400;margin:10px 0 14px}
.research-section p{max-width:780px;font-size:16px}
.question-list{margin-top:28px;border-top:1px solid var(--rule)}
.question-list div{display:grid;grid-template-columns:55px 1fr;padding:12px 0;border-bottom:1px solid var(--rule);font-family:var(--serif);font-size:17px}
.method-tags,.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}
.tag{
  display:inline-block;border:1px solid var(--rule);border-radius:999px;
  padding:5px 9px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;
}
.dark .tag{border-color:var(--rule-dark)}
.catalogue{padding:8px 0 80px}
.catalogue-tabs{display:flex;gap:24px;border-bottom:1px solid var(--rule-dark);padding-bottom:13px;margin-bottom:4px}
.catalogue-tabs span{font-size:11px;opacity:.67}
.catalogue-tabs .active{opacity:1;border-bottom:2px solid currentColor;padding-bottom:11px;margin-bottom:-14px}
.project-row{
  display:grid;grid-template-columns:54px 160px minmax(0,1fr) 180px 26px;
  gap:20px;padding:24px 0;border-bottom:1px solid var(--rule-dark);align-items:start;
}
.project-row .pnum{font-size:10px;letter-spacing:.14em}
.project-row h2{font-family:var(--serif);font-weight:400;font-size:27px;line-height:1.03;margin:0 0 7px}
.project-row p{margin:0;color:#b6beb9;font-size:12px;max-width:480px}
.project-row .mini-field{height:80px;min-height:80px;color:#e8e4db}
.project-meta{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#c2cac5;line-height:1.7}
.project-row .arrow{justify-self:end}
[hidden]{display:none!important}
.pub-filter-groups{
  margin-top:28px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.pub-filter-group{
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:18px;
  align-items:start;
  border-bottom:1px solid var(--rule);
}
.pub-filter-group:last-of-type{border-bottom:0}
.pub-filter-label{
  padding:17px 0 14px;
  font-size:9px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:700;
}
.pub-controls{
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  padding:16px 0 13px;
  margin:0;
}
.pub-controls button,.resource-tabs button{
  appearance:none;
  border:0;
  background:none;
  color:inherit;
  font:inherit;
  cursor:pointer;
  padding:0 0 13px;
  margin:0;
}
.pub-controls button{font-size:11px}
.pub-controls button:hover{opacity:.65}
.pub-controls .active{
  font-weight:700;
  border-bottom:2px solid var(--text);
  padding-bottom:11px;
  margin-bottom:-14px;
}
.pub-filter-meta{
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding:12px 0 14px;
}
.pub-filter-status{
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.pub-style-note{
  margin:0;
  font-size:10px;
  line-height:1.5;
  color:var(--muted);
  max-width:780px;
}
.pub-row[hidden],.resource-row[hidden]{display:none!important}
.pub-tags{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}
.pub-tag{
  appearance:none;
  border:1px solid var(--rule);
  background:transparent;
  color:var(--muted);
  border-radius:999px;
  padding:5px 8px;
  font:inherit;
  font-size:9px;
  line-height:1;
  letter-spacing:.06em;
  text-transform:uppercase;
}
button.pub-tag{cursor:pointer}
button.pub-tag:hover{border-color:var(--text);color:var(--text)}
.pub-tag-project{background:var(--ink);border-color:var(--ink);color:var(--paper)}
button.pub-tag-project:hover{background:transparent;color:var(--text)}
.pub-list{padding-bottom:80px}
.pub-row{
  display:grid;grid-template-columns:64px minmax(0,1fr) 230px 28px;
  gap:22px;padding:27px 0;border-bottom:1px solid var(--rule);align-items:start;
}
.pub-row.is-hidden{display:none!important}
.pub-year{font-size:11px;color:var(--muted);padding-top:4px}
.pub-reference{font-size:13px;line-height:1.58;max-width:900px}
.pub-authors{font-size:11px;letter-spacing:.035em;font-weight:700}
.pub-title-inline{font-family:var(--serif);font-size:20px;line-height:1.24}
.pub-tags{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}
.pub-tag{
  appearance:none;border:1px solid var(--rule);background:transparent;color:var(--muted);
  border-radius:999px;padding:5px 8px;font:inherit;font-size:9px;line-height:1;
  letter-spacing:.06em;text-transform:uppercase;
}
button.pub-tag{cursor:pointer}
button.pub-tag:hover{border-color:var(--text);color:var(--text)}
.pub-tag-project{background:var(--ink);border-color:var(--ink);color:var(--paper)}
button.pub-tag-project:hover{background:transparent;color:var(--text)}
.pub-title{font-family:var(--serif);font-size:21px;line-height:1.2}
.pub-meta{font-size:12px;color:var(--muted);margin-top:6px}
.pub-type{font-size:9px;letter-spacing:.13em;text-transform:uppercase}
.people-tabs,.resource-tabs{
  display:flex;gap:26px;border-bottom:1px solid var(--rule);padding-bottom:12px;margin:14px 0 12px;
}
.people-tabs span,.resource-tabs button{font-size:11px}
.people-tabs .active,.resource-tabs .active{font-weight:700;border-bottom:2px solid var(--text);padding-bottom:10px;margin-bottom:-13px}
.people-grid{padding-bottom:78px}
.person-row{
  display:grid;grid-template-columns:140px minmax(240px,.7fr) minmax(360px,1.3fr);
  padding:18px 0;border-bottom:1px solid var(--rule);gap:22px;align-items:start;
}
.person-role{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.person-name{font-family:var(--serif);font-size:23px}
.person-focus{font-size:12px;color:var(--muted)}
.semester-block{padding:0 0 70px}
.course-row{
  display:grid;grid-template-columns:110px minmax(0,1fr) 230px;gap:20px;
  padding:20px 0;border-bottom:1px solid var(--rule-dark);align-items:start;
}
.course-row h2{font-family:var(--serif);font-weight:400;font-size:24px;margin:0;line-height:1.15}
.course-row p{font-size:12px;color:#b8c0bb;margin:4px 0 0}
.course-row .term{font-size:10px;letter-spacing:.12em}
.course-row .kind{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#aeb7b2}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--rule);padding-bottom:80px}
.service-item{padding:27px 30px 35px 0;border-bottom:1px solid var(--rule)}
.service-item:nth-child(even){padding-left:30px;border-left:1px solid var(--rule)}
.service-item h2{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.08;margin:8px 0 12px}
.service-item p{max-width:560px;color:#4f5954}
.resource-list{padding-bottom:80px}
.resource-row{
  display:grid;grid-template-columns:120px minmax(0,1fr) 180px 25px;gap:22px;
  padding:22px 0;border-bottom:1px solid var(--rule);align-items:start;
}
.resource-row h2{font-family:var(--serif);font-size:23px;font-weight:400;margin:0 0 5px}
.resource-row p{font-size:12px;color:var(--muted);max-width:690px;margin:0}
.resource-kind{font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.about-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:72px;padding:6px 38px 80px}
.about-copy p{font-family:var(--serif);font-size:22px;line-height:1.42;margin:0 0 24px}
.timeline{border-top:1px solid var(--rule-dark)}
.timeline-row{display:grid;grid-template-columns:125px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--rule-dark)}
.timeline-row .date{font-size:10px;letter-spacing:.12em}
.timeline-row div:last-child{font-family:var(--serif);font-size:17px}
.links-list{margin-top:32px;border-top:1px solid var(--rule-dark)}
.links-list a{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--rule-dark);font-family:var(--serif);font-size:17px}
.footer{border-top:1px solid var(--rule);padding:24px 0 38px;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.dark .footer{border-top-color:var(--rule-dark);color:#aeb7b2}
.footer-inner{display:flex;justify-content:space-between;gap:20px}
.note{font-size:12px;color:var(--muted);max-width:760px}
.dark .note{color:#aeb7b2}

@media (max-width:980px){
  .shell{padding:0 24px}
  .nav{gap:15px}.nav a{font-size:11px}
  .home-grid{grid-template-columns:1fr;gap:0;min-height:auto}
  .home-field{height:370px;margin-top:-20px}
  .home-index{grid-template-columns:repeat(2,1fr)}
  .home-index a:nth-child(4n){padding-left:20px;border-right:1px solid var(--rule-dark)}
  .home-index a:nth-child(2n){border-right:0}
  .home-index a:nth-child(2n+1){padding-left:0}
  .current-list{grid-template-columns:1fr}
  .current-item,.current-item:nth-child(n+2){padding:25px 0;border-right:0;border-bottom:1px solid var(--rule);min-height:0}
  .interior-hero-grid{grid-template-columns:1fr;gap:18px}
  .interior-hero .field{height:230px}
  .research-layout{grid-template-columns:190px 1fr;gap:35px}
  .project-row{grid-template-columns:42px 120px 1fr 28px}.project-meta{display:none}
  .pub-row{grid-template-columns:52px minmax(0,1fr) 190px 24px;gap:16px}
  .pub-filter-group,.pub-filter-meta{grid-template-columns:105px minmax(0,1fr)}
  .pub-type{display:none}
  .person-row{grid-template-columns:110px minmax(210px,.8fr) minmax(260px,1.2fr)}.person-focus{display:block}
  .resource-row{grid-template-columns:95px 1fr 24px}.resource-kind{display:none}
  .about-layout{grid-template-columns:1fr;gap:40px;padding:6px 24px 70px}
}
@media (max-width:760px){
  body{font-size:14px}
  .shell{padding:0 20px}
  .site-header{position:sticky}
  .header-inner{height:62px}
  .nav{display:none}
  .lang-link{margin-left:auto;border-left:0;padding:8px 4px}
  .menu-button{display:block;margin-left:8px}
  .mobile-nav{
    position:fixed;z-index:40;inset:62px 0 0;background:var(--paper);color:var(--text);
    padding:18px 20px 30px;overflow:auto;
  }
  .dark .mobile-nav{background:var(--ink);color:var(--light)}
  .mobile-nav.open{display:block}
  .mobile-nav a{
    display:grid;grid-template-columns:42px 1fr;align-items:center;
    padding:14px 0;border-bottom:1px solid var(--rule);font-family:var(--serif);font-size:25px;
  }
  .dark .mobile-nav a{border-color:var(--rule-dark)}
  .mobile-nav a span{font-family:var(--sans);font-size:9px;letter-spacing:.14em}
  .page{min-height:auto}
  .home-hero{padding-top:34px}
  .home-name{font-size:clamp(62px,20vw,90px);margin:28px 0 22px}
  .home-intro{font-size:21px;max-width:100%}
  .home-field{height:280px;margin-top:0}
  .home-index{grid-template-columns:1fr}
  .home-index a,.home-index a:nth-child(n){
    border-right:0;border-bottom:1px solid var(--rule-dark);
    min-height:88px;padding:15px 0;display:grid;grid-template-columns:42px 1fr 25px;gap:8px;align-items:center;
  }
  .home-index a strong{font-size:23px;margin:0}
  .home-index a p{display:none}
  .home-index a .arrow{margin:0}
  .home-current{padding:40px 0 55px}
  .section-head{align-items:start}.section-head h2{font-size:35px}
  .indexline::after{width:65px}
  .interior-hero{padding:35px 0 20px}
  .page-title{font-size:58px;margin:18px 0 16px}
  .lede{font-size:20px}
  .interior-hero-grid{gap:8px}
  .interior-hero .field{height:185px}
  .research-layout{display:block;padding-bottom:55px}
  .side-index{
    position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    overflow:visible;gap:0;margin-bottom:35px;border-bottom:0;border-top:1px solid var(--rule);
  }
  .side-index a{
    min-width:0;display:grid;grid-template-columns:32px 1fr;gap:6px;
    border-bottom:1px solid var(--rule);border-right:1px solid var(--rule);
    padding:12px 10px 12px 0;margin:0;font-size:15px;line-height:1.22;
  }
  .side-index a:nth-child(even){border-right:0;padding-left:12px}
  .side-index a:last-child{grid-column:1/-1;border-right:0;padding-left:0}
  .side-index .num{display:block;margin:0}
  .research-section{padding-bottom:36px}
  .research-section h2{font-size:37px}
  .question-list div{grid-template-columns:40px 1fr;font-size:15px}
  .catalogue{padding-bottom:55px}
  .project-row{
    grid-template-columns:34px minmax(0,1fr) 20px;gap:12px;padding:20px 0;
  }
  .project-row .pnum{grid-column:1;grid-row:1}
  .project-row .mini-field{grid-column:2/4;grid-row:1;height:100px;margin:0}
  .project-row > div:nth-child(3){grid-column:2/3;grid-row:2;min-width:0}
  .project-row h2{font-size:25px;overflow-wrap:anywhere}
  .project-meta{display:none}
  .project-row .arrow{grid-column:3;grid-row:2;align-self:start}
  .pub-filter-groups{margin-top:20px}
  .pub-filter-group,.pub-filter-meta{display:block}
  .pub-filter-label{padding:12px 0 0}
  .pub-controls{
    overflow:auto;
    white-space:nowrap;
    flex-wrap:nowrap;
    gap:18px;
    padding:12px 0 11px;
    scrollbar-width:none;
  }
  .pub-controls::-webkit-scrollbar{display:none}
  .pub-filter-meta{padding:12px 0}
  .pub-filter-status{margin-bottom:5px}
  .pub-row{grid-template-columns:42px minmax(0,1fr) 20px;gap:10px;padding:22px 0}
  .pub-reference{grid-column:2/3;font-size:12px;line-height:1.55}
  .pub-title-inline{font-size:18px}
  .pub-tags{grid-column:2/3;margin-top:2px}
  .pub-row>.arrow{grid-column:3;grid-row:1/3}
  .pub-title{font-size:19px}
  .people-tabs,.resource-tabs{overflow:auto;white-space:nowrap}
  .person-row{grid-template-columns:1fr;gap:7px;padding:17px 0}
  .person-role{grid-column:1}.person-name{grid-column:1;font-size:22px}.person-focus{display:block;grid-column:1}
  .course-row{grid-template-columns:70px 1fr;gap:12px}
  .course-row .kind{display:none}.course-row h2{font-size:21px}
  .service-grid{grid-template-columns:1fr}
  .service-item,.service-item:nth-child(even){padding:22px 0;border-left:0}
  .resource-row{grid-template-columns:1fr 20px;gap:9px}
  .resource-kind{grid-column:1;display:block}.resource-row h2{grid-column:1}.resource-row p{grid-column:1}
  .resource-row .arrow{grid-column:2;grid-row:1/4}
  .about-layout{padding:6px 20px 55px}
  .about-copy p{font-size:19px}
  .timeline-row{grid-template-columns:90px 1fr}
  .footer-inner{display:block}.footer-inner span{display:block;margin-bottom:5px}
}
