/* ==========================================================================
   TechBay Design Tokens
   Single source of truth for color, type, spacing, radius, shadow, breakpoints.
   ========================================================================== */

:root {
  /* ---- Color: Primary / Secondary / Neutral (locked palette) ---- */
  --color-navy-950: #050f26;
  --color-navy-900: #071a3d;   /* Primary: Deep Navy */
  --color-navy-800: #0b2452;
  --color-navy-700: #123268;

  --color-blue-600: #0d6efd;  /* Secondary: Electric Blue */
  --color-blue-500: #3b8bff;
  --color-blue-400: #6aa8ff;

  --color-cyan-400: #22d3ee;  /* Accent: Cyan glow */
  --color-cyan-300: #67e8f9;

  --color-white: #ffffff;
  --color-soft-gray: #f5f7fa;
  --color-border-gray: #e2e8f0;
  --color-dark-gray: #111827;
  --color-mid-gray: #4b5563;
  --color-muted-gray: #6b7280;

  /* ---- Semantic aliases ---- */
  --bg-page: var(--color-white);
  --bg-alt: var(--color-soft-gray);
  --bg-dark: var(--color-navy-900);
  --text-primary: var(--color-dark-gray);
  --text-muted: var(--color-mid-gray);
  --text-on-dark: var(--color-white);
  --text-on-dark-muted: #b7c2da;
  --border-default: var(--color-border-gray);
  --link-color: var(--color-blue-600);

  /* ---- Gradients & glow ---- */
  --gradient-navy: linear-gradient(135deg, var(--color-navy-950) 0%, var(--color-navy-900) 45%, var(--color-navy-700) 100%);
  --gradient-blue-cyan: linear-gradient(120deg, var(--color-blue-600) 0%, var(--color-cyan-400) 100%);
  --glow-blue: 0 0 40px rgba(13, 110, 253, 0.35);
  --glow-cyan: 0 0 50px rgba(34, 211, 238, 0.25);
  --glass-bg: rgba(255, 255, 255, 0.06);
  --glass-border: rgba(255, 255, 255, 0.14);

  /* ---- Typography ---- */
  --font-heading: 'Sora', 'Segoe UI', system-ui, sans-serif;
  --font-body: 'Inter', 'Segoe UI', system-ui, sans-serif;

  --fs-hero: clamp(2.25rem, 4.4vw + 1rem, 4rem);
  --fs-h1: clamp(1.875rem, 2.6vw + 1rem, 2.75rem);
  --fs-h2: clamp(1.5rem, 1.8vw + 1rem, 2.125rem);
  --fs-h3: clamp(1.125rem, 1vw + 0.9rem, 1.5rem);
  --fs-body-lg: clamp(1.0625rem, 0.3vw + 1rem, 1.1875rem);
  --fs-body: 1rem;
  --fs-small: 0.875rem;
  --fs-xsmall: 0.75rem;

  --lh-tight: 1.15;
  --lh-snug: 1.35;
  --lh-normal: 1.6;

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

  --container-max: 1280px;
  --container-pad: clamp(1.25rem, 4vw, 2.5rem);
  --navbar-height: 76px;

  /* ---- Radius & shadow ---- */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 2px rgba(17, 24, 39, 0.06), 0 1px 1px rgba(17, 24, 39, 0.04);
  --shadow-md: 0 8px 24px rgba(17, 24, 39, 0.08);
  --shadow-lg: 0 20px 48px rgba(7, 26, 61, 0.16);
  --shadow-card-hover: 0 24px 56px rgba(7, 26, 61, 0.22);

  /* ---- Motion ---- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 180ms;
  --dur-base: 320ms;
  --dur-slow: 600ms;

  /* ---- Z-index scale ---- */
  --z-navbar: 100;
  --z-mobile-menu: 110;
  --z-overlay: 90;
}

/* ---- Breakpoints (reference only, CSS has no var() in media queries) ----
   xs: 320px   sm: 375px   md: 425px   tablet: 768px   lg: 1024px   xl: 1440px
*/
