/* Shared editorial hierarchy: the same role has the same type scale in every project. */
:root{--case-title:clamp(42px,5vw,72px);--case-heading:clamp(31px,3.05vw,44px);--case-deck:clamp(25px,2.25vw,32px);--case-subhead:24px;--case-copy:20px;--case-note:18px;--case-caption:16px;--case-label:14px}
body[data-view=project] .case-study{width:min(1440px,100%);margin-inline:auto;padding-inline:clamp(22px,4vw,60px)}
body[data-view=project] :is(h1,h2,h3,h4){font-family:var(--font-display);hyphens:none;overflow-wrap:normal;word-break:normal}
body[data-view=project] .case-study :is(.section-heading h2,.glance-study-opening h2){font-size:var(--case-heading)!important;line-height:1.15!important;font-weight:600;letter-spacing:-.035em;max-width:none;text-wrap:pretty}
body[data-view=project] .case-study :is(.section-body>p,.section-body>div>p){font-family:var(--font-body)!important;font-size:var(--case-copy)!important;line-height:1.55!important;text-wrap:pretty}
body[data-view=project] .case-study .insight h3{font-size:var(--case-subhead);line-height:1.25;font-weight:600}
body[data-view=project] .case-study .insight p{font-family:var(--font-body);font-size:18px;line-height:1.5;text-wrap:pretty}
body[data-view=project] .case-study .section-heading .eyebrow{font-size:var(--case-caption);font-weight:600;letter-spacing:.09em;line-height:1.4;margin-bottom:16px}
body[data-view=project] .case-study figcaption{font-family:var(--font-body);font-size:var(--case-caption);line-height:1.45;text-wrap:pretty}
body[data-view=project] .case-study .case-hero{padding-top:22px;padding-bottom:22px}
body[data-view=project] .case-study .project-title-row{justify-content:flex-start;gap:16px 28px;margin:0 0 14px;align-items:center}
body[data-view=project] .case-study .project-title-row h1{font-size:var(--case-title)!important;line-height:1.08;letter-spacing:-.045em;margin:0;max-width:100%;text-wrap:pretty}
body[data-view=project] .case-study .project-pills{max-width:none;gap:7px;flex:0 1 auto;justify-content:flex-start;margin:0}
body[data-view=project] .case-study .project-pill{font-family:var(--font-body);font-size:var(--case-label);line-height:1.2;padding:7px 11px;min-height:29px;background:var(--accent);color:var(--bg);border:0}
body[data-project=glancemap] .project-pill{background:#a8fa2d!important;color:#10160d!important}
body[data-project=traditional-color] .project-pill:nth-child(4n+1){background:#3c7769!important;color:white!important}
body[data-project=traditional-color] .project-pill:nth-child(4n+2){background:#a67a3c!important;color:white!important}
body[data-project=traditional-color] .project-pill:nth-child(4n+3){background:#b85b4b!important;color:white!important}
body[data-project=traditional-color] .project-pill:nth-child(4n+4){background:#3f697c!important;color:white!important}
body[data-project=icon-colors] .project-pill:nth-child(1){background:#fcbb34!important;color:#071013!important}
body[data-project=icon-colors] .project-pill:nth-child(2){background:#377ef7!important;color:#fff!important}
body[data-project=icon-colors] .project-pill:nth-child(3){background:#b53ff0!important;color:#fff!important}
body[data-view=project] .case-study .hero-subtitle{font-family:var(--font-display)!important;font-size:var(--case-deck);line-height:1.23;letter-spacing:-.025em;margin:0;max-width:none;text-wrap:pretty}
body[data-view=project] .case-study .hero-overview{grid-template-columns:minmax(0,1.02fr) minmax(0,1.08fr);gap:4%;margin-top:22px;align-items:center}
body[data-view=project] .case-study .hero-bottom>p{font-family:var(--font-body);font-size:20px;line-height:1.45;margin:0;max-width:none;text-wrap:pretty}
body[data-view=project] .case-study .project-role{padding:14px 18px;margin:16px 0 12px;background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 10%,var(--bg)),transparent);border-left:3px solid var(--accent)}
body[data-view=project] .case-study .project-role h2{font-family:var(--font-body);font-size:var(--case-label);letter-spacing:.1em;margin:0 0 8px}
body[data-view=project] .case-study .role-value{font-family:var(--font-body);font-size:var(--case-subhead);line-height:1.28;margin:0;font-weight:600;text-wrap:pretty}
body[data-view=project] .case-study .role-detail{font-family:var(--font-body);font-size:16px;line-height:1.5;margin:10px 0 0;max-width:none}
body[data-view=project] .case-study .hero-outcome>span{font-family:var(--font-body);font-size:var(--case-label)}
body[data-view=project] .case-study .hero-outcome>p{font-family:var(--font-body);font-size:var(--case-note);line-height:1.45;margin-top:5px}
body[data-view=project] .case-study .hero-links{margin-top:12px;gap:10px 22px}
body[data-view=project] .case-study .hero-links a{font-size:var(--case-caption)}
body[data-view=project] .case-study .hero-figure{max-width:100%;margin:0}
body[data-view=project] .case-study .hero-figure>.figure-media>img{max-height:350px;object-fit:contain}
body[data-view=project] .case-study .hero-figure figcaption{font-size:var(--case-caption);margin-top:8px;padding-top:0}
body[data-view=project] .case-study .project-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:0;padding:0;margin:14px 0 0;font-family:var(--font-body);text-transform:none;letter-spacing:0;max-width:none}
.meta-badge{display:inline-flex;gap:7px;align-items:center;padding:6px 10px;font-size:var(--case-label);line-height:1.35;border:1px solid color-mix(in srgb,var(--ink) 20%,transparent);border-radius:4px;color:var(--ink)}
.meta-date{background:color-mix(in srgb,var(--accent) 10%,var(--bg));border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.meta-paper{background:color-mix(in srgb,var(--accent) 18%,var(--bg));color:var(--ink);font-weight:600;border-color:transparent}
body[data-project=glancemap] .meta-paper{background:#a8fa2d;color:#121610}
body[data-view=project] .case-study .stats{margin-top:22px;padding-block:15px;gap:18px}
body[data-view=project] .case-study .stats strong{font-family:var(--font-display);font-size:var(--case-heading);line-height:1.15;font-weight:600}
body[data-view=project] .case-study .stats .stat-long{font-size:var(--case-deck)}
body[data-view=project] .case-study .stats span{font-family:var(--font-body);font-size:14px;line-height:1.35;margin-top:5px}
body[data-view=project] .case-study .stats small{font-family:var(--font-body);font-size:var(--case-label);line-height:1.4;margin-top:5px}
@media(max-width:800px){
 :root{--case-copy:18px;--case-subhead:24px;--case-caption:16px}
 body[data-view=project] .case-study .hero-overview{display:flex;gap:22px}
 body[data-view=project] .case-study .project-title-row{gap:13px}
 body[data-view=project] .case-study .hero-bottom>p{font-size:18px}
 body[data-view=project] .case-study .hero-figure>.figure-media>img{max-height:270px}
 body[data-view=project] .case-study .stats{gap:20px 14px}
 .meta-badge{font-size:var(--case-label)}
}
@media(min-width:1100px) and (max-height:820px){
 body[data-view=project] .case-study .case-hero{padding-top:20px}
 body[data-view=project] .case-study .hero-overview{margin-top:16px}
 body[data-view=project] .case-study .project-role{margin-block:12px;padding-block:11px}
 body[data-view=project] .case-study .hero-subtitle{font-size:var(--case-deck)}
}
/* Animated counters inherit their numeric scale, not the adjacent label scale. */
body[data-view=project] .case-study .stats strong :is(span,[data-counter-display]){font:inherit!important;line-height:inherit!important;display:inline!important;margin:0!important;color:inherit}

/* Eight semantic sizes: title, chapter, deck, subheading, body, note, caption, label. */
body[data-view=project] .case-study :is(.figure-caption-title,.insight h3){font-size:var(--case-subhead)!important}
body[data-view=project] .case-study .role-value{font-size:var(--case-subhead)!important}
body[data-view=project] .case-study :is(.section-body>p,.hero-bottom>p){font-size:var(--case-copy)!important}
body[data-view=project] .case-study .chapter-nav a{font-size:var(--case-label)}
body[data-view=project] .case-study .meta-badge{font-size:var(--case-label)}

body[data-project=glancemap] :is(.walk-scene>p,.baseline-story p){font-size:var(--case-copy)!important}
body[data-project=glancemap] :is(.walk-scene aside p,.pilot-goals p,.goal-callout p,.route-person p){font-size:var(--case-note)!important;line-height:1.4}
body[data-project=glancemap] :is(.walk-scene h3,.pilot-insight h3,.baseline-story h3,.pilot-goals h3){font-size:var(--case-subhead)!important}
body[data-project=glancemap] .goal-callout h3{font-size:var(--case-copy)!important}
body[data-project=glancemap] :is(.baseline-gains strong,.route-study-facts dt,.gr-evidence-stat strong){font-size:var(--case-deck)!important}

body[data-project=glancemap] :is(.goal-callout p,.pilot-goals p){text-wrap:balance}

/* Optional structured contribution/outcome data uses the same compact hero hierarchy. */
body[data-view=project] .case-study .role-contributions{margin:12px 0 0;padding:0;display:grid;gap:10px}
body[data-view=project] .case-study .role-contributions>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;border-top:1px solid color-mix(in srgb,var(--accent) 20%,transparent);padding-top:10px}
body[data-view=project] .case-study .role-contributions dt{font-family:var(--font-body);font-size:16px;line-height:1.4;font-weight:650;color:var(--accent)}
body[data-view=project] .case-study .role-contributions dd{margin:0;min-width:0}
body[data-view=project] .case-study .role-contributions dd>p{font-family:var(--font-body);font-size:16px;line-height:1.45;margin:0;text-wrap:pretty}
body[data-view=project] .case-study .role-contributions dd>.role-contribution-detail{font-size:var(--case-caption);line-height:1.45;margin-top:5px;opacity:.85}
body[data-view=project] .case-study .outcome-lines{list-style:none;display:grid;gap:5px;margin:5px 0 0;padding:0}
body[data-view=project] .case-study .outcome-lines>li{font-family:var(--font-body);font-size:var(--case-note);line-height:1.45;text-wrap:pretty}
body[data-project=traditional-color] .case-study .stats>div,body[data-project=icon-colors] .case-study .stats>div{text-align:center}
body[data-project=traditional-color] .case-study .stats>div>span,body[data-project=icon-colors] .case-study .stats>div>span,body[data-project=traditional-color] .case-study .stats>div>small,body[data-project=icon-colors] .case-study .stats>div>small{margin-inline:auto;max-width:100%}
@media(max-width:600px){body[data-view=project] .case-study .role-contributions>div{grid-template-columns:75px minmax(0,1fr);gap:10px}body[data-view=project] .case-study .role-contributions dd>p{font-size:16px}body[data-view=project] .case-study .role-contributions dd>.role-contribution-detail{font-size:15px}}
body[data-view=project] .case-study .project-role.has-contributions{padding-block:12px}
body[data-view=project] .case-study .role-contributions{margin-top:9px;gap:8px}
body[data-view=project] .case-study .role-contributions>div{padding-top:8px}
body[data-view=project] .case-study .hero-outcome.has-outcome-lines{margin-top:14px;padding-bottom:0}
