/* Hallmark · genre: editorial · macrostructure: Narrative Workflow · design-system: design.md · designed-as-app
 * theme: custom · vibe: "calm utilitarian editorial" · paper: oklch(96.5% 0.015 80) · accent: oklch(62% 0.13 72)
 * display: Literata · body: IBM Plex Sans · axes: light / roman-serif / chromatic-amber
 * states: default · hover · focus · active · disabled · loading · error · success · pre-emit critique: P5 H5 E5 S5 R5 V5
 */

@font-face {
    font-family: "Literata";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/font/literata/literata-cyrillic-variable-d8d5b5530ddf4b284db96ee2b33445e1.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "Literata";
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url("/font/literata/literata-latin-variable-fa34687766da776b15618aea5578eb47.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url("/font/ibm-plex/ibm-plex-sans-cyrillic-variable-70800b98b5e75dd765a6626aa5c7075f.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url("/font/ibm-plex/ibm-plex-sans-latin-variable-b2c9031d9fd6493ccda94908cdba4abd.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/font/ibm-plex/ibm-plex-mono-cyrillic-medium-42375444a220c4d762dcc274460f2649.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/font/ibm-plex/ibm-plex-mono-latin-medium-b1c8a895f5fd3fe6cbf5b4cf95c58d87.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

:root {
    --color-paper: oklch(96.5% 0.015 80);
    --color-paper-2: oklch(93.5% 0.018 80);
    --color-paper-3: oklch(90% 0.022 78);
    --color-ink: oklch(21% 0.025 210);
    --color-ink-2: oklch(38% 0.025 210);
    --color-muted: oklch(48% 0.018 210);
    --color-rule: oklch(79% 0.018 80);
    --color-rule-strong: oklch(62% 0.018 80);
    --color-accent: oklch(62% 0.13 72);
    --color-accent-ink: var(--color-ink);
    --color-focus: oklch(30% 0.10 72);
    --color-error: oklch(53% 0.19 25);
    --color-error-surface: oklch(93% 0.035 25);
    --color-scrim: oklch(21% 0.025 210 / 0.72);
    --color-transparent: oklch(0% 0 0 / 0);

    --font-display: "Literata", ui-serif, serif;
    --font-body: "IBM Plex Sans", ui-sans-serif, sans-serif;
    --font-mono: "IBM Plex 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;
    --text-3xl: 3.052rem;
    --text-display-s: clamp(2.5rem, 7vw, 4rem);
    --text-display: clamp(2.75rem, 6vw, 5.25rem);

    --space-3xs: 0.25rem;
    --space-2xs: 0.5rem;
    --space-xs: 0.75rem;
    --space-sm: 1rem;
    --space-md: 1.5rem;
    --space-lg: 2rem;
    --space-xl: 2.5rem;
    --space-2xl: 4rem;
    --space-3xl: 6rem;
    --space-4xl: 9rem;

    --page-gutter: clamp(1rem, 4vw, 4rem);
    --page-max: 80rem;
    --measure: 65ch;
    --control-height: 3rem;

    --rule-hair: 1px;
    --rule-fine: 2px;
    --radius-card: 0.375rem;
    --radius-input: 0.375rem;
    --radius-pill: 62.5rem;

    --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);
    --dur-micro: 120ms;
    --dur-short: 220ms;
    --dur-long: 420ms;

    --z-base: 1;
    --z-raised: 10;
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-modal: 400;
    --z-toast: 500;
    --z-tooltip: 600;
}
