:root {
  /* Reference-theme canonical values (previously overridden last in cascade) */
  --ink: #010c1e;
  --ink-deep: #010c1e;
  --teal: #087f7b;
  --teal-dark: #05635f;
  --teal-bright: #39a8a3;
  --mint: #dcefed;
  --mist: #edf5f3;
  --paper: #fff;
  --white: #fff;
  --blue: #235f8d; /* kept: used in base, not overridden by reference-theme */
  --line: #d6d6d6;
  --muted: #53606e;
  --warm: #f3f0e8;
  --shadow: none;
  --shell: min(1320px, calc(100% - 48px));
  --serif: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, sans-serif;
  --sans: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, sans-serif;
  /* Reference-theme-only tokens */
  --corner-lg: 0 0 48px 0;
  --corner-md: 0 28px 0 0;
}

*, *::before, *::after { box-sizing: border-box; }
/* Compact base: 1rem = 14px (scales the whole rem-based UI down ~12%) */
/* html { font-size: 14px; scroll-behavior: smooth; } */
body { margin: 0; color: var(--ink); background: var(--white); font-family: var(--sans); font-size: 1rem; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .2em; }
button, a { touch-action: manipulation; }
button { font: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--sans); font-weight: 600; letter-spacing: -.035em; color: var(--ink); text-wrap: balance; }
h1 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.1; }
h2 { font-size: clamp(1.75rem, 2.6vw, 2.5rem); line-height: 1.15; }
h3 { line-height: 1.25; }
address { font-style: normal; }
:focus-visible { outline: 3px solid #e2b94f; outline-offset: 4px; }
::selection { background: var(--mint); color: var(--ink-deep); }

.shell { width: var(--shell); margin-inline: auto; }
.section { padding-block: clamp(2.75rem, 4.5vw, 4rem); }
/* Single hairline divider between stacked content sections (skip self-bordered bands) */
.section + .section:not(.story-section) { border-top: 1px solid var(--line); }
.eyebrow { margin-bottom: 1.2rem; color: var(--teal-dark); font-size: 1rem; font-weight: 750; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }
.lede { max-width: 40rem; color: var(--muted); line-height: 1.55; }
.skip-link { position: fixed; z-index: 1000; top: 1rem; left: 1rem; padding: .8rem 1rem; color: var(--white); background: var(--ink-deep); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: .85rem 1.4rem; border: 1px solid var(--ink); color: var(--white); background: var(--ink); font-weight: 700; text-decoration: none; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.button:hover { border-color: var(--teal); background: var(--teal); transform: none; }
.button:active { transform: translateY(1px); }
.button-light { border-color: var(--ink); color: var(--ink); background: var(--white); }
.button-light:hover { border-color: var(--white); color: var(--white); background: var(--ink); }
.text-link { display: inline-flex; min-height: 44px; align-items: center; gap: .65rem; color: var(--ink-deep); font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--ink); }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(5px); }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 2.25rem; }

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