:root {
  --font-reading:"Avenir Next",Avenir,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-display:Charter,"Bitstream Charter","Sitka Text","Iowan Old Style",Baskerville,Georgia,serif;
  --reading-leading:1.65;
  --compact-leading:1.35;
  --font-body-min:1rem;
  --font-support-min:.875rem;
}

html { font-size:100%; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { font-family:var(--font-reading)!important; font-size:1rem; line-height:var(--reading-leading); letter-spacing:.002em; font-kerning:normal; font-synthesis:none; text-rendering:optimizeLegibility; }
button,input,select,textarea { font-family:var(--font-reading)!important; letter-spacing:0; }
p,li,dd,blockquote { text-wrap:pretty; }
h1,h2,h3,h4 { line-height:var(--compact-leading); text-wrap:balance; }

/* Editorial pages use a warm book face; workspaces retain a highly legible UI face. */
.public-site h1,.public-site h2,.public-site .display,.public-site .calendar-detail h4,.public-site .join-form-heading h2,
.guide-site h1,.guide-site h2,.maintenance-site h1 { font-family:var(--font-display)!important; font-weight:500!important; letter-spacing:-.04em!important; }
.portal-site h1,.portal-site h2,.portal-site h3,.portal-site h4,
.library-site h1,.library-site h2,.library-site h3,.library-site h4 { font-family:var(--font-reading)!important; font-style:normal!important; font-weight:650!important; letter-spacing:-.025em!important; }
.portal-site .metric strong,.portal-site .ticket-metrics strong,.portal-site .pulse-score strong,.portal-site .date-block b { font-family:var(--font-reading)!important; font-style:normal!important; font-variant-numeric:tabular-nums; }

/* Comfortable reading rhythm and a 12px minimum for supporting information. */
.public-site .hero-copy,.public-site .manifesto-grid,.public-site .people-intro,.public-site .person-bio,.public-site .bio-more,.public-site .community-copy>p,
.guide-site .steps p,.guide-site .route-map p,.guide-site .tip p,
.portal-site .notice p,.portal-site .ticket-body p,.portal-site .recommendation p,.portal-site .recommendation li,
.library-site .hero-copy>p:last-child,.library-site .piascore-note p { line-height:1.7!important; }
.portal-site small,.portal-site .priority,.portal-site .ticket-kind,.portal-site .ticket-id,.portal-site .ticket-actions button,.portal-site .ticket-actions select,
.library-site small,.library-site .file-meta,.library-site .event-chip,.library-site .preview-button,
.public-site small,.public-site .footer-bottom { font-size:max(.75rem,.75em)!important; }

@media(max-width:640px) {
  body { font-size:1rem; }
  .public-site h1,.public-site h2,.guide-site h1,.guide-site h2 { letter-spacing:-.035em!important; }
}

/* Mandatory NGWS readability floor: the interface must work at 100% zoom. */
body { font-size:var(--font-body-min)!important; }
main p,main li,main dd,main blockquote { font-size:var(--font-body-min)!important; line-height:1.65!important; }
small,label,legend,figcaption,caption,code,
.eyebrow,.kicker,.meta,.badge,.status,.priority,.ticket-kind,.ticket-id,.ticket-device,
.event-status,.event-meta,.today-chip,.announcement-title,.announcement-author small,
.panel-heading p,.rehearsal-heading>span,.date-block span,.rehearsal-info span,
.signup-top>span,.profile small,.sidebar-note p,.portal-nav button,.portal-nav a,
.response-control button,.mini-response button,.rating button small,.pulse-card legend,
.rec-label,.api-explainer span,.bug-help>p,.ticket-actions button,.ticket-actions select,
.application-details span,.maintenance-window span,.maintenance-status>span,.maintenance-form>span,
.cost-plan-hero p,.cost-plan-metrics span,.cost-plan-row.header,.section-heading>p,
.skill-card>span,.node-detail dt,.architecture-table small,.graph-key,.graph-shell>p,
.architecture-jumps a,.architecture-summary span,.section-heading>span,.state,.trajectory b,
.trajectory span,.storyboard time,.storyboard small,.skill-count,.skill-card ol,
.node-detail dd,.node-capabilities li,.detail-instruction,.detail-back,.skill-mobile-nav button,
.node-copy span,.node-copy small {
  font-size:var(--font-support-min)!important;
  line-height:1.5!important;
}
button,nav a { font-size:var(--font-support-min)!important; line-height:1.35!important; }
input,select,textarea { font-size:1rem!important; line-height:1.4!important; }
th,td { font-size:max(.875rem,14px)!important; line-height:1.5!important; }
.maintenance-window b,.architecture-summary small { font-size:1rem!important;line-height:1.5!important; }
.node-copy b { font-size:max(.875rem,14px)!important;line-height:1.2!important; }
.portal-site small,.portal-site .portal-brand b { font-size:var(--font-support-min)!important; line-height:1.5!important; }

@media(max-width:640px) {
  main p,main li,main dd { overflow-wrap:anywhere; }
}
