/* Typography: a single scale for equivalent content roles. */
:root{
 --type-hero:clamp(56px,6.1vw,98px);
 --type-section:68px;--type-display:48px;--type-card:40px;--type-subheading:24px;
 --type-lead:24px;--type-intro:20px;--type-body:16px;--type-label:14px;--type-action:15px;
 --weight-regular:400;--weight-medium:500;--weight-heading:600;
 --leading-heading:1.08;--leading-subheading:1.2;--leading-body:1.6;
}
body{font-size:var(--type-body);font-weight:var(--weight-regular);line-height:var(--leading-body)}
.hero h1{font-size:var(--type-hero);font-weight:var(--weight-heading);line-height:1.1}
main .section h2,main .manifest-quote,main .contacts .contact-intro h3{font-size:var(--type-section);font-weight:var(--weight-heading);line-height:var(--leading-heading);letter-spacing:-.05em}
main .manifest-quote .highlight-line{font-size:inherit}
main .manifest-quote .text-highlight{font-weight:var(--weight-regular);line-height:1.38}
.statement p{font-size:var(--type-display);font-weight:var(--weight-medium);line-height:1.12;letter-spacing:-.045em}
main .audience-card h3{font-size:var(--type-card);font-weight:var(--weight-heading);line-height:var(--leading-heading);letter-spacing:-.045em}
main .steps h3,main .principle-list h3,main .event-card h3,main .partner-card h3,main .join-panel h3,main .manifest-text h3,.contact-links strong{font-size:var(--type-subheading);font-weight:var(--weight-heading);line-height:var(--leading-subheading);letter-spacing:-.03em}
main .about-copy p.large,main .mission>p,main .partners-head>p{font-size:var(--type-lead);font-weight:var(--weight-regular);line-height:1.45;letter-spacing:-.02em}
.hero-copy>p{font-size:var(--type-intro);font-weight:var(--weight-regular);line-height:1.5;letter-spacing:0}
main .about-copy p:not(.large),main .audience-card>p,main .audience-card li,main .audience-note,main .steps p,main .river>p,main .principle-list details>p,main .manifest-text p,main .manifest-text li,main .event-card p,main .partner-card>p,main .join-panel>p:not(.contact-note),main .contact-intro>p,.statement .statement-end{font-size:var(--type-body);font-weight:var(--weight-regular);line-height:var(--leading-body);letter-spacing:0}
main .section-kicker,main .card-top,main .step-number,main .num,main .event-number,main .event-link,main .partner-specialty,main .partner-services li,main .mission>span,main .contact-kicker,main .contact-index,main .contact-handle,main .join-panel .contact-note,.statement>span:not(.statement-end),footer,.header nav,.mobile-nav,.header .brand .header-location{font-size:var(--type-label);font-weight:var(--weight-regular);line-height:1.4;letter-spacing:0}
main .button,.actions .button,.full-manifest .manifest-toggle-label,.header .nav-cta,.header .menu{font-size:var(--type-action);font-weight:var(--weight-medium);line-height:1.3;letter-spacing:0}
.join .role-switch button{font-size:var(--type-body);font-weight:var(--weight-medium);line-height:1.3;letter-spacing:0}
.join .role-switch button:before{font-size:var(--type-label);font-weight:var(--weight-regular);line-height:1.4;letter-spacing:0}
.contact-email{font-size:var(--type-intro);font-weight:var(--weight-medium);line-height:1.4;letter-spacing:0}
main b,main strong{font-weight:var(--weight-heading)}
@media(max-width:1100px){:root{--type-section:56px;--type-display:40px;--type-card:36px}}
@media(max-width:760px){:root{--type-section:clamp(32px,7.8vw,48px);--type-display:36px;--type-card:32px;--type-lead:20px;--type-intro:18px}.header .brand .header-location{font-size:13px}}
@media(max-width:360px){.header .brand .header-location{font-size:12px}}

@media(max-width:760px){:root{--type-hero:clamp(38px,10.4vw,56px)}}
