/* Public website type hierarchy, 7 September 2026.
   Marcellus and Jost, the approved palette, and the intro artwork are retained. */
:root {
  --type-display: clamp(2.75rem, 5vw, 4.5rem);
  --type-title: clamp(2.25rem, 3.6vw, 3rem);
  --type-statement: clamp(1.625rem, 2.5vw, 2rem);
  --type-section: clamp(1.625rem, 2.5vw, 2rem);
  --type-lead: 1.25rem;
  --type-body: 1.125rem;
  --type-label: .875rem;
  --page-gutter: clamp(1.5rem, 5vw, 4.5rem);
}
.eyebrow {font-size:var(--type-label);font-weight:500;line-height:1.4;letter-spacing:.16em}
.h1 {font-size:var(--type-display);line-height:1.12}
.h2 {margin:0;font-size:var(--type-section);line-height:1.25}
.h3,.rows h3 {margin:0;font-size:1.625rem;line-height:1.3}
.page-title,.h62 {
  margin:0;font:400 var(--type-title)/1.15 'Marcellus',serif;
  letter-spacing:-.02em;color:var(--fg);text-wrap:balance;
}
.page-title {color:var(--gold-bright)}
.page-statement,.railhead {
  margin:0;font:400 var(--type-statement)/1.3 'Marcellus',serif;
  letter-spacing:-.012em;color:var(--fg);text-wrap:balance;max-width:48rem;
}
.lead,.psub {font-size:var(--type-lead);line-height:1.7}
.body,.rows p,.rail .body,dialog.bio p {font-size:var(--type-body);line-height:1.7}
.phead {padding:80px var(--page-gutter) 64px;gap:24px}
.phead--mission {padding-bottom:100px}
.phead--mission .page-title {font-size:clamp(1.25rem,1.75vw,1.5rem);line-height:1.3}
.phead--mission .lead {max-width:680px;margin:0}
.phead--mission .page-statement {margin-bottom:8px}
.phead--strategies {padding-top:80px;padding-bottom:48px}
.hero {padding:100px var(--page-gutter) 112px;gap:36px}
.hero .lines {margin:0;font-weight:400}
.hero .row {gap:48px}
.hero .lead {max-width:650px}
.band {padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.section-title {margin:0;font:400 var(--type-section)/1.25 'Marcellus',serif;color:var(--fg);text-wrap:balance}
.band--team {padding-top:0;padding-bottom:64px;border-top:0;gap:32px}
.band--team .team {padding:0}
.card .nm {font-size:1.5rem;line-height:1.3;min-height:62px}
.card .tt,dialog.bio .tt2 {font-size:var(--type-label);line-height:1.5;letter-spacing:.07em}
.card .tt {min-height:42px}
.card .lk {font-size:1rem;line-height:1.4}
.viewbio,.login,.cta,.submit,.tlink,.chip {font-size:1rem;line-height:1.3}
.viewbio {padding-left:12px;padding-right:12px}
dialog.bio .nm2 {font-size:var(--type-section);line-height:1.25}
dialog.bio .dfoot {font-size:var(--type-label);line-height:1.7}
.strategy-explorer {padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.strategy-piece__name {font-size:var(--type-label);letter-spacing:.12em}
.strategy-piece__strategy {font-size:1.375rem;line-height:1.35;min-height:120px}
.strategy-power__label,.strategy-power-note {font-size:var(--type-label);line-height:1.5}
.strategy-detail h2 {font-size:var(--type-section);line-height:1.25}
.strategy-detail__pending {font-size:var(--type-body);line-height:1.7}
.strategy-detail__subtitle {font-size:1.375rem}
.inqwrap {grid-template-columns:minmax(280px,.85fr) minmax(0,1.4fr);gap:56px;max-width:1320px;padding:80px var(--page-gutter) 0}
.rail {padding-top:0;gap:24px}
.railnote,.railspeak .q,.notfoot {font-size:1rem;line-height:1.65}
.railnote {font-weight:400}
.form.panel {padding:40px 32px}
.form .lb {font-size:var(--type-label);line-height:1.5;font-weight:500;letter-spacing:.06em}
.form input,.form textarea,.form select {font-size:var(--type-body);line-height:1.5;min-width:0;width:100%}
.fgrid {gap:28px 24px}
.ph {font-size:.8125rem;line-height:1.5;letter-spacing:.08em}
.phbox {margin-left:var(--page-gutter);margin-right:var(--page-gutter)}
.foot {font-size:var(--type-label);line-height:1.7;padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
/* One continuous disclosure, balanced naturally when the viewport needs wrapping. */
.foot .fdisc {max-width:none;margin:0;font-size:.8125rem;line-height:1.65;text-wrap:balance}
.legal {max-width:960px;padding-left:var(--page-gutter);padding-right:var(--page-gutter);gap:24px}
.legal h2 {font-size:1.625rem;line-height:1.3}
.legal p,.legal li {font-size:var(--type-body);line-height:1.75}
/* Extra scope also wins over the dialog styles embedded near the footer. */
body .ldlg .lttl {font-size:var(--type-section);line-height:1.25}
body .ldlg .lbody h2 {font-size:1.625rem;line-height:1.3}
body .ldlg .lbody p,body .ldlg .lbody li {font-size:var(--type-body);line-height:1.75}
body .ldlg .lbody .eff {font-size:var(--type-label)}
.head {padding-left:var(--page-gutter);padding-right:var(--page-gutter);gap:32px}
.head .lock {min-width:0;max-width:363px;width:100%}
.head .lock svg {max-width:100%;height:auto}
.head .tools {gap:18px}
.nav {gap:30px;letter-spacing:.02em;line-height:1.4}
@media (max-width:1250px) {
  .head {grid-template-columns:minmax(0,1fr) auto;gap:24px}
  .nav {grid-column:1/-1;grid-row:2;justify-content:center;flex-wrap:wrap;white-space:normal;gap:20px 32px}
  .strategy-pieces {grid-template-columns:repeat(3,minmax(0,1fr))}
  .strategy-piece:nth-child(3n+1) {border-left:0}
  .strategy-piece:nth-child(n+4) {border-top:1px solid var(--rule-3)}
  .strategy-piece__strategy {min-height:90px;max-width:240px}
  .team {grid-template-columns:repeat(2,minmax(0,1fr))}
  .rows .r {grid-template-columns:48px 220px minmax(0,1fr);gap:32px}
}
@media (max-width:850px) {
  .hero .row {flex-direction:column;align-items:flex-start;gap:28px}
  .steps {grid-template-columns:1fr;gap:0;background:transparent}
  .steps>div {padding:28px 0;border-top:1px solid var(--rule-3)}
  .steps>div:first-child {padding-top:0;border-top:0}
  .rows .r {grid-template-columns:36px minmax(0,1fr);gap:16px 24px}
  .rows p {grid-column:2}
  .inqwrap {grid-template-columns:minmax(0,1fr);max-width:740px;gap:40px;padding-top:56px}
  .strategy-detail {grid-template-columns:minmax(0,1fr);gap:24px}
  .foot .frow {align-items:flex-start;flex-wrap:wrap;gap:16px}
  .band {padding-top:72px;padding-bottom:72px;gap:36px}
  .band--first,.band--team {padding-top:0}
  .filter {grid-template-columns:1fr;gap:32px}
}
@media (max-width:600px) {
  :root {--type-lead:1.125rem}
  .head {gap:20px 12px;padding-top:24px;padding-bottom:24px}
  .head .tools {gap:10px}
  .login {padding:10px 16px}
  .nav {font-size:.9375rem;gap:18px 24px}
  .phead {padding-top:56px;padding-bottom:48px;gap:22px}
  .phead--mission {padding-bottom:72px}
  .hero {padding-top:56px;padding-bottom:72px;gap:28px}
  .hero .h1 {font-size:clamp(2.25rem,9vw,3rem)}
  .hero .row .acts {white-space:normal;flex-wrap:wrap;gap:20px}
  .band .cta {text-align:center}
  .strategy-pieces {grid-template-columns:repeat(2,minmax(0,1fr))}
  .strategy-piece {padding:22px 10px;gap:14px}
  .strategy-piece:nth-child(3n+1) {border-left:1px solid var(--rule-3)}
  .strategy-piece:nth-child(2n+1) {border-left:0}
  .strategy-piece:nth-child(n+3) {border-top:1px solid var(--rule-3)}
  .strategy-piece__strategy {font-size:1.25rem;min-height:108px}
  .strategy-power__label {font-size:.8125rem;gap:4px}
  .team {grid-template-columns:minmax(0,1fr);max-width:380px;margin-inline:auto}
  .card .nm,.card .tt {min-height:0}
  .fgrid {grid-template-columns:minmax(0,1fr)}
  .form.panel {padding:28px 22px;gap:32px}
  .chip {padding:12px 20px}
  dialog.bio .in {padding:28px 24px}
  body .ldlg .ltop {padding:28px 24px 22px}
  body .ldlg .lbody {padding:24px 24px 56px}
  .legal {padding-bottom:72px}
}

/* Keep header alignment steady between short and scrolling pages. */
html{scrollbar-gutter:stable}
