/* Hallmark · macrostructure: Index-First · theme: custom dual · vibe: "clinical, warm, precise, personal" · axes: light / roman-serif / chromatic-pink-or-cool-blue · contrast: pass (46–50) · tokens: pass (58) · v1.1.0 */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
@font-face { font-family: "IBM Plex Sans"; src: url("../fonts/ibm-plex-sans-vf.v20260810.ttf") format("truetype"); font-style: normal; font-weight: 100 700; font-display: swap; }
@font-face { font-family: "Fraunces"; src: url("../fonts/fraunces-vf.v20260810.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
:root {
  color-scheme: light;
  --color-paper: oklch(98% 0.009 338); --color-paper-2: oklch(95% 0.018 330); --color-paper-3: oklch(91% 0.026 320);
  --color-ink: oklch(20% 0.026 315); --color-ink-2: oklch(33% 0.035 320); --color-muted: oklch(44% 0.032 320);
  --color-rule: oklch(84% 0.030 325); --color-rule-2: oklch(69% 0.045 320); --color-accent: oklch(49% 0.175 335);
  --color-accent-2: oklch(44% 0.165 300); --color-accent-ink: oklch(98% 0.009 338); --color-focus: oklch(52% 0.205 315);
  --color-success: oklch(42% 0.1 150); --color-warning: oklch(52% 0.12 75); --color-error: oklch(45% 0.16 25);
  --color-critical-paper: oklch(94% 0.025 25); --color-backdrop: oklch(20% 0.026 315 / 0.55);
  --gradient-brand: linear-gradient(135deg, var(--color-accent), var(--color-accent-2));
  --gradient-shell: linear-gradient(145deg, var(--color-paper-2), var(--color-paper));
  --gradient-active: linear-gradient(120deg, var(--color-paper-3), var(--color-paper));
  --gradient-rose-swatch: linear-gradient(135deg, oklch(58% 0.18 338), oklch(48% 0.17 300));
  --gradient-blue-swatch: linear-gradient(135deg, oklch(57% 0.17 245), oklch(46% 0.15 270));
  --font-display: "Fraunces", ui-serif, serif; --font-body: "IBM Plex Sans", ui-sans-serif, sans-serif; --font-mono: ui-monospace, monospace;
  --text-xs: 0.75rem; --text-sm: 0.875rem; --text-base: 1rem; --text-md: 1.25rem; --text-lg: 1.5625rem; --text-xl: 1.953rem; --text-2xl: 2.441rem;
  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem;
  --radius-sm: 0.5rem; --radius-md: 0.75rem; --radius-lg: 1.125rem; --radius-xl: 1.5rem;
  --shadow-soft: 0 1rem 2.5rem oklch(20% 0.026 315 / 0.09); --shadow-raised: 0 0.5rem 1.5rem oklch(20% 0.026 315 / 0.08);
  --dur-short: 120ms; --dur-medium: 200ms; --ease-out: cubic-bezier(0.16, 1, 0.3, 1); --ease-in: cubic-bezier(0.7, 0, 0.84, 0); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --z-sticky: 200; --z-sticky-nav: 300; --z-dialog: 500;
}

:root[data-theme="blue"] {
  --color-paper: oklch(98% 0.009 245); --color-paper-2: oklch(95% 0.018 245); --color-paper-3: oklch(91% 0.026 250);
  --color-ink: oklch(20% 0.026 255); --color-ink-2: oklch(33% 0.035 255); --color-muted: oklch(44% 0.032 250);
  --color-rule: oklch(84% 0.030 248); --color-rule-2: oklch(69% 0.045 250); --color-accent: oklch(48% 0.160 245);
  --color-accent-2: oklch(42% 0.145 270); --color-accent-ink: oklch(98% 0.009 245); --color-focus: oklch(52% 0.195 255);
  --color-backdrop: oklch(20% 0.026 255 / 0.55); --shadow-soft: 0 1rem 2.5rem oklch(20% 0.026 255 / 0.09); --shadow-raised: 0 0.5rem 1.5rem oklch(20% 0.026 255 / 0.08);
}
