/* Winter Street Studios — design tokens (v1).
   Normative source: DESIGN.md frontmatter. Change a value there and here together. */

@font-face {
    font-family: 'Jost';
    src: url('../fonts/Jost-latin.woff2') format('woff2-variations'),
         url('../fonts/Jost-latin.woff2') format('woff2');
    font-weight: 300 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    /* ── Neutrals: the gallery wall ───────────────────────────── */
    --ink: #111111;          /* text, primary buttons, selection, active nav — 18.9:1 on paper */
    --paper: #ffffff;        /* page, labels */
    --wall: #f5f4f1;         /* sections, panels, image mats */
    --stone: #edebe6;        /* Past chip, table stripes, locked fields */
    --line: #e3e1dc;         /* dividers, card rules */
    --control: #767676;      /* input borders — ≥3:1 on paper/wall/stone */
    --muted: #555555;        /* secondary text — 7.5:1 on paper, 6.3:1 on stone */
    --on-ink: #ffffff;
    --on-ink-muted: #bdbab3; /* secondary text on ink surfaces — 9.8:1 */

    /* ── Status: event state only ─────────────────────────────── */
    --current: #e0007a;      /* Current exhibition — backgrounds/fills only (white text 4.7:1) */
    --current-ink: #b8005f;  /* Current as text on light surfaces — 6.6:1 */
    --upcoming: #0b7aa1;     /* Upcoming fills + focus ring (white text 4.9:1) */
    --upcoming-ink: #096c8f; /* Upcoming as text on light surfaces — 5.4:1 on wall */
    --past: var(--stone);

    /* ── Feedback ─────────────────────────────────────────────── */
    --error: #c4003a;        /* validation & destructive — 6.2:1 on paper */
    --error-wash: #fbeef2;
    --focus: var(--upcoming);

    /* ── Type ─────────────────────────────────────────────────── */
    --font-display: var(--font-ui); /* one family, like the logo's geometric lettering */
    --font-ui: 'Jost', 'Futura', 'Century Gothic', system-ui, sans-serif;

    --text-display: clamp(2.5rem, 1.6rem + 4.2vw, 4.75rem);   /* 40 → 76 */
    --text-headline: clamp(1.875rem, 1.45rem + 1.9vw, 2.75rem); /* 30 → 44 */
    --text-title: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem);     /* 22 → 28 */
    --text-subtitle: 1.25rem;  /* 20 — card titles, artwork titles in grids */
    --text-lead: 1.25rem;      /* 20 light */
    --text-body: 1rem;         /* 16 */
    --text-meta: 0.875rem;     /* 14 — hints, metadata */
    --text-label: 0.8125rem;   /* 13 — tracked uppercase labels; floor is 12 */
    --text-micro: 0.75rem;     /* 12 — absolute floor on screen and paper */

    --leading-tight: 1.1;
    --leading-snug: 1.3;
    --leading-body: 1.6;
    --tracking-display: -0.025em;
    --tracking-label: 0.14em;
    --measure: 66ch;

    /* ── Space (4px base) ─────────────────────────────────────── */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --space-7: 48px;
    --space-8: 64px;
    --space-9: 96px;
    --space-10: 128px;
    --gutter: clamp(16px, 4vw, 48px);
    --section: clamp(56px, 8vw, 112px);
    --container: 1320px;
    --container-text: 760px;

    /* ── Shape & depth ────────────────────────────────────────── */
    --radius: 0;                       /* square everywhere: the gallery-label edge */
    --rule: 1px solid var(--line);
    --rule-strong: 1px solid var(--ink);
    --shadow-bar: 0 -8px 24px rgba(17, 17, 17, 0.08);  /* sticky action bar only */
    --shadow-menu: 0 12px 32px rgba(17, 17, 17, 0.12); /* menus & popovers only */

    /* ── Controls ─────────────────────────────────────────────── */
    --control-h: 48px;        /* public */
    --control-h-panel: 44px;  /* panels */
    --target-min: 44px;

    /* ── Motion ───────────────────────────────────────────────── */
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --dur-fast: 140ms;
    --dur: 220ms;
}

@media (prefers-reduced-motion: reduce) {
    :root { --dur-fast: 0ms; --dur: 0ms; }
}
