/* 
  Design tokens - All colors, spacing, and transitions
  Theme switching via data-theme attribute on html
*/

:root {
    /* Typography */
    --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-mono: 'JetBrains Mono', monospace;

    /* Spacing scale */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    --space-4xl: 6rem;

    /* Border radius */
    --radius-sm: 0.375rem;
    --radius-md: 0.75rem;
    --radius-lg: 1rem;
    --radius-xl: 1.5rem;
    --radius-full: 9999px;

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 350ms ease;

    /* Shadows - light mode defaults */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 25px -3px rgba(0, 0, 0, 0.1);
    --shadow-glow: 0 0 30px rgba(59, 130, 246, 0.3);

    /* Container */
    --container-max: 1100px;
    --container-padding: 1.5rem;
}

/* Light theme (default) */
:root,
[data-theme="light"] {
    --bg-primary: #fafafa;
    --bg-secondary: #ffffff;
    --bg-tertiary: #f3f4f6;

    --text-primary: #1a1a2e;
    --text-secondary: #4b5563;
    --text-muted: #9ca3af;

    --accent: #3b82f6;
    --accent-hover: #2563eb;
    --accent-light: rgba(59, 130, 246, 0.1);

    --border-color: rgba(0, 0, 0, 0.08);
    --card-bg: rgba(255, 255, 255, 0.8);
    --glass-bg: rgba(255, 255, 255, 0.7);
    --glass-border: rgba(255, 255, 255, 0.5);

    --nav-bg: rgba(255, 255, 255, 0.85);
    --code-bg: #f1f5f9;
}

/* Dark theme */
[data-theme="dark"] {
    --bg-primary: #0a0a0f;
    --bg-secondary: #0a0a0f;
    --bg-tertiary: #0f0f18;

    --text-primary: #f0f0f0;
    --text-secondary: #a1a1aa;
    --text-muted: #71717a;

    --accent: #60a5fa;
    --accent-hover: #93c5fd;
    --accent-light: rgba(96, 165, 250, 0.15);

    --border-color: rgba(255, 255, 255, 0.06);
    --card-bg: rgba(15, 15, 24, 0.5);
    --glass-bg: rgba(15, 15, 24, 0.5);
    --glass-border: rgba(255, 255, 255, 0.1);

    --nav-bg: rgba(10, 10, 15, 0.9);
    --code-bg: #1e1e2e;

    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 10px 25px -3px rgba(0, 0, 0, 0.5);
    --shadow-glow: 0 0 40px rgba(59, 130, 246, 0.25);
}

/* Gradient definitions */
:root {
    --gradient-accent: linear-gradient(135deg, #3b82f6 0%, #06b6d4 50%, #22d3d8 100%);
    --gradient-subtle: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
    --gradient-mesh: radial-gradient(at 40% 20%, rgba(59, 130, 246, 0.15) 0px, transparent 50%),
        radial-gradient(at 80% 0%, rgba(6, 182, 212, 0.1) 0px, transparent 50%),
        radial-gradient(at 0% 50%, rgba(34, 211, 216, 0.1) 0px, transparent 50%);

    /* Floating orb colors */
    --orb-1: rgba(59, 130, 246, 0.4);
    --orb-2: rgba(6, 182, 212, 0.35);
    --orb-3: rgba(139, 92, 246, 0.3);
}

[data-theme="dark"] {
    --gradient-mesh: radial-gradient(at 40% 20%, rgba(59, 130, 246, 0.2) 0px, transparent 50%),
        radial-gradient(at 80% 0%, rgba(6, 182, 212, 0.15) 0px, transparent 50%),
        radial-gradient(at 0% 50%, rgba(34, 211, 216, 0.15) 0px, transparent 50%);

    --orb-1: rgba(59, 130, 246, 0.25);
    --orb-2: rgba(6, 182, 212, 0.2);
    --orb-3: rgba(139, 92, 246, 0.18);
}