/*
  iePlanet Typography 2.0 — unified, readable scientific Persian interface.
  Loaded last (after page-specific styles) to enforce a shared minimum scale.
  Persian/Latin variable WOFF2 files are self-hosted and installed at build time.
*/
:root {
  --font-body: 'Estedad Variable', Tahoma, system-ui, sans-serif;
  --font-display: 'Estedad Variable', Tahoma, system-ui, sans-serif;
  --font-latin: Arial, Helvetica, sans-serif;
  --text-body: 16px;
  --text-secondary: 14px;
  --text-caption: 12px;
  --text-ui: 14px;
}
html { font-size: 16px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-family: var(--font-body); font-size: var(--text-body); line-height: 1.95; }
body, button, input, select, textarea, a { font-family: var(--font-body); }
button, input, select, textarea { font-size: var(--text-ui); }
button, input, select, textarea { line-height: 1.7; }
:where(h1,h2,h3,h4,h5,h6) {
  font-family: var(--font-display); font-weight: 700;
  letter-spacing: normal; text-wrap: pretty;
}
p { text-wrap: pretty; }
:where(.brand-name,.planet-caption,.manifesto-mark,.atlas-orbit-core span) {
  font-family: var(--font-latin);
}
:where(pre,code,kbd,samp) {font-family: ui-monospace,SFMono-Regular,Consolas,monospace;}
:where(.katex,.katex *) {letter-spacing: normal;}
:where(.lp-math,.lp-table,.project-editor,.project-output-table) {font-variant-numeric: tabular-nums;}

/* Main navigation and identity — do not let labels drop to 8–11px. */
.announcement, .announcement-inner, .announcement-tag { font-size: 12px; }
.brand-sub {font-size: 11px; line-height: 1.6;}
.desktop-nav a, .mobile-menu a, .header-cta {font-size: 13px;}
.button-primary, .button-secondary, .text-link {font-size: 14px;}
.eyebrow, .section-kicker {font-size: 12px; line-height: 1.7;}
.hero-description {font-size: 16px;line-height: 2;max-width: 39rem;}
.hero h1 {letter-spacing: normal;line-height: 1.47;}
.hero-footnote {font-size: 12px;}
.planet-chip,.learning-node {font-size: 12px;}
.planet-caption {font-size: 10px;}
.section-title {letter-spacing: normal;line-height: 1.55;}
.section-description {font-size: 15px;line-height: 1.95;}

/* Cards and editorial copy. */
.audience-card h3,.atlas-card h3,.tool-card h3,.benefit h3 {font-size: 16px;line-height: 1.6;}
.audience-card p,.atlas-card p,.tool-card p,.benefit p {font-size: 13.5px;line-height: 1.9;}
.atlas-more,.atlas-more span:last-child {font-size: 13px;line-height: 1.8;}
.atlas-card-index {font-size: 11px;}
.coming-soon {font-size: 11px;line-height: 1.7;}
.manifesto-copy p,.footer-brand p {font-size: 14px;line-height: 1.9;}
.footer-column h3 {font-size: 14px;}
.footer-links a {font-size: 13px;}
.footer-bottom {font-size: 12px;}
.dock-link {font-size: 11px;}

/* Internal atlas, lessons, tools, and reference pages: readable minimums. */
body :is(.atlas-page,.lp-page,.lesson-page,.project-page,.masters-page,.foreign-page) :is(p,li,dd,dt) {
  font-size: max(14px, .875rem);
  line-height: 1.9;
}
body main :where(p,li,dd,dt):not(.planet-caption) {font-size: max(14px, .875rem);}
body main :where(button,input,textarea,select) {font-size: 14px;}
body main :where(label) {font-size: 13px;line-height: 1.7;}
body main :where(small) {font-size: 12px;line-height: 1.7;}
body main :where(h3,h4) {font-size: max(16px, 1rem);line-height: 1.7;}
body :where(.atlas-kicker,.explorer-version,.atlas-results-line,.atlas-path,.concept-card-state,.concept-card-foot,.detail-pending,.detail-small-heading,.detail-footer,.atlas-back,.atlas-header .atlas-nav,.atlas-footer .container,.lp-scope,.lp-beta,.lp-overline,.lp-step-badge,.lp-preset,.lp-help,.lp-chart-key,.lp-graph-note,.lp-result-label,.lp-caution,.lp-footer .container,.project-overline,.project-hero-tags span,.project-kpi span,.project-kpi small,.project-plot-title span,.project-chart-note,.project-pert-note,.masters-eyebrow,.masters-card-label,.masters-counter,.masters-breadcrumb,.masters-overline,.masters-footer-inner,.foreign-category,.foreign-counter,.foreign-focus,.foreign-open,.foreign-next>span,.project-footer .container) {
  font-size: 12px;
  line-height: 1.75;
}
body :where(.concept-card strong,.lane-header h3,.masters-card h3,.foreign-card h3,.project-results-heading h3) {font-size: 15px;line-height: 1.7;}
body :where(.lp-table,.project-editor,.project-output-table) {font-size: 13px;}
body :where(.lp-table th,.project-editor th,.project-output-table th) {font-size: 12px;}
body :where(.atlas-search input,.masters-search input,.foreign-search input,.project-editor input,.lp-objective select,.lp-constraint-row input) {font-size: 14px;}

@media (max-width: 820px) {
  .hero-description {font-size: 15px;}
  .section-description {font-size: 14px;}
}
@media (max-width: 560px) {
  :root {--text-body: 15px;--text-ui: 14px;}
  body {font-size:15px;line-height: 1.9;}
  .hero h1 {font-size: clamp(30px,8vw,38px);line-height: 1.52;letter-spacing: normal;}
  .hero-description {font-size: 15px;line-height:1.9;}
  .brand-sub {font-size: 10px;}
  .mobile-menu a {font-size: 14px;}
  .section-title {font-size: clamp(23px,6vw,29px);line-height:1.55;}
  .section-kicker,.eyebrow {font-size: 12px;}
  .section-description {font-size: 14px;line-height:1.9;}
  .audience-card h3,.atlas-card h3,.tool-card h3,.benefit h3 {font-size:15px;}
  .audience-card p,.atlas-card p,.tool-card p,.benefit p {font-size: 13px;}
  .audience-card {min-height: 200px;}
  .atlas-card {min-height: 167px;}
  .tool-card {min-height: 180px;}
  .manifesto-copy p,.footer-brand p {font-size:13px;}
  .footer-column h3 {font-size:14px;}
  .footer-links a {font-size:13px;}
  .footer-bottom {font-size: 11px;}
  .dock-link {font-size:11px;}
}
@media (max-width: 390px) {
  .audience-grid {grid-template-columns:1fr;}
  .audience-card,.audience-card:last-child {grid-column:auto;min-height:auto;}
  .tools-grid {grid-template-columns:1fr;}
  .tool-card {min-height: auto;}
  .atlas-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .hero h1 {font-size: 30px;}
}
