/* PilotShift's single typography scale, shared by Vite React and Worker HTML.
 * Units are rem/clamp so browser text-size and zoom preferences still work.
 * Shared foundation: type and brand colours are consumed by React, Operations
 * and the Worker-rendered public articles. Dark specialist flight instruments
 * keep their own accessible surface and text roles.
 * Never apply editorial headings to cockpit instrumentation or flight readouts.
 */
:root {
  /* Operations brand palette: the single cross-application source of truth. */
  --ps-brand-navy: #0c2944;
  --ps-brand-navy-deep: #09243e;
  --ps-brand-paper: #f0f5fa;
  --ps-brand-surface: #ffffff;
  --ps-brand-ink: #081e3b;
  --ps-brand-muted: #557099;
  --ps-brand-line: #dce7f1;
  --ps-brand-link: #096eae;
  --ps-brand-on-navy: #e8f4ff;
  --ps-brand-muted-on-navy: #b5cddd;
  --ps-brand-radius: 7px;

  --ps-font-body: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ps-font-heading: 'Manrope', 'DM Sans', system-ui, sans-serif;

  --ps-type-display: clamp(2.15rem, 3.4vw, 3.15rem);
  --ps-type-page: clamp(1.75rem, 2.4vw, 2.35rem);
  --ps-type-section: clamp(1.2rem, 1.55vw, 1.55rem);
  --ps-type-card: 1rem;
  --ps-type-body: .875rem;
  --ps-type-article: 1rem;
  --ps-type-caption: .75rem;
  --ps-type-overline: .6875rem;
  --ps-type-micro: .625rem;

  --ps-type-leading-heading: 1.18;
  --ps-type-leading-body: 1.65;
  --ps-type-leading-article: 1.85;
  --ps-type-leading-caption: 1.45;
  --ps-type-tracking-heading: -.025em;
  --ps-type-tracking-overline: .12em;
  --ps-type-weight-heading: 800;
  --ps-type-weight-section: 750;
  --ps-type-weight-body: 400;
  --ps-type-weight-label: 700;
}
:where(body, button, input, select, textarea) {
  font-family: var(--ps-font-body);
}
:where(.ps-type-display,.ps-type-page-title,.ps-type-section-title,.ps-type-card-title){
  font-family:var(--ps-font-heading);
  text-wrap:balance;
  overflow-wrap:break-word;
}
.ps-type-display {
  font-size:var(--ps-type-display) !important;
  font-weight:var(--ps-type-weight-heading) !important;
  line-height:var(--ps-type-leading-heading) !important;
  letter-spacing:-.04em !important;
}
.ps-type-page-title {
  font-size:var(--ps-type-page) !important;
  font-weight:var(--ps-type-weight-heading) !important;
  line-height:var(--ps-type-leading-heading) !important;
  letter-spacing:var(--ps-type-tracking-heading) !important;
}
.ps-type-section-title {
  font-size:var(--ps-type-section) !important;
  font-weight:var(--ps-type-weight-section) !important;
  line-height:1.3 !important;
  letter-spacing:var(--ps-type-tracking-heading) !important;
}
.ps-type-card-title {
  font-size:var(--ps-type-card) !important;
  font-weight:var(--ps-type-weight-section) !important;
  line-height:1.45 !important;
  letter-spacing:-.01em !important;
}
.ps-type-body{font-size:var(--ps-type-body);line-height:var(--ps-type-leading-body)}
.ps-type-article{font-size:var(--ps-type-article);line-height:var(--ps-type-leading-article)}
.ps-type-caption{font-size:var(--ps-type-caption);line-height:var(--ps-type-leading-caption)}
.ps-type-overline{
  font-size:var(--ps-type-overline) !important;
  font-weight:800 !important;
  letter-spacing:var(--ps-type-tracking-overline) !important;
  line-height:1.4;
  text-transform:uppercase;
}
.ps-type-micro{font-size:var(--ps-type-micro);line-height:1.45}
.ps-type-tabular{font-variant-numeric:tabular-nums}
@media (max-width:600px) {
  :root { --ps-type-section:1.25rem; --ps-type-body:.875rem; }
}
@media (prefers-reduced-motion:reduce) {
  :where(.ps-type-display,.ps-type-page-title,.ps-type-section-title){scroll-behavior:auto}
}
