/* Hallmark · pre-emit critique: P5 H4 E4 S5 R5 V4 */
:root {
    color-scheme: light;

    --color-page: oklch(94% 0.018 88);
    --color-paper: oklch(96% 0.016 82);
    --color-paper-2: oklch(91% 0.018 82);
    --color-surface: oklch(98% 0.012 82);
    --color-surface-2: oklch(93% 0.016 86);
    --color-ink: oklch(20% 0.018 160);
    --color-muted: oklch(47% 0.03 180);
    --color-faint: oklch(62% 0.024 180);
    --color-rule: oklch(80% 0.018 82);
    --color-rule-strong: oklch(70% 0.026 82);
    --color-accent: oklch(56% 0.105 155);
    --color-accent-2: oklch(67% 0.08 155);
    --color-accent-soft: oklch(88% 0.05 155);
    --color-accent-ink: oklch(97% 0.012 155);
    --color-info: oklch(54% 0.07 235);
    --color-info-soft: oklch(88% 0.035 235);
    --color-warn: oklch(64% 0.105 72);
    --color-warn-soft: oklch(90% 0.052 72);
    --color-danger: oklch(55% 0.11 28);
    --color-danger-soft: oklch(90% 0.045 28);
    --color-focus: oklch(61% 0.12 155);
    --color-shadow: oklch(18% 0.018 160 / 0.13);
    --color-shadow-soft: oklch(18% 0.018 160 / 0.07);
    --color-overlay: oklch(98% 0.012 82 / 0.86);

    --protein: var(--color-info);
    --carb: var(--color-accent);
    --fat: oklch(32% 0.025 80);
    --teal: var(--color-accent);
    --blue: var(--color-info);
    --border: var(--color-rule);
    --card: var(--color-surface);
    --muted: var(--color-muted);

    --font-display: "Inter", system-ui, sans-serif;
    --font-body: "Inter", system-ui, sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;

    --space-3xs: 0.25rem;
    --space-2xs: 0.5rem;
    --space-xs: 0.75rem;
    --space-sm: 1rem;
    --space-md: 1.5rem;
    --space-lg: 2rem;
    --space-xl: 3rem;
    --space-2xl: 4.5rem;
    --space-3xl: 7rem;

    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-md: 1rem;
    --text-lg: 1.18rem;
    --text-xl: 1.5rem;
    --text-2xl: 2rem;
    --text-3xl: 2.55rem;
    --text-display-s: clamp(2.4rem, 8vw, 5.6rem);
    --text-display: clamp(3rem, 9vw, 7.2rem);

    --line-tight: 0.95;
    --line-heading: 1.08;
    --line-body: 1.65;

    --radius-xs: 0.25rem;
    --radius-sm: 0.375rem;
    --radius-md: 0.5rem;
    --radius-lg: 0.75rem;
    --radius-xl: 1rem;
    --radius-pill: 999px;

    --rule: 1px solid var(--color-rule);
    --shadow-soft: 0 1rem 3rem var(--color-shadow-soft);
    --shadow-panel: 0 1.25rem 4rem var(--color-shadow);

    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in: cubic-bezier(0.32, 0, 0.67, 0);
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --dur-fast: 150ms;
    --dur: 240ms;
    --dur-slow: 420ms;
}

html.dark {
    color-scheme: dark;

    --color-page: oklch(12% 0.012 165);
    --color-paper: oklch(14% 0.014 165);
    --color-paper-2: oklch(18% 0.016 165);
    --color-surface: oklch(20% 0.016 165);
    --color-surface-2: oklch(24% 0.018 165);
    --color-ink: oklch(92% 0.014 100);
    --color-muted: oklch(68% 0.025 185);
    --color-faint: oklch(54% 0.022 185);
    --color-rule: oklch(31% 0.018 170);
    --color-rule-strong: oklch(39% 0.022 170);
    --color-accent: oklch(68% 0.105 155);
    --color-accent-2: oklch(74% 0.085 155);
    --color-accent-soft: oklch(28% 0.055 155);
    --color-accent-ink: oklch(14% 0.014 165);
    --color-info: oklch(70% 0.075 225);
    --color-info-soft: oklch(28% 0.04 225);
    --color-warn: oklch(76% 0.1 72);
    --color-warn-soft: oklch(31% 0.05 72);
    --color-danger: oklch(70% 0.1 28);
    --color-danger-soft: oklch(30% 0.055 28);
    --color-focus: oklch(75% 0.12 155);
    --color-shadow: oklch(5% 0.01 165 / 0.55);
    --color-shadow-soft: oklch(5% 0.01 165 / 0.34);
    --color-overlay: oklch(14% 0.014 165 / 0.86);

    --fat: oklch(84% 0.022 80);
}
