@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap');
  
:root{
  --paper:#f8f7f3;
  --white:#fffefa;
  --ink:#232822;
  --muted:#63695f;
  --line:#d6d9cf;
  --accent:#315c46;
  --wash:#edf0e8;
  --serif:'Libre Caslon Display',Georgia,serif;
  --sans:'DM Sans',Arial,sans-serif}
*{
  box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:100px}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased}
a{
  color:inherit;
  text-decoration:none}
button{
  font:inherit}
a,button{
  touch-action:manipulation}
a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:5px}
::selection{
  background:#d9e4d8}
h1,h2,h3,p{
  margin:0}
h1,h2,h3{
  font-weight:400}
h1,h2,.serif{
  font-family:var(--serif);
  line-height:1.04;
  letter-spacing:-.025em}
h1{
  font-size:clamp(3.1rem,6.4vw,6.15rem)}
h2{
  font-size:clamp(2.3rem,4vw,3.65rem)}
h3{
  font-family:var(--serif);
  font-size:2rem;
  line-height:1.12}
p+p{
  margin-top:1rem}
p{
  max-width:70ch}
svg{
  display:block}
button{
  cursor:pointer}
button:disabled{
  cursor:default}
 .wrap{
  width:min(1280px,calc(100% - 112px));
  margin:auto}
.skip{
  position:fixed;
  top:-100px;
  left:20px;
  z-index:99;
  background:var(--ink);
  color:white;
  padding:12px}
.skip:focus{
  top:12px}
.header{
  height:100px;
  border-bottom:1px solid var(--line)}
.header-inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px}
.brand{
  display:flex;
  align-items:center;
  gap:13px;
  font-size:20px;
  font-weight:600;
  letter-spacing:-.6px}
.brand-emblem{
  display:block;
  width:52px;
  height:52px;
  object-fit:contain;
  flex:0 0 auto}

.nav{
  display:flex;
  gap:30px;
  height:100%;
  align-items:center}
.nav a{
  font-size:14px;
  position:relative;
  padding:12px 0}
.nav a[aria-current=page]:after{
  content:'';
  position:absolute;
  bottom:3px;
  left:0;
  right:0;
  height:2px;
  background:var(--accent)}
.nav a:hover{
  color:var(--accent)}
.menu-button{
  display:none;
  border:1px solid var(--line);
  background:transparent;
  padding:8px 14px;
  font-size:14px}
.eyebrow{
  font-size:12px;
  line-height:1.5;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--accent)}
.muted{
  color:var(--muted)}
.hero{
  padding:72px 0 62px;
  display:grid;
  grid-template-columns:1fr 300px;
  gap:70px;
  align-items:end}
.hero h1{
  margin:23px 0 28px;
  max-width:800px}
.hero h1 em{
  font-style:normal;
  color:var(--accent)}
.lead{
  font-size:20px;
  line-height:1.55;
  max-width:590px;
  color:#565d52}
.hero-links{
  display:flex;
  align-items:center;
  gap:27px;
  margin-top:32px;
  flex-wrap:wrap}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  background:var(--accent);
  color:white;
  padding:13px 20px;
  font-size:14px;
  border:1px solid var(--accent)}
.button:hover{
  background:#244734}
.text-link{
  font-size:14px;
  display:inline-flex;
  align-items:center;
  gap:22px;
  border-bottom:1px solid var(--ink);
  padding:8px 0}
.text-link:hover{
  color:var(--accent);
  border-color:var(--accent)}
.arrow{
  font-family:Arial,sans-serif}
.scope{
  border-top:2px solid var(--ink);
  padding-top:20px;
  margin-bottom:5px}
.scope>p{
  font-size:14px;
  margin:14px 0 22px}
.scope-row{
  display:grid;
  grid-template-columns:30px 1fr;
  gap:12px;
  border-top:1px solid var(--line);
  padding:18px 0}
.index{
  font-size:12px;
  color:var(--accent);
  letter-spacing:.05em}
.scope-row strong{
  font-size:16px;
  font-weight:550}
.scope-row small{
  display:block;
  font-size:13px;
  color:var(--muted);
  margin-top:3px}
.context-strip{
  display:grid;
  grid-template-columns:1.15fr 1fr 1fr;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:24px 0;
  margin-bottom:72px;
  gap:32px}
.context-item{
  display:flex;
  align-items:center;
  gap:20px}
.context-item+.context-item{
  border-left:1px solid var(--line);
  padding-left:32px}
.context-item strong{
  font-family:var(--serif);
  font-size:33px;
  font-weight:400;
  white-space:nowrap;
  line-height:1.15}
.context-item p{
  font-size:13px;
  color:var(--muted);
  line-height:1.5}
.section{
  padding:0 0 80px}
.section-top{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:30px;
  margin-bottom:30px}
.section-top h2{
  margin-top:12px}
.section-top>p{
  max-width:390px;
  font-size:15px;
  color:var(--muted)}
.project-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px}
.project-card{
  border-top:1px solid var(--ink);
  padding-top:20px;
  display:flex;
  flex-direction:column;
  min-width:0}
.card-meta{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:start;
  font-size:12px;
  color:var(--muted);
  margin-bottom:22px}
.status{
  font-size:12px;
  color:var(--muted);
  display:inline-block;
  border-left:2px solid #929a86;
  padding-left:9px;
  line-height:1.5}
.project-card h3{
  font-size:32px;
  max-width:500px}
.project-card>p{
  margin:14px 0 22px;
  color:var(--muted);
  font-size:15px;
  max-width:58ch}
.project-card .visual{
  margin-top:auto}
.project-card .card-link{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:17px 0;
  font-size:14px;
  border-bottom:1px solid var(--line);
  color:var(--accent)}
.project-card:hover h3 a{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:5px}
.visual{
  background:var(--wash);
  min-height:185px;
  padding:23px 25px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:1px solid var(--line);
  position:relative;
  overflow:hidden}
.visual-title{
  font-size:13px;
  color:var(--accent);
  font-weight:550;
  margin-bottom:14px}
.visual-note{
  font-size:12px;
  color:var(--muted);
  margin-top:14px;
  line-height:1.5}
.empty-plot{
  height:105px;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:100% 26px,25% 100%;
  border-left:1px solid #aab2a4;
  border-bottom:1px solid #aab2a4;
  display:grid;
  place-items:center}
.empty-plot span{
  font-size:13px;
  background:var(--wash);
  padding:9px 15px;
  color:var(--muted);
  text-align:center}
.diagram{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:9px}
.diagram span:not(.arrow){
  border:1px solid #b9c4b4;
  padding:16px 9px;
  background:var(--paper);
  font-size:13px;
  text-align:center;
  flex:1;
  line-height:1.5}
.diagram .arrow{
  color:var(--accent);
  font-size:18px}
.mini-matrix{
  display:grid;
  grid-template-columns:1fr 1fr}
.mini-matrix div{
  padding:10px 14px;
  border-left:2px solid #8b9c83}
.mini-matrix strong{
  display:block;
  font-size:14px;
  font-weight:550}
.mini-matrix small{
  font-size:13px;
  color:var(--muted)}
.feature{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--line);
  margin-bottom:32px;
  gap:56px;
  padding:27px 0 30px}
.feature h3{
  font-size:41px;
  max-width:500px;
  margin:16px 0}
.feature p{
  color:var(--muted);
  font-size:15px;
  margin-bottom:23px}
.feature .visual{
  min-height:270px}
.pillars{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  margin-top:30px}
.pillar{
  padding:26px 32px 0 0}
.pillar+.pillar{
  border-left:1px solid var(--line);
  padding-left:32px}
.pillar h3{
  font-size:36px;
  margin:17px 0}
.pillar p{
  font-size:15px;
  color:var(--muted)}
.pillar ul{
  list-style:none;
  padding:0;
  margin:24px 0 0;
  font-size:14px}
.pillar li{
  border-top:1px solid var(--line);
  padding:10px 0}
.exploration{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  background:var(--ink);
  color:var(--paper);
  padding:44px;
  gap:70px;
  margin-bottom:80px}
.exploration .eyebrow{
  color:#c7d5bd}
.exploration h2{
  margin-top:18px;
  font-size:46px}
.exploration p{
  color:#c9cec3;
  font-size:16px}
.exploration .text-link{
  color:var(--paper);
  border-color:#89917f;
  margin-top:20px}
.exploration .status{
  color:#d8decf;
  margin-top:22px}
.kpis{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-top:26px}
.kpi{
  padding:26px 28px 25px 0}
.kpi+.kpi{
  padding-left:28px;
  border-left:1px solid var(--line)}
.kpi-value{
  font:48px/1.1 var(--serif);
  color:var(--accent)}
.kpi-label{
  font-size:14px;
  margin-top:10px}
.note{
  font-size:13px;
  color:var(--muted);
  margin-top:16px;
  max-width:95ch}
.cta{
  border-top:1px solid var(--ink);
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
  padding:33px 0 58px}
.cta h2{
  font-size:36px}
.footer{
  border-top:1px solid var(--line);
  padding:34px 0}
.footer-top,.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:24px}
.footer-links{
  display:flex;
  gap:23px;
  flex-wrap:wrap;
  font-size:14px}
.footer-bottom{
  margin-top:30px;
  font-size:12px;
  color:var(--muted)}
.page-head{
  padding:60px 0 42px;
  border-bottom:1px solid var(--line);
  margin-bottom:42px}
.page-head h1{
  font-size:clamp(3.2rem,5.8vw,5.3rem);
  margin:20px 0 23px;
  max-width:1000px}
.page-head .lead{
  max-width:730px}
.page-head .status{
  margin-top:20px}
.work-intro{
  display:flex;
  justify-content:space-between;
  gap:30px;
  font-size:14px;
  color:var(--muted);
  margin-bottom:30px}
.work-intro span:first-child{
  color:var(--accent)}
.work-grid .project-card{
  margin-bottom:20px}
.filters{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin:27px 0 34px}
.filter{
  background:transparent;
  border:1px solid var(--line);
  padding:8px 14px;
  color:var(--muted);
  font-size:14px}
.filter[aria-pressed=true]{
  color:white;
  background:var(--accent);
  border-color:var(--accent)}
.filter:hover{
  border-color:var(--accent)}
.lab-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px}
.lab-card{
  border-top:1px solid var(--ink);
  padding:22px 0}
.lab-card h3{
  font-size:28px;
  margin:18px 0 14px}
.lab-card p{
  font-size:14px;
  color:var(--muted)}
.lab-card .text-link{
  margin-top:15px}
.lab-card[hidden]{
  display:none}
.article-list{
  border-top:1px solid var(--ink)}
.article-row{
  display:grid;
  grid-template-columns:50px 1fr 160px 30px;
  padding:30px 0;
  border-bottom:1px solid var(--line);
  gap:25px;
  align-items:start}
.article-row h3{
  font-size:30px;
  max-width:740px}
.article-row .eyebrow{
  margin-bottom:10px}
.article-row:hover h3{
  color:var(--accent)}
.content-grid{
  display:grid;
  grid-template-columns:225px minmax(0,1fr);
  gap:75px;
  align-items:start;
  padding-bottom:70px}
.contents{
  position:sticky;
  top:30px;
  border-top:2px solid var(--ink);
  padding-top:18px}
.contents ol{
  list-style:none;
  padding:0;
  margin:15px 0}
.contents li a{
  display:block;
  padding:7px 0;
  font-size:14px;
  color:var(--muted)}
.contents li a:hover{
  color:var(--accent)}
.contents .index{
  margin-right:10px}
.study-section{
  padding-bottom:42px;
  margin-bottom:35px;
  border-bottom:1px solid var(--line)}
.study-section:last-child{
  margin-bottom:0}
.study-section h2{
  font-size:37px;
  margin:10px 0 23px}
.study-section p{
  font-size:16px;
  color:#50584d}
.study-section .visual{
  margin-top:24px;
  min-height:235px}
.placeholder-text{
  padding:22px 24px;
  border-left:2px solid #a3af99;
  background:var(--wash)}
.placeholder-text .eyebrow{
  margin-bottom:8px}
.placeholder-text p{
  font-size:15px}
.caveat{
  background:#eeeee7;
  border-left:3px solid var(--accent);
  padding:23px 26px;
  margin-top:22px}
.caveat strong{
  font-size:14px;
  font-weight:600;
  display:block;
  margin-bottom:7px}
.caveat p{
  font-size:15px}
.table-wrap{
  overflow-x:auto;
  margin-top:22px}
table{
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:14px;
  min-width:430px}
caption{
  text-align:left;
  font-size:13px;
  color:var(--muted);
  caption-side:bottom;
  padding-top:12px}
th{
  font-weight:550;
  color:var(--accent);
  font-size:13px;
  background:var(--wash)}
th,td{
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  vertical-align:top}
td{
  color:var(--muted)}
.tags{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:20px}
.tag{
  font-size:13px;
  border-bottom:1px solid var(--line);
  padding:5px 0;
  margin-right:12px;
  color:var(--muted)}
.breadcrumb{
  font-size:13px;
  color:var(--muted);
  margin-bottom:22px}
.breadcrumb a{
  text-decoration:underline;
  text-underline-offset:4px}
.detail-meta{
  display:flex;
  gap:35px;
  flex-wrap:wrap;
  margin-top:28px;
  font-size:13px;
  color:var(--muted)}
.detail-meta strong{
  display:block;
  font-size:12px;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:4px}
.article-body{
  max-width:760px;
  margin:0 auto 80px}
.article-body .study-section{
  margin-top:35px}
.bio-layout{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:90px}
.bio-layout .study-section h2{
  font-size:43px}
.fact-box{
  background:var(--wash);
  padding:30px;
  border-top:2px solid var(--accent);
  height:fit-content}
.fact-box h3{
  font-size:29px;
  margin:18px 0}
.fact-row{
  border-top:1px solid var(--line);
  padding:16px 0;
  font-size:14px}
.fact-row small{
  display:block;
  color:var(--muted);
  font-size:13px}
.principles{
  counter-reset:p}
.principle{
  border-top:1px solid var(--line);
  padding:23px 0}
.principle h3{
  font-size:28px;
  margin-bottom:12px}
.resume-head{
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:end}
.disabled-download{
  background:var(--wash);
  color:var(--muted);
  border:1px solid var(--line);
  padding:13px 18px;
  font-size:14px;
  white-space:nowrap}
.resume-role{
  font-weight:600;
  font-size:18px;
  margin-bottom:12px}
.resume-list{
  padding-left:20px;
  color:#50584d}
.resume-list li{
  margin-bottom:9px}
.development-list{
  columns:2;
  column-gap:30px;
  list-style:none;
  padding:0}
.development-list li{
  padding:9px 0;
  border-bottom:1px solid var(--line);
  break-inside:avoid}
.back-next{
  display:flex;
  justify-content:space-between;
  gap:25px;
  margin:0 0 55px;
  border-top:1px solid var(--ink);
  padding-top:23px;
  font-size:14px;
  color:var(--accent)}
.architecture{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px}
.architecture div{
  padding:15px;
  background:var(--paper);
  border:1px solid var(--line);
  font-size:13px}
.architecture strong{
  font-size:14px;
  display:block;
  color:var(--accent);
  font-weight:550}
.architecture small{
  color:var(--muted);
  display:block;
  margin-top:4px;
  font-size:12px}
.module-gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:28px}
.module-gallery .visual{
  min-height:230px}
.no-results{
  padding:30px 0;
  color:var(--muted)}
@media(min-width:1500px){
  .wrap{
  width:min(1340px,calc(100% - 144px))}
.hero{
  padding-top:85px;
  padding-bottom:74px}
}
@media(max-width:1050px){
  .wrap{
  width:calc(100% - 64px)}
.nav{
  gap:20px}
.hero{
  grid-template-columns:1fr 240px;
  gap:36px}
.hero h1{
  font-size:70px}
.context-strip{
  gap:20px}
.context-item{
  gap:14px}
.context-item+.context-item{
  padding-left:20px}
.context-item strong{
  font-size:27px}
.feature{
  gap:30px}
.lab-grid{
  grid-template-columns:1fr 1fr}
.content-grid{
  grid-template-columns:180px minmax(0,1fr);
  gap:40px}
.exploration{
  gap:40px}
.bio-layout{
  gap:40px}
.article-row{
  grid-template-columns:35px 1fr 125px 20px;
  gap:15px}
}
@media(max-width:760px){
  .wrap{
  width:calc(100% - 40px)}
.header{
  height:auto;
  min-height:79px}
.header-inner{
  min-height:79px;
  flex-wrap:wrap;
  gap:0}
.brand{
  font-size:18px}
.menu-button{
  display:block}
.nav{
  display:none;
  width:100%;
  height:auto;
  flex-wrap:wrap;
  gap:0;
  padding:12px 0 21px}
.nav.is-open{
  display:flex}
.nav a{
  width:33.333%;
  padding:12px 0}
.nav a[aria-current=page]:after{
  right:40%}
.hero{
  grid-template-columns:1fr;
  padding:43px 0 35px;
  gap:36px}
.hero h1{
  font-size:clamp(3.55rem,10vw,5rem);
  margin:19px 0 22px;
  line-height:1.02}
.lead{
  font-size:18px}
.hero-links{
  margin-top:27px}
.scope{
  margin:0}
.scope>p{
  display:none}
.scope>.eyebrow{
  margin-bottom:12px}
.scope-row{
  display:grid;
  grid-template-columns:24px 1fr;
  padding:12px 0}
.scope-row small{
  display:inline;
  margin-left:10px}
.scope-row strong{
  font-size:15px}
.context-strip{
  grid-template-columns:1fr;
  gap:0;
  padding:0;
  margin-bottom:47px}
.context-item{
  padding:18px 0!important;
  gap:24px}
.context-item+.context-item{
  border-left:0;
  border-top:1px solid var(--line)}
.context-item strong{
  min-width:112px;
  font-size:30px}
.context-item p{
  font-size:13px;
  max-width:32ch}
.section{
  padding-bottom:50px}
.section-top{
  align-items:start;
  gap:18px;
  flex-direction:column}
.section-top h2{
  font-size:40px}
.section-top>p{
  display:none}
.section-top .text-link{
  white-space:nowrap;
  gap:12px;
  align-self:start}
.feature{
  grid-template-columns:1fr;
  gap:25px;
  padding:22px 0}
.feature h3{
  font-size:37px}
.feature .visual{
  min-height:210px}
.project-grid{
  grid-template-columns:1fr;
  gap:24px}
.project-card h3{
  font-size:32px}
.visual{
  padding:20px;
  min-height:180px}
.pillars{
  grid-template-columns:1fr}
.pillar,.pillar+.pillar{
  padding:23px 0;
  border-left:0;
  border-bottom:1px solid var(--line)}
.pillar h3{
  margin:10px 0}
.pillar ul{
  margin-top:18px}
.pillar li:last-child{
  padding-bottom:20px}
.exploration{
  grid-template-columns:1fr;
  padding:28px;
  gap:25px;
  margin-bottom:50px}
.exploration h2{
  font-size:40px}
.kpi{
  padding:20px 12px 20px 0}
.kpi+.kpi{
  padding-left:12px}
.kpi-value{
  font-size:37px}
.kpi-label{
  font-size:13px;
  line-height:1.5}
.note{
  font-size:12px}
.cta{
  flex-direction:column;
  align-items:start;
  gap:18px;
  padding:26px 0 37px}
.cta h2{
  font-size:32px}
.footer-top,.footer-bottom{
  flex-direction:column;
  gap:19px}
.footer-links{
  gap:18px;
  font-size:13px}
.footer-bottom{
  margin-top:26px;
  gap:6px}
.page-head{
  padding:36px 0 30px;
  margin-bottom:30px}
.page-head h1{
  font-size:clamp(2.8rem,8vw,4.2rem);
  overflow-wrap:break-word}
.work-intro{
  flex-direction:column;
  gap:8px}
.lab-grid{
  grid-template-columns:1fr}
.article-row{
  grid-template-columns:24px 1fr 18px;
  gap:14px;
  padding:25px 0}
.article-row h3{
  font-size:28px}
.article-row>.status{
  grid-column:2;
  grid-row:2}
.article-row>.arrow{
  grid-column:3;
  grid-row:1}
.content-grid{
  grid-template-columns:1fr;
  gap:30px;
  padding-bottom:35px}
.contents{
  position:static}
.contents ol{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:15px}
.contents li a{
  font-size:13px}
.study-section{
  padding-bottom:30px;
  margin-bottom:27px}
.study-section h2{
  font-size:34px}
.detail-meta{
  gap:22px}
.bio-layout{
  grid-template-columns:1fr;
  gap:25px}
.resume-head{
  flex-direction:column;
  align-items:start;
  gap:22px}
.development-list{
  columns:1}
.module-gallery{
  grid-template-columns:1fr}
.architecture{
  grid-template-columns:1fr 1fr}
.back-next{
  font-size:13px}
.diagram{
  gap:6px}
.diagram span:not(.arrow){
  font-size:12px;
  padding:12px 5px}
.mini-matrix div{
  padding:8px 10px}
.empty-plot span{
  font-size:12px}
.fact-box{
  padding:25px}
.breadcrumb{
  font-size:12px}
}
@media(prefers-reduced-motion:reduce){
  html{
  scroll-behavior:auto}
}
@media print{
  .header,.footer,.contents,.hero-links,.filters,.disabled-download,.back-next{
  display:none}
body{
  background:white}
.wrap{
  width:100%}
.content-grid{
  display:block}
h1{
  font-size:40px}
.study-section{
  break-inside:avoid}
.page-head{
  padding-top:0}
}


@media(max-width:760px){
  .brand-emblem{width:44px;height:44px}
  .footer .brand-emblem{width:52px;height:52px}
}

/* Headline results */
.headline-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}
.result-card{padding:28px;border:1px solid var(--line,#d4d9d2);min-width:0}
.result-card:last-child{grid-column:1/-1}
.result-card h3{font-size:1.3rem;line-height:1.3;margin:0 0 10px}
.result-period{font-size:.875rem;margin:0 0 24px}
.result-value{font-size:clamp(2.5rem,5vw,3.5rem);line-height:1.1}
.result-label{font-size:1rem;margin:8px 0 20px}
.result-card ul{list-style:none;padding:0;margin:0;font-size:1rem;line-height:1.65}
@media(max-width:760px){.headline-results{grid-template-columns:minmax(0,1fr)}.result-card{padding:24px}}

/* Wilmington evidence: native editorial exhibits */
.case-summary{font-size:1.2rem;max-width:850px;margin:0 0 48px;line-height:1.65}
.marketing-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.marketing-case>div{min-width:0}
.case-exhibit{margin:32px 0 0;padding:0;min-width:0}
.case-exhibit+ .case-exhibit{margin-top:68px;padding-top:42px;border-top:1px solid var(--line)}
.case-exhibit figcaption{margin-bottom:28px}
.case-exhibit h3{font-family:var(--serif);font-size:2.2rem;line-height:1.12;margin:10px 0}
.case-exhibit figcaption p{color:var(--muted);font-size:.95rem;margin:8px 0}
.reset-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;border-top:1px solid var(--line);padding-top:26px}
.reset-metric strong{font-family:var(--serif);font-weight:400;font-size:clamp(2.3rem,4vw,3.7rem);line-height:1.1;display:block;margin:20px 0 14px;color:var(--accent)}
.reset-metric.investment strong{color:var(--ink)}
.reset-metric .eyebrow{min-height:36px;font-size:.8rem;letter-spacing:.05em}
.reset-metric p{font-size:.875rem;margin:0;line-height:1.5}
.interpretation{margin-top:28px!important;max-width:750px}
.acquisition-groups{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:34px}
.acquisition-group h4{font:500 1rem var(--sans);margin:0 0 30px}
.bar-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.bar-column{text-align:center;font-size:.875rem}
.bar-track{height:250px;border-bottom:1px solid var(--ink);display:flex;align-items:flex-end;background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),var(--line) calc(25% - 1px),var(--line) 25%)}
.outcome-bar{position:relative;width:100%;max-width:72px;margin:0 auto;background:var(--accent)}
.outcome-bar strong{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);font-size:1rem;font-weight:500;white-space:nowrap}
.year-2023{background:var(--paper);border:1.5px solid var(--muted);border-bottom:0}
.year-2025{background:#879987}
.bar-column>span{display:block;padding-top:12px}
.chart-note,.source-note{font-size:.875rem!important;color:var(--muted);line-height:1.65;margin-top:20px!important}
.evidence-data{margin:18px 0;color:var(--muted);font-size:.875rem}
.evidence-data summary{cursor:pointer;text-decoration:underline;text-underline-offset:4px;padding:8px 0}
.evidence-data table{width:100%;min-width:0;table-layout:fixed;margin-top:12px}
.evidence-data th,.evidence-data td{padding:10px 5px;overflow-wrap:anywhere;font-size:.875rem}
.efficiency-deltas{display:flex;gap:30px;align-items:center;flex-wrap:wrap;margin:28px 0;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.efficiency-deltas strong{display:block;font:2.3rem var(--serif);color:var(--accent)}
.efficiency-deltas div span{font-size:.875rem}
.mix-legend{display:flex;gap:12px 24px;flex-wrap:wrap;margin-bottom:22px;font-size:.875rem}
.mix-legend span{display:flex;align-items:center;gap:8px}
.mix-legend i{width:14px;height:14px;display:inline-block}
.channel-0{background:#315c46;color:#fffefa}.channel-1{background:#a6b5a5;color:#232822}.channel-2{background:#63695f;color:#fffefa}.channel-3{background:#e0dfd4;color:#232822}
.mix-row{margin-bottom:16px}.mix-year{font-size:.875rem;margin-bottom:7px}
.mix-stack{display:flex;width:100%;height:38px}
.mix-stack>div{display:flex;justify-content:center;align-items:center;font-size:.875rem;white-space:nowrap;overflow:hidden;border-right:2px solid var(--paper)}
.mix-stack>div:last-child{border-right:0}
.management-years,.data-definitions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:30px 0}
.management-years{border-top:1px solid var(--line);padding-top:20px}
.management-years strong{font:2rem var(--serif);display:block}.management-years span{font-size:.875rem;display:block;margin-top:8px}
.data-definitions h3{font:500 1rem var(--sans);margin:0 0 12px}.data-definitions p{font-size:.95rem;line-height:1.85}
.analytical-steps>div{display:flex;gap:24px;border-top:1px solid var(--line);padding:22px 0}.analytical-steps h3{font:500 .9rem var(--sans);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.analytical-steps p{margin:0}
.portfolio-outcome{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:23px 0;border-bottom:1px solid var(--line)}
.portfolio-outcome h3{font:500 1rem var(--sans);margin:0 0 8px}.portfolio-outcome span{font-size:.875rem;color:var(--muted)}
.portfolio-outcome strong{font:1.8rem var(--serif);color:var(--accent)}.portfolio-outcome p{font-size:.95rem;margin:8px 0 0}
.scope-transition{margin-top:46px!important}.index-chart{width:100%;min-height:355px}.index-chart svg{width:100%;display:block;overflow:visible;font-family:var(--sans)}
.case-limitations{padding-left:22px}.case-limitations li{margin:14px 0;line-height:1.65}
.evidence-preview{border-top:1px solid var(--line);padding:28px 0;margin-top:20px}.preview-number{font:clamp(4rem,6vw,6rem) var(--serif);line-height:1.1;margin:16px 0;color:var(--accent)}.evidence-preview p{font-size:1rem;max-width:460px}
@media(max-width:1050px){.reset-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.reset-metric .eyebrow{min-height:0}.marketing-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.case-exhibit h3{font-size:1.9rem}.acquisition-groups{grid-template-columns:1fr;gap:40px}.bar-track{height:220px}.bar-group{gap:24px}.bar-column .outcome-bar{max-width:70px}.data-definitions{grid-template-columns:1fr;gap:15px}.management-years{gap:12px}.management-years strong{font-size:1.7rem}.management-years span{font-size:.875rem}.portfolio-outcome{grid-template-columns:1fr;gap:12px}.mix-stack{height:36px}.mix-stack>div{font-size:.75rem}.reset-metric p{font-size:.875rem}.efficiency-deltas{gap:20px}.efficiency-deltas>.eyebrow{flex-basis:100%}.marketing-meta{gap:20px}.case-summary{font-size:1.1rem}.evidence-data th,.evidence-data td{font-size:.8rem;padding:9px 2px}}
@media(max-width:370px){.mix-stack>div span{font-size:.7rem}.reset-metrics{gap:18px}.reset-metric strong{font-size:2.4rem}}

/* Growth first; investment and other outcomes provide supporting context. */
.growth-results{margin:28px 0}
.growth-primary{display:grid;grid-template-columns:1.15fr 1fr;gap:32px;padding:24px 0 28px;border-top:1px solid var(--line)}
.growth-metric strong{display:block;font:clamp(2.8rem,5vw,4.7rem)/1.05 var(--serif);color:var(--accent);margin-bottom:15px}
.growth-primary .growth-metric:first-child strong{font-size:clamp(3.5rem,6vw,5.7rem)}
.growth-metric span{display:block;font-size:1rem;font-weight:550}
.growth-metric p{font-size:.9rem;line-height:1.6;margin:10px 0 0;max-width:340px}
.growth-support{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:24px 0;border-top:1px solid var(--line)}
.growth-support strong{font-size:2rem;color:var(--ink);margin-bottom:10px}
.growth-support span{font-size:.875rem}.growth-support p{font-size:.875rem}
.hero-growth{margin-top:12px;margin-bottom:56px;max-width:1000px}
.hero-metric-context{margin-top:28px}.case-summary{margin-bottom:24px}
.growth-preview h3{font:500 1.1rem var(--sans);margin:0 0 16px}
.preview-productivity{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}
.preview-productivity strong{font-size:1.1rem;color:var(--accent);font-weight:550}
.preview-productivity p,.preview-proof{font-size:.875rem!important}
@media(max-width:600px){.growth-primary{grid-template-columns:1fr;gap:28px}.growth-support{grid-template-columns:1fr;gap:20px}.growth-support .growth-metric{display:grid;grid-template-columns:100px 1fr;column-gap:18px}.growth-support strong{grid-row:span 2;margin:0}.growth-support p{margin:4px 0 0}.hero-growth{margin-bottom:42px}.growth-metric p{max-width:none}}

/* Demand Analytics: connected editorial evidence. */
.demand-flagship{border-top:2px solid var(--accent);border-bottom:1px solid var(--line);padding:38px 0;margin:42px 0}
.demand-flagship h2{font-size:clamp(2.2rem,4vw,3.7rem);max-width:800px;margin:18px 0}
.demand-metrics{display:flex;flex-wrap:wrap;gap:24px 48px;margin:30px 0}
.demand-metrics strong{display:block;font:clamp(2.5rem,4vw,3.7rem)/1.1 var(--serif);color:var(--accent)}
.demand-metrics span{display:block;font-size:.9rem;margin-top:10px}
.demand-collection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:25px}
.demand-study{border-top:1px solid var(--line);padding:25px 0}
.demand-study h3{font-size:2rem;line-height:1.15;margin:16px 0}
.demand-study p{font-size:1rem;max-width:580px}
.flagship-card{border-top:3px solid var(--accent);grid-column:1/-1}
.demand-case>div{min-width:0}
.demand-case .study-section h2{font-size:2rem}
.demand-figure{margin:32px 0 40px;padding:0}
.demand-figure h3{font-size:1.85rem;line-height:1.2;margin:0 0 12px}
.demand-figure figcaption p{font-size:.9rem;color:var(--muted)}
.demand-line{width:100%;min-height:320px}.demand-line svg{display:block;width:100%;font-family:var(--sans)}
.demand-legend{display:flex;flex-wrap:wrap;gap:12px 22px;margin:20px 0;font-size:.875rem}
.demand-legend span{display:flex;align-items:center;gap:8px}.demand-legend i{width:18px;height:3px}
.evidence-bars{margin:24px 0}.evidence-bars>div{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,1.6fr);gap:18px;align-items:center;margin:20px 0;font-size:.9rem}
.evidence-track{position:relative;height:32px;padding-right:48px;display:flex;align-items:center}
.evidence-track i{height:20px;display:block;background:var(--accent)}
.evidence-track strong{font-size:.9rem;font-weight:500;margin-left:10px}
.demand-steps{counter-reset:demand;list-style:none;padding:0;margin:26px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.demand-steps li{counter-increment:demand;border-top:1px solid var(--line);padding:18px 0;font-size:1rem;line-height:1.6}
.demand-steps li:before{content:counter(demand,decimal-leading-zero);font-size:.85rem;color:var(--accent);display:block;margin-bottom:8px}
.formula{font-family:var(--sans);font-size:.95rem;line-height:1.9;padding:20px;background:var(--wash);overflow-wrap:anywhere}
.method-detail{margin:24px 0;border-top:1px solid var(--line);padding:18px 0}.method-detail summary{cursor:pointer;font-weight:500}
.harmonic-comparison,.signal-comparison{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:28px 0}
.harmonic-comparison>div,.signal-comparison>div{border-top:1px solid var(--line);padding-top:22px}
.harmonic-comparison strong{font:2rem var(--serif)}.signal-comparison h3{font-size:1.7rem}
.monthly-repeat{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:24px}
.monthly-repeat>div{border-top:3px solid var(--accent);background:var(--wash);padding:14px 10px}
.monthly-repeat span,.monthly-repeat strong{display:block;font-size:.875rem;line-height:1.5}.monthly-repeat strong{margin-top:10px;font-weight:500}
.calendar-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.calendar-compare>div{border-top:2px solid var(--accent);padding-top:18px}.calendar-compare strong,.calendar-compare span{display:block;font-size:.9rem;line-height:1.6}
.score-bands{margin:30px 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.score-bands>div{border-top:5px solid var(--accent);padding:20px 0}.score-bands strong{font:2rem var(--serif);color:var(--accent)}
.score-bands h3{font:500 .9rem/1.6 var(--sans);margin:14px 0}.score-bands p{font-size:.875rem}
.download-links,.component-links{display:flex;flex-wrap:wrap;gap:20px;margin:25px 0}
.demand-case .button{white-space:normal;text-align:left;line-height:1.5;max-width:100%}
.demand-case .source-note{overflow-wrap:anywhere}
@media(max-width:1050px){.score-bands{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-repeat{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.demand-collection,.demand-steps,.harmonic-comparison,.signal-comparison,.calendar-compare{grid-template-columns:1fr}.monthly-repeat{grid-template-columns:repeat(2,minmax(0,1fr))}.demand-metrics{gap:22px}.demand-metrics>div{flex:1 1 120px}.evidence-bars>div{grid-template-columns:1fr;gap:6px}.demand-figure h3{font-size:1.65rem}.evidence-track{padding-right:30px}.demand-case .back-next{flex-wrap:wrap}}

/* Focused portfolio pages retain the existing editorial design. */
.focused-hero{display:block;padding-bottom:64px}.focused-hero h1{max-width:1050px;font-size:clamp(3rem,5.6vw,5.5rem)}.focused-hero .lead{max-width:800px}.portfolio-scale{margin-top:20px;color:var(--muted);font-size:15px}.feature h2{font-size:clamp(2.2rem,3.5vw,3.2rem)}.feature p{margin:18px 0}.series-feature{border-top:1px solid var(--line);padding:38px 0 0}.series-feature h2{margin:12px 0 20px}.series-feature .text-link{margin-top:14px}.contact-links{display:flex;gap:24px;flex-wrap:wrap}.contact-links a{overflow-wrap:anywhere}.contact-cta{flex-wrap:wrap}.about-copy{max-width:780px;font-size:19px;line-height:1.75}.resume-content{max-width:900px;padding:38px 0 60px}.resume-content h3{font-size:25px;margin:24px 0 14px}.resume-skills p{margin-bottom:26px}.resume-list{margin-bottom:36px}.about-photo{aspect-ratio:4/5;object-fit:cover;width:100%}@media(max-width:600px){.contact-links{display:grid;gap:10px}.focused-hero{padding-top:40px}.portfolio-scale{line-height:1.8}.contact-cta h2{margin-bottom:15px}.resume-head{gap:24px}}

/* Visual analytics: three recurring editorial chapters and original exhibits. */
.va-preview{padding-bottom:40px}.va-hero,.va-hero-images,.va-three,.va-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.va-hero a{border-top:2px solid var(--accent);padding:22px 0;text-decoration:none}.va-hero strong{display:block;font:1.5rem/1.35 var(--serif);margin-top:12px}.va-figure{margin:28px 0;min-width:0}.va-figure img{display:block;width:100%;height:auto;border:1px solid var(--line);background:white}.va-figure figcaption{font-size:.875rem;line-height:1.6;color:var(--muted);margin-top:12px}.va-figure figcaption a{white-space:nowrap}.va-hero-images .va-figure{margin-top:0}.va-hero-images img{aspect-ratio:16/10;object-fit:contain}.va-hero-images figcaption{font-size:.875rem}.va-body{max-width:1120px;margin:auto}.va-body .study-section>p{max-width:820px;line-height:1.8}.va-case .study-section{scroll-margin-top:110px}.va-three{margin:30px 0}.va-three>div{border-top:1px solid var(--line);padding-top:15px}.va-three h3{font-size:1.45rem}.va-three p{font-size:1rem}.va-callout{border-left:3px solid var(--accent);padding:20px 28px;margin:36px 0;background:var(--paper)}.va-callout strong{font:clamp(1.6rem,3vw,2.2rem)/1.3 var(--serif)}.va-callout p{margin-bottom:0}.va-evidence-row{display:grid;grid-template-columns:.8fr 1fr 1.3fr;gap:18px;align-items:start}.va-support{display:grid;grid-template-columns:1fr 1.4fr;gap:32px;align-items:center}.va-process{list-style:none;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;counter-reset:stage;margin:36px 0}.va-process li{counter-increment:stage;border-top:1px solid var(--line);padding-top:16px}.va-process li:before{content:'0' counter(stage);display:block;color:var(--accent);font-size:.875rem;margin-bottom:15px}.va-process strong,.va-process span{display:block}.va-process span{font-size:.875rem;line-height:1.6;margin-top:12px}.va-conclusion{margin:60px 0;font:clamp(2rem,4vw,3.5rem)/1.25 var(--serif);color:var(--accent);max-width:950px}.va-gallery img{aspect-ratio:4/3;object-fit:contain}.va-case .back-next{flex-wrap:wrap;gap:20px}
@media(max-width:800px){.va-process{grid-template-columns:repeat(3,minmax(0,1fr))}.va-support{grid-template-columns:1fr}.va-three{grid-template-columns:1fr}.va-hero{gap:15px}.va-hero strong{font-size:1.2rem}.va-hero-images{gap:12px}.va-gallery{grid-template-columns:1fr}.va-evidence-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px}.va-evidence-row .va-figure{flex:0 0 85%;scroll-snap-align:start}}
@media(max-width:520px){.va-hero{grid-template-columns:1fr;gap:0}.va-hero a{padding:15px 0}.va-hero strong{margin-top:5px}.va-hero-images{grid-template-columns:1fr}.va-hero-images img{max-height:230px}.va-process{grid-template-columns:1fr}.va-process li{display:grid;grid-template-columns:30px 1fr;column-gap:12px}.va-process span{grid-column:2;margin:0}.va-callout{padding:18px}.va-figure figcaption{overflow-wrap:anywhere}}

/* Recruiter scan: business outcome first, explicit units and benchmark nearby. */
.growth-primary .growth-metric:nth-child(2) strong{font-size:clamp(2.5rem,4vw,4rem)}
.growth-support{grid-template-columns:repeat(2,minmax(0,1fr))}
.study-brief{display:grid;grid-template-columns:1fr 1fr;gap:20px 34px;margin:0 0 40px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.study-brief dt{font-size:.875rem;color:var(--accent);font-weight:600;margin-bottom:8px}.study-brief dd{margin:0;line-height:1.65;font-size:1rem}.demand-metrics>div{max-width:290px}.demand-metrics span{line-height:1.6}
@media(max-width:650px){.study-brief{grid-template-columns:1fr}.growth-support{grid-template-columns:1fr}}
