/* Hallmark · tokens — PyClass design system (Coral register)
 * Source of truth: design.md at project root. Pages reference tokens by
 * name; raw color/font values do not appear outside this file. */

:root {
    /* ---- color · paper & ink (warm anchor, hue 40–60) ---- */
    --color-paper: oklch(97.5% 0.007 60);
    --color-surface: oklch(99.2% 0.004 75);
    --color-paper-2: oklch(94.8% 0.010 55);
    --color-rule: oklch(89% 0.010 55);
    --color-rule-2: oklch(81% 0.012 50);
    --color-ink: oklch(23% 0.014 40);
    --color-ink-2: oklch(44% 0.018 40);
    --color-ink-3: oklch(53% 0.016 45);

    /* ---- color · accent (coral — highlighter, never a flood) ---- */
    --color-accent: oklch(62% 0.16 30);
    --color-accent-deep: oklch(47% 0.15 30);
    --color-accent-tint: oklch(94% 0.03 30);

    /* ---- color · focus (distinct from accent, never animated) ---- */
    --color-focus: oklch(50% 0.16 255);
    --color-focus-tint: oklch(93% 0.03 255);

    /* ---- color · functional status (live student states) ---- */
    --status-ok: oklch(52% 0.13 150);
    --status-ok-tint: oklch(94% 0.05 150);
    --status-warn: oklch(55% 0.12 75);
    --status-warn-tint: oklch(95% 0.06 90);
    --status-bad: oklch(52% 0.18 25);
    --status-bad-tint: oklch(94.5% 0.035 25);
    --status-off: oklch(50% 0.012 50);
    --status-off-tint: oklch(94% 0.008 55);

    /* ---- color · code / console (the one dark surface) ---- */
    --color-console-bg: oklch(21% 0.015 265);
    --color-console-ink: oklch(90% 0.03 150);
    --color-console-rule: oklch(32% 0.015 265);

    /* ---- color · overlay scrim ---- */
    --color-scrim: oklch(20% 0.01 40 / 0.5);

    /* ---- typography ---- */
    --font-display: "Bricolage Grotesque", "Geist", ui-sans-serif, system-ui, sans-serif;
    --font-body: "Geist", ui-sans-serif, system-ui, sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, 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-display: clamp(2rem, 3vw + 1rem, 2.75rem);

    /* ---- spacing (4-pt) ---- */
    --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;

    /* ---- shape ---- */
    --radius-sm: 8px;
    --radius-input: 10px;
    --radius-card: 14px;
    --radius-pill: 999px;
    --rule-hairline: 1px;

    /* ---- elevation (used sparingly — one soft layer) ---- */
    --shadow-card: 0 1px 2px oklch(30% 0.02 40 / 0.05), 0 10px 28px -22px oklch(30% 0.02 40 / 0.28);
    --shadow-pop: 0 8px 16px -8px oklch(25% 0.02 40 / 0.25), 0 24px 56px -24px oklch(25% 0.02 40 / 0.4);

    /* ---- motion ---- */
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --dur-short: 140ms;
    --dur-med: 220ms;

    /* ---- interaction floor ---- */
    --tap-min: 2.75rem;   /* 44px — coarse pointers */
    --tap-min-fine: 2.25rem; /* 36px — fine pointers */

    /* ---- z scale ---- */
    --z-raised: 10;
    --z-nav: 20;
    --z-overlay: 40;
    --z-modal: 50;
}
