/* Reading sizes are shared across breakpoints; narrow screens reflow instead of shrinking type. */
:root {
  --reading-body: 16px;
  --reading-label: 14px;
}

body { font-size: var(--reading-body); }

.site-header .brand span,
.site-footer .brand span {
  font-size: var(--reading-label);
  line-height: 1.35;
  letter-spacing: .1em;
}

.site-nav { font-size: var(--reading-body); white-space: nowrap; }

.section-index,
.philosophy-top .section-index,
.privacy-dialog .section-index,
.eyebrow,
.hero-bottom,
.hero-art figcaption,
.process-stage,
.perspective-heading,
.company-record dt,
.contact-bottom {
  font-size: var(--reading-label);
  line-height: 1.7;
  letter-spacing: .045em;
}

.intro-body > p,
.section-heading > p,
.approach .section-heading > p,
.company-intro,
.perspective p,
.philosophy-note,
.process-overview .process-summary,
.contact-heading > p:last-child,
.contact-gate-note {
  font-size: var(--reading-body);
  line-height: 1.75;
}

.button,
.hero-actions > .button,
.hero-actions .text-link,
.text-link,
.js .site-nav .nav-contact {
  font-size: var(--reading-body);
  line-height: 1.5;
}

.hero-description { font-size: 18px; line-height: 1.6; }
.hero-object-controls {
  font-size: var(--reading-label);
  line-height: 1.6;
  min-height: 24px;
}
.hero-object-controls > span { opacity: 1; }
.hero-art figcaption { gap: 18px; }
.hero-bottom { gap: 24px; }

.roundtable-controls { height: auto; min-height: 86px; }
.sculpture-hint {
  font-size: var(--reading-label);
  line-height: 1.7;
}
.sculpture-actions button {
  font-size: var(--reading-label);
  min-height: 44px;
  line-height: 1.5;
}
.discipline-panel > p { font-size: 17px; line-height: 1.75; }
.discipline-panel ul,
.discipline-research h4 {
  font-size: var(--reading-label);
  line-height: 1.7;
}
.discipline-research p {
  font-size: var(--reading-body);
  line-height: 1.75;
  max-width: 620px;
}
.discipline-selector { flex-wrap: wrap; gap: 4px 24px; }
.discipline-choice { font-size: var(--reading-body); line-height: 1.5; }

/* Leave room for longer copy beneath the floating spheres. */
.philosophy .perspective { padding-top: 260px; min-height: 440px; }
.process-overview .process-summary { min-height: 3.5em; }

.company-record > div {
  grid-template-columns: minmax(140px, .75fr) minmax(0, 1.25fr);
  gap: 20px;
}
.company-record dd {
  min-width: 0;
  font-size: var(--reading-body);
  line-height: 1.75;
  overflow-wrap: anywhere;
}
.representative-name { width: 144px; height: 30px; max-width: 100%; }

.copy-email,
.copy-status,
.verification-note,
.contact-status,
.footer-main > p,
.footer-links {
  font-size: var(--reading-label);
  line-height: 1.7;
}
.footer-main > p,
.footer-links,
.contact-bottom,
.hero-bottom,
.hero-art figcaption,
.company-record dt,
.verification-note,
.contact-status { color: var(--muted); }
.contact-bottom { flex-wrap: wrap; gap: 12px 24px; }
.contact-status { min-height: 24px; }

.privacy-dialog p:not(.section-index) { font-size: var(--reading-body); line-height: 1.8; }
.privacy-dialog .privacy-date { font-size: var(--reading-label) !important; }

@media (max-width: 800px) {
  .site-nav { gap: 18px; }
  .discipline-panel > p { font-size: var(--reading-body); }
  .philosophy .perspective { padding-top: 230px; min-height: 420px; }
}

@media (min-width: 561px) and (max-width: 680px) {
  .nav-wrap { gap: 16px; }
  .site-nav { gap: 12px; flex-shrink: 0; }
}

@media (max-width: 560px) {
  .js .site-nav { font-size: 18px; }
  .hero-description { line-height: 1.5; }
  .roundtable-controls { margin-top: 0; min-height: 96px; }
  .discipline-selector { gap: 4px 20px; }
  .discipline-panel > p { max-width: 38ch; }
  .philosophy .perspective { min-height: 400px; }
  .process-overview .process-summary { min-height: 0; }
  .company-record > div { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .contact-bottom { flex-direction: column; align-items: center; }
  .footer-links { gap: 16px; flex-wrap: wrap; }
}
