/* Oikos Financial design tokens — generated from tokens.json. Do not edit by hand. */
:root,
[data-theme="light"] {
  color-scheme: light;
  --surface: #ffffff;
  --surface-alt: #f4f7f5;
  --surface-deep: #143a24;
  --on-deep: #ffffff;
  --ink: #1a1f1c;
  --ink-muted: #4b5550;
  --ink-subtle: #69736e;
  --border: #dde3df;
  --border-strong: #7c8781;
  --primary: #1b6b38;
  --primary-hover: #14532d;
  --on-primary: #ffffff;
  --mint: #e8f3ea;
  --erasmus-green: #41ad49;
  --laurel: #c99a2e;
  --positive: #1b6b38;
  --negative: #b42318;
  --focus: #1b6b38;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);
  --shadow-md: 0 4px 16px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.06);
}

[data-theme="dark"] {
  color-scheme: dark;
  --surface: #0f1412;
  --surface-alt: #171d1a;
  --surface-deep: #17291d;
  --on-deep: #e9eeeb;
  --ink: #e9eeeb;
  --ink-muted: #a3ada8;
  --ink-subtle: #8a948f;
  --border: #2a332e;
  --border-strong: #6b7671;
  --primary: #5cc167;
  --primary-hover: #7dd087;
  --on-primary: #0f1412;
  --mint: #17291d;
  --erasmus-green: #41ad49;
  --laurel: #e0b84a;
  --positive: #5cc167;
  --negative: #f28b82;
  --focus: #7dd087;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.5);
  --shadow-md: 0 4px 16px rgba(0,0,0,.6);
}

/* Follow the OS setting unless a theme is forced with data-theme on <html>. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --surface: #0f1412;
    --surface-alt: #171d1a;
    --surface-deep: #17291d;
    --on-deep: #e9eeeb;
    --ink: #e9eeeb;
    --ink-muted: #a3ada8;
    --ink-subtle: #8a948f;
    --border: #2a332e;
    --border-strong: #6b7671;
    --primary: #5cc167;
    --primary-hover: #7dd087;
    --on-primary: #0f1412;
    --mint: #17291d;
    --erasmus-green: #41ad49;
    --laurel: #e0b84a;
    --positive: #5cc167;
    --negative: #f28b82;
    --focus: #7dd087;
    --shadow-sm: 0 1px 3px rgba(0,0,0,.5);
    --shadow-md: 0 4px 16px rgba(0,0,0,.6);
  }
}

:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --font-display: Montserrat, "Gotham", "Gill Sans", system-ui, sans-serif;
  --font-text: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-accent: "Libre Caslon Text", "Big Caslon", Georgia, serif;
}

/* Type styles */
.oi-t-display-xl { font-family: var(--font-display); font-size: 56px; line-height: 60px; font-weight: 700; letter-spacing: -0.02em; }
.oi-t-display { font-family: var(--font-display); font-size: 40px; line-height: 46px; font-weight: 700; letter-spacing: -0.01em; }
.oi-t-title { font-family: var(--font-display); font-size: 28px; line-height: 34px; font-weight: 600; }
.oi-t-heading { font-family: var(--font-display); font-size: 20px; line-height: 28px; font-weight: 600; }
.oi-t-figure-xl { font-family: var(--font-display); font-size: 40px; line-height: 44px; font-weight: 600; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.oi-t-eyebrow { font-family: var(--font-display); font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.oi-t-body-lg { font-family: var(--font-text); font-size: 18px; line-height: 28px; font-weight: 400; }
.oi-t-body { font-family: var(--font-text); font-size: 16px; line-height: 24px; font-weight: 400; }
.oi-t-label { font-family: var(--font-text); font-size: 14px; line-height: 20px; font-weight: 500; }
.oi-t-figure { font-family: var(--font-text); font-size: 16px; line-height: 24px; font-weight: 500; font-variant-numeric: tabular-nums; }
.oi-t-caption { font-family: var(--font-text); font-size: 13px; line-height: 18px; font-weight: 400; }
.oi-t-quote { font-family: var(--font-accent); font-size: 22px; line-height: 32px; font-weight: 400; font-style: italic; }
