/* ══════════════════════════════════════════════════════════════════════════
   publicne.ws — Design tokens · v.2026.04
   Canonical source of truth. Copy this block to reuse the system.
   ══════════════════════════════════════════════════════════════════════════ */

:root {
    /* ─── Surface & text ─── */
    --bg: oklch(98% 0.003 100);
    --bg-2: oklch(94% 0.003 100);
    --bg-3: oklch(90% 0.004 100);
    --fg: oklch(12% 0.008 260);
    --fg-soft: oklch(30% 0.008 260);
    --fg-muted: oklch(52% 0.008 260);
    --line: oklch(88% 0.004 260);
    --line-2: oklch(82% 0.005 260);

    /* ─── Signal red ─── */
    --red: oklch(60% 0.24 27);
    --red-hi: oklch(66% 0.26 27);
    --red-ghost: oklch(95% 0.04 27);

    /* ─── Inverse ─── */
    --ink: oklch(9% 0.008 260);
    --ink-soft: oklch(16% 0.008 260);

    /* ─── Status (admin only — not for editorial use) ─── */
    --amber: oklch(72% 0.15 85);
    --green: oklch(60% 0.15 145);

    /* ─── Typography stacks ─── */
    --f-display: "Sora", system-ui, sans-serif;
    --f-body: "DM Sans", system-ui, sans-serif;
    --f-mono: "JetBrains Mono", ui-monospace, monospace;

    /* ─── Type scale (fluid via clamp, ratio ≈ 1.25) ─── */
    --fs-xs: 0.72rem;
    --fs-sm: 0.82rem;
    --fs-base: 1rem;
    --fs-md: 1.125rem;
    --fs-lg: 1.375rem;
    --fs-xl: clamp(1.5rem, 2.5vw + 0.5rem, 2.25rem);
    --fs-2xl: clamp(2.25rem, 5vw + 0.5rem, 4rem);
    --fs-3xl: clamp(3rem, 8vw + 0.5rem, 7rem);
    --fs-hero: clamp(4rem, 20vw, 18rem);
    --fs-name: clamp(2.75rem, 13vw, 9.5rem);

    /* ─── Spacing scale (4px base) ─── */
    --s-1: 4px;
    --s-2: 8px;
    --s-3: 12px;
    --s-4: 16px;
    --s-5: 24px;
    --s-6: 32px;
    --s-8: 48px;
    --s-10: 72px;
    --s-12: 96px;
    --s-16: 144px;

    /* ─── Motion ─── */
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in: cubic-bezier(0.7, 0, 0.3, 1);

    /* ─── Layout ─── */
    --gutter: clamp(18px, 5vw, 56px);
    --maxw: 1600px;
}

[data-theme="dark"] {
    --bg: oklch(10% 0.008 260);
    --bg-2: oklch(13% 0.008 260);
    --bg-3: oklch(17% 0.008 260);
    --fg: oklch(96% 0.003 100);
    --fg-soft: oklch(78% 0.005 100);
    --fg-muted: oklch(58% 0.008 260);
    --line: oklch(22% 0.008 260);
    --line-2: oklch(30% 0.008 260);
    --red: oklch(66% 0.25 27);
    --red-hi: oklch(74% 0.26 27);
    --red-ghost: oklch(22% 0.08 27);
    --ink: oklch(5% 0.008 260);
    --ink-soft: oklch(12% 0.008 260);
}

/* Admin has its own slightly denser dark ink (avoid colour conflict with page ink) */
[data-theme="dark"] .admin-scope {
    --ink: oklch(5% 0.008 260);
    --ink-soft: oklch(13% 0.008 260);
}
