
/* NUCLEUS / TYPE SYSTEM — v88
   Edit these tokens to update every page and responsive breakpoint.
   Display: Neue Haas Grotesk Display. Reading + interface: Neue Haas Grotesk Text.
   System sans-serif fallbacks keep the single HTML usable without font services.
   Roles: page title, section title, subheading, card title, intro, body, small, label.
*/
:root {
  --font-display:"Neue Haas Grotesk Display","Neue Haas Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-body:"Neue Haas Grotesk Text","Neue Haas Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-ui:var(--font-body);
  --font-label:"Source Code Pro","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --type-page:clamp(2.625rem,6.3vw,6rem);
  --type-home:clamp(3rem,8.2vw,7.5rem);
  --type-section:clamp(2rem,3.6vw,3.25rem);
  --type-subheading:clamp(1.5rem,2.4vw,2rem);
  --type-card:clamp(1.375rem,1.85vw,1.625rem);
  --type-intro:clamp(1.125rem,1.65vw,1.375rem);
  --type-body-large:1.125rem;
  --type-body:1rem;
  --type-small:.875rem;
  --type-label:.75rem;
  --type-button:.9375rem;
  --leading-heading:1.08;
  --leading-card:1.2;
  --leading-body:1.6;
  --leading-reading:1.7;
  --leading-ui:1.4;
  --tracking-heading:-.025em;
  --tracking-label:.07em;
}
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body {
  font-family:var(--font-body); font-size:var(--type-body);
  font-weight:400; line-height:var(--leading-body); letter-spacing:0;
  font-kerning:normal;
}
button,input,select,textarea,summary { font-family:var(--font-ui); }
code,kbd,pre,samp { font-family:var(--font-label); }
svg text { font-family:var(--font-label); }
body :is(h1,h2,h3,h4,h5,h6) {
  font-family:var(--font-display)!important;
  font-weight:700!important; letter-spacing:var(--tracking-heading)!important;
  line-height:var(--leading-heading)!important;
  text-wrap:balance; overflow-wrap:break-word;
}
body h1 { font-size:var(--type-page)!important; }
body .hero-home h1 { font-size:var(--type-home)!important; }
body h2 { font-size:var(--type-section)!important; }
body h3 { font-size:var(--type-card)!important; line-height:var(--leading-card)!important; }
body h4 { font-size:var(--type-intro)!important; line-height:var(--leading-card)!important; }
body :is(h5,h6) { font-size:var(--type-body)!important; line-height:var(--leading-ui)!important; }
body :is(h1,h2,h3,h4,h5,h6) :is(span,em) { letter-spacing:inherit!important; }
/* Metadata, section numbering, dates, and all former code-style labels share the UI face. */
body :is(.eyebrow,.section-kicker,.section-number,.news-meta,.node-label,.nav-dropdown-label,
  .team-role,.team-bio-hint,.research-card-kicker,.resource-category,.resource-type,
  .corridor-resource-type,.fund-committee-info>span,.diligence-info>span,.board-profile-info>span) {
  font-family:var(--font-label)!important; font-size:var(--type-label)!important;
  font-weight:600!important; line-height:var(--leading-ui)!important;
  letter-spacing:var(--tracking-label)!important;
}
/* Preserve the file's established hierarchy: named section first, supporting sentence below. */
body .route .section-title {
  font-family:var(--font-display)!important; font-size:var(--type-section)!important;
  line-height:var(--leading-heading)!important; font-weight:700!important;
  letter-spacing:var(--tracking-heading)!important; text-transform:none!important;
  text-wrap:balance; margin:0 0 16px!important;
}
body .route .section-deck {
  font-family:var(--font-body)!important; font-size:var(--type-intro)!important;
  font-weight:400!important; line-height:1.5!important; letter-spacing:0!important;
  text-transform:none!important; margin-top:0!important; margin-bottom:24px!important;
  max-width:760px; text-wrap:pretty;
}
body .route .section-title.section-number { color:var(--navy); }
body :is(.section-navy,.section-blue,[class*="dark"],.cp-impact,.cp-network,.cp-timeline,.cp-end) .section-title { color:#fff!important; }
body :is(.section-navy,.section-blue,[class*="dark"],.cp-impact,.cp-network,.cp-timeline,.cp-end) .section-deck { color:#DCE8F5!important; }
/* Introductory copy remains distinct from everyday reading text. */
body :is(.hero-lead,.grow-hero-copy,.research-hero-copy,.boost-hero-deck,.large-copy,
  .page-hero p:not(.eyebrow),.program-detail-hero .lede,.marketedge-hero .lede,
  .nr-hero p:not(.eyebrow),.ev-intro>div>p:not(.eyebrow),.ev-flagship-hero p:not(.eyebrow),
  .team-hero>div>p:last-child,.policy-hero-side p,.grow-mission-copy,.policy-mission-copy) {
  font-family:var(--font-body)!important; font-size:var(--type-intro)!important;
  font-weight:400!important; line-height:1.5!important; letter-spacing:0!important;
}
body .hero-home .hero-lead { font-size:clamp(1.25rem,2vw,1.625rem)!important; }
body :is(.cp-lead,.cp-quote blockquote) {
  font-family:var(--font-body)!important; font-size:var(--type-subheading)!important;
  font-weight:400!important; letter-spacing:0!important; line-height:1.4!important;
}
/* Card titles and copy use the same scale across every program and collection. */
body :is(.nr-card,.ev-row,.team-card-info) h2,
body :is(.nr-feature,.news-featured) :is(h2,h3) {
  font-size:var(--type-card)!important; line-height:var(--leading-card)!important;
}
body :is(.nr-feature,.news-featured) :is(h2,h3) { font-size:var(--type-subheading)!important; }
body :is(.architecture-node strong,.hall-door strong,.program-band b,.corridor-program-grid b,
  .cp-education-panel strong,.cp-time-grid strong,.catalysts-principles strong) {
  font-family:var(--font-display)!important; font-size:var(--type-card)!important;
  font-weight:700!important; letter-spacing:var(--tracking-heading)!important; line-height:var(--leading-card)!important;
}
body :is(.model-stage-copy>strong,.roles-section .role-card>.eyebrow,.cp-interior-heading h3) {
  font-family:var(--font-display)!important; font-size:var(--type-subheading)!important;
  font-weight:700!important; line-height:var(--leading-card)!important;
  letter-spacing:var(--tracking-heading)!important; text-transform:none!important;
}
body .roles-section .role-card h3 { font-size:var(--type-intro)!important; }
body :is(.role-card,.policy-work-card,.program-detail-card,.marketedge-card,.fw-path-card,
  .fw-resource,.cp-resource-grid article,.cp-lab-grid article,.nr-card,.catalyst-card,.research-card) p:not(.eyebrow):not(.research-card-kicker) {
  font-family:var(--font-body); font-size:var(--type-body); line-height:var(--leading-body); letter-spacing:0;
}
/* Reading surfaces and staff editing surfaces keep a comfortable prose measure. */
body :is(.nr-story-body,.nr-rich) { font-family:var(--font-body); font-size:var(--type-body-large); line-height:var(--leading-reading); letter-spacing:0; }
body :is(.nr-story-body,.nr-rich) :is(p,li) { font-family:inherit!important; font-size:inherit!important; line-height:var(--leading-reading)!important; letter-spacing:0!important; }
body :is(.nr-story-body,.nr-rich) h2 { font-size:var(--type-subheading)!important; }
body :is(.nr-story-body,.nr-rich) h3 { font-size:var(--type-card)!important; }
body :is(.nr-article-head h1,.nr-dialog h1,.staff-login-card h1,.staff-view-head h1) { font-size:var(--type-section)!important; }
body .nr-article-head .nr-deck { font-size:var(--type-intro); line-height:1.5; }
body .team-bio-overlay p:not(.eyebrow),body .fund-ic-card .team-bio-overlay p:last-child,
body .board-profile-card .team-bio-overlay p:last-child { font-size:var(--type-small)!important; line-height:var(--leading-body)!important; letter-spacing:0!important; }
body :is(.staff-panel-head,.staff-research-toolbar,.staff-research-editor-head) h2 { font-size:var(--type-intro)!important; }
body .staff-research-row h3 { font-size:var(--type-body)!important; }
/* Consistent navigation and actions; icon-only controls retain their dimensions. */
body :is(.btn,.nr-btn,.text-link,.fw-card-action,.fw-resource a.fund-website-link,
  .research-card-actions a,.corridor-selected-resource .resource-links a) {
  font-family:var(--font-ui)!important; font-size:var(--type-button)!important;
  font-weight:600!important; line-height:var(--leading-ui)!important; letter-spacing:0!important;
}
body :is(.desktop-nav>a,.nav-dropdown-toggle) { font-family:var(--font-ui)!important; font-size:var(--type-small)!important; font-weight:600!important; line-height:var(--leading-ui)!important; letter-spacing:0!important; }
body :is(.nav-dropdown-menu a b,.nav-submenu-trigger b) { font-family:var(--font-ui)!important; font-size:var(--type-small)!important; font-weight:600!important; letter-spacing:0!important; }
body :is(.nav-dropdown-menu a span,.nav-submenu-trigger small) { font-family:var(--font-ui)!important; font-size:var(--type-label)!important; font-weight:400!important; line-height:var(--leading-ui)!important; letter-spacing:0!important; }
body :is(.mobile-nav a:not(.btn),.mobile-programs>summary) { font-family:var(--font-ui)!important; font-size:var(--type-intro)!important; font-weight:600!important; letter-spacing:0!important; }
body :is(.mobile-program-links a:not(.btn),.mobile-policy-sub summary,.mobile-grow-sub>summary) { font-size:var(--type-body)!important; }
body :is(.cp-local-nav a,.boost-section-nav button,.boost-section-nav a,.fw-path-tab,.sticky-index a) { font-family:var(--font-ui)!important; font-size:var(--type-small)!important; font-weight:600!important; line-height:var(--leading-ui)!important; letter-spacing:0!important; }
body :is(.contact-form,.hub-form-grid,.staff-login-form,.staff-research-form,.nr-tools,.ev-tools,.research-field) label { font-family:var(--font-ui); font-size:var(--type-small); font-weight:600; line-height:var(--leading-ui); }
body :is(input,select,textarea) { font-family:var(--font-ui)!important; font-size:var(--type-body)!important; font-weight:400!important; line-height:var(--leading-ui)!important; letter-spacing:0!important; }
body :is(.nr-chip,.tag-row>span,.tag-row>a,.role-card .tag-row>a.fund-website-link,.cp-chips span) { font-family:var(--font-ui)!important; font-size:var(--type-label)!important; font-weight:600!important; line-height:var(--leading-ui)!important; letter-spacing:.03em!important; }
body .corridor-resource-item strong { font-size:var(--type-body)!important; font-weight:600!important; line-height:var(--leading-ui)!important; letter-spacing:0!important; }
body .corridor-resource-item small { font-family:var(--font-ui)!important; font-size:var(--type-label)!important; font-weight:400!important; line-height:var(--leading-ui)!important; letter-spacing:0!important; }
body :is(.corridor-city-labels text,.corridor-resource-pins .pin-label) { font-family:var(--font-ui)!important; font-size:var(--type-label)!important; letter-spacing:0!important; }
body .footer-bottom { line-height:var(--leading-ui); }
@media(max-width:700px) {
  :root { --type-page:clamp(2.125rem,10.5vw,3.25rem); --type-home:clamp(2.5rem,12vw,4rem); --type-section:clamp(1.875rem,7.5vw,2.375rem); }
  body :is(.btn,.nr-btn) { white-space:normal; text-align:center; }
  body .role-card .tag-row { flex-wrap:wrap; }
  body .role-card .tag-row>* { white-space:normal; text-align:center; }
}
/* Caption defaults and the one section title separated from its deck by a grid wrapper. */
body small { font-size:var(--type-label); line-height:var(--leading-ui); }
body .cp-impact>.container>.eyebrow {
  font-family:var(--font-display)!important; font-size:var(--type-section)!important;
  font-weight:700!important; line-height:var(--leading-heading)!important;
  letter-spacing:var(--tracking-heading)!important; text-transform:none!important;
  color:#fff!important; margin:0 0 16px!important; text-wrap:balance;
}
body .cp-impact-head h2 {
  font-family:var(--font-body)!important; font-size:var(--type-intro)!important;
  font-weight:400!important; line-height:1.5!important; letter-spacing:0!important;
  color:#DCE8F5!important; text-wrap:pretty;
}

