/* ============================================================
   OsintCat Design Tokens v1 — Single Source of Truth
   Stripe-derived scale + OsintCat dark theme
   Re-extract: npx designlang osintcat.net
   ============================================================ */

:root {
  /* === TYPOGRAPHY === */
  --font-display: 'SamsungSharpSans', 'SamsungOne', system-ui, sans-serif;
  --font-body:    'SamsungOne', system-ui, -apple-system, sans-serif;
  --font-mono:    'JetBrains Mono', 'Courier New', monospace;

  /* Type scale — 10 named steps (Stripe-derived) */
  --text-xs:   12px;   /* labels, legal, captions */
  --text-sm:   14px;   /* secondary UI text */
  --text-base: 16px;   /* body copy */
  --text-md:   18px;   /* lead text */
  --text-lg:   20px;   /* subheadings */
  --text-xl:   24px;   /* section titles */
  --text-2xl:  32px;   /* page headings */
  --text-3xl:  44px;   /* hero subheadings */
  --text-4xl:  48px;   /* hero headings */
  --text-5xl:  56px;   /* display */

  /* === COLORS — dark theme (default) === */
  --primary:        #9d6ff7;
  --primary-hover:  #b388ff;
  --primary-fg:     #ffffff;
  --primary-glow:   rgba(157, 111, 247, 0.22);
  --primary-subtle: rgba(157, 111, 247, 0.08);

  --bg-page:       #121212;
  --bg-surface:    #1a1a1a;
  --bg-card:       #1a1a1a;
  --bg-card-hover: #232323;
  --bg-strip:      rgba(255, 255, 255, 0.02);
  --glass:         rgba(18, 18, 18, 0.85);

  --border-color:  #444444;
  --border-hover:  #555555;
  --border-subtle: rgba(255, 255, 255, 0.06);
  --border-strong: rgba(255, 255, 255, 0.15);

  --text-main:  #E0E0E0;
  --text-muted: #B0B0B0;
  --text-faint: #888888;

  --success: #10B981;
  --danger:  #ef4444;
  --warning: #f59e0b;
  --info:    #3b82f6;

  /* === SPACING (Stripe section-level scale) === */
  --space-1:   1px;
  --space-4:   4px;
  --space-8:   8px;
  --space-12:  12px;
  --space-16:  16px;
  --space-24:  24px;
  --space-32:  32px;
  --space-48:  48px;
  --space-64:  64px;
  --space-80:  80px;
  --space-96:  96px;

  /* === BORDER RADIUS (Stripe scale) === */
  --radius-xs:   1px;
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   16px;
  --radius-full: 100px;
  --radius:      var(--radius-md); /* default alias */

  /* === SHADOWS — dark-adapted Stripe 4-step scale === */
  --shadow-sm: rgba(0, 0, 0, 0.30) 0px 2px 5px 0px;
  --shadow-md: rgba(0, 0, 0, 0.35) 0px 4px 8px 0px;
  --shadow-lg: rgba(0, 0, 0, 0.30) 0px 4px 24px 0px, rgba(0, 0, 0, 0.20) 0px 1px 2px 0px;
  --shadow-xl: rgba(0, 0, 0, 0.50) 0px 15px 35px 0px;

  /* === MOTION — Stripe cubic-bezier === */
  --ease-stripe: cubic-bezier(0.3, 0, 0.2, 1);
  --ease-out:    cubic-bezier(0, 0, 0.2, 1);
  --dur-fast:    0.1s;
  --dur-normal:  0.2s;
  --dur-slow:    0.3s;
  --transition-fast:   all var(--dur-fast)   var(--ease-stripe);
  --transition-normal: all var(--dur-normal) var(--ease-stripe);
  --transition-slow:   all var(--dur-slow)   var(--ease-stripe);

  /* === LAYOUT === */
  --max-width:     1200px;
  --header-height: 64px;
  --nav-height:    64px;

  /* === GRADIENTS — Stripe visual language, dark-adapted === */
  --grad-primary-glow:
    radial-gradient(ellipse 80% 50% at 50% 0%,
      rgba(157, 111, 247, 0.12) 0%, transparent 70%);

  --grad-hero:
    radial-gradient(ellipse 60% 40% at 25% 60%,
      rgba(157, 111, 247, 0.10) 0%, transparent 55%),
    radial-gradient(ellipse 50% 35% at 80% 20%,
      rgba(93, 2, 82, 0.08) 0%, transparent 50%);

  --grad-card-accent:
    linear-gradient(135deg,
      rgba(157, 111, 247, 0.06) 0%, transparent 50%);

  --grad-surface:
    linear-gradient(180deg, var(--bg-surface) 0%, var(--bg-page) 100%);

  --grad-cta-bg:
    radial-gradient(ellipse 90% 60% at 50% 100%,
      rgba(157, 111, 247, 0.15) 0%, transparent 70%);
}

/* Light theme overrides */
[data-theme="light"] {
  --primary:        #5b21b6;
  --primary-hover:  #4c1d95;
  --primary-glow:   rgba(91, 33, 182, 0.12);
  --primary-subtle: rgba(91, 33, 182, 0.06);

  --bg-page:       #fafafa;
  --bg-surface:    #ffffff;
  --bg-card:       #f5f7fb;
  --bg-card-hover: #edf0f7;
  --bg-strip:      #f0f2f7;
  --glass:         rgba(250, 250, 250, 0.92);

  --border-color:  #dde2ed;
  --border-hover:  #c5ccdb;
  --border-subtle: rgba(0, 0, 0, 0.06);
  --border-strong: rgba(0, 0, 0, 0.15);

  --text-main:  #0f172a;
  --text-muted: #3d4a5c;
  --text-faint: #4a5568;

  --shadow-sm: rgba(0, 0, 0, 0.06) 0px 2px 5px 0px;
  --shadow-md: rgba(0, 0, 0, 0.08) 0px 4px 8px 0px;
  --shadow-lg: rgba(0, 0, 0, 0.06) 0px 4px 24px 0px, rgba(0, 0, 0, 0.03) 0px 1px 2px 0px;
  --shadow-xl: rgba(50, 50, 93, 0.12) 0px 15px 35px 0px;

  --grad-primary-glow:
    radial-gradient(ellipse 80% 50% at 50% 0%,
      rgba(91, 33, 182, 0.06) 0%, transparent 70%);
  --grad-hero:
    radial-gradient(ellipse 60% 40% at 25% 60%,
      rgba(91, 33, 182, 0.05) 0%, transparent 55%),
    radial-gradient(ellipse 50% 35% at 80% 20%,
      rgba(93, 2, 82, 0.03) 0%, transparent 50%);
  --grad-card-accent:
    linear-gradient(135deg,
      rgba(91, 33, 182, 0.04) 0%, transparent 50%);
  --grad-surface:
    linear-gradient(180deg, #ffffff 0%, #f1f5f9 100%);
  --grad-cta-bg:
    radial-gradient(ellipse 90% 60% at 50% 100%,
      rgba(91, 33, 182, 0.08) 0%, transparent 70%);
}
