/* ============================================================
   Bluetech Design Tokens — v1.0
   Source: tokens.json
   Format: CSS custom properties
   ============================================================ */

:root {
  /* ── Color · Brand ────────────────────────────────────── */
  --bt-color-ink: #0a1438;
  --bt-color-ink-soft: #132147;
  --bt-color-bg: #050a24;
  --bt-color-cyan: #22d3ee;
  --bt-color-cyan-soft: #67e8f9;
  --bt-color-blue: #3b82f6;
  --bt-color-violet: #a78bfa;
  --bt-color-violet-deep: #7c3aed;

  /* ── Color · Surface ──────────────────────────────────── */
  --bt-color-paper: #ffffff;
  --bt-color-paper-soft: #f5f7fb;
  --bt-color-paper-mute: #eef2f7;
  --bt-color-elevated: #ffffff;
  --bt-color-overlay: rgba(10, 20, 56, 0.6);

  /* ── Color · Text ─────────────────────────────────────── */
  --bt-text-primary: var(--bt-color-ink);
  --bt-text-secondary: #334155;
  --bt-text-muted: #64748b;
  --bt-text-subtle: #94a3b8;
  --bt-text-on-dark: #ffffff;
  --bt-text-on-dark-mute: rgba(255, 255, 255, 0.7);
  --bt-text-on-accent: var(--bt-color-ink);

  /* ── Color · Border ───────────────────────────────────── */
  --bt-border-subtle: #e2e8f0;
  --bt-border-default: #cbd5e1;
  --bt-border-strong: #94a3b8;
  --bt-border-focus: var(--bt-color-cyan);
  --bt-border-on-dark: rgba(255, 255, 255, 0.12);

  /* ── Color · Semantic ─────────────────────────────────── */
  --bt-color-success: #16a34a;
  --bt-color-success-soft: #dcfce7;
  --bt-color-warning: #fbbf24;
  --bt-color-warning-soft: #fef3c7;
  --bt-color-danger: #dc2626;
  --bt-color-danger-soft: #fee2e2;
  --bt-color-info: var(--bt-color-cyan);
  --bt-color-info-soft: rgba(34, 211, 238, 0.12);

  /* ── Gradient ─────────────────────────────────────────── */
  --bt-gradient-brand: linear-gradient(135deg, #67e8f9 0%, #3b82f6 50%, #7c3aed 100%);
  --bt-gradient-cyan: linear-gradient(135deg, #67e8f9 0%, #3b82f6 100%);
  --bt-gradient-violet: linear-gradient(135deg, #a78bfa 0%, #7c3aed 100%);
  --bt-gradient-ink: radial-gradient(circle at 50% 50%, #132147 0%, #050a24 100%);

  /* ── Font · Family ────────────────────────────────────── */
  --bt-font-display: 'Manrope', sans-serif;
  --bt-font-heading: 'Sora', sans-serif;
  --bt-font-body: 'Space Grotesk', sans-serif;
  --bt-font-mono: 'JetBrains Mono', monospace;

  /* ── Font · Weight ────────────────────────────────────── */
  --bt-weight-thin: 200;
  --bt-weight-light: 300;
  --bt-weight-regular: 400;
  --bt-weight-medium: 500;
  --bt-weight-semibold: 600;
  --bt-weight-bold: 700;

  /* ── Font · Size ──────────────────────────────────────── */
  --bt-size-2xs: 11px;
  --bt-size-xs: 12px;
  --bt-size-sm: 13px;
  --bt-size-md: 15px;
  --bt-size-lg: 16px;
  --bt-size-xl: 18px;
  --bt-size-2xl: 24px;
  --bt-size-3xl: 32px;
  --bt-size-4xl: 48px;
  --bt-size-5xl: 64px;
  --bt-size-6xl: 72px;
  --bt-size-7xl: 96px;

  /* ── Font · Line height ───────────────────────────────── */
  --bt-leading-tight: 1.0;
  --bt-leading-snug: 1.2;
  --bt-leading-normal: 1.5;
  --bt-leading-relaxed: 1.65;

  /* ── Font · Letter spacing ────────────────────────────── */
  --bt-tracking-tighter: -0.035em;
  --bt-tracking-tight: -0.02em;
  --bt-tracking-normal: 0;
  --bt-tracking-wide: 0.04em;
  --bt-tracking-wider: 0.1em;
  --bt-tracking-widest: 0.4em;

  /* ── Spacing (4px base) ───────────────────────────────── */
  --bt-space-0: 0;
  --bt-space-px: 1px;
  --bt-space-1: 4px;
  --bt-space-2: 8px;
  --bt-space-3: 12px;
  --bt-space-4: 16px;
  --bt-space-5: 20px;
  --bt-space-6: 24px;
  --bt-space-8: 32px;
  --bt-space-10: 40px;
  --bt-space-12: 48px;
  --bt-space-16: 64px;
  --bt-space-20: 80px;
  --bt-space-24: 96px;
  --bt-space-32: 128px;

  /* ── Radius ───────────────────────────────────────────── */
  --bt-radius-none: 0;
  --bt-radius-sm: 4px;
  --bt-radius-md: 8px;
  --bt-radius-lg: 12px;
  --bt-radius-xl: 16px;
  --bt-radius-2xl: 24px;
  --bt-radius-full: 9999px;

  /* ── Shadow ───────────────────────────────────────────── */
  --bt-shadow-xs: 0 1px 2px rgba(10, 20, 56, 0.06);
  --bt-shadow-sm: 0 2px 4px rgba(10, 20, 56, 0.08);
  --bt-shadow-md: 0 6px 16px rgba(10, 20, 56, 0.10);
  --bt-shadow-lg: 0 12px 32px rgba(10, 20, 56, 0.14);
  --bt-shadow-xl: 0 24px 64px rgba(10, 20, 56, 0.18);
  --bt-shadow-glow-cyan: 0 0 32px rgba(34, 211, 238, 0.5);
  --bt-shadow-glow-violet: 0 0 32px rgba(167, 139, 250, 0.5);
  --bt-shadow-ring-focus: 0 0 0 3px rgba(34, 211, 238, 0.35);

  /* ── Duration ─────────────────────────────────────────── */
  --bt-duration-instant: 0ms;
  --bt-duration-fast: 120ms;
  --bt-duration-base: 200ms;
  --bt-duration-slow: 320ms;
  --bt-duration-slower: 500ms;

  /* ── Easing ───────────────────────────────────────────── */
  --bt-ease-linear: cubic-bezier(0, 0, 1, 1);
  --bt-ease-out: cubic-bezier(0.2, 0.7, 0.3, 1);
  --bt-ease-in: cubic-bezier(0.7, 0, 0.8, 0.3);
  --bt-ease-in-out: cubic-bezier(0.6, 0, 0.4, 1);
  --bt-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ── Container ────────────────────────────────────────── */
  --bt-container-sm: 640px;
  --bt-container-md: 768px;
  --bt-container-lg: 1024px;
  --bt-container-xl: 1200px;
  --bt-container-2xl: 1440px;

  /* ── Z-index ──────────────────────────────────────────── */
  --bt-z-base: 0;
  --bt-z-dropdown: 100;
  --bt-z-sticky: 200;
  --bt-z-fixed: 300;
  --bt-z-overlay: 400;
  --bt-z-modal: 500;
  --bt-z-popover: 600;
  --bt-z-toast: 700;
  --bt-z-tooltip: 800;
}

/* ── Breakpoints (CSS custom-media draft, plus utilities) ─ */
/* Use in @media queries directly:
   @media (min-width: 768px) { ... }            -- md
   @media (min-width: 1024px) { ... }           -- lg
*/

/* ── Type scale utility classes ───────────────────────── */
.bt-display { font-family: var(--bt-font-display); font-weight: var(--bt-weight-thin);    font-size: var(--bt-size-7xl); line-height: var(--bt-leading-tight); letter-spacing: var(--bt-tracking-tighter); }
.bt-h1      { font-family: var(--bt-font-display); font-weight: var(--bt-weight-light);   font-size: var(--bt-size-6xl); line-height: var(--bt-leading-tight); letter-spacing: var(--bt-tracking-tighter); }
.bt-h2      { font-family: var(--bt-font-display); font-weight: var(--bt-weight-light);   font-size: var(--bt-size-4xl); line-height: var(--bt-leading-snug);  letter-spacing: var(--bt-tracking-tight); }
.bt-h3      { font-family: var(--bt-font-heading); font-weight: var(--bt-weight-semibold);font-size: var(--bt-size-2xl); line-height: var(--bt-leading-snug);  letter-spacing: var(--bt-tracking-tight); }
.bt-h4      { font-family: var(--bt-font-heading); font-weight: var(--bt-weight-semibold);font-size: var(--bt-size-lg);  line-height: var(--bt-leading-snug); }
.bt-body    { font-family: var(--bt-font-body);    font-weight: var(--bt-weight-regular); font-size: var(--bt-size-md);  line-height: var(--bt-leading-relaxed); color: var(--bt-text-secondary); }
.bt-body-sm { font-family: var(--bt-font-body);    font-weight: var(--bt-weight-regular); font-size: var(--bt-size-sm);  line-height: var(--bt-leading-relaxed); color: var(--bt-text-muted); }
.bt-caption { font-family: var(--bt-font-body);    font-weight: var(--bt-weight-regular); font-size: var(--bt-size-xs);  line-height: var(--bt-leading-normal);  color: var(--bt-text-muted); }
.bt-kicker  { font-family: var(--bt-font-body);    font-weight: var(--bt-weight-semibold);font-size: var(--bt-size-2xs); line-height: var(--bt-leading-normal);  letter-spacing: var(--bt-tracking-widest); text-transform: uppercase; color: var(--bt-color-cyan); }
.bt-mono    { font-family: var(--bt-font-mono);    font-weight: var(--bt-weight-regular); font-size: var(--bt-size-xs);  line-height: var(--bt-leading-relaxed); letter-spacing: var(--bt-tracking-wide); }
