/* ============================================================
   ELEVATION LABS DESIGN TOKENS
   Two layers: primitives (raw values, never used in components)
   and semantic roles (what components consume). Change the brand
   here and nowhere else.
   ============================================================ */

:root {
    /* ---- Primitives: color ---- */
    --blue-200: #b7c1ff;
    --blue-500: #3d4bff;
    --blue-700: #141af2;
    --ink-950: #050507;
    --ink-900: #06060a;
    --ink-800: #0d0d16;
    --ink-700: #101019;
    --ink-600: #1a1a2a;
    --white: #ffffff;
    --gray-50: #f3f4fb;
    --gray-300: #a3a6bc;
    --gray-400: #8588a3;
    --green-400: #2fd672;
    --red-300: #ff9c9c;
    --red-400: #ff6b6b;
    --amber-400: #f5b83d;
    --periwinkle-300: #8c94ff;

    /* ---- Semantic: surfaces ---- */
    --color-bg: var(--ink-900);
    --color-bg-deep: var(--ink-950);
    --color-surface: var(--ink-800);
    --color-surface-raised: var(--ink-700);
    --color-overlay: rgb(3 3 6 / 0.92);
    --color-header: color-mix(in srgb, var(--ink-900) 92%, transparent);

    /* ---- Semantic: text ---- */
    --color-text: var(--gray-50);
    --color-text-strong: var(--white);
    --color-text-muted: var(--gray-300);
    --color-text-subtle: var(--gray-400);
    --color-text-on-accent: var(--white);

    /* ---- Semantic: brand and state ---- */
    --color-accent: var(--blue-500);
    --color-accent-strong: var(--blue-700);
    --color-accent-soft: var(--blue-200);
    --color-accent-tint: color-mix(in srgb, var(--blue-500) 14%, transparent);
    --color-accent-tint-strong: color-mix(in srgb, var(--blue-500) 22%, transparent);
    --color-accent-glow: color-mix(in srgb, var(--blue-500) 35%, transparent);
    --color-success: var(--green-400);
    --color-success-tint: color-mix(in srgb, var(--green-400) 12%, transparent);
    --color-success-line: color-mix(in srgb, var(--green-400) 38%, transparent);
    --color-danger: var(--red-400);
    --color-danger-text: var(--red-300);
    --color-danger-tint: color-mix(in srgb, var(--red-400) 12%, transparent);
    --color-danger-line: color-mix(in srgb, var(--red-400) 38%, transparent);
    --color-warning: var(--amber-400);

    /* ---- Semantic: lines and focus ---- */
    --color-border: rgb(130 140 255 / 0.18);
    --color-border-strong: rgb(130 140 255 / 0.38);
    --color-divider: rgb(255 255 255 / 0.08);
    --color-focus: var(--blue-200);

    /* ---- Gradients ---- */
    --gradient-accent: linear-gradient(90deg, var(--blue-700), var(--blue-500));
    --gradient-accent-text: linear-gradient(90deg, var(--blue-200), var(--blue-500));
    --gradient-cta-band: linear-gradient(120deg, #0b0c1e, #10113a 60%, #171a5e);

    /* ---- Spacing (4px base) ---- */
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;
    --space-8: 4rem;
    --space-9: 6rem;

    /* ---- Typography ---- */
    --font-display: 'Space Grotesk', 'Helvetica Neue', Arial, sans-serif;
    --font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-md: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.375rem;
    --text-2xl: 1.75rem;
    --text-3xl: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
    --text-4xl: clamp(2.25rem, 1.3rem + 3.8vw, 4rem);
    --leading-tight: 1.1;
    --leading-snug: 1.3;
    --leading-body: 1.6;
    --leading-loose: 1.8;
    --tracking-label: 0.14em;

    /* ---- Radius ---- */
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 18px;
    --radius-xl: 24px;
    --radius-pill: 999px;

    /* ---- Elevation ---- */
    --shadow-sm: 0 10px 24px rgb(3 4 14 / 0.45);
    --shadow-md: 0 20px 48px rgb(3 4 14 / 0.6), 0 0 0 1px var(--color-border-strong);
    --shadow-lg: 0 30px 80px rgb(3 4 14 / 0.65), 0 0 0 1px var(--color-border);
    --shadow-up: 0 -1px 10px rgb(0 0 0 / 0.4);
    --shadow-glow: 0 0 24px var(--color-accent-glow);
    --shadow-glow-strong: 0 0 34px var(--color-accent-glow);

    /* ---- Motion ---- */
    --duration-fast: 150ms;
    --duration-base: 220ms;
    --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);

    /* ---- Layout ---- */
    --container: 1280px;
    --container-form: 1000px;
    --container-prose: 900px;
    --gutter: clamp(1.25rem, 4vw, 2.5rem);
    --header-height: 72px;
    --touch-target: 44px;

    /* ---- Stacking ---- */
    --z-sticky: 100;
    --z-bar: 80;
    --z-nav: 90;
    --z-dropdown: 200;
    --z-banner: 110;
    --z-gate: 1000;
    --z-error: 2000;
}
