/* GSB Design System — generated from tokens.json */
:root, [data-theme="day"] {
  --bg: var(--snow);
  --fg: var(--ink);
  --fg-muted: var(--muted);
  --surface: var(--frost);
  --surface-strong: var(--mist);
  --rule: rgba(26,30,27,0.12);
  --rule-strong: rgba(26,30,27,0.45);
  --accent: var(--moss);
  --accent-hover: var(--forest);
  --on-accent: var(--snow);
  --accent-text: #3e6348;
  --seed: var(--moss);
  --title-block: var(--mist);
  --title-block-surface: var(--sage);
  --field: var(--pine);
  --field-soft: var(--sage);
  --on-field: var(--snow);
  --danger: var(--clay);
  --danger-text: #9a4423;
  --warning: var(--ochre);
  --snow: #f6f7f3;
  --frost: #ecf0ea;
  --mist: #d9e3d8;
  --sage: #a9c2ae;
  --moss: #4f7a5a;
  --forest: #2e4f3b;
  --pine: #1c3326;
  --ink: #1a1e1b;
  --leaf: #82bb90;
  --muted: #56625a;
  --muted-pine: #b2c4b7;
  --clay: #b5532e;
  --clay-light: #e39a7e;
  --ochre: #b98b32;
  --slate: #5d7584;
  --data-1: var(--moss);
  --data-2: var(--sage);
  --data-3: var(--forest);
  --data-4: var(--mist);
  --data-5: var(--slate);
  --data-6: var(--pine);
  --brand-aa: #1e4e9c;
  --brand-cb: #7a4a2b;
  --brand-cv: #9a948a;
  --brand-jj: #00873c;
  --brand-lc: #ff6d00;
  --brand-nbc: #c29200;
  --brand-dhc: #da291c;
  --brand-pub: #221e18;
}
[data-theme="night"] {
  --bg: var(--pine);
  --fg: var(--snow);
  --fg-muted: var(--muted-pine);
  --surface: var(--forest);
  --surface-strong: var(--moss);
  --rule: rgba(246,247,243,0.14);
  --rule-strong: rgba(246,247,243,0.4);
  --accent: var(--leaf);
  --accent-hover: #9ccaa6;
  --on-accent: var(--pine);
  --accent-text: #a8d1b1;
  --seed: var(--leaf);
  --title-block: var(--forest);
  --title-block-surface: var(--moss);
  --field: var(--forest);
  --field-soft: var(--sage);
  --danger: var(--clay-light);
  --danger-text: #f0b8a2;
  --data-1: var(--leaf);
  --data-3: var(--moss);
  --data-5: #8aa1b0;
  --data-6: var(--frost);
  --on-field: var(--snow);
  --warning: var(--ochre);
  --data-2: var(--sage);
  --data-4: var(--mist);
}
:root {
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;
  --s-10: 128px;
  --slide-pad-x: 120px;
  --slide-pad-y: 96px;
  --hairline: 1px;
  --radius: 0;
  --fs-xs: 12px;
  --fs-sm: 14px;
  --fs-base: 16px;
  --fs-md: 20px;
  --fs-lg: 28px;
  --fs-xl: 40px;
  --fs-2xl: 64px;
  --fs-3xl: 96px;
  --slide-display: 128px;
  --slide-title: 80px;
  --slide-sub: 56px;
  --slide-body: 32px;
  --slide-small: 24px;
  --lh-tight: 1.05;
  --lh-snug: 1.2;
  --lh-body: 1.55;
  --track-display: -0.035em;
  --track-tight: -0.02em;
  --track-caps: 0.08em;
  --font-sans: "Instrument Sans", system-ui, sans-serif;
  --font-serif: "Newsreader", Georgia, serif;
}
.title-page { font-family: var(--font-sans); font-size: 64px; font-weight: 600; line-height: 1.0; letter-spacing: -0.04em; }
.title-section { font-family: var(--font-sans); font-size: 40px; font-weight: 600; line-height: 1.05; letter-spacing: -0.035em; }
.title-card { font-family: var(--font-sans); font-size: 28px; font-weight: 600; line-height: 1.15; letter-spacing: -0.025em; }
.lead { font-family: var(--font-sans); font-size: 20px; font-weight: 500; line-height: 1.45; letter-spacing: -0.01em; }
.body { font-family: var(--font-sans); font-size: 16px; font-weight: 400; line-height: 1.55; }
.label { font-family: var(--font-sans); font-size: 12px; font-weight: 500; line-height: 1.3; letter-spacing: 0.08em; }
.slide-display { font-family: var(--font-sans); font-size: 128px; font-weight: 600; line-height: 0.95; letter-spacing: -0.05em; }
.slide-title { font-family: var(--font-sans); font-size: 80px; font-weight: 600; line-height: 1.0; letter-spacing: -0.04em; }
.slide-body { font-family: var(--font-sans); font-size: 32px; font-weight: 400; line-height: 1.4; }
.slide-small { font-family: var(--font-sans); font-size: 24px; font-weight: 400; line-height: 1.4; }
.quote { font-family: var(--font-serif); font-size: 32px; font-weight: 400; line-height: 1.25; letter-spacing: -0.01em; }
