@layer typography-base {
/* Shared public typography. Component styles may define layout, but text roles live here. */
.home-editorial-body,
.public-editorial-body,
.public-home-editorial,
.public-editorial-shell {
  --public-font-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --public-font-display: "Unbounded", "Manrope", sans-serif;
  --public-type-ink: #07102d;
  --public-type-body: #627087;
  --public-type-muted: #7a8698;
  --public-type-accent: #285fff;
  --public-size-section: 4rem;
  --public-size-section-compact: 2.35rem;
  --public-size-card: 1.3rem;
  --public-size-body-large: 1rem;
  --public-size-body: 0.875rem;
  --public-size-small: 0.75rem;
  --public-size-meta: 0.68rem;
  --public-size-card-meta: 0.64rem;
  --public-control-height: 3rem;
  --public-control-radius: 0.35rem;
  --public-control-padding-inline: 1.25rem;
  --public-control-gap: 1rem;
  color: var(--public-type-ink);
  font-family: var(--public-font-body);
  font-weight: 400;
}

.home-editorial-body,
.public-home-editorial {
  --home-font-body: var(--public-font-body);
  --home-font-display: var(--public-font-display);
  --home-ink: var(--public-type-ink);
  --home-muted: var(--public-type-body);
}

.public-editorial-body,
.public-editorial-shell {
  --editorial-ink: var(--public-type-ink);
  --editorial-muted: var(--public-type-body);
}

.home-editorial-body :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span),
.public-editorial-body :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span),
.public-home-editorial :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span),
.public-editorial-shell :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span) {
  letter-spacing: 0;
}

/* Semantic defaults keep uncommon and newly added blocks on the same scale. */
.home-editorial-body :is(h2, h3, h4),
.public-editorial-body :is(h2, h3, h4),
.public-home-editorial :is(h2, h3, h4),
.public-editorial-shell :is(h2, h3, h4) {
  font-family: var(--public-font-body);
  font-weight: 800;
  letter-spacing: 0;
}

.home-editorial-body h2,
.public-editorial-body h2,
.public-home-editorial h2,
.public-editorial-shell h2 {
  font-size: var(--public-size-section-compact);
  line-height: 1.08;
}

.home-editorial-body :is(h3, h4),
.public-editorial-body :is(h3, h4),
.public-home-editorial :is(h3, h4),
.public-editorial-shell :is(h3, h4) {
  font-size: var(--public-size-card);
  line-height: 1.2;
}

.home-editorial-body :is(strong, b),
.public-editorial-body :is(strong, b),
.public-home-editorial :is(strong, b),
.public-editorial-shell :is(strong, b) {
  font-weight: 700;
}

.home-editorial-body :is(h1, h2, h3, h4) :is(strong, b),
.public-editorial-body :is(h1, h2, h3, h4) :is(strong, b),
.public-home-editorial :is(h1, h2, h3, h4) :is(strong, b),
.public-editorial-shell :is(h1, h2, h3, h4) :is(strong, b) {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.home-editorial-body p,
.public-editorial-body p,
.public-home-editorial p,
.public-editorial-shell p {
  font-size: var(--public-size-body);
  font-weight: 400;
  line-height: 1.7;
}

.home-editorial-body small,
.public-editorial-body small,
.public-home-editorial small,
.public-editorial-shell small {
  font-size: var(--public-size-meta);
  font-weight: 700;
  line-height: 1.35;
}

.home-editorial-body :is(button, input, select, textarea),
.public-editorial-body :is(button, input, select, textarea),
.public-home-editorial :is(button, input, select, textarea),
.public-editorial-shell :is(button, input, select, textarea) {
  font-family: var(--public-font-body);
  font-size: var(--public-size-small);
  font-weight: 500;
}

}

@layer typography {
/* Major section headlines keep the geometric Figma display face. */
.home-section-heading h2,
.home-endowment-section__copy h2,
.home-directions-section__intro h2,
.home-governance-section__copy h2,
.platform-page-heading h2,
.platform-workflow > header h2,
.platform-route-context > header h2,
.public-editorial-section__head h2,
.public-editorial-list-block > header h3,
.public-editorial-overview article h2,
.endowment-editorial-copy h2,
.endowment-editorial-heading h2,
.endowment-editorial-contact h2,
.endowment-editorial-cta h2,
.merch-store__intro h2,
.endowment-figma-footer__top > p {
  font-family: var(--public-font-display);
  font-size: var(--public-size-section);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: 0;
  hyphens: auto;
  overflow-wrap: break-word;
  text-wrap: balance;
}

/* The home endowment title follows the narrower text column from the Figma composition. */
.home-endowment-section__copy h2 {
  font-size: clamp(2.15rem, 3.25vw, 3.5rem);
  text-wrap: wrap;
}

/* Editorial feature panels use display typography in the Figma system. */
.home-opportunity-stage__copy h3 {
  font-family: var(--public-font-display);
  font-size: clamp(2.3rem, 2.8vw, 3.15rem);
  font-weight: 700;
  line-height: 0.96;
  letter-spacing: 0;
  text-wrap: wrap;
}

.public-editorial-article h2,
.public-editorial-profile h2,
.public-editorial-inline-cta h2,
.public-editorial-request-modal__panel > header h2 {
  font-family: var(--public-font-body);
  font-size: var(--public-size-section-compact);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: 0;
  text-wrap: balance;
}

/* Repeated card titles are deliberately quieter than page headings. */
.home-task-card > strong,
.home-contribution-card__copy > strong,
.home-project-brief__copy > strong,
.platform-route-row__title h3,
.platform-workflow__steps h3,
.public-editorial-info-card h3,
.public-editorial-project-card__copy > strong,
.public-editorial-story-grid a h3,
.public-editorial-person-card h3,
.public-editorial-resource-grid :is(a, article) strong {
  font-family: var(--public-font-body);
  font-size: var(--public-size-card);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-wrap: balance;
}

/* Shared body copy. */
.home-section-heading--split > p,
.home-section-heading__aside,
.platform-page-heading > span,
.public-editorial-section__summary,
.endowment-editorial-heading > p,
.endowment-editorial-heading > div:not(:first-child):last-child > p {
  color: var(--public-type-body);
  font-size: var(--public-size-body-large);
  font-weight: 400;
  line-height: 1.7;
}

.platform-route-row__details p,
.public-editorial-info-card > p,
.public-editorial-project-card__copy > p,
.public-editorial-story-grid a p,
.public-editorial-person-card p,
.public-editorial-resource-grid a p {
  color: var(--public-type-body);
  font-size: var(--public-size-body);
  font-weight: 400;
  line-height: 1.7;
}

.public-editorial-article__lead {
  color: var(--public-type-ink);
  font-size: var(--public-size-body-large);
  font-weight: 700;
  line-height: 1.7;
}

.public-editorial-prose {
  color: #35425a;
  font-size: var(--public-size-body-large);
  font-weight: 400;
  line-height: 1.85;
}

/* Eyebrows, indexes and utility copy share one compact role. */
.home-editorial-body .pm-opportunity-kinetic__eyebrow,
.home-editorial-body .home-section-heading > div:first-child > p,
.home-editorial-body .home-section-heading > p:first-child,
.home-editorial-body .home-opportunity-kicker,
.home-editorial-body .home-endowment-section__copy > p,
.home-editorial-body .home-governance-section__copy > p,
.home-editorial-body .platform-page-heading > p,
.home-editorial-body .platform-workflow > header > p,
.home-editorial-body .platform-route-context > header > p,
.public-editorial-body .public-editorial-eyebrow,
.public-editorial-body .public-editorial-section__head > div > p,
.public-editorial-body .public-editorial-list-block > header > p,
.public-editorial-body .public-editorial-form__head p,
.public-editorial-body .endowment-editorial-eyebrow,
  .public-editorial-body .merch-checkout-page > header > p,
.public-footer .public-footer__eyebrow {
  font-family: var(--public-font-body);
  font-size: var(--public-size-meta);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: uppercase;
}

/* Repeated card anatomy follows one compact hierarchy across catalogues. */
.home-editorial-body .home-task-card__deadline,
.home-editorial-body .home-contribution-card__meta small,
.home-editorial-body .platform-project-card__copy small,
.public-editorial-body .public-editorial-info-card > small,
.public-editorial-body .public-editorial-project-card__copy > small,
.public-editorial-body .public-editorial-story-grid a small,
.public-editorial-body .public-editorial-person-card small,
.public-editorial-body .public-editorial-resource-grid a small,
.public-editorial-body .endowment-editorial-grid article > small,
.public-editorial-body .endowment-editorial-campaigns__copy > small,
.public-editorial-body .endowment-editorial-results article > small,
.public-editorial-body .merch-product-card__meta {
  font-family: var(--public-font-body);
  font-size: var(--public-size-card-meta);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: uppercase;
}

.public-editorial-body .endowment-editorial-grid article h3,
.public-editorial-body .endowment-editorial-campaigns__copy h3,
.public-editorial-body .endowment-editorial-results article h3,
.public-editorial-body .merch-product-card__title {
  font-family: var(--public-font-body);
  font-size: var(--public-size-card);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-wrap: balance;
}

.public-editorial-body .endowment-editorial-grid article > p,
.public-editorial-body .endowment-editorial-campaigns__copy > p,
.public-editorial-body .endowment-editorial-results article > p,
.public-editorial-body .merch-product-card__body > p {
  color: var(--public-type-body);
  font-size: var(--public-size-body);
  font-weight: 400;
  line-height: 1.7;
}

/* Endowment and contour navigation are the same local-navigation component. */
.public-editorial-body .endowment-editorial-nav,
.public-editorial-body .contour-editorial-nav {
  height: 4.75rem;
  min-height: 4.75rem;
}

.public-editorial-body .endowment-editorial-nav {
  --public-local-nav-accent: #54e6ff;
}

.public-editorial-body .contour-editorial-nav {
  --public-local-nav-accent: var(--contour-nav-accent);
}

.public-editorial-body .endowment-editorial-nav a,
.public-editorial-body .contour-editorial-nav a {
  min-height: 4.75rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.75rem;
  padding-inline: 1.35rem;
}

.public-editorial-body .endowment-editorial-nav a.is-active,
.public-editorial-body .contour-editorial-nav a.is-active {
  box-shadow: inset 0 -3px var(--public-local-nav-accent);
}

.public-editorial-body .endowment-editorial-nav :is(span, i),
.public-editorial-body .contour-editorial-nav :is(span, i) {
  color: var(--public-local-nav-accent);
  font-size: var(--public-size-meta);
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
}

.public-editorial-body .endowment-editorial-nav strong,
.public-editorial-body .contour-editorial-nav strong {
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.25;
}

/* Public forms and checkout use one field, checkbox and status language. */
.public-editorial-body .public-editorial-field > span,
.public-editorial-body .merch-checkout-form label > span:first-child {
  color: var(--public-type-body);
  font-size: var(--public-size-card-meta);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

.public-editorial-body .public-editorial-field :is(input, select, textarea),
.public-editorial-body .merch-checkout-form :is(input:not([type="radio"]):not([type="checkbox"]), textarea) {
  width: 100%;
  min-height: var(--public-control-height);
  border: 1px solid var(--editorial-line, #d9e1ec);
  border-radius: var(--public-control-radius);
  padding: 0.75rem 0.85rem;
  background: #fff;
  color: var(--public-type-ink);
  font-family: var(--public-font-body);
  font-size: var(--public-size-small);
  font-weight: 500;
  line-height: 1.5;
  outline: none;
}

.public-editorial-body .public-editorial-field :is(input, select, textarea):focus,
.public-editorial-body .merch-checkout-form :is(input, textarea):focus {
  border-color: var(--public-type-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--public-type-accent) 10%, transparent);
}

.public-editorial-body .public-editorial-check input,
.public-editorial-body .merch-consent input {
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  appearance: none;
  border: 1px solid var(--editorial-line, #d9e1ec);
  border-radius: 0.2rem;
  background: #fff;
  cursor: pointer;
}

.public-editorial-body .public-editorial-check input:checked,
.public-editorial-body .merch-consent input:checked {
  border-color: var(--public-type-accent);
  background:
    linear-gradient(135deg, transparent 44%, #fff 44% 55%, transparent 55%) 0.16rem 0.43rem / 0.36rem 0.22rem no-repeat,
    linear-gradient(45deg, transparent 43%, #fff 43% 56%, transparent 56%) 0.48rem 0.3rem / 0.48rem 0.44rem no-repeat,
    var(--public-type-accent);
}

.public-editorial-body .public-editorial-form__submit button,
.public-editorial-body .merch-checkout-submit {
  min-height: var(--public-control-height);
  border-radius: var(--public-control-radius);
  padding-inline: var(--public-control-padding-inline);
  font-size: var(--public-size-small);
  font-weight: 700;
  line-height: 1.25;
}

.public-editorial-body .public-editorial-form__submit p,
.public-editorial-body .merch-checkout-status {
  margin: 0;
  color: var(--public-type-body);
  font-size: var(--public-size-small);
  font-weight: 500;
  line-height: 1.5;
}

.public-editorial-body :is(.public-editorial-form__submit p, .merch-checkout-status)[data-state="success"] {
  color: #08765a;
}

.public-editorial-body :is(.public-editorial-form__submit p, .merch-checkout-status)[data-state="error"] {
  color: #b42318;
}

/* Controls and navigation must not jump between 600, 750 and 800. */
.public-home-editorial :is(a, button),
.public-editorial-shell :is(a, button) {
  font-family: var(--public-font-body);
}

.platform-route-row__primary,
.public-editorial-button,
.endowment-editorial-action {
  font-size: var(--public-size-small);
  font-weight: 700;
  line-height: 1.25;
}

.public-header__mega-direct,
.public-header__search-button,
.public-header__desktop-action,
.public-editorial-actions strong,
.endowment-editorial-nav strong,
.home-editorial-footer__directory a,
.home-editorial-footer__directory span {
  font-weight: 700;
  letter-spacing: 0;
}

@media (max-width: 1199px) {
  .home-editorial-body,
  .public-editorial-body,
  .public-home-editorial,
  .public-editorial-shell {
    --public-size-section: 3rem;
    --public-size-section-compact: 2rem;
  }
}

@media (max-width: 639px) {
  .home-editorial-body,
  .public-editorial-body,
  .public-home-editorial,
  .public-editorial-shell {
    --public-size-section: 2.25rem;
    --public-size-section-compact: 1.75rem;
    --public-size-card: 1.18rem;
    --public-size-body-large: 0.94rem;
    --public-size-body: 0.84rem;
    --public-size-small: 0.75rem;
    --public-size-meta: 0.66rem;
  }

  .home-endowment-section__copy h2 {
    font-size: clamp(1.95rem, 9vw, 2.25rem);
  }
}

}

@layer typography {
/* The three participation domains use one readable, responsive type scale. */
.contour-experience {
  --public-type-ink: #10213a;
  --public-type-body: #52647a;
  --public-type-muted: #617187;
  --public-size-section: clamp(1.75rem, 2.6vw, 2.75rem);
  --public-size-section-compact: clamp(1.5rem, 2vw, 2rem);
  --public-size-body-large: 1.0625rem;
  --public-size-body: 1rem;
  --public-size-small: 0.875rem;
  --public-size-meta: 0.75rem;
  --public-size-card-meta: 0.875rem;
  --public-control-radius: 0.5rem;
}
.contour-experience :is(h1, h2) {
  font-family: var(--public-font-display);
  font-size: var(--public-size-section);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.025em;
  overflow-wrap: break-word;
  hyphens: none;
  text-wrap: balance;
}
.contour-experience h1 { font-size: clamp(2rem, 3.5vw, 3.5rem); }
.contour-experience :is(h3, .trustees-editorial-member-grid h2, .trustees-editorial-meetings h2, .alumni-editorial-opportunities h2, .techhub-editorial-opportunities h2, .techhub-editorial-service-flow h2, .alumni-editorial-projects__copy strong, .techhub-editorial-request-grid > a > strong, .techhub-editorial-project-grid__body > strong, .techhub-editorial-resource-grid__body > strong) {
  font-family: var(--public-font-body);
  font-size: 1.25rem;
  font-weight: 750;
  line-height: 1.4;
  letter-spacing: 0;
}
.contour-experience p { font-size: var(--public-size-body); line-height: 1.75; }
.contour-experience :is(.contour-eyebrow, .alumni-editorial-eyebrow, .trustees-editorial-eyebrow, .techhub-editorial-eyebrow) {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.contour-experience :is(.contour-cover__caption > p, .contour-form-note, .contour-journey-card__outcome) { font-size: 0.875rem; }
.contour-experience .public-editorial-field :is(input, select, textarea) { font-size: 1rem; }
.contour-experience .public-editorial-context-panel h2 { font-size: clamp(1.5rem, 2vw, 2rem); }
}
