/* =============================================================
   Orion DS — Design Tokens (CSS Custom Properties)
   Generated: 2026-03-12 | Version: 1.0.0
   Source: Brand Identity 2026
   ============================================================= */

/* --- Base Tokens (primitives) --- */
:root {
  /* Color: Lime */
  --color-lime-300: #e0ff9e;
  --color-lime-400: #d4ff7a;
  --color-lime-500: #c0ff42;
  --color-lime-600: #a8e020;
  --color-lime-700: #8abf10;

  /* Color: Purple */
  --color-purple-300: #a078f0;
  --color-purple-400: #7b4de6;
  --color-purple-500: #5c1bda;
  --color-purple-600: #4a12b0;
  --color-purple-700: #380d88;

  /* Color: Dark */
  --color-dark-950: #0c0b12;
  --color-dark-900: #161523;
  --color-dark-800: #1e1d30;
  --color-dark-700: #2a2940;
  --color-dark-600: #3a3955;

  /* Color: Light */
  --color-light-50: #f5f7f7;
  --color-light-100: #eaefef;
  --color-light-200: #d5dede;
  --color-light-300: #bcc5c5;

  /* Color: Neutrals */
  --color-white: #ffffff;
  --color-black: #000000;

  /* Color: Feedback */
  --color-feedback-success: #22c55e;
  --color-feedback-error: #ef4444;
  --color-feedback-warning: #f59e0b;
  --color-feedback-info: #3b82f6;

  /* Font Family */
  --font-family-heading: 'Mont', sans-serif;
  --font-family-display: 'Avalon', cursive;
  --font-family-body: 'Open Sans', sans-serif;

  /* Font Size */
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 1.875rem;
  --font-size-4xl: 2.25rem;
  --font-size-5xl: 3rem;
  --font-size-6xl: 3.75rem;

  /* Font Weight */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-black: 900;

  /* Line Height */
  --line-height-tight: 1.1;
  --line-height-snug: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;

  /* Letter Spacing */
  --letter-spacing-tight: -0.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.05em;
  --letter-spacing-wider: 0.1em;

  /* Spacing */
  --spacing-1: 0.25rem;
  --spacing-2: 0.5rem;
  --spacing-3: 0.75rem;
  --spacing-4: 1rem;
  --spacing-5: 1.25rem;
  --spacing-6: 1.5rem;
  --spacing-8: 2rem;
  --spacing-10: 2.5rem;
  --spacing-12: 3rem;
  --spacing-16: 4rem;
  --spacing-20: 5rem;
  --spacing-24: 6rem;

  /* Radius */
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-2xl: 1.5rem;
  --radius-full: 9999px;

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.25);
  --shadow-md: 0 4px 6px rgba(0,0,0,0.3);
  --shadow-lg: 0 10px 15px rgba(0,0,0,0.35);
  --shadow-xl: 0 20px 25px rgba(0,0,0,0.4);
  --shadow-glow-lime: 0 0 20px rgba(192,255,66,0.3);
  --shadow-glow-purple: 0 0 20px rgba(92,27,218,0.3);

  /* Duration */
  --duration-fast: 150ms;
  --duration-normal: 250ms;
  --duration-slow: 400ms;

  /* Easing */
  --easing-default: cubic-bezier(0.4, 0, 0.2, 1);
  --easing-in: cubic-bezier(0.4, 0, 1, 1);
  --easing-out: cubic-bezier(0, 0, 0.2, 1);
  --easing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Z-Index */
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-modal: 300;
  --z-toast: 400;
}

/* --- Semantic Tokens: Light Mode (default) --- */
:root {
  /* Surface */
  --surface-default: var(--color-white);
  --surface-subtle: var(--color-light-50);
  --surface-raised: var(--color-white);
  --surface-overlay: rgba(0,0,0,0.5);
  --surface-accent: var(--color-purple-500);

  /* Text */
  --text-primary: var(--color-dark-900);
  --text-secondary: var(--color-dark-600);
  --text-accent: var(--color-purple-500);
  --text-inverse: var(--color-light-100);
  --text-on-accent: var(--color-white);

  /* Border */
  --border-default: var(--color-light-200);
  --border-subtle: var(--color-light-100);
  --border-accent: var(--color-purple-500);
  --border-focus: var(--color-purple-400);

  /* Action: Primary */
  --action-primary-bg: var(--color-purple-500);
  --action-primary-fg: var(--color-white);
  --action-primary-hover: var(--color-purple-400);
  --action-primary-active: var(--color-purple-600);

  /* Action: Secondary */
  --action-secondary-bg: var(--color-lime-500);
  --action-secondary-fg: var(--color-dark-900);
  --action-secondary-hover: var(--color-lime-400);

  /* Action: Ghost */
  --action-ghost-bg: transparent;
  --action-ghost-fg: var(--color-purple-500);
  --action-ghost-hover: var(--color-light-100);

  /* Feedback */
  --feedback-success-bg: rgba(34,197,94,0.1);
  --feedback-success-fg: #16a34a;
  --feedback-error-bg: rgba(239,68,68,0.1);
  --feedback-error-fg: #dc2626;
  --feedback-warning-bg: rgba(245,158,11,0.1);
  --feedback-warning-fg: #d97706;
  --feedback-info-bg: rgba(59,130,246,0.1);
  --feedback-info-fg: #2563eb;

  /* Focus */
  --focus-ring: 0 0 0 3px rgba(92,27,218,0.4);
}

/* --- Semantic Tokens: Dark Mode --- */
[data-theme="dark"] {
  /* Surface */
  --surface-default: var(--color-dark-900);
  --surface-subtle: var(--color-dark-800);
  --surface-raised: var(--color-dark-700);
  --surface-overlay: rgba(12,11,18,0.8);
  --surface-accent: var(--color-lime-500);

  /* Text */
  --text-primary: var(--color-light-100);
  --text-secondary: var(--color-light-300);
  --text-accent: var(--color-lime-500);
  --text-inverse: var(--color-dark-900);
  --text-on-accent: var(--color-dark-900);

  /* Border */
  --border-default: var(--color-dark-600);
  --border-subtle: var(--color-dark-700);
  --border-accent: var(--color-lime-500);
  --border-focus: var(--color-lime-400);

  /* Action: Primary */
  --action-primary-bg: var(--color-lime-500);
  --action-primary-fg: var(--color-dark-900);
  --action-primary-hover: var(--color-lime-400);
  --action-primary-active: var(--color-lime-600);

  /* Action: Secondary */
  --action-secondary-bg: var(--color-purple-500);
  --action-secondary-fg: var(--color-white);
  --action-secondary-hover: var(--color-purple-400);

  /* Action: Ghost */
  --action-ghost-bg: transparent;
  --action-ghost-fg: var(--color-lime-500);
  --action-ghost-hover: var(--color-dark-700);

  /* Feedback */
  --feedback-success-bg: rgba(34,197,94,0.15);
  --feedback-success-fg: #4ade80;
  --feedback-error-bg: rgba(239,68,68,0.15);
  --feedback-error-fg: #f87171;
  --feedback-warning-bg: rgba(245,158,11,0.15);
  --feedback-warning-fg: #fbbf24;
  --feedback-info-bg: rgba(59,130,246,0.15);
  --feedback-info-fg: #60a5fa;

  /* Focus */
  --focus-ring: 0 0 0 3px rgba(192,255,66,0.4);
}

/* --- System preference dark mode fallback --- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    /* Surface */
    --surface-default: var(--color-dark-900);
    --surface-subtle: var(--color-dark-800);
    --surface-raised: var(--color-dark-700);
    --surface-overlay: rgba(12,11,18,0.8);
    --surface-accent: var(--color-lime-500);

    /* Text */
    --text-primary: var(--color-light-100);
    --text-secondary: var(--color-light-300);
    --text-accent: var(--color-lime-500);
    --text-inverse: var(--color-dark-900);
    --text-on-accent: var(--color-dark-900);

    /* Border */
    --border-default: var(--color-dark-600);
    --border-subtle: var(--color-dark-700);
    --border-accent: var(--color-lime-500);
    --border-focus: var(--color-lime-400);

    /* Action: Primary */
    --action-primary-bg: var(--color-lime-500);
    --action-primary-fg: var(--color-dark-900);
    --action-primary-hover: var(--color-lime-400);
    --action-primary-active: var(--color-lime-600);

    /* Action: Secondary */
    --action-secondary-bg: var(--color-purple-500);
    --action-secondary-fg: var(--color-white);
    --action-secondary-hover: var(--color-purple-400);

    /* Action: Ghost */
    --action-ghost-bg: transparent;
    --action-ghost-fg: var(--color-lime-500);
    --action-ghost-hover: var(--color-dark-700);

    /* Feedback */
    --feedback-success-bg: rgba(34,197,94,0.15);
    --feedback-success-fg: #4ade80;
    --feedback-error-bg: rgba(239,68,68,0.15);
    --feedback-error-fg: #f87171;
    --feedback-warning-bg: rgba(245,158,11,0.15);
    --feedback-warning-fg: #fbbf24;
    --feedback-info-bg: rgba(59,130,246,0.15);
    --feedback-info-fg: #60a5fa;

    /* Focus */
    --focus-ring: 0 0 0 3px rgba(192,255,66,0.4);
  }
}
