/*
 * Taipei Metro East Rotary Club unified interface system
 * Contemporary civic editorial style, optimized for mature readers.
 */

:root {
  color-scheme: light;
  --color-brand-950: #041f35;
  --color-brand-900: #062844;
  --color-brand-800: #07385f;
  --color-brand-700: #004b82;
  --color-brand-600: #0063a6;
  --color-gold-500: #f5a800;
  --color-gold-700: #8a5900;
  --color-canvas: #f5f2e9;
  --color-surface: #fffdf8;
  --color-surface-muted: #edf3f6;
  --color-ink: #152734;
  --color-ink-muted: #4f6472;
  --color-border: #cbd5dc;
  --color-danger: #8d2e16;
  --rotary-blue: var(--color-brand-700);
  --rotary-blue-deep: var(--color-brand-900);
  --rotary-blue-soft: #dceaf2;
  --rotary-gold: var(--color-gold-500);
  --paper: var(--color-canvas);
  --paper-bright: var(--color-surface);
  --ink: var(--color-ink);
  --muted: var(--color-ink-muted);
  --line: var(--color-border);
  --shadow: 0 1.25rem 3.5rem rgba(4, 31, 53, .1);
  --shadow-soft: 0 .45rem 1.5rem rgba(4, 31, 53, .07);
  --radius-sm: .45rem;
  --radius-md: .8rem;
  --radius-lg: 1.25rem;
  --radius-xl: 1.8rem;
  --max: 80rem;
  --reading: 46rem;
  --header-height: 5.5rem;
  --focus-ring: 0 0 0 4px rgba(245, 168, 0, .35);
  --ease-standard: cubic-bezier(.2, .7, .2, 1);
}

html {
  font-size: 100%;
  scroll-padding-top: calc(var(--header-height) + 1.5rem);
}

html[data-text-scale] { font-size: 112.5%; }

body {
  color: var(--color-ink);
  background: var(--color-canvas);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.78;
  letter-spacing: .012em;
}

body::before {
  opacity: .16;
  background-image: radial-gradient(rgba(4, 31, 53, .1) .55px, transparent .55px);
  background-size: 8px 8px;
}

::selection { color: #fff; background: var(--color-brand-700); }

img { border-radius: var(--radius-sm); }

button,
input,
summary { font: inherit; }

button,
summary { cursor: pointer; }

a { text-decoration-thickness: .075em; }

p,
li,
dd { text-wrap: pretty; }

h1,
h2,
h3 { text-wrap: balance; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--color-gold-500);
  outline-offset: 3px;
  box-shadow: var(--focus-ring);
}

.skip-link {
  min-height: 3rem;
  padding: .65rem 1rem;
  border-radius: var(--radius-sm);
  font-size: 1rem;
  font-weight: 700;
}

/* Shared header and navigation */
.site-header {
  grid-template-columns: minmax(18rem, 22rem) minmax(0, 1fr) auto;
  min-height: var(--header-height);
  padding: .55rem clamp(1rem, 3.2vw, 3.5rem);
  background: rgba(4, 31, 53, .975);
  border-bottom-width: 2px;
  box-shadow: 0 .45rem 1.4rem rgba(4, 31, 53, .16);
}

.identity {
  gap: .75rem;
  min-width: 0;
  min-height: 3rem;
  border-radius: var(--radius-sm);
}

.identity img {
  width: 3.35rem;
  height: 3rem;
  padding: .28rem .32rem;
  border-radius: .65rem;
}

.identity span { min-width: 0; }

.identity strong {
  font-size: 1.1rem;
  letter-spacing: .055em;
  line-height: 1.35;
}

.identity small {
  margin-top: .12rem;
  color: #c6d8e4;
  font-size: 1rem;
  letter-spacing: .035em;
  line-height: 1.35;
}

.site-nav {
  grid-column: 2;
  grid-row: 1;
  justify-content: flex-end;
  gap: .15rem;
  font-size: 1rem;
}

.site-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: .55rem .68rem;
  border-radius: var(--radius-sm);
  font-weight: 600;
  letter-spacing: .025em;
  transition: color 160ms var(--ease-standard), background 160ms var(--ease-standard);
}

.site-nav a::after { display: none; }

.site-nav a:hover { color: #fff; background: rgba(255, 255, 255, .1); }

.site-nav a[aria-current="page"] {
  color: var(--color-brand-950);
  background: var(--color-gold-500);
}

.header-tools {
  grid-column: 3;
  grid-row: 1;
  gap: .5rem;
  margin-left: .8rem;
}

.header-search,
.text-scale-toggle,
.nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3rem;
  min-height: 3rem;
  padding: .55rem .78rem;
  color: #fff;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: var(--radius-sm);
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  transition: background 160ms var(--ease-standard), border-color 160ms var(--ease-standard);
}

.header-tools > a.header-search { font-size: 1rem; }

.header-search:hover,
.text-scale-toggle:hover,
.nav-toggle:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .65); }

.text-scale-toggle { gap: .35rem; }
.text-scale-toggle span { color: #c6d8e4; font-size: 1rem; font-weight: 500; }
.text-scale-toggle strong { min-width: 1em; color: var(--color-gold-500); font-size: 1.05rem; }
.text-scale-toggle[aria-pressed="true"] { color: var(--color-brand-950); background: var(--color-gold-500); border-color: var(--color-gold-500); }
.text-scale-toggle[aria-pressed="true"] span,
.text-scale-toggle[aria-pressed="true"] strong { color: var(--color-brand-950); }
.nav-toggle { display: none; }

/* Shared page architecture */
main { min-height: 68vh; }

.page-heading {
  display: grid;
  align-content: end;
  min-height: clamp(16rem, 30vw, 24rem);
  padding: clamp(3.5rem, 7vw, 6.5rem) clamp(1.25rem, 7vw, 7rem);
  background:
    linear-gradient(115deg, rgba(255, 255, 255, .045) 0 34%, transparent 34% 100%),
    linear-gradient(135deg, var(--color-brand-950), var(--color-brand-800));
  border-bottom: 1px solid rgba(255, 255, 255, .18);
}

.page-heading::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .08;
  background: repeating-linear-gradient(90deg, transparent 0 calc(12.5% - 1px), #fff calc(12.5% - 1px) 12.5%);
}

.page-heading::after {
  right: clamp(-10rem, -6vw, -4rem);
  bottom: -15rem;
  width: min(34rem, 58vw);
  border-width: clamp(2.5rem, 5vw, 4.5rem);
}

.page-heading h1 {
  max-width: 20ch;
  font-size: clamp(3rem, 6vw, 5.25rem);
  letter-spacing: .025em;
  line-height: 1.14;
}

.page-heading--article { min-height: clamp(18rem, 34vw, 28rem); }
.page-heading--article h1 { max-width: 22ch; font-size: clamp(2.6rem, 5vw, 4.5rem); }
.page-heading--long-title h1 { max-width: 30ch; font-size: clamp(2.15rem, 3.8vw, 3.55rem); line-height: 1.25; }

.eyebrow,
.section-kicker {
  margin-bottom: .85rem;
  font-size: 1rem;
  line-height: 1.4;
  letter-spacing: .13em;
}

.page-content {
  width: min(100%, var(--max));
  padding: clamp(3.5rem, 6.5vw, 6.5rem) clamp(1.25rem, 5vw, 4rem);
}

.page-content--home,
.page-content--currentYear,
.page-content--fourWayTest { width: 100%; max-width: none; padding: 0; }

.section-heading {
  align-items: center;
  margin-bottom: clamp(1.8rem, 4vw, 3rem);
}

.section-heading h2,
.content-block > header h2,
.document-section > header h2 {
  font-size: clamp(2.25rem, 4.2vw, 3.65rem);
  line-height: 1.22;
}

.button {
  min-height: 3.25rem;
  padding: .7rem 1.3rem;
  border-radius: var(--radius-sm);
  font-size: 1rem;
  box-shadow: 0 .35rem 1rem rgba(4, 31, 53, .12);
  transition: transform 160ms var(--ease-standard), box-shadow 160ms var(--ease-standard), background 160ms var(--ease-standard);
}

.button:hover { transform: translateY(-1px); box-shadow: 0 .75rem 1.6rem rgba(4, 31, 53, .2); }

.text-link {
  min-height: 2.75rem;
  color: var(--color-brand-700);
  font-size: 1rem;
  font-weight: 700;
  text-decoration-thickness: .09em;
}

.empty-state,
.status-copy {
  margin: 0;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  color: var(--color-ink-muted);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 5px solid var(--color-gold-500);
  border-radius: var(--radius-md);
  font-size: 1.05rem;
}

/* Home */
.hero {
  grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr);
  min-height: clamp(39rem, 69vh, 49rem);
  background:
    radial-gradient(circle at 82% 40%, rgba(0, 99, 166, .36), transparent 24%),
    linear-gradient(118deg, var(--color-brand-950) 0 61%, var(--color-brand-700) 61% 100%);
}

.hero::before { opacity: .08; background-size: calc(100% / 10) 100%; }

.hero__copy { padding: clamp(4.5rem, 8vw, 8rem) clamp(1.25rem, 7vw, 7rem); }

.hero h1 {
  max-width: 11ch;
  font-size: clamp(2.9rem, 6.3vw, 5.8rem);
  line-height: 1.1;
  white-space: normal;
  word-break: normal;
  line-break: strict;
}

.hero__english { margin-top: 1.25rem; color: #d1e0e9; font-size: 1rem; letter-spacing: .08em; line-height: 1.5; }
.hero__actions { flex-wrap: wrap; gap: .75rem 1.4rem; margin-top: 2.25rem; }
.hero .text-link { color: #fff; }
.hero__portrait { padding: clamp(2rem, 5vw, 5rem); }
.hero__portrait::before { width: min(31vw, 25rem); border-width: 1px; box-shadow: 0 0 0 2.5rem rgba(255,255,255,.025), 0 0 0 5rem rgba(255,255,255,.016); }
.hero__portrait p { font-size: 1rem; letter-spacing: .12em; }
.hero__seal {
  width: min(22vw, 15rem);
  min-width: 11rem;
  aspect-ratio: 1.08;
  padding: clamp(1.1rem, 2vw, 1.5rem);
  background: linear-gradient(145deg, #fff, #f7f2e8);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 1.5rem;
  box-shadow: .8rem .85rem 0 var(--color-gold-500), var(--shadow);
  transform: none;
}

.fact-ribbon {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 2.5rem), var(--max));
  margin: -2.25rem auto 0;
  overflow: hidden;
  color: var(--color-ink);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}

.fact-ribbon div { min-height: 8.25rem; border-color: var(--color-border); }
.fact-ribbon span { margin-bottom: .45rem; color: var(--color-brand-700); font-size: 1rem; font-weight: 700; letter-spacing: .08em; }
.fact-ribbon strong { color: var(--color-brand-900); font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.45; }

.home-intro,
.home-latest,
.portal-grid { width: min(100%, var(--max)); }

.home-latest,
.portal-grid { padding: clamp(4.5rem, 8vw, 7.5rem) clamp(1.25rem, 5vw, 4rem); }

.home-intro { grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr); gap: clamp(2rem, 5vw, 5rem); padding: clamp(3.5rem, 6vw, 5.5rem) clamp(1.25rem, 5vw, 4rem); }
.home-intro h2,
.split-lead h2,
.contact-layout h2 { font-size: clamp(2.5rem, 4.8vw, 4.35rem); line-height: 1.3; }
.home-intro__archive { min-height: 18rem; border-radius: var(--radius-xl); box-shadow: 0 1.25rem 3.5rem rgba(4,31,53,.18); }
.home-latest { border-top: 1px solid var(--color-border); }

.home-activity-ledger {
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.home-activity--featured > a { grid-template-columns: minmax(18rem, 23rem) minmax(0, 1fr); min-height: 20rem; }
.home-activity--featured .home-activity__media { margin: 1.5rem 0 1.5rem 1.5rem; border-radius: var(--radius-md); }
.home-activity__body { padding: clamp(1.5rem, 3.5vw, 3rem); }
.home-activity__meta { margin-bottom: 1rem; font-size: 1rem; letter-spacing: .07em; }
.home-activity__meta span:first-child { font-size: 1rem; }
.home-activity h3 { font-size: clamp(1.55rem, 2.6vw, 2.35rem); line-height: 1.45; }
.home-activity__excerpt { color: var(--color-ink-muted); font-size: 1rem; }
.home-activity__action { min-height: 2.75rem; padding-top: 1rem; color: var(--color-brand-700); font-size: 1rem; }
.home-activity__warning { color: var(--color-danger); font-size: 1rem; border-radius: var(--radius-sm); }
.home-activity-ledger__index { gap: 0; }
.home-activity-ledger__index .home-activity { background: #fbfaf5; border-color: var(--color-border); }
.home-activity-ledger__index .home-activity > a { grid-template-columns: 8rem minmax(0, 1fr); min-height: 13rem; }
.home-activity-ledger__index .home-activity__media { margin-left: 1.25rem; border-radius: var(--radius-sm); }
.home-activity-ledger__index .home-activity__body { padding: 1.35rem; }
.home-activity-ledger__index .home-activity__meta { font-size: 1rem; }
.home-activity-ledger__index .home-activity h3 { font-size: clamp(1.15rem, 1.55vw, 1.35rem); line-height: 1.55; }
.home-activity-ledger__index .home-activity__action { font-size: 1rem; }
.home-activity a:hover h3 { color: var(--color-brand-700); }

.portal-grid { gap: 1rem; padding-top: 0; background: transparent; }
.portal-grid a,
.portal-grid a:nth-child(2),
.portal-grid a:nth-child(3) {
  min-height: 15rem;
  color: var(--color-ink);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-top: 5px solid var(--color-brand-700);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
  transition: transform 160ms var(--ease-standard), box-shadow 160ms var(--ease-standard), border-color 160ms var(--ease-standard);
}
.portal-grid a:hover { border-top-color: var(--color-gold-500); box-shadow: var(--shadow); transform: translateY(-2px); }
.portal-grid span { color: var(--color-gold-700); }
.portal-grid h2 { margin-top: 2rem; color: var(--color-brand-900); font-size: clamp(1.65rem, 2.6vw, 2.25rem); }
.portal-grid p { color: var(--color-ink-muted); font-size: 1rem; }

/* Overview and standard content */
.split-lead { grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr); gap: clamp(2.5rem, 6vw, 6rem); margin-bottom: clamp(3rem, 7vw, 5.5rem); }
.split-lead > p { max-width: 38rem; font-size: 1.125rem; }
.about-index { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: clamp(4rem, 8vw, 7rem); border: 0; }
.about-index a { min-height: 9.5rem; padding: 1.4rem; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.about-index a:hover { border-color: var(--color-brand-600); box-shadow: var(--shadow); }
.about-index span { color: var(--color-brand-700); font-size: 1rem; }
.about-index strong { font-size: 1.3rem; line-height: 1.45; }
.content-block + .content-block { margin-top: clamp(5rem, 9vw, 8rem); }
.content-block > header,
.document-section > header { max-width: var(--reading); margin-bottom: 2rem; }

.article-shell { max-width: var(--reading); }
.article-meta { align-items: center; color: var(--color-ink-muted); }
.article-meta p,
.article-meta time { font-size: 1rem; }

.legacy-prose {
  max-width: var(--reading);
  padding: clamp(1.6rem, 4vw, 3.5rem);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  font-size: 1.125rem;
  line-height: 1.85;
}

.legacy-prose h2,
.legacy-prose h3,
.legacy-prose h4 { margin-top: 2.2em; line-height: 1.4; }
.legacy-prose h2 { font-size: clamp(1.85rem, 3.2vw, 2.6rem); }
.legacy-prose h3 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
.legacy-prose p,
.legacy-prose li { max-width: 72ch; }
.legacy-prose blockquote { padding: 1.25rem 1.5rem; border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.legacy-prose img { border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.legacy-prose th,
.legacy-prose td { min-width: 9rem; padding: .85rem; }
.legacy-prose a { color: var(--color-brand-700); text-decoration-thickness: .09em; }
.legacy-prose a[target="_blank"]::after { content: " ↗"; font-size: .85em; }
.legacy-prose .asset-image-link { display: block; width: fit-content; max-width: 100%; margin: 0 auto; }
.legacy-prose a.asset-image-link[target="_blank"]::after { content: none; }
.article-shell--tabular,
.legacy-prose--tabular { max-width: none; }
.legacy-prose--tabular { padding: clamp(1.5rem, 3vw, 2.5rem); }
.legacy-prose--tabular table { margin: 0 0 2rem; background: var(--color-surface); }
.legacy-prose--tabular table:last-child { margin-bottom: 0; }
.legacy-prose--tabular table p { max-width: none; margin: 0; }
.legacy-prose--tabular th,
.legacy-prose--tabular td { min-width: 7.5rem; padding: .85rem 1rem; line-height: 1.65; }
.legacy-prose--tabular td[colspan] { padding: 1rem; color: var(--color-brand-900); background: var(--color-surface-muted); }
.legacy-prose--tabular tr:has(> td[colspan]) + tr > td { color: #fff; background: var(--color-brand-700); font-weight: 700; }

@media (min-width: 901px) {
  .page-content--article:has(.article-shell--tabular) { padding-top: clamp(2.75rem, 4vw, 4rem); padding-bottom: clamp(3.5rem, 5vw, 5rem); }
  .legacy-prose--tabular table { display: table; table-layout: auto; overflow: visible; }
  .legacy-prose--tabular th,
  .legacy-prose--tabular td { min-width: 0; overflow-wrap: normal; word-break: normal; }
  .legacy-prose--tabular table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :first-child { width: 9%; white-space: nowrap; }
  .legacy-prose--tabular table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :nth-child(2) { width: 14%; white-space: nowrap; }
  .legacy-prose--tabular table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :nth-child(3) { width: 28%; }
  .legacy-prose--tabular table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :nth-child(4) { width: 38%; }
  .legacy-prose--tabular table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :last-child { width: 11%; white-space: nowrap; }
  .legacy-prose--roster table:has(tr > :nth-child(5):last-child) { width: 100%; max-width: 100%; table-layout: fixed; }
  .legacy-prose--roster table:has(tr > :nth-child(5):last-child) th,
  .legacy-prose--roster table:has(tr > :nth-child(5):last-child) td { min-width: 0; white-space: normal; overflow-wrap: break-word; word-break: normal; }
  .legacy-prose--roster table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :first-child { width: 8%; white-space: normal; }
  .legacy-prose--roster table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :nth-child(2) { width: 35%; white-space: normal; }
  .legacy-prose--roster table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :nth-child(3) { width: 15%; }
  .legacy-prose--roster table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :nth-child(4) { width: 25%; }
  .legacy-prose--roster table:has(tr > :nth-child(5):last-child) tr:has(> :nth-child(5):last-child) > :last-child { width: 17%; white-space: normal; }
}

.source-conflict { border-radius: var(--radius-md); font-size: 1rem; }

/* Archives and cards */
.archive-intro { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; margin: -1rem 0 2.5rem; padding: 1.25rem 1.4rem; background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.archive-intro p { margin: 0; }
.archive-intro--action-only { justify-content: flex-end; }
.archive-tools { top: calc(var(--header-height) + .75rem); grid-template-columns: auto minmax(14rem, 31rem) 1fr; margin-top: -1rem; padding: 1rem 1.2rem; background: rgba(245, 242, 233, .97); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.archive-tools label { font-size: 1rem; }
.archive-tools input { min-height: 3.25rem; padding: .65rem .9rem; border-color: var(--color-border); border-radius: var(--radius-sm); font-size: 1rem; }
.archive-tools p { font-size: 1rem; }
.story-grid { gap: 1.15rem; background: transparent; border: 0; }
.story-card { overflow: hidden; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.story-card__link { min-height: 23rem; padding: 1.45rem; transition: background 160ms var(--ease-standard), transform 160ms var(--ease-standard), box-shadow 160ms var(--ease-standard); }
.story-card__link:hover { color: var(--color-ink); background: #fff; transform: translateY(-2px); box-shadow: var(--shadow); }
.story-card__media { height: auto; aspect-ratio: 4 / 3; margin: -1.45rem -1.45rem 1.25rem; }
.story-card__meta { margin-bottom: 1rem; color: var(--color-ink-muted); font-size: 1rem; }
.story-card__link:hover .story-card__meta { color: var(--color-ink-muted); }
.story-card h2 { font-size: clamp(1.35rem, 2vw, 1.65rem); line-height: 1.5; }
.story-card__link:hover h2 { color: var(--color-brand-700); }
.story-card p:not(.story-card__meta) { color: var(--color-ink-muted); font-size: 1rem; }
.story-card__link:hover p { color: var(--color-ink-muted); }
.story-card__action { min-height: 2.75rem; color: var(--color-brand-700); font-size: 1rem; }
.story-card__warning { color: var(--color-danger); font-size: 1rem; }
.year-section { border-bottom-color: var(--color-border); }
.year-section > summary { min-height: 4.5rem; padding: 1rem .5rem; border-radius: var(--radius-sm); }
.year-section > summary:hover { background: rgba(255, 255, 255, .55); }
.year-heading p { font-size: clamp(2.6rem, 5.5vw, 4.6rem); }
.year-heading span { font-size: 1rem; }

.document-section + .document-section { margin-top: clamp(6rem, 10vw, 9rem); padding-top: clamp(4rem, 7vw, 6rem); border-top-width: 2px; }

/* Utility pages */
.contact-layout { grid-template-columns: minmax(18rem, .75fr) minmax(0, 1.25fr); gap: clamp(3rem, 8vw, 7rem); }
.contact-list div { grid-template-columns: 9rem 1fr; min-height: 4.5rem; padding: 1.25rem 0; }
.contact-list dt { color: var(--color-brand-700); }
.contact-list a { color: var(--color-brand-700); font-weight: 650; }
.sitemap-list ul { gap: .75rem 1.25rem; }
.sitemap-list li { border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.sitemap-list a { min-height: 3.5rem; padding: .8rem 1rem; background: var(--color-surface); border-radius: var(--radius-sm); font-weight: 650; }
.sitemap-list a:hover { color: var(--color-brand-700); background: #fff; }
.search-intro { max-width: var(--reading); font-size: 1.05rem; }
#search {
  max-width: var(--reading);
  --pagefind-ui-scale: 1.15;
  --pagefind-ui-primary: #004b82;
  --pagefind-ui-text: #152734;
  --pagefind-ui-background: #fffdf8;
  --pagefind-ui-border: #aab9c3;
  --pagefind-ui-border-width: 1px;
  --pagefind-ui-border-radius: 8px;
  --pagefind-ui-font: var(--font-sans-zh);
}
.notfound { max-width: 48rem; }
.notfound h2 { font-size: clamp(2rem, 4vw, 2.8rem); }
.notfound > p:not(.display-number) { font-size: 1.1rem; }

/* Footer */
.site-footer {
  grid-template-columns: minmax(18rem, .9fr) minmax(26rem, 1.1fr);
  gap: 1.25rem clamp(3rem, 7vw, 7rem);
  padding-top: clamp(2.75rem, 5vw, 4rem);
  border-top-width: 3px;
}
.footer-brand p { font-size: 1.25rem; }
.footer-brand small { font-size: 1rem; }
.footer-contact p { font-size: 1rem; }
.footer-contact a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.site-footer nav {
  grid-column: 1 / -1;
  flex-direction: row;
  flex-wrap: wrap;
  gap: .25rem clamp(1.25rem, 2.8vw, 3rem);
}
.site-footer nav a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: .2rem 0;
  font-size: 1rem;
  white-space: nowrap;
  text-decoration-thickness: 1px;
  text-underline-offset: .35em;
}
.footer-source {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .5rem 1.5rem;
  margin-top: 0;
  font-size: 1rem;
}
.footer-credit { display: inline-flex; align-items: center; gap: .35rem; color: #d5e1e9; }
.footer-credit a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: #fff;
  font-weight: 700;
  text-decoration-color: var(--rotary-gold);
  text-underline-offset: .35em;
}
.footer-credit a:hover { color: var(--rotary-gold); }
/* Current Rotary year */
.annual-directory { background: var(--color-canvas); }
.annual-masthead {
  grid-template-columns: minmax(0, 1.15fr) minmax(19rem, .65fr);
  gap: clamp(2.5rem, 7vw, 6.5rem);
  min-height: 41rem;
  padding: clamp(4.5rem, 8vw, 7.5rem) clamp(1.25rem, 6vw, 6rem) 0;
  background:
    radial-gradient(circle at 82% 25%, rgba(0, 99, 166, .38), transparent 24%),
    linear-gradient(125deg, var(--color-brand-950), var(--color-brand-800));
}
.annual-masthead::before { opacity: .07; background-size: calc(100% / 10) 100%; }
.annual-masthead::after { top: -16rem; right: -16rem; border-width: 3.5rem; opacity: .75; }
.annual-masthead__edition { padding-bottom: 3.5rem; }
.annual-masthead__kicker { margin-bottom: 1.5rem; font-size: 1rem; letter-spacing: .14em; }
.annual-masthead__club { margin-bottom: .8rem; font-size: clamp(1.25rem, 2vw, 1.6rem); letter-spacing: .08em; }
.annual-masthead h1 { gap: clamp(.7rem, 1.5vw, 1.25rem); font-size: clamp(5rem, 9.2vw, 8.5rem); line-height: .92; }
.annual-masthead h1 i { width: clamp(2rem, 4vw, 3.8rem); height: .2rem; transform: none; }
.annual-masthead__english { margin-top: 1.5rem; color: #c6d8e4; font-size: 1rem; letter-spacing: .08em; line-height: 1.5; }
.annual-masthead__flag { width: min(100%, 28rem); margin-bottom: 3.5rem; }
.annual-masthead__flag > div { min-height: 21rem; padding: clamp(1.4rem, 3vw, 2.3rem); border: 1px solid rgba(255,255,255,.62); border-radius: var(--radius-lg); box-shadow: .75rem .75rem 0 var(--color-gold-500), var(--shadow); transform: none; }
.annual-masthead__flag img { max-height: 17rem; }
.annual-masthead__flag figcaption { margin: 1.2rem .25rem 0; color: #c6d8e4; font-size: 1rem; letter-spacing: .08em; }
.annual-snapshot { overflow: hidden; background: rgba(255,255,255,.075); border: 1px solid rgba(255,255,255,.2); border-bottom: 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.annual-snapshot div { min-height: 8rem; padding: 1.45rem clamp(1rem, 2.5vw, 2rem); }
.annual-snapshot dt { color: #c6d8e4; font-size: 1rem; letter-spacing: .08em; }
.annual-snapshot dd { margin-top: .6rem; font-size: clamp(1.15rem, 1.8vw, 1.4rem); }
.annual-snapshot small { margin-top: .3rem; color: #c6d8e4; font-size: 1rem; }
.annual-index { top: var(--header-height); grid-template-columns: minmax(11rem, .35fr) 1.65fr; background: rgba(255,253,248,.985); box-shadow: var(--shadow-soft); }
.annual-index > p { padding: .8rem clamp(1.25rem, 3vw, 2.5rem); }
.annual-index > p span { font-size: 1rem; }
.annual-index a { min-height: 3.6rem; padding: .8rem clamp(.65rem, 1.5vw, 1.25rem); }
.annual-index a:hover { color: var(--color-brand-900); background: var(--color-surface-muted); }
.annual-index b { color: var(--color-gold-700); font-size: 1rem; }
.annual-index span { font-size: 1rem; }
.annual-section,
.annual-profile-grid { width: min(100%, var(--max)); padding-right: clamp(1.25rem, 5vw, 4rem); padding-left: clamp(1.25rem, 5vw, 4rem); }
.annual-section { padding-top: clamp(4.5rem, 8vw, 7rem); padding-bottom: clamp(4.5rem, 8vw, 7rem); }
.annual-section__heading { grid-template-columns: minmax(8rem, .28fr) minmax(0, 1.72fr); gap: clamp(1.5rem, 5vw, 4rem); margin-bottom: clamp(2rem, 4.5vw, 3.5rem); }
.annual-section__heading > p,
.annual-profile header > p { font-size: 1rem; letter-spacing: .1em; }
.annual-section__heading > p span,
.annual-profile header > p span { margin-bottom: .35rem; color: var(--color-gold-700); font-size: 1.1rem; }
.annual-section__heading h2,
.annual-profile h2 { font-size: clamp(2.4rem, 4.5vw, 4rem); line-height: 1.2; }
.annual-section__heading div > p { color: var(--color-ink-muted); font-size: 1rem; letter-spacing: .06em; }
.annual-leadership__grid { gap: 1.25rem; }
.annual-leader { grid-template-columns: minmax(12rem, .85fr) minmax(0, 1.15fr); min-height: 25rem; border: 1px solid rgba(255,255,255,.16); border-bottom: 5px solid var(--color-gold-500); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.annual-leader__portrait img,
.annual-leader__placeholder { min-height: 25rem; border-radius: 0; }
.annual-leader__identity { padding: clamp(1.5rem, 3vw, 2.6rem); }
.annual-leader__role { margin-bottom: 2.5rem; font-size: 1rem; letter-spacing: .1em; }
.annual-leader__role small { margin-top: .2rem; color: #c6d8e4; font-size: 1rem; }
.annual-leader h3 { font-size: clamp(2.35rem, 4vw, 3.65rem); line-height: 1.15; }
.annual-leader__rotary-name { font-size: 1rem; letter-spacing: .08em; }
.annual-profile-grid { gap: 1.25rem; padding-top: 0; }
.annual-profile { padding: clamp(1.7rem, 4vw, 3.2rem); background: var(--color-surface); border: 1px solid var(--color-border); border-top: 5px solid var(--color-brand-700); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.annual-profile header { margin-bottom: 1.8rem; }
.annual-profile h2 { font-size: clamp(2rem, 3.4vw, 2.9rem); }
.annual-profile dl div { grid-template-columns: minmax(7rem, .34fr) minmax(0, 1fr); min-height: 4.25rem; gap: 1.25rem; padding: 1rem 0; }
.annual-profile dt { font-size: 1rem; }
.annual-profile dd { font-size: 1rem; }
.annual-records__empty { border-radius: var(--radius-md); font-size: 1.05rem; }
#year-overview,
#year-leadership,
#year-records { scroll-margin-top: calc(var(--header-height) + 5rem); }

.annual-index > div { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.annual-calendar {
  position: relative;
  border-top: 1px solid var(--color-border);
  background:
    radial-gradient(circle at 92% 4%, rgba(247, 168, 0, .13), transparent 20rem),
    linear-gradient(180deg, var(--color-canvas), var(--color-surface-muted));
}
.annual-calendar__summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  margin-bottom: clamp(2rem, 5vw, 4rem);
  padding: clamp(1.25rem, 3vw, 2.25rem);
  color: #fff;
  background: linear-gradient(125deg, var(--color-brand-950), var(--color-brand-800));
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.annual-calendar__summary dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}
.annual-calendar__summary dl > div {
  min-width: 0;
  padding: .4rem clamp(.8rem, 2vw, 1.5rem);
  border-right: 1px solid rgba(255, 255, 255, .2);
}
.annual-calendar__summary dl > div:first-child { padding-left: 0; }
.annual-calendar__summary dl > div:last-child { border-right: 0; }
.annual-calendar__summary dt { color: #c6d8e4; font-size: 1rem; }
.annual-calendar__summary dd { margin: .35rem 0 0; font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 700; line-height: 1; }
.annual-calendar__summary small { display: block; margin-top: .45rem; color: #c6d8e4; font-family: var(--sans); font-size: 1rem; font-weight: 500; line-height: 1.4; }
.annual-calendar__downloads { display: flex; flex-direction: column; gap: .85rem; min-width: 13.5rem; }
.annual-calendar__downloads .button { text-align: center; }
.annual-calendar__downloads .text-link { color: #fff; font-size: 1rem; }
.annual-calendar__months {
  display: grid;
  grid-template-columns: repeat(12, minmax(5rem, 1fr));
  margin-bottom: 1.25rem;
  overflow-x: auto;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
}
.annual-calendar__months a {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  align-items: center;
  justify-content: center;
  min-height: 4.5rem;
  padding: .65rem .4rem;
  color: var(--color-brand-900);
  text-decoration: none;
  border-right: 1px solid var(--color-border);
}
.annual-calendar__months a:last-child { border-right: 0; }
.annual-calendar__months a:hover,
.annual-calendar__months a:focus-visible { color: #fff; background: var(--color-brand-800); }
.annual-calendar__months span { font-size: 1.05rem; font-weight: 750; }
.annual-calendar__months small { color: inherit; font-family: var(--latin); font-size: .9rem; }
.annual-calendar__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.annual-calendar__month {
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  scroll-margin-top: calc(var(--header-height) + 10rem);
}
.annual-calendar__month > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  min-height: 7rem;
  padding: 1.25rem 1.4rem;
  color: #fff;
  background: linear-gradient(120deg, var(--color-brand-950), var(--color-brand-800));
  border-bottom: .35rem solid var(--color-gold-500);
}
.annual-calendar__month > header div { display: flex; gap: .8rem; align-items: baseline; }
.annual-calendar__month > header span { color: #c6d8e4; font-family: var(--latin); font-size: 1rem; }
.annual-calendar__month > header h3 { margin: 0; color: #fff; font-size: clamp(2.35rem, 4vw, 3.2rem); line-height: 1; }
.annual-calendar__month > header p { margin: 0; color: #c6d8e4; font-size: 1rem; }
.annual-calendar__month ol { margin: 0; padding: 0; list-style: none; }
.annual-calendar__item {
  display: grid;
  grid-template-columns: 4.75rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  min-height: 7rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--color-border);
}
.annual-calendar__item:last-child { border-bottom: 0; }
.annual-calendar__item time {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 4.6rem;
  color: var(--color-brand-950);
  background: var(--color-surface-muted);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
}
.annual-calendar__item time strong { font-family: var(--latin); font-size: 1.8rem; line-height: 1; }
.annual-calendar__item time span { margin-top: .35rem; font-size: .9rem; font-weight: 700; }
.annual-calendar__content { min-width: 0; }
.annual-calendar__content p { margin: 0 0 .2rem; color: var(--color-gold-700); font-size: .92rem; font-weight: 800; letter-spacing: .08em; }
.annual-calendar__content h3 { margin: 0; color: var(--color-brand-950); font-family: var(--sans); font-size: 1.1rem; line-height: 1.55; }
.annual-calendar__action {
  display: inline-flex;
  gap: .35rem;
  align-items: center;
  min-height: 2.75rem;
  padding: .55rem .75rem;
  color: var(--color-brand-800);
  font-size: 1rem;
  font-weight: 750;
  text-decoration: none;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
}
.annual-calendar__action:hover,
.annual-calendar__action:focus-visible { color: #fff; background: var(--color-brand-800); border-color: var(--color-brand-800); }
.annual-calendar__item--holiday { background: rgba(230, 236, 239, .55); }
.annual-calendar__item--holiday time { color: var(--color-ink-muted); background: transparent; }
.annual-calendar__item--holiday .annual-calendar__content p { color: var(--color-ink-muted); }
#year-calendar { scroll-margin-top: calc(var(--header-height) + 5rem); }

@media (max-width: 1050px) {
  .annual-calendar__summary { grid-template-columns: 1fr; }
  .annual-calendar__downloads { flex-direction: row; min-width: 0; }
  .annual-calendar__grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .annual-index > div { grid-template-columns: repeat(6, minmax(9rem, 1fr)); }
  .annual-calendar__summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.4rem; }
  .annual-calendar__summary dl > div:nth-child(2) { border-right: 0; }
  .annual-calendar__summary dl > div:nth-child(3) { padding-left: 0; }
  .annual-calendar__downloads { align-items: stretch; flex-direction: column; }
  .annual-calendar__months { grid-template-columns: repeat(12, minmax(5.5rem, 1fr)); }
  .annual-calendar__item { grid-template-columns: 4.25rem minmax(0, 1fr); gap: .85rem; padding: 1rem; }
  .annual-calendar__action { grid-column: 2; justify-self: start; }
}
@media (max-width: 430px) {
  .annual-calendar__summary dl { grid-template-columns: 1fr; }
  .annual-calendar__summary dl > div { padding: .7rem 0; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .2); }
  .annual-calendar__summary dl > div:last-child { border-bottom: 0; }
  .annual-calendar__item { grid-template-columns: 3.75rem minmax(0, 1fr); }
  .annual-calendar__item time { min-height: 4.15rem; }
  .annual-calendar__item time strong { font-size: 1.55rem; }
}
/* Past officers */
.officer-directory { width: min(100%, var(--max)); }
.officer-directory__intro { align-items: center; margin-bottom: 2.25rem; padding-bottom: 1.5rem; }
.officer-directory__intro h2 { font-size: clamp(2.5rem, 4.7vw, 4.25rem); line-height: 1.2; }
.officer-directory__range p { font-size: clamp(1.8rem, 2.8vw, 2.55rem); }
.officer-directory__range small { color: var(--color-ink-muted); font-size: 1rem; }
.officer-directory__columns,
.officer-term { grid-template-columns: minmax(20rem, 1.18fr) repeat(2, minmax(16rem, .91fr)); }
.officer-directory__columns { margin-bottom: .6rem; color: var(--color-ink-muted); font-size: 1rem; letter-spacing: .1em; }
.officer-directory__columns span { padding: 0 1.25rem .65rem; }
.officer-directory__columns span + span { border-left: 0; }
.officer-directory__list { border-bottom: 0; }
.officer-term { min-height: 8rem; margin-bottom: .7rem; overflow: hidden; background: rgba(255,253,248,.82); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: 0 .2rem .7rem rgba(4,31,53,.035); }
.officer-term:hover { background: var(--color-surface); box-shadow: var(--shadow-soft); transform: translateY(-1px); }
.officer-term__identity { grid-template-columns: 5.75rem minmax(0, 1fr); gap: 1.15rem; padding: .85rem 1.2rem; }
.officer-term__mark { width: 5rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.officer-term__mark img { padding: .25rem; border-radius: 0; }
.officer-term__ordinal { margin-bottom: .35rem; font-size: 1rem; letter-spacing: .08em; }
.officer-term__years { font-size: clamp(1.35rem, 1.9vw, 1.7rem); }
.officer-term__theme { max-width: 26rem; margin-top: .5rem; font-size: 1rem; line-height: 1.5; }
.officer-term__theme span { color: var(--color-gold-700); font-size: 1rem; }
.officer-person { grid-template-columns: 3rem minmax(0, 1fr); gap: .65rem; padding: 1.1rem 1.15rem; }
.officer-person__role { padding-top: .2rem; font-size: 1rem; letter-spacing: .08em; }
.officer-person p { display: grid; gap: .3rem; }
.officer-person strong { font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.35; }
.officer-person p > span { font-size: 1rem; line-height: 1.35; }

/* Four-Way Test: distinctive page, shared rhythm */
.four-way { background: var(--color-brand-950); }
.four-way__masthead { grid-template-columns: minmax(0, 1fr) minmax(17rem, .5fr); min-height: 34rem; padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7rem); background: radial-gradient(circle at 82% 42%, rgba(0,99,166,.56) 0 18%, transparent 18.3%), linear-gradient(126deg, var(--color-brand-950) 0 64%, var(--color-brand-800) 64% 100%); }
.four-way__masthead::before { opacity: .07; background-size: calc(100% / 10) 100%; }
.four-way__intro h1 { max-width: 9ch; font-size: clamp(3.5rem, 7.5vw, 6.8rem); line-height: 1.15; }
.four-way__intro > p:not(.section-kicker) { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.75; }
.four-way__intro > p[lang="en"] { font-size: 1rem; }
.four-way__mark { width: min(29vw, 22rem); border-width: 2px; box-shadow: 0 0 0 1.5rem rgba(255,255,255,.025), 0 0 0 3.5rem rgba(255,255,255,.016); }
.four-way__mark span { font-size: clamp(8rem, 16vw, 15rem); }
.four-way__mark small { font-size: 1rem; letter-spacing: .24em; }
.four-way__questions { padding: 0 clamp(1.25rem, 7vw, 7rem) clamp(4.5rem, 8vw, 7rem); }
.four-way__questions ol { gap: 1rem; border: 0; }
.four-way__questions li { grid-template-columns: 3.5rem minmax(0, 1fr); min-height: 17rem; padding: clamp(2rem, 4.5vw, 3.5rem); background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.22); border-radius: var(--radius-lg); }
.four-way__questions li:nth-child(2),
.four-way__questions li:nth-child(3) { background: rgba(0,99,166,.16); }
.four-way__number { color: var(--color-gold-500); font-size: 1.2rem; }
.four-way__questions h2 { font-size: clamp(1.8rem, 3vw, 2.75rem); line-height: 1.48; }
.four-way__questions li div > p { color: #c6d8e4; font-size: 1rem; line-height: 1.6; }
.four-way__history { gap: clamp(2.5rem, 7vw, 6rem); padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 7vw, 7rem); }
.four-way__history h2 { font-size: clamp(2.3rem, 4vw, 3.7rem); line-height: 1.3; }
.four-way__history dl { gap: 1rem; border: 0; }
.four-way__history dl div { min-height: 14rem; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.four-way__history dt { font-size: clamp(2.5rem, 4.5vw, 4.3rem); }
.four-way__history dd { margin-top: 1.5rem; font-size: clamp(1.15rem, 1.7vw, 1.35rem); }
/* Remaining shared data components */
.leadership-grid { gap: 1.25rem; }
.leadership-card { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.leadership-card h2 { font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.15; }
.leadership-card p:last-child { font-size: 1rem; }
.club-facts,
.officer-grid { gap: .75rem; border: 0; }
.club-facts div,
.officer-grid div { min-height: 9rem; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.club-facts dt,
.officer-grid dt { font-size: 1rem; }
.club-facts dd,
.officer-grid dd { margin-top: 1.25rem; font-size: 1.25rem; }
.club-facts small,
.officer-grid small { font-size: 1rem; }
.club-name-core { white-space: nowrap; }

/* Responsive reflow */
@media (max-width: 1280px) {
  .site-header { grid-template-columns: minmax(0, 1fr) auto; }
  .identity { grid-column: 1; grid-row: 1; }
  .header-tools { grid-column: 2; grid-row: 1; }
  .nav-toggle { display: inline-flex; }
  .site-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    display: none;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .35rem;
    padding: .7rem 0 .25rem;
  }
  .site-nav[data-open="true"] { display: grid; }
  .site-nav a { justify-content: flex-start; padding-right: .85rem; padding-left: .85rem; }
  .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
  .officer-directory__columns { display: none; }
  .officer-term { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .officer-term__identity { grid-column: 1 / -1; border-bottom: 1px solid var(--color-border); }
  .officer-person:first-of-type { border-left: 0; }
}

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; min-height: 40rem; }
  .hero__copy { padding-right: clamp(1.25rem, 8vw, 4rem); }
  .hero__portrait { position: absolute; right: 0; bottom: 1rem; opacity: .18; }
  .hero__portrait p { display: none; }
  .hero__seal { width: 12.5rem; min-width: 0; }
  .fact-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fact-ribbon div:nth-child(2) { border-right: 0; }
  .fact-ribbon div:nth-child(-n+2) { border-bottom: 1px solid var(--color-border); }
  .home-intro,
  .split-lead,
  .contact-layout { grid-template-columns: 1fr; gap: 2.25rem; }
  .home-intro__archive { min-height: 14rem; }
  .about-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-activity--featured > a { grid-template-columns: 1fr; }
  .home-activity--featured .home-activity__media { width: min(calc(100% - 3rem), 30rem); margin: 1.5rem 1.5rem 0; }
  .home-activity-ledger__index { grid-template-columns: 1fr; }
  .home-activity-ledger__index .home-activity:nth-child(odd) { border-right: 0; }
  .portal-grid { grid-template-columns: 1fr 1fr; }
  .annual-masthead { grid-template-columns: 1fr; min-height: 0; }
  .annual-masthead__edition { padding-bottom: 0; }
  .annual-masthead__flag { width: min(100%, 30rem); }
  .annual-index { grid-template-columns: 1fr; }
  .annual-index > p { display: none; }
  .annual-profile-grid { grid-template-columns: 1fr; }
  .annual-leadership__grid { grid-template-columns: 1fr; }
  .four-way__masthead { grid-template-columns: 1fr; min-height: 31rem; }
  .four-way__mark { position: absolute; right: -4rem; bottom: -4rem; width: 20rem; opacity: .18; }
  .four-way__questions ol { grid-template-columns: 1fr; }
  .four-way__questions li:nth-child(3) { background: rgba(255,255,255,.045); }
  .four-way__questions li:nth-child(even) { background: rgba(0,99,166,.16); }
  .four-way__history { grid-template-columns: 1fr; }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .site-footer nav { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: .5rem 1.25rem; }
  .footer-source { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  :root { --header-height: 5.25rem; }
  .site-header { min-height: var(--header-height); padding: .5rem .75rem; }
  .identity { gap: .55rem; }
  .identity img { width: 2.8rem; height: 2.55rem; padding: .22rem .25rem; }
  .identity strong { font-size: 1rem; letter-spacing: .025em; }
  .identity small { display: none; }
  .header-tools { gap: .3rem; margin-left: .35rem; }
  .header-tools > a { display: inline-flex; }
  .header-search,
  .text-scale-toggle,
  .nav-toggle { min-width: 2.85rem; min-height: 2.85rem; padding: .45rem .55rem; }
  .header-search { width: 2.85rem; font-size: 1rem; }
  .text-scale-toggle span { display: none; }
  .text-scale-toggle strong { font-size: 1rem; }
  .nav-toggle span { font-size: 1rem; }
  .site-nav { grid-template-columns: 1fr; gap: .15rem; padding-top: .6rem; }
  .site-nav a { min-height: 3.1rem; padding: .65rem .75rem; border-bottom: 1px solid rgba(255,255,255,.12); border-radius: 0; }
  .page-heading { min-height: 15rem; padding: 3.5rem 1.25rem 2.8rem; }
  .page-heading h1 { font-size: clamp(2.65rem, 12vw, 3.65rem); line-height: 1.18; }
  .page-heading--article { min-height: 17rem; }
  .page-heading--article h1 { font-size: clamp(2.25rem, 10vw, 3.1rem); }
  .page-heading--long-title h1 { font-size: clamp(1.95rem, 8.3vw, 2.55rem); line-height: 1.3; }
  .page-content { padding: 3.25rem 1rem; }
  .section-heading,
  .article-meta { align-items: flex-start; flex-direction: column; }
  .hero { min-height: 37rem; }
  .hero__copy { padding: 4.2rem 1.25rem 3.5rem; }
  .hero h1 { max-width: 9ch; font-size: clamp(2.8rem, 13vw, 4rem); line-height: 1.16; }
  .hero__english { max-width: 24rem; font-size: 1rem; }
  .hero__portrait { right: -2.5rem; }
  .hero__seal { width: 10.5rem; }
  .fact-ribbon { width: 100%; margin: 0; border-right: 0; border-left: 0; border-radius: 0; box-shadow: none; }
  .fact-ribbon div { min-height: 7.5rem; padding: 1.25rem; }
  .home-latest,
  .portal-grid { padding: 4rem 1rem; }
  .home-intro { padding: 3.25rem 1rem; }
  .home-intro__archive { min-height: 12.5rem; padding: 1.25rem; border-radius: var(--radius-lg); }
  .home-intro__archive-year { font-size: 4.75rem; }
  .home-intro h2,
  .split-lead h2,
  .contact-layout h2 { font-size: clamp(2.35rem, 10vw, 3rem); }
  .home-activity--featured .home-activity__media { width: calc(100% - 2rem); margin: 1rem 1rem 0; }
  .home-activity--featured .home-activity__body { padding: 1.35rem; }
  .home-activity-ledger__index .home-activity > a { grid-template-columns: 6.75rem minmax(0, 1fr); min-height: 11.5rem; }
  .home-activity-ledger__index .home-activity__media { margin-left: .85rem; }
  .home-activity-ledger__index .home-activity__body { padding: 1rem; }
  .home-activity-ledger__index .home-activity__action { display: inline-flex; }
  .portal-grid { grid-template-columns: 1fr; }
  .portal-grid a { min-height: 12rem; }
  .about-index { grid-template-columns: 1fr; gap: .75rem; }
  .about-index a { min-height: 7.5rem; border: 1px solid var(--color-border); }
  .archive-intro { align-items: flex-start; flex-direction: column; }
  .archive-tools { position: static; grid-template-columns: 1fr; margin-top: 0; }
  .archive-tools p { text-align: left; }
  .story-grid { grid-template-columns: 1fr; }
  .story-card__link { min-height: 20rem; }
  .legacy-prose { margin: 0; padding: 1.25rem; border-radius: var(--radius-md); font-size: 1.08rem; }
  .legacy-prose table { margin-right: 0; margin-left: 0; }
  .document-section + .document-section { margin-top: 5rem; padding-top: 4rem; }
  .contact-list div { grid-template-columns: 1fr; gap: .25rem; }
  .sitemap-list ul { grid-template-columns: 1fr; }
  .annual-masthead { gap: 3rem; padding: 4rem 1rem 0; }
  .annual-masthead h1 { gap: .45rem; font-size: clamp(3.7rem, 18vw, 5.4rem); }
  .annual-masthead h1 i { width: 1.6rem; }
  .annual-snapshot { grid-template-columns: 1fr; }
  .annual-snapshot div { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }
  .annual-index { overflow-x: auto; }
  .annual-index > div { width: max-content; grid-template-columns: repeat(6, minmax(9rem, 1fr)); }
  .annual-index a { min-height: 3.5rem; }
  .annual-section,
  .annual-profile-grid { padding-right: 1rem; padding-left: 1rem; }
  .annual-section__heading { grid-template-columns: 1fr; gap: 1rem; }
  .annual-leader { grid-template-columns: minmax(8.5rem, .8fr) minmax(0, 1.2fr); min-height: 20rem; }
  .annual-leader__portrait img,
  .annual-leader__placeholder { min-height: 20rem; }
  .annual-leader__identity { padding: 1.1rem; }
  .annual-leader__role { margin-bottom: 1.7rem; }
  .annual-leader h3 { font-size: clamp(2rem, 9vw, 2.7rem); }
  .annual-profile { padding: 1.4rem; }
  .annual-profile header { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .annual-profile dl div { grid-template-columns: 1fr; gap: .25rem; }
  .officer-directory__intro { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
  .officer-directory__range { text-align: left; }
  .officer-term { grid-template-columns: 1fr; }
  .officer-term__identity { grid-template-columns: 5.25rem minmax(0, 1fr); padding: .85rem; }
  .officer-term__mark { width: 4.5rem; }
  .officer-person { grid-template-columns: 3rem minmax(0, 1fr); padding: 1rem; border-top: 1px solid var(--color-border); border-left: 0; }
  .officer-person:first-of-type { border-top: 0; }
  .four-way__masthead { padding: 4.5rem 1rem; }
  .four-way__intro h1 { font-size: clamp(3rem, 15vw, 4.4rem); }
  .four-way__questions { padding-right: 1rem; padding-left: 1rem; }
  .four-way__questions li { grid-template-columns: 2.5rem minmax(0, 1fr); gap: .8rem; min-height: 0; padding: 1.5rem 1.15rem; }
  .four-way__history { padding-right: 1rem; padding-left: 1rem; }
  .four-way__history dl { grid-template-columns: 1fr; }
  .four-way__history dl div { min-height: 0; }
  .notfound > div { flex-wrap: wrap; gap: .75rem 1.25rem; }
  .site-footer { grid-template-columns: 1fr; padding: 3rem 1rem 1.5rem; }
  .footer-contact { justify-self: start; }
  .site-footer nav { grid-column: 1; gap: .25rem 1rem; padding: .85rem 0 .65rem; }
  .site-footer nav a { flex: 1 1 calc(50% - .5rem); min-width: 8rem; }
  .footer-source { grid-column: 1; align-items: flex-start; flex-direction: column; gap: .2rem; }
}

@media (max-width: 430px) {
  .identity strong { font-size: 1rem; letter-spacing: .015em; }
  .identity img { width: 2.65rem; height: 2.4rem; padding: .2rem .22rem; }
  .header-tools { gap: .2rem; }
  .header-search,
  .text-scale-toggle,
  .nav-toggle { min-width: 2.75rem; min-height: 2.75rem; padding: .35rem .4rem; }
  .fact-ribbon { grid-template-columns: 1fr; }
  .fact-ribbon div { border-right: 0; border-bottom: 1px solid var(--color-border); }
  .fact-ribbon div:last-child { border-bottom: 0; }
  .home-activity-ledger__index .home-activity > a { grid-template-columns: 1fr; }
  .home-activity-ledger__index .home-activity__media { width: 8rem; margin: 1rem 1rem 0; }
  .annual-masthead h1 { font-size: clamp(3.35rem, 17vw, 4.5rem); }
  .annual-leader { grid-template-columns: 7.5rem minmax(0, 1fr); }
}

@media (max-height: 540px) and (orientation: landscape) {
  .hero { min-height: 34rem; }
  .page-heading { min-height: 13rem; }
}

@media (prefers-contrast: more) {
  :root { --color-border: #7a8d99; --color-ink-muted: #354b59; }
  .story-card,
  .legacy-prose,
  .annual-profile,
  .officer-term { box-shadow: none; }
}

@media (forced-colors: active) {
  .site-nav a[aria-current="page"],
  .text-scale-toggle[aria-pressed="true"] { border: 2px solid ButtonText; }
  .button,
  .story-card,
  .legacy-prose { forced-color-adjust: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media print {
  html { font-size: 100%; }
  .site-header,
  .site-footer,
  .archive-tools,
  .annual-index { display: none !important; }
  body { color: #000; background: #fff; font-size: 12pt; }
  .page-heading { min-height: 0; padding: 1rem 0; color: #000; background: #fff; }
  .page-heading::before,
  .page-heading::after { display: none; }
  .page-heading h1 { color: #000; font-size: 26pt; }
  .page-content { padding: 1rem 0; }
  .legacy-prose,
  .story-card,
  .annual-profile,
  .officer-term { max-width: none; border-color: #999; box-shadow: none; }
  .four-way,
  .four-way__masthead,
  .four-way__questions { color: #000; background: #fff; }
}
/* Legacy text normalization */
.legacy-prose [style*="font-size"],
.legacy-prose font[size] { font-size: inherit !important; }
.legacy-prose small { font-size: 1rem; }
/* Text contrast roles */
.eyebrow,
.section-kicker,
.home-activity__meta span:first-child,
.display-number { color: var(--color-gold-700); }
.hero .eyebrow,
.page-heading .eyebrow,
.four-way .section-kicker,
.annual-masthead__kicker { color: var(--color-gold-500); }
/* Homepage public information and utility layer */
.site-utility {
  position: relative;
  z-index: 52;
  color: var(--color-brand-950);
  background: var(--color-gold-500);
  border-bottom: 1px solid rgba(4, 31, 53, .22);
}

.site-utility__inner {
  display: flex;
  justify-content: flex-end;
  width: min(100%, var(--max));
  min-height: 3.25rem;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3.2vw, 3.5rem);
}

.site-utility a {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: .55rem 1rem;
  color: var(--color-brand-950);
  border-right: 1px solid rgba(4, 31, 53, .2);
  font-size: 1rem;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
}

.site-utility a:first-child { border-left: 1px solid rgba(4, 31, 53, .2); }
.site-utility a:hover,
.site-utility a[aria-current="page"] { background: rgba(255, 255, 255, .58); }
.site-utility a > span { font-size: 1.05rem; }
.site-utility small {
  padding: .18rem .4rem;
  color: #fff;
  background: var(--color-brand-900);
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .02em;
}

/* Ceremonial, CSS-first motion layer for the home masthead. */
.hero {
  --hero-copy-x: 0px;
  --hero-copy-y: 0px;
  --hero-mark-x: 0px;
  --hero-mark-y: 0px;
  --hero-field-x: 0px;
  --hero-field-y: 0px;
  isolation: isolate;
}

.hero-motion {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translate3d(var(--hero-field-x), var(--hero-field-y), 0);
  transition: transform 240ms var(--ease-standard);
}

.hero-motion::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 79% 51%, rgba(245, 168, 0, .14) 0, rgba(245, 168, 0, .045) 18%, transparent 42%),
    linear-gradient(118deg, transparent 0 56%, rgba(255, 255, 255, .045) 56.15%, transparent 56.6%);
  opacity: .9;
}

.hero-motion__orbit {
  position: absolute;
  top: 51%;
  left: 79%;
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
  box-shadow: inset 0 0 2rem rgba(255, 255, 255, .025), 0 0 2.5rem rgba(0, 42, 79, .18);
  opacity: .92;
  transform: translate(-50%, -50%);
  will-change: transform;
}

.hero-motion__orbit::before,
.hero-motion__orbit::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.hero-motion__orbit::before {
  top: -.42rem;
  left: 50%;
  width: .86rem;
  aspect-ratio: 1;
  background: radial-gradient(circle at 35% 30%, #fff 0 14%, #ffd779 30%, var(--color-gold-500) 68%);
  box-shadow:
    0 0 0 .28rem rgba(245, 168, 0, .13),
    0 0 1.4rem .3rem rgba(245, 168, 0, .72);
  transform: translateX(-50%);
}

.hero-motion__orbit::after {
  inset: -2px;
  background: conic-gradient(
    from 18deg,
    transparent 0 14%,
    rgba(255, 255, 255, .7) 19%,
    rgba(245, 168, 0, .95) 24%,
    transparent 31% 62%,
    rgba(245, 168, 0, .48) 69%,
    transparent 76% 100%
  );
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
}

.hero-motion__orbit--outer { width: min(48rem, 72vw); }

.hero-motion__orbit--inner {
  width: min(31rem, 47vw);
  border-color: rgba(245, 168, 0, .42);
}

.hero-motion__orbit--inner::before {
  width: .68rem;
  box-shadow:
    0 0 0 .22rem rgba(245, 168, 0, .12),
    0 0 1.1rem .2rem rgba(245, 168, 0, .72);
}

.hero-motion__orbit--core {
  width: min(16rem, 25vw);
  border-color: rgba(255, 218, 133, .5);
  opacity: .86;
}

.hero-motion__orbit--core::before {
  width: .52rem;
  box-shadow: 0 0 1rem .25rem rgba(255, 217, 128, .78);
}

.hero-motion__sweep {
  position: absolute;
  top: 51%;
  left: 79%;
  width: min(42rem, 64vw);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    from 198deg,
    transparent 0 70%,
    rgba(245, 168, 0, .03) 74%,
    rgba(245, 168, 0, .25) 83%,
    rgba(255, 237, 191, .12) 88%,
    transparent 94% 100%
  );
  filter: drop-shadow(0 0 1.2rem rgba(245, 168, 0, .16));
  -webkit-mask: radial-gradient(circle, transparent 0 50%, #000 51% 65%, transparent 66%);
  mask: radial-gradient(circle, transparent 0 50%, #000 51% 65%, transparent 66%);
  opacity: .9;
  transform: translate(-50%, -50%);
  will-change: transform;
}

.hero-motion__beam {
  position: absolute;
  top: 14%;
  left: 43%;
  width: min(64rem, 96vw);
  height: 3px;
  background: linear-gradient(90deg, transparent 0, rgba(245, 168, 0, .14) 14%, #ffd477 50%, rgba(245, 168, 0, .68) 72%, transparent 100%);
  box-shadow: 0 0 .8rem rgba(245, 168, 0, .72), 0 0 2.4rem rgba(245, 168, 0, .28);
  opacity: 0;
  transform: rotate(-27deg) translateX(-42%);
  transform-origin: center;
}

.hero-motion__beam::before,
.hero-motion__beam::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.hero-motion__beam::before {
  inset: -.65rem 4%;
  background: linear-gradient(90deg, transparent, rgba(245, 168, 0, .14), transparent);
  filter: blur(.5rem);
}

.hero-motion__beam::after {
  top: -.18rem;
  left: -18%;
  width: 18%;
  height: .48rem;
  background: linear-gradient(90deg, transparent, rgba(255, 245, 218, .95), #fff, transparent);
  border-radius: 999px;
  filter: blur(.04rem);
  opacity: 0;
  will-change: transform, opacity;
}

.hero-motion__spark {
  position: absolute;
  top: 25%;
  left: 76%;
  width: 1rem;
  aspect-ratio: 1;
  background: radial-gradient(circle at 35% 30%, #fff 0 22%, #ffe5a8 45%, var(--color-gold-500) 78%);
  border-radius: 50%;
  box-shadow:
    0 0 0 .65rem rgba(245, 168, 0, .08),
    0 0 1.3rem .35rem rgba(255, 232, 176, .82),
    0 0 3rem rgba(245, 168, 0, .6);
  opacity: .92;
  will-change: transform, opacity;
}

.hero-motion__spark::before {
  content: "";
  position: absolute;
  inset: -.7rem;
  border: 1px solid rgba(255, 220, 140, .72);
  border-radius: 50%;
  opacity: 0;
  will-change: transform, opacity;
}

.hero__copy {
  z-index: 1;
  transform: translate3d(var(--hero-copy-x), var(--hero-copy-y), 0);
  transition: transform 180ms var(--ease-standard);
}

.hero__portrait {
  z-index: 1;
  transform: translate3d(var(--hero-mark-x), var(--hero-mark-y), 0);
  transition: transform 220ms var(--ease-standard);
}

.hero.is-motion-ready .hero__copy { animation: hero-copy-arrival 900ms cubic-bezier(.16, 1, .3, 1) both; }
.hero.is-motion-ready .hero__seal { animation: hero-seal-arrival 1080ms cubic-bezier(.16, 1, .3, 1) 100ms both; }
.hero.is-motion-ready .hero-motion__beam { animation: hero-beam-arrival 1750ms cubic-bezier(.16, 1, .3, 1) 70ms both; }
.hero.is-motion-ready .hero-motion__beam::after { animation: hero-beam-glint 4.8s cubic-bezier(.22, 1, .36, 1) 1.45s infinite both; }
.hero.is-motion-ready .hero-motion__orbit--outer { animation: hero-orbit 20s linear infinite; }
.hero.is-motion-ready .hero-motion__orbit--inner { animation: hero-orbit-reverse 14s linear infinite; }
.hero.is-motion-ready .hero-motion__orbit--core { animation: hero-orbit 9s linear infinite; }
.hero.is-motion-ready .hero-motion__sweep { animation: hero-orbit-sweep 11s linear infinite; }
.hero.is-motion-ready .hero-motion__spark { animation: hero-spark-pulse 3.6s ease-in-out 1.1s infinite; }
.hero.is-motion-ready .hero-motion__spark::before { animation: hero-spark-ring 3.6s ease-out 1.1s infinite; }

.hero.is-motion-ready[data-motion-active="false"] .hero-motion__orbit,
.hero.is-motion-ready[data-motion-active="false"] .hero-motion__sweep,
.hero.is-motion-ready[data-motion-active="false"] .hero-motion__beam,
.hero.is-motion-ready[data-motion-active="false"] .hero-motion__beam::after,
.hero.is-motion-ready[data-motion-active="false"] .hero-motion__spark,
.hero.is-motion-ready[data-motion-active="false"] .hero-motion__spark::before {
  animation-play-state: paused;
}

@keyframes hero-copy-arrival {
  from { opacity: 0; filter: blur(.45rem); translate: -2.1rem 1.25rem; }
  to { opacity: 1; filter: blur(0); translate: 0 0; }
}

@keyframes hero-seal-arrival {
  from { opacity: 0; filter: brightness(1.35) blur(.25rem); rotate: 3deg; scale: .84; translate: 2.4rem 1.2rem; }
  to { opacity: 1; filter: brightness(1) blur(0); rotate: 0deg; scale: 1; translate: 0 0; }
}

@keyframes hero-beam-arrival {
  0% { opacity: 0; transform: rotate(-27deg) translateX(-58%); }
  38% { opacity: .98; }
  100% { opacity: .42; transform: rotate(-27deg) translateX(16%); }
}

@keyframes hero-beam-glint {
  0%,
  20% { opacity: 0; transform: translateX(0); }
  32% { opacity: .95; }
  62% { opacity: .85; }
  76%,
  100% { opacity: 0; transform: translateX(650%); }
}

@keyframes hero-orbit {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes hero-orbit-reverse {
  from { transform: translate(-50%, -50%) rotate(360deg); }
  to { transform: translate(-50%, -50%) rotate(0deg); }
}

@keyframes hero-orbit-sweep {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes hero-spark-pulse {
  0%,
  100% { opacity: .72; transform: scale(.82); }
  46% { opacity: 1; transform: scale(1.22); }
}

@keyframes hero-spark-ring {
  0% { opacity: 0; transform: scale(.6); }
  24% { opacity: .7; }
  72%,
  100% { opacity: 0; transform: scale(1.75); }
}
.home-public-info,
.initiative-intro,
.initiative-grid,
.initiative-latest,
.home-facebook {
  width: min(calc(100% - 2.5rem), var(--max));
  margin-right: auto;
  margin-left: auto;
}

.home-public-info {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.5rem);
  margin-top: clamp(4.5rem, 8vw, 7rem);
  padding: clamp(2.25rem, 5vw, 4.5rem);
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 90% 15%, rgba(0, 99, 166, .46), transparent 32%),
    linear-gradient(130deg, var(--color-brand-950), var(--color-brand-800));
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}

.home-public-info > header {
  grid-column: 1 / span 6;
  align-self: center;
  max-width: 40rem;
}

.home-public-info > header h2 {
  margin: 0;
  font-size: clamp(2.5rem, 4.8vw, 4.25rem);
  line-height: 1.22;
}

.home-public-info > header > p:last-child {
  max-width: 34rem;
  margin: 1.4rem 0 0;
  color: #d5e2ea;
  font-size: 1.1rem;
}

.home-public-info .section-kicker { color: var(--color-gold-500); }

.home-public-info__feature {
  grid-column: 7 / -1;
  align-self: stretch;
  min-height: 19rem;
  padding: clamp(1.6rem, 3.6vw, 3rem);
  background: rgba(255, 255, 255, .09);
  border: 1px solid rgba(255, 255, 255, .24);
  border-top: 5px solid var(--color-gold-500);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(8px);
}

.home-public-info__feature > p {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin: 0 0 2rem;
  color: #d5e2ea;
  font-size: 1rem;
}

.home-public-info__feature > p span {
  color: var(--color-gold-500);
  font-weight: 750;
  letter-spacing: .07em;
}

.home-public-info__feature h3 {
  max-width: 24ch;
  margin: 0;
  font-size: clamp(1.65rem, 2.8vw, 2.6rem);
  line-height: 1.45;
}

.home-public-info__feature > div {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.25rem;
  align-items: center;
  margin-top: 2.25rem;
}

.home-public-info__feature .text-link { color: #fff; }

.home-public-info__topics {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin-top: .5rem;
}

.home-public-info__topics a {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: .75rem;
  align-items: center;
  min-height: 6.5rem;
  padding: 1.15rem 1.25rem;
  color: #fff;
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: transform 160ms var(--ease-standard), background 160ms var(--ease-standard), border-color 160ms var(--ease-standard);
}

.home-public-info__topics a:hover {
  color: var(--color-brand-950);
  background: var(--color-gold-500);
  border-color: var(--color-gold-500);
  transform: translateY(-2px);
}

.home-public-info__topics span {
  color: var(--color-gold-500);
  font-size: 1rem;
  font-weight: 750;
}

.home-public-info__topics a:hover span { color: var(--color-brand-950); }
.home-public-info__topics strong { font-size: clamp(1.2rem, 1.8vw, 1.45rem); line-height: 1.35; }

.initiative-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(20rem, .92fr);
  gap: clamp(2rem, 6vw, 5.5rem);
  align-items: end;
  margin-bottom: clamp(3rem, 6vw, 5rem);
  padding: clamp(2rem, 4vw, 3.5rem);
  background: var(--color-surface-muted);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.initiative-intro h2 {
  max-width: 17ch;
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(2.4rem, 4.6vw, 4rem);
  line-height: 1.25;
}

.initiative-intro > p { margin: 0; font-size: 1.1rem; }

.initiative-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.initiative-card {
  display: flex;
  flex-direction: column;
  min-height: 23rem;
  padding: clamp(1.5rem, 3vw, 2.4rem);
  color: var(--color-ink);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-top: 5px solid var(--color-brand-700);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  text-decoration: none;
  transition: transform 160ms var(--ease-standard), box-shadow 160ms var(--ease-standard), border-color 160ms var(--ease-standard);
}

.initiative-card:hover {
  color: var(--color-ink);
  border-top-color: var(--color-gold-500);
  box-shadow: var(--shadow);
  transform: translateY(-3px);
}

.initiative-card__number,
.initiative-card__english {
  color: var(--color-brand-700);
  font-size: 1rem;
  font-weight: 700;
}

.initiative-card__english {
  margin: .55rem 0 2rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.initiative-card h2 {
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(1.65rem, 2.6vw, 2.3rem);
  line-height: 1.35;
}

.initiative-card > p:not(.initiative-card__english) {
  color: var(--color-ink-muted);
  font-size: 1rem;
}

.initiative-card strong {
  margin-top: auto;
  padding-top: 1.5rem;
  color: var(--color-brand-700);
  font-size: 1rem;
}

.initiative-latest { padding-top: clamp(5rem, 9vw, 8rem); }

.topic-intro {
  max-width: var(--reading);
  margin-bottom: clamp(3rem, 6vw, 5rem);
  padding: clamp(1.7rem, 4vw, 3rem);
  background: var(--color-surface-muted);
  border: 1px solid var(--color-border);
  border-left: 5px solid var(--color-gold-500);
  border-radius: var(--radius-lg);
}

.topic-intro h2 {
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(2.25rem, 4.2vw, 3.6rem);
}

.topic-intro > p:not(.section-kicker) { font-size: 1.1rem; }

.home-facebook {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(24rem, 1.2fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
  margin-bottom: clamp(5rem, 9vw, 8rem);
  padding: clamp(2rem, 5vw, 4.5rem);
  background: var(--color-surface-muted);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
}

.home-facebook__copy h2 {
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(2.35rem, 4.5vw, 3.8rem);
  line-height: 1.25;
}

.home-facebook__copy > p:not(.section-kicker) { margin: 1.25rem 0 2rem; font-size: 1.1rem; }
.home-facebook__copy h2 + .button { margin-top: 2rem; }

.home-facebook__embed {
  display: grid;
  min-height: 32.5rem;
  place-items: center;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.home-facebook iframe {
  display: block;
  width: min(100%, 31.25rem);
  max-width: 100%;
  height: 32.5rem;
  border: 0;
}

.member-access {
  display: grid;
  grid-template-columns: minmax(15rem, .58fr) minmax(0, 1.42fr);
  max-width: 70rem;
  min-height: 34rem;
  margin: 0 auto;
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}

.member-access__mark {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100%;
  background:
    radial-gradient(circle at 50% 45%, rgba(0, 99, 166, .54), transparent 34%),
    var(--color-brand-950);
}

.member-access__mark::before {
  content: "";
  width: 7.5rem;
  height: 6rem;
  border: .7rem solid var(--color-gold-500);
  border-radius: 1rem;
}

.member-access__mark::after {
  content: "";
  position: absolute;
  top: calc(50% - 7.25rem);
  width: 5rem;
  height: 5rem;
  border: .7rem solid var(--color-gold-500);
  border-bottom: 0;
  border-radius: 3rem 3rem 0 0;
}

.member-access__copy {
  align-self: center;
  max-width: 44rem;
  padding: clamp(2rem, 6vw, 5rem);
}

.member-access__status {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  margin: 0 0 1.25rem;
  padding: .35rem .8rem;
  color: var(--color-brand-950);
  background: var(--color-gold-500);
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 750;
}

.member-access h2 {
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(3rem, 5.8vw, 5rem);
  line-height: 1.15;
}

.member-access__copy > p:not(.member-access__status) { font-size: 1.1rem; }
.member-access__copy > div { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; margin-top: 2.2rem; }

@media (max-width: 900px) {
  .home-public-info > header,
  .home-public-info__feature { grid-column: 1 / -1; }
  .home-public-info__topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .initiative-intro,
  .home-facebook { grid-template-columns: 1fr; }
  .initiative-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-facebook__embed { justify-content: center; }
  .member-access { grid-template-columns: 1fr; }
  .member-access__mark { min-height: 15rem; }
  .member-access__mark::after { top: calc(50% - 4.5rem); }
}

@media (max-width: 700px) {
  .site-utility__inner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; }
  .site-utility a { gap: .3rem; min-width: 0; padding: .55rem .35rem; border-right: 1px solid rgba(4, 31, 53, .2); text-align: center; }
  .site-utility a:first-child { border-left: 0; }
  .site-utility small { display: none; }
  .hero-motion__orbit,
  .hero-motion__sweep { left: 91%; }
  .hero-motion__orbit { opacity: .64; }
  .hero-motion__orbit--outer { width: 38rem; }
  .hero-motion__orbit--inner { width: 25rem; }
  .hero-motion__orbit--core { width: 13rem; }
  .hero-motion__sweep { width: 32rem; opacity: .7; }
  .hero-motion__beam { left: 31%; width: 50rem; }
  .hero-motion__spark { top: 22%; left: 82%; }
  .home-public-info,
  .initiative-intro,
  .initiative-grid,
  .initiative-latest,
  .home-facebook { width: 100%; border-right: 0; border-left: 0; border-radius: 0; }
  .home-public-info { margin-top: 3.5rem; padding: 3.5rem 1rem; }
  .home-public-info > header h2 { font-size: clamp(2.35rem, 10vw, 3.2rem); }
  .home-public-info__feature { min-height: 0; padding: 1.5rem; }
  .home-public-info__feature > p { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .initiative-intro { margin-bottom: 3rem; padding: 2.5rem 1rem; }
  .initiative-grid { padding: 0 1rem; }
  .initiative-card { min-height: 19rem; }
  .initiative-latest { padding-right: 1rem; padding-left: 1rem; }
  .home-facebook { margin-bottom: 4rem; padding: 3.5rem 1rem; }
  .member-access { border-radius: var(--radius-lg); }
  .member-access__copy { padding: 2.2rem 1.35rem 3rem; }
}

@media (max-width: 520px) {
  .site-utility a > span { display: none; }
  .home-public-info__topics,
  .initiative-grid { grid-template-columns: 1fr; }
  .home-public-info__topics a { min-height: 5.5rem; }
  .initiative-card { min-height: 17rem; }
  .home-facebook__embed,
  .home-facebook iframe { min-height: 31rem; height: 31rem; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-motion { display: none; }
  .hero__copy,
  .hero__portrait { transform: none !important; }
  .hero.is-motion-ready .hero__copy,
  .hero.is-motion-ready .hero__seal,
  .hero.is-motion-ready .hero-motion__beam,
  .hero.is-motion-ready .hero-motion__beam::after,
  .hero.is-motion-ready .hero-motion__orbit,
  .hero.is-motion-ready .hero-motion__sweep,
  .hero.is-motion-ready .hero-motion__spark,
  .hero.is-motion-ready .hero-motion__spark::before { animation: none !important; }
}

@media (forced-colors: active) {
  .home-public-info,
  .member-access__mark { forced-color-adjust: auto; }
  .site-utility a,
  .home-public-info__topics a,
  .initiative-card { border: 1px solid ButtonText; }
}

@media print {
  .site-utility,
  .hero-motion,
  .home-facebook__embed { display: none !important; }
}
/* Information architecture: four public content families */
.home-public-info__topics { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.home-architecture {
  width: min(calc(100% - 2.5rem), var(--max));
  margin: clamp(4.5rem, 8vw, 7rem) auto 0;
}

.home-architecture > header {
  display: flex;
  gap: 1.5rem;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 1.75rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--color-border);
}

.home-architecture > header h2 {
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(2.5rem, 4.8vw, 4.35rem);
  line-height: 1.15;
}

.home-architecture__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.home-family {
  display: flex;
  min-height: 26rem;
  flex-direction: column;
  padding: clamp(1.5rem, 3.2vw, 2.5rem);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-top: .4rem solid var(--color-brand-700);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.home-family--serviceTalent,
.home-family--records { border-top-color: var(--color-gold-500); }

.home-family > header {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  margin-bottom: 1.25rem;
}

.home-family > header > span {
  color: var(--color-gold-700);
  font-family: var(--latin);
  font-size: 1rem;
  font-weight: 750;
}

.home-family > header p {
  margin: 0 0 .15rem;
  color: var(--color-brand-700);
  font-size: .9rem;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.home-family h3 {
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(1.7rem, 2.6vw, 2.35rem);
  line-height: 1.25;
}

.home-family ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem .9rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-family li { min-width: 0; }

.home-family li a {
  display: flex;
  min-height: 3.75rem;
  gap: .7rem;
  align-items: center;
  justify-content: space-between;
  padding: .7rem .25rem;
  color: var(--color-ink);
  border-bottom: 1px solid var(--color-border);
  font-size: 1.08rem;
  font-weight: 650;
  line-height: 1.35;
  text-decoration: none;
}

.home-family li a:hover { color: var(--color-brand-700); border-bottom-color: var(--color-gold-500); }
.home-family li a span { flex: 0 0 auto; color: var(--color-gold-700); }

.home-family__all {
  align-self: flex-start;
  min-height: 3rem;
  margin-top: auto;
  padding-top: 1.5rem;
  color: var(--color-brand-700);
  font-weight: 750;
}

.family-hub {
  display: grid;
  gap: clamp(2.5rem, 5vw, 4.5rem);
}

.family-hub__lead {
  position: relative;
  min-height: 19rem;
  padding: clamp(2rem, 5vw, 4.5rem);
  overflow: hidden;
  color: #fff;
  background: linear-gradient(125deg, var(--color-brand-950), var(--color-brand-800));
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}

.family-hub__lead::after {
  content: "";
  position: absolute;
  right: -8rem;
  bottom: -12rem;
  width: 27rem;
  aspect-ratio: 1;
  border: 3.5rem solid rgba(245, 168, 0, .15);
  border-radius: 50%;
}

.family-hub__lead > * { position: relative; z-index: 1; }
.family-hub__lead .section-kicker { color: var(--color-gold-500); }

.family-hub__lead > div {
  display: flex;
  gap: 1.25rem;
  align-items: baseline;
  margin: .75rem 0 1.25rem;
}

.family-hub__lead > div > span {
  color: var(--color-gold-500);
  font-family: var(--latin);
  font-size: 1rem;
  font-weight: 750;
}

.family-hub__lead h1 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(3rem, 6vw, 5.4rem);
  line-height: 1.1;
}

.family-hub__lead > p:last-child {
  max-width: 42rem;
  margin: 0;
  color: #d9e6ed;
  font-size: 1.18rem;
}

.family-hub__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1rem;
}

.family-hub__grid--3 .family-node { grid-column: span 2; }
.family-hub__grid--4 .family-node { grid-column: span 3; }
.family-hub__grid--5 .family-node:nth-child(-n + 3) { grid-column: span 2; }
.family-hub__grid--5 .family-node:nth-child(n + 4) { grid-column: span 3; }

.family-node {
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  min-height: 10rem;
  padding: clamp(1.4rem, 3vw, 2.25rem);
  color: var(--color-ink);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: .35rem solid var(--color-brand-700);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  text-decoration: none;
  transition: transform 160ms var(--ease-standard), box-shadow 160ms var(--ease-standard), border-color 160ms var(--ease-standard);
}

.family-node:hover {
  color: var(--color-ink);
  border-left-color: var(--color-gold-500);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}

.family-node__number {
  color: var(--color-gold-700);
  font-family: var(--latin);
  font-size: 1rem;
  font-weight: 750;
}

.family-node h2 {
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  line-height: 1.25;
}

.family-node p { margin: .55rem 0 0; color: var(--color-ink-muted); font-size: 1rem; }
.family-node > b { color: var(--color-brand-700); font-size: 1.4rem; }

.family-hub__latest {
  padding-top: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid var(--color-border);
}

.family-hub__latest > header,
.topic-records > header,
.archive-directory > header,
.topic-types > header {
  margin-bottom: 1.5rem;
}

.family-hub__latest h2,
.topic-records > header h2,
.archive-directory > header h2,
.topic-types > header h2 {
  margin: 0;
  color: var(--color-brand-900);
  font-size: clamp(2rem, 3.5vw, 3rem);
}

.archive-directory,
.topic-types,
.topic-source-content,
.topic-records {
  margin-top: clamp(3rem, 6vw, 5rem);
}

.archive-directory {
  padding-top: 2rem;
  border-top: 1px solid var(--color-border);
}

.archive-directory ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.archive-directory li > a,
.archive-directory li > div {
  display: flex;
  min-height: 7.25rem;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.15rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.archive-directory li > a {
  color: var(--color-ink);
  border-top: .3rem solid var(--color-brand-700);
  text-decoration: none;
}

.archive-directory li > a:hover { border-top-color: var(--color-gold-500); box-shadow: var(--shadow-soft); }
.archive-directory strong { color: var(--color-brand-900); font-size: 1.08rem; line-height: 1.45; }
.archive-directory span { color: var(--color-ink-muted); font-size: .95rem; }

.topic-types ul {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.topic-types li {
  min-height: 3.25rem;
  padding: .65rem 1rem;
  color: var(--color-brand-900);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: .25rem solid var(--color-gold-500);
  border-radius: var(--radius-md);
  font-size: 1.08rem;
  font-weight: 700;
}

.topic-source-content {
  padding: clamp(1.25rem, 3.5vw, 2.5rem);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

@media (max-width: 1000px) {
  .home-public-info__topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .family-hub__grid--3 .family-node,
  .family-hub__grid--5 .family-node { grid-column: span 3; }
  .family-hub__grid--3 .family-node:last-child,
  .family-hub__grid--5 .family-node:last-child { grid-column: 1 / -1; }
  .archive-directory ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .home-architecture { width: 100%; padding: 0 1rem; }
  .home-architecture__grid,
  .family-hub__grid { grid-template-columns: 1fr; }
  .home-family { min-height: 0; }
  .family-hub__lead { min-height: 17rem; margin: 0 -.25rem; padding: 2.25rem 1.35rem; border-radius: var(--radius-lg); }
  .family-hub__lead h1 { font-size: clamp(2.75rem, 13vw, 4rem); }
  .family-node { grid-column: 1 / -1; min-height: 8.5rem; padding: 1.35rem 1.15rem; }
}

@media (max-width: 540px) {
  .home-architecture > header { align-items: flex-start; flex-direction: column; gap: .25rem; }
  .home-family ul,
  .archive-directory ol { grid-template-columns: 1fr; }
  .home-family li a { min-height: 3.5rem; }
  .archive-directory li > a,
  .archive-directory li > div { min-height: 6rem; }
  .family-node { grid-template-columns: 2.25rem minmax(0, 1fr) auto; gap: .65rem; }
}

@media (prefers-reduced-motion: reduce) {
  .family-node { transition: none; }
  .family-node:hover { transform: none; }
}

@media print {
  .home-architecture__grid,
  .family-hub__grid,
  .archive-directory ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .family-hub__lead { min-height: 0; color: #000; background: #fff; box-shadow: none; }
  .family-hub__lead::after { display: none; }
}
