/* ==========================================================================
   Design Tokens — Single source of truth for all visual properties
   ========================================================================== */

:root {
    /* ---- Brand Colors ---- */
    --accent: #4DA3FF;
    --accent-hover: #3B8FE8;
    --accent-soft: rgba(77, 163, 255, 0.08);
    --accent-border: rgba(77, 163, 255, 0.25);

    /* ---- Text ---- */
    --text-primary: #111827;
    --text-secondary: #374151;
    --text-muted: #6b7280;
    --text-inverse: #1a1a2e;
    --text-inverse-muted: #5b5e78;

    /* ---- Backgrounds ---- */
    --bg-page: #fafafa;
    --bg-white: #ffffff;
    --bg-subtle: #f3f4f6;
    --bg-dark: #f4fafd;

    /* ---- Borders ---- */
    --border: #e5e7eb;
    --border-strong: #d1d5db;

    /* ---- Code ---- */
    --code-bg: #1e1e1e;
    --code-text: #d4d4d4;
    --code-comment: #6a9955;
    --code-keyword: #569cd6;
    --code-string: #ce9178;
    --code-function: #dcdcaa;
    --code-variable: #9cdcfe;

    /* ---- Status ---- */
    --success: #22c55e;
    --warning: #f59e0b;
    --error: #ef4444;

    /* ---- Typography ---- */
    --font-sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-mono: 'IBM Plex Mono', 'Monaco', 'Menlo', 'Consolas', monospace;

    --text-xs: 0.75rem;     /* 12px */
    --text-sm: 0.875rem;    /* 14px */
    --text-base: 1rem;      /* 16px */
    --text-lg: 1.125rem;    /* 18px */
    --text-xl: 1.25rem;     /* 20px */
    --text-2xl: 1.5rem;     /* 24px */
    --text-3xl: 2rem;       /* 32px */
    --text-4xl: 2.5rem;     /* 40px */
    --text-5xl: 3.5rem;     /* 56px — hero headline desktop */

    --leading-tight: 1.3;
    --leading-normal: 1.7;
    --leading-relaxed: 1.8;

    /* ---- Spacing ---- */
    --space-xs: 0.25rem;    /* 4px */
    --space-sm: 0.5rem;     /* 8px */
    --space-md: 1rem;       /* 16px */
    --space-lg: 1.5rem;     /* 24px */
    --space-xl: 2rem;       /* 32px */
    --space-2xl: 3rem;      /* 48px */
    --space-3xl: 4rem;      /* 64px */
    --space-4xl: 6rem;      /* 96px */
    --space-5xl: 5rem;      /* 80px — large section padding */
    --space-6xl: 7.5rem;    /* 120px — hero padding */

    /* ---- Layout ---- */
    --max-width: 1100px;
    --max-width-narrow: 800px;
    --max-width-wide: 1200px;
    --nav-height: 56px;
    --border-radius: 8px;
    --border-radius-sm: 4px;
    --border-radius-lg: 12px;

    /* ---- Transitions ---- */
    --transition-fast: 0.15s ease;
    --transition-base: 0.2s ease;
    --transition-slow: 0.4s ease;

    /* ---- Shadows ---- */
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.1);

    /* ---- Purple accent (from logo) ---- */
    --accent-purple: #A78BFA;
    --accent-purple-soft: rgba(167, 139, 250, 0.08);

    /* ---- "Dark" section surfaces (light cyan-white-blue theme) ---- */
    --bg-dark-surface: rgba(255, 255, 255, 0.7);
    --bg-dark-surface-hover: rgba(255, 255, 255, 0.9);
    --border-dark: rgba(77, 163, 255, 0.12);

    /* ---- Hero gradient (cyan → white → blue) ---- */
    --hero-gradient-start: #e4f7fa;
    --hero-gradient-mid: #f8fbff;
    --hero-gradient-end: #e6eefe;
    --hero-glow: rgba(77, 200, 240, 0.12);
    --hero-glow-blue: rgba(77, 130, 255, 0.10);
}

