/* Meno — generated from tokens.json */
@font-face { font-family: "Geist"; src: url("fonts/Geist-Variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Geist"; src: url("fonts/Geist-Italic-Variable.woff2") format("woff2"); font-weight: 100 900; font-style: italic; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url("fonts/GeistMono-Variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
:root, [data-theme="light"] {
  --graphite-0: #ffffff;
  --graphite-25: #f9f9fa;
  --graphite-50: #f6f6f7;
  --graphite-100: #efeff1;
  --graphite-200: #e4e4e7;
  --graphite-300: #d4d4d8;
  --graphite-350: #a1a1a8;
  --graphite-375: #8b8b93;
  --graphite-400: #85858d;
  --graphite-500: #6b6b73;
  --graphite-600: #54545b;
  --graphite-700: #3a3a40;
  --graphite-800: #2e2e33;
  --graphite-850: #27272a;
  --graphite-875: #212124;
  --graphite-900: #1c1c1e;
  --graphite-925: #171719;
  --graphite-950: #121214;
  --graphite-975: #0b0b0c;
  --cobalt-50: #eef3fe;
  --cobalt-100: #dbe5fd;
  --cobalt-200: #b9cbfa;
  --cobalt-300: #8eabf5;
  --cobalt-400: #6187ee;
  --cobalt-500: #3c69e3;
  --cobalt-600: #2251d1;
  --cobalt-700: #1b41ab;
  --cobalt-800: #183687;
  --cobalt-900: #152b63;
  --cobalt-950: #101d40;
  --cobalt-975: #0c1222;
  --cyan-25: #ebf5f7;
  --cyan-50: #e7f7f9;
  --cyan-100: #c6ecf1;
  --cyan-200: #94dae4;
  --cyan-300: #5cc4d3;
  --cyan-400: #33b1c3;
  --cyan-500: #1aa3b8;
  --cyan-600: #13889a;
  --cyan-700: #0f6b79;
  --cyan-800: #0d525c;
  --cyan-900: #0a3940;
  --cyan-950: #08282d;
  --cyan-975: #0f1a1c;
  --green-50: #eaf6ef;
  --green-100: #cfebda;
  --green-200: #a3d9b9;
  --green-300: #6fc392;
  --green-400: #3fa96b;
  --green-500: #22914f;
  --green-600: #187a41;
  --green-700: #126235;
  --green-800: #0f4c2a;
  --green-900: #0b331d;
  --green-950: #082417;
  --amber-50: #fdf6e7;
  --amber-100: #fbe8c2;
  --amber-200: #f6d28a;
  --amber-300: #edb84f;
  --amber-400: #e0a12a;
  --amber-500: #b57609;
  --amber-600: #956007;
  --amber-700: #7d5108;
  --amber-800: #5e3d08;
  --amber-900: #3d2806;
  --amber-950: #2a1c05;
  --red-50: #fdeeee;
  --red-100: #fad7d7;
  --red-200: #f4b0b0;
  --red-300: #ec8585;
  --red-400: #e25c5c;
  --red-500: #d63a3a;
  --red-600: #bd2c2c;
  --red-700: #9b2424;
  --red-800: #761d1d;
  --red-900: #4d1414;
  --red-950: #331010;
  --bg-canvas: var(--graphite-0);
  --bg-surface: var(--graphite-0);
  --bg-raised: var(--graphite-0);
  --bg-subtle: var(--graphite-50);
  --bg-hover: var(--graphite-100);
  --bg-active: var(--graphite-200);
  --bg-inverse: var(--graphite-975);
  --bg-overlay: rgba(11, 11, 12, 0.4);
  --bg-tutor: var(--cyan-25);
  --ink: var(--graphite-975);
  --ink-secondary: var(--graphite-600);
  --ink-muted: var(--graphite-500);
  --ink-disabled: var(--graphite-400);
  --ink-inverse: var(--graphite-0);
  --ink-link: var(--cobalt-700);
  --border-subtle: var(--graphite-100);
  --border: var(--graphite-200);
  --border-strong: var(--graphite-400);
  --focus-ring: var(--cobalt-500);
  --primary: var(--graphite-975);
  --primary-hover: var(--graphite-800);
  --primary-active: var(--graphite-700);
  --on-primary: var(--graphite-0);
  --primary-subtle: var(--graphite-200);
  --primary-subtle-hover: var(--graphite-300);
  --primary-ink: var(--graphite-975);
  --primary-border: var(--graphite-300);
  --accent: var(--cyan-500);
  --on-accent: var(--graphite-975);
  --accent-subtle: var(--cyan-50);
  --accent-ink: var(--cyan-700);
  --success: var(--green-600);
  --on-success: var(--graphite-0);
  --success-subtle: var(--green-50);
  --success-ink: var(--green-700);
  --success-border: var(--green-200);
  --warning: var(--amber-500);
  --on-warning: var(--graphite-975);
  --warning-subtle: var(--amber-50);
  --warning-ink: var(--amber-700);
  --warning-border: var(--amber-200);
  --danger: var(--red-600);
  --danger-hover: var(--red-700);
  --on-danger: var(--graphite-0);
  --danger-subtle: var(--red-50);
  --danger-ink: var(--red-700);
  --danger-border: var(--red-200);
  --info: var(--cobalt-600);
  --info-subtle: var(--cobalt-50);
  --info-ink: var(--cobalt-700);
  --info-border: var(--cobalt-200);
  --nav-bg: var(--graphite-25);
  --nav-hover: var(--graphite-100);
  --nav-active: var(--graphite-200);
  --nav-border: var(--graphite-100);
  --nav-ink: var(--graphite-700);
  --nav-ink-active: var(--graphite-975);
  --nav-ink-muted: var(--graphite-500);
  --nav-accent: var(--graphite-975);
  --viz-1: var(--graphite-975);
  --viz-2: var(--cyan-500);
  --viz-3: var(--amber-500);
  --viz-4: var(--graphite-400);
  --viz-track: var(--graphite-200);
  --shadow-xs: none;
  --shadow-sm: 0 1px 2px rgba(11, 11, 12, 0.04);
  --shadow-md: 0 4px 16px -4px rgba(11, 11, 12, 0.08), 0 1px 3px rgba(11, 11, 12, 0.04);
  --shadow-lg: 0 24px 48px -12px rgba(11, 11, 12, 0.18);
}
[data-theme="dark"] {
  --bg-canvas: var(--graphite-975);
  --bg-surface: var(--graphite-950);
  --bg-raised: var(--graphite-900);
  --bg-subtle: var(--graphite-925);
  --bg-hover: var(--graphite-875);
  --bg-active: var(--graphite-850);
  --bg-inverse: var(--graphite-100);
  --bg-overlay: rgba(0, 0, 0, 0.7);
  --bg-tutor: var(--cyan-975);
  --ink: var(--graphite-100);
  --ink-secondary: var(--graphite-350);
  --ink-muted: var(--graphite-375);
  --ink-disabled: var(--graphite-600);
  --ink-inverse: var(--graphite-975);
  --ink-link: var(--cobalt-300);
  --border-subtle: var(--graphite-900);
  --border: var(--graphite-850);
  --border-strong: var(--graphite-500);
  --focus-ring: var(--cobalt-400);
  --primary: var(--graphite-100);
  --primary-hover: var(--graphite-300);
  --primary-active: var(--graphite-350);
  --on-primary: var(--graphite-975);
  --primary-subtle: var(--graphite-850);
  --primary-subtle-hover: var(--graphite-800);
  --primary-ink: var(--graphite-100);
  --primary-border: var(--graphite-800);
  --accent: var(--cyan-400);
  --on-accent: var(--graphite-975);
  --accent-subtle: var(--cyan-950);
  --accent-ink: var(--cyan-300);
  --success: var(--green-400);
  --on-success: var(--graphite-975);
  --success-subtle: var(--green-950);
  --success-ink: var(--green-300);
  --success-border: var(--green-800);
  --warning: var(--amber-400);
  --on-warning: var(--graphite-975);
  --warning-subtle: var(--amber-950);
  --warning-ink: var(--amber-300);
  --warning-border: var(--amber-800);
  --danger: var(--red-500);
  --danger-hover: var(--red-600);
  --on-danger: var(--graphite-0);
  --danger-subtle: var(--red-950);
  --danger-ink: var(--red-300);
  --danger-border: var(--red-800);
  --info: var(--cobalt-400);
  --info-subtle: var(--cobalt-975);
  --info-ink: var(--cobalt-200);
  --info-border: var(--cobalt-900);
  --nav-bg: var(--graphite-975);
  --nav-hover: var(--graphite-925);
  --nav-active: var(--graphite-875);
  --nav-border: var(--graphite-900);
  --nav-ink: var(--graphite-350);
  --nav-ink-active: var(--graphite-100);
  --nav-ink-muted: var(--graphite-375);
  --nav-accent: var(--graphite-100);
  --viz-1: var(--graphite-100);
  --viz-2: var(--cyan-400);
  --viz-3: var(--amber-400);
  --viz-4: var(--graphite-500);
  --viz-track: var(--graphite-850);
  --shadow-xs: none;
  --shadow-sm: none;
  --shadow-md: 0 8px 24px -8px rgba(0, 0, 0, 0.6);
  --shadow-lg: 0 24px 64px -12px rgba(0, 0, 0, 0.8);
}
:root {
  --space-0-5: 2px;
  --space-1: 4px;
  --space-1-5: 6px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --radius-xs: 2px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;
  --control-sm: 28px;
  --control-md: 36px;
  --control-lg: 44px;
  --icon-sm: 16px;
  --icon-md: 20px;
  --icon-lg: 24px;
  --avatar-sm: 24px;
  --avatar-md: 32px;
  --avatar-lg: 40px;
  --sidebar-width: 248px;
  --topbar-height: 56px;
  --content-max: 1200px;
  --reading-max: 720px;
  --dialog-sm: 400px;
  --dialog-md: 560px;
  --z-sticky: 100;
  --z-nav: 200;
  --z-dropdown: 1000;
  --z-overlay: 1300;
  --z-dialog: 1400;
  --z-toast: 1500;
  --font-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}
.text-display { font-family: var(--font-sans); font-size: 2.5rem; line-height: 3rem; font-weight: 600; letter-spacing: -0.035em; }
.text-heading-xl { font-family: var(--font-sans); font-size: 2rem; line-height: 2.5rem; font-weight: 600; letter-spacing: -0.03em; }
.text-heading-lg { font-family: var(--font-sans); font-size: 1.375rem; line-height: 1.875rem; font-weight: 600; letter-spacing: -0.02em; }
.text-heading-md { font-family: var(--font-sans); font-size: 1.125rem; line-height: 1.625rem; font-weight: 600; letter-spacing: -0.01em; }
.text-heading-sm { font-family: var(--font-sans); font-size: 0.9375rem; line-height: 1.375rem; font-weight: 600; letter-spacing: -0.005em; }
.text-body-lg { font-family: var(--font-sans); font-size: 1rem; line-height: 1.625rem; font-weight: 400; }
.text-body { font-family: var(--font-sans); font-size: 0.875rem; line-height: 1.375rem; font-weight: 400; }
.text-body-sm { font-family: var(--font-sans); font-size: 0.8125rem; line-height: 1.25rem; font-weight: 400; }
.text-label { font-family: var(--font-sans); font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; }
.text-label-sm { font-family: var(--font-sans); font-size: 0.8125rem; line-height: 1.125rem; font-weight: 500; }
.text-caption { font-family: var(--font-sans); font-size: 0.75rem; line-height: 1rem; font-weight: 400; letter-spacing: 0.01em; }
.text-metric { font-family: var(--font-sans); font-size: 2rem; line-height: 2.5rem; font-weight: 600; letter-spacing: -0.03em; }
.text-code { font-family: var(--font-mono); font-size: 0.8125rem; line-height: 1.25rem; font-weight: 400; }
.text-code-sm { font-family: var(--font-mono); font-size: 0.75rem; line-height: 1rem; font-weight: 500; }
