/* Foundation v1. Light is intentional default. No remote font dependencies. */
:root {
  color-scheme: light;
  --color-bg: #f8f9fc;
  --color-surface: #ffffff;
  --color-surface-raised: #f0f3f9;
  --color-text: #171d2d;
  --color-text-muted: #586278;
  --color-accent: #3154d5;
  --color-accent-hover: #2441b2;
  --color-accent-soft: #eaf0ff;
  --color-on-accent: #ffffff;
  --color-secondary: #14776f;
  --color-secondary-soft: #e3f4ef;
  --color-status-ok: #176c46;
  --color-status-warn: #8a5209;
  --color-status-bad: #b32f3c;
  --color-border: #d7dce6;
  --color-border-strong: #8d97ab;
  --color-focus: #3154d5;
  --color-overlay: #171d2d99;
  --color-inverse-bg: #171d2d;
  --color-inverse-text: #f4f6fc;
  --color-inverse-muted: #b8c3da;
  --font-head: 'Avenir Next', Avenir, 'Segoe UI', Arial, sans-serif;
  --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --font-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
  --font-editorial: Georgia, 'Times New Roman', serif;
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  --text-3xl: clamp(2rem, 1.55rem + 1.5vw, 3rem);
  --text-hero: clamp(2.25rem, 1.2rem + 3.6vw, 4.5rem);
  --line-body: 1.6;
  --line-heading: 1.08;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --tracking-heading: -.035em;
  --tracking-meta: .08em;
  --sp-1: .25rem;
  --sp-2: .5rem;
  --sp-3: 1rem;
  --sp-4: 1.5rem;
  --sp-5: 2rem;
  --sp-6: 3rem;
  --sp-7: 4rem;
  --sp-8: 6rem;
  --radius-sm: .375rem;
  --radius-md: .75rem;
  --radius-lg: 1.25rem;
  --radius-pill: 999px;
  --shadow-sm: 0 2px 6px #171d2d08;
  --shadow-md: 0 12px 32px #171d2d0d;
  --content-max: 76rem;
  --reading-max: 44rem;
  --page-gutter: clamp(1rem, 4vw, 3rem);
  --control-min: 2.75rem;
  --duration-fast: 150ms;
  --duration-normal: 220ms;
  --ease-standard: cubic-bezier(.2,.7,.2,1);
  --z-header: 20;
  --z-overlay: 80;
  --z-dialog: 100;
}
[data-theme="dark"] {
  color-scheme: dark;
  --color-bg: #111623;
  --color-surface: #1a2131;
  --color-surface-raised: #242e42;
  --color-text: #f1f4fc;
  --color-text-muted: #aebad0;
  --color-accent: #a6baff;
  --color-accent-hover: #c4d1ff;
  --color-accent-soft: #293853;
  --color-on-accent: #142140;
  --color-secondary: #7fd5c8;
  --color-secondary-soft: #183c3c;
  --color-status-ok: #87d5a7;
  --color-status-warn: #f0bd6f;
  --color-status-bad: #ff9ca6;
  --color-border: #39445b;
  --color-border-strong: #7887a3;
  --color-focus: #a6baff;
  --color-overlay: #060a13cc;
  --color-inverse-bg: #080d18;
  --color-inverse-text: #f4f6fc;
  --color-inverse-muted: #b8c3da;
  --shadow-sm: 0 2px 6px #00000020;
  --shadow-md: 0 12px 32px #00000030;
}
/* Small foundation reset. Component and page layout remain separate. */
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--color-bg); color: var(--color-text); }
body { margin: 0; font: var(--weight-normal) var(--text-base)/var(--line-body) var(--font-body); }
h1, h2, h3, h4 { font-family: var(--font-head); line-height: var(--line-heading); letter-spacing: var(--tracking-heading); }
a { color: var(--color-accent); text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
::selection { background: var(--color-accent); color: var(--color-on-accent); }
img, svg { max-width: 100%; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
  :root, [data-theme="dark"] { color-scheme: light; --color-bg: #fff; --color-surface: #fff; --color-text: #171d2d; --color-text-muted: #586278; --color-accent: #2441b2; --color-border: #d7dce6; }
  [data-theme-toggle] { display: none !important; }
}
