/**
 * GoTryTech Premium CSS Design Token System
 * 
 * Feeling: Frontend Masters × Linear × Vercel Docs
 * Primary Accent: #00D46A (GoTryTech logo green)
 * Dark Theme: DEFAULT
 * Light Theme: [data-theme="light"]
 */

:root {
  /* ==========================================================================
     COLOR TOKENS - DARK MODE (DEFAULT)
     ========================================================================== */

  /* -- Backgrounds -- */
  --bg-canvas:       #050816;   /* Deepest — page background */
  --bg-base:         #0B1120;   /* Section backgrounds */
  --bg-elevated:     #111827;   /* Cards, panels, inputs */
  --bg-overlay:      #1E293B;   /* Dropdowns, tooltips, modals */
  --bg-glass:        rgba(17, 24, 39, 0.65);
  --bg-glass-light:  rgba(30, 41, 59, 0.50);

  /* -- Brand Green -- */
  --green-500:       #00D46A;   /* Primary accent */
  --green-400:       #00FF80;   /* Hover state */
  --green-300:       #4DFFA0;   /* Active / selected */
  --green-muted:     rgba(0, 212, 106, 0.12);
  --green-border:    rgba(0, 212, 106, 0.30);
  --green-glow:      rgba(0, 212, 106, 0.20);
  --green-glow-lg:   rgba(0, 212, 106, 0.08);

  /* -- Supporting Accents -- */
  --cyan-500:        #00C9D6;   /* Secondary — info, tech badges */
  --cyan-muted:      rgba(0, 201, 214, 0.12);
  --cyan-border:     rgba(0, 201, 214, 0.30);

  --purple-500:      #7C6BF8;   /* Tertiary — learning paths, premium */
  --purple-muted:    rgba(124, 107, 248, 0.12);
  --purple-border:   rgba(124, 107, 248, 0.30);

  --amber-500:       #F59E0B;   /* Warning — intermediate difficulty */
  --amber-muted:     rgba(245, 158, 11, 0.12);

  --red-500:         #EF4444;   /* Danger — advanced difficulty */
  --red-muted:       rgba(239, 68, 68, 0.12);

  /* -- Text -- */
  --text-primary:    #F1F5F9;   /* Headings, primary content */
  --text-secondary:  #94A3B8;   /* Body text, descriptions */
  --text-tertiary:   #64748B;   /* Captions, meta, placeholders */
  --text-muted:      #475569;   /* Disabled, subtle labels */
  --text-inverse:    #050816;   /* Text on accent backgrounds */
  --text-accent:     #00D46A;   /* Highlighted text, links */
  --text-code:       #00D46A;   /* Inline code */

  /* -- Borders -- */
  --border-faint:    rgba(255, 255, 255, 0.04);
  --border-subtle:   rgba(255, 255, 255, 0.07);
  --border-medium:   rgba(255, 255, 255, 0.11);
  --border-strong:   rgba(255, 255, 255, 0.18);
  --border-accent:   rgba(0, 212, 106, 0.35);
  --border-focus:    rgba(0, 212, 106, 0.60);

  /* -- Glassmorphism -- */
  --glass-blur-sm:   blur(8px);
  --glass-blur-md:   blur(14px);
  --glass-blur-lg:   blur(24px);
  --glass-surface:   rgba(17, 24, 39, 0.65);
  --glass-surface-2: rgba(11, 17, 32, 0.80);
  --glass-border:    rgba(255, 255, 255, 0.07);
  --glass-shadow:    0 8px 32px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.04);

  /* -- Elevation Shadows -- */
  --shadow-xs:       0 1px 2px rgba(0, 0, 0, 0.30);
  --shadow-sm:       0 2px 8px rgba(0, 0, 0, 0.35);
  --shadow-md:       0 4px 16px rgba(0, 0, 0, 0.40);
  --shadow-lg:       0 8px 32px rgba(0, 0, 0, 0.50);
  --shadow-xl:       0 16px 48px rgba(0, 0, 0, 0.60);
  --shadow-2xl:      0 24px 64px rgba(0, 0, 0, 0.70);
  --shadow-glow-sm:  0 0 16px var(--green-glow);
  --shadow-glow-md:  0 0 32px var(--green-glow);
  --shadow-glow-lg:  0 0 64px var(--green-glow-lg);
  --shadow-card-hover: 0 8px 40px rgba(0, 0, 0, 0.50), 0 0 24px var(--green-glow);

  /* -- Scrollbar -- */
  --scrollbar-track: #050816;
  --scrollbar-thumb: #1e293b;

  /* ==========================================================================
     SPACING SCALE (4px Base Unit)
     ========================================================================== */
  --space-px:  1px;
  --space-0-5: 0.125rem;  /*  2px */
  --space-1:   0.25rem;   /*  4px */
  --space-1-5: 0.375rem;  /*  6px */
  --space-2:   0.5rem;    /*  8px */
  --space-2-5: 0.625rem;  /* 10px */
  --space-3:   0.75rem;   /* 12px */
  --space-3-5: 0.875rem;  /* 14px */
  --space-4:   1rem;      /* 16px */
  --space-5:   1.25rem;   /* 20px */
  --space-6:   1.5rem;    /* 24px */
  --space-7:   1.75rem;   /* 28px */
  --space-8:   2rem;      /* 32px */
  --space-9:   2.25rem;   /* 36px */
  --space-10:  2.5rem;    /* 40px */
  --space-11:  2.75rem;   /* 44px */
  --space-12:  3rem;      /* 48px */
  --space-14:  3.5rem;    /* 56px */
  --space-16:  4rem;      /* 64px */
  --space-20:  5rem;      /* 80px */
  --space-24:  6rem;      /* 96px */
  --space-28:  7rem;      /* 112px */
  --space-32:  8rem;      /* 128px */

  /* ==========================================================================
     TYPOGRAPHY TOKENS
     ========================================================================== */
  /* Font Families */
  --font-sans:      'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono:      'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Consolas', monospace;
  --font-display:   'Inter', sans-serif;

  /* Font Sizes */
  --text-2xs:    0.625rem;   /* 10px */
  --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:    1.875rem;   /* 30px */
  --text-4xl:    2.25rem;    /* 36px */
  --text-5xl:    3rem;       /* 48px */
  --text-6xl:    3.75rem;    /* 60px */

  /* Fluid Display Sizes — clamp(min, preferred, max) */
  --text-display-sm:  clamp(1.875rem, 4vw,  2.5rem);
  --text-display-md:  clamp(2.25rem,  5vw,  3.5rem);
  --text-display-lg:  clamp(2.5rem,   6vw,  4.5rem);
  --text-display-xl:  clamp(3rem,     7vw,  5.5rem);

  /* Font Weights */
  --weight-thin:       100;
  --weight-light:      300;
  --weight-regular:    400;
  --weight-medium:     500;
  --weight-semibold:   600;
  --weight-bold:       700;
  --weight-extrabold:  800;
  --weight-black:      900;

  /* Line Heights */
  --leading-none:     1;
  --leading-tight:    1.20;
  --leading-snug:     1.35;
  --leading-normal:   1.50;
  --leading-relaxed:  1.625;
  --leading-loose:    1.75;
  --leading-article:  1.80;  /* For long-form reading */

  /* Letter Spacing */
  --tracking-tight:   -0.04em;
  --tracking-snug:    -0.02em;
  --tracking-normal:   0em;
  --tracking-wide:     0.04em;
  --tracking-wider:    0.08em;
  --tracking-widest:   0.12em;

  /* ==========================================================================
     BORDER RADIUS TOKENS
     ========================================================================== */
  --radius-none:  0;
  --radius-xs:    2px;
  --radius-sm:    4px;
  --radius-md:    8px;
  --radius-lg:    12px;
  --radius-xl:    16px;
  --radius-2xl:   20px;
  --radius-3xl:   24px;
  --radius-4xl:   32px;
  --radius-full:  9999px;

  /* Semantic Radii */
  --radius-card:    var(--radius-xl);   /* 16px — all cards */
  --radius-button:  var(--radius-md);   /* 8px  — all buttons */
  --radius-input:   var(--radius-md);   /* 8px  — all inputs */
  --radius-badge:   var(--radius-full); /* pill — all badges  */
  --radius-tag:     var(--radius-full); /* pill — all tags    */
  --radius-panel:   var(--radius-2xl);  /* 20px — mega menus, modals */

  /* ==========================================================================
     MOTION TOKENS
     ========================================================================== */
  /* Easing curves */
  --ease-linear:    linear;
  --ease-in:        cubic-bezier(0.4, 0, 1, 1);
  --ease-out:       cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out:    cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce:    cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-spring:    cubic-bezier(0.175, 0.885, 0.32, 1.275);

  /* Duration */
  --duration-instant: 50ms;
  --duration-fast:    100ms;
  --duration-normal:  200ms;
  --duration-slow:    350ms;
  --duration-slower:  500ms;
  --duration-theme:   400ms;  /* Dark/light mode switch */

  /* Semantic Transitions */
  --transition-color:     color var(--duration-fast) var(--ease-out),
                          background-color var(--duration-fast) var(--ease-out),
                          border-color var(--duration-fast) var(--ease-out);
  --transition-transform: transform var(--duration-normal) var(--ease-out);
  --transition-shadow:    box-shadow var(--duration-normal) var(--ease-out);
  --transition-all:       all var(--duration-normal) var(--ease-out);
  --transition-card:      transform var(--duration-normal) var(--ease-out),
                          box-shadow var(--duration-normal) var(--ease-out),
                          border-color var(--duration-fast) var(--ease-out);

  /* ==========================================================================
     LAYOUT TOKENS
     ========================================================================== */
  /* Container widths */
  --container-sm:    640px;
  --container-md:    768px;
  --container-lg:    1024px;
  --container-xl:    1280px;
  --container-2xl:   1440px;
  --container-prose: 720px;   /* Ideal reading width */
  --container-narrow:560px;   /* CTAs, forms, hero */

  /* Header */
  --header-height-mobile:  60px;
  --header-height-desktop: 72px;

  /* Sidebar */
  --sidebar-width:     300px;
  --sidebar-gap:       var(--space-10);

  /* Z-index scale */
  --z-0:       0;
  --z-10:     10;
  --z-20:     20;
  --z-30:     30;
  --z-dropdown:  100;
  --z-sticky:    200;
  --z-overlay:   300;
  --z-modal:     400;
  --z-toast:     500;
  --z-top:       999;
}

/* ==========================================================================
   COLOR TOKENS - LIGHT MODE OVERRIDES
   ========================================================================== */
[data-theme="light"] {
  /* -- Backgrounds -- */
  --bg-canvas:       #F0F4F8;
  --bg-base:         #F8FAFC;
  --bg-elevated:     #FFFFFF;
  --bg-overlay:      #FFFFFF;
  --bg-glass:        rgba(255, 255, 255, 0.80);
  --bg-glass-light:  rgba(248, 250, 252, 0.70);

  /* -- Text -- */
  --text-primary:    #0D1117;
  --text-secondary:  #374151;
  --text-tertiary:   #6B7280;
  --text-muted:      #9CA3AF;
  --text-inverse:    #FFFFFF;

  /* -- Borders -- */
  --border-faint:    rgba(0, 0, 0, 0.04);
  --border-subtle:   rgba(0, 0, 0, 0.07);
  --border-medium:   rgba(0, 0, 0, 0.12);
  --border-strong:   rgba(0, 0, 0, 0.20);

  /* -- Glassmorphism -- */
  --glass-surface:   rgba(255, 255, 255, 0.75);
  --glass-border:    rgba(0, 0, 0, 0.07);
  --glass-shadow:    0 8px 32px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 1.0);

  /* -- Elevation Shadows -- */
  --shadow-xs:       0 1px 2px rgba(0, 0, 0, 0.06);
  --shadow-sm:       0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-md:       0 4px 16px rgba(0, 0, 0, 0.10);
  --shadow-lg:       0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-xl:       0 16px 48px rgba(0, 0, 0, 0.14);
  --shadow-card-hover: 0 8px 40px rgba(0, 0, 0, 0.12), 0 0 24px var(--green-glow);

  /* -- Scrollbar -- */
  --scrollbar-track: #E2E8F0;
  --scrollbar-thumb: #94A3B8;
}
