/* CSS Variables */
:root {
  /* Colors */
  --primary-color: #5558e3;
  --primary-hover: #4f46e5;
  --secondary-color: #ec4899;
  --text-primary: #1f2937;
  --text-secondary: #4b5563;
  --text-light: #ffffff;
  --bg-primary: #ffffff;
  --bg-secondary: #f9fafb;
  --bg-dark: #111827;
  --border-color: #e5e7eb;
  
  /* Spacing - Viewport Based */
  --spacing-xs: 0.5rem;
  --spacing-sm: 1rem;
  --spacing-md: 1.5rem;
  --spacing-lg: 2rem;
  --spacing-xl: 3rem;
  --spacing-2xl: 4rem;
  --spacing-3xl: 6rem;
  
  /* Typography - Viewport Based */
  --font-size-sm: clamp(0.75rem, 0.8vw, 0.875rem);
  --font-size-base: clamp(0.875rem, 1vw, 1rem);
  --font-size-lg: clamp(1rem, 1.1vw, 1.125rem);
  --font-size-xl: clamp(1.1rem, 1.2vw, 1.25rem);
  --font-size-2xl: clamp(1.25rem, 1.5vw, 1.5rem);
  --font-size-3xl: clamp(1.5rem, 2vw, 2rem);
  --font-size-4xl: clamp(2rem, 3vw, 2.5rem);
  
  /* Section Typography - Viewport Based */
  --heading-size: clamp(2rem, 4vw, 4rem);
  --text-size: clamp(0.9rem, 1.2vw, 1.2rem);
  
  /* Section Layout - Viewport Based */
  --section-padding: clamp(20px, 5vw, 80px);
  --section-gap: clamp(30px, 4vw, 60px);
  --card-width: clamp(300px, 35vw, 550px);
  --card-height: clamp(400px, 55vh, 700px);
  --content-width: clamp(300px, 40vw, 550px);
  
  /* Transitions */
  --transition-fast: 150ms;
  --transition-base: 300ms;
  --transition-slow: 500ms;
  --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
  
  /* Layout */
  --header-height: clamp(60px, 8vh, 80px);
  --max-width: 1440px;
  --container-padding: clamp(1rem, 3vw, 2rem);
  
  /* Breakpoints (for reference in JS) */
  --breakpoint-mobile: 768px;
  --breakpoint-tablet: 1024px;
  --breakpoint-desktop: 1440px;
  
  /* Cursor */
  --cursor-radius: 1.5cm;
  
  /* Z-index */
  --z-header: 1000;
  --z-cursor: 99999;
}

/* Re
sponsive Variables */
@media (max-width: 1024px) {
  :root {
    --container-padding: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-2xl: 3rem;
  }
}

@media (max-width: 768px) {
  :root {
    --header-height: 70px;
    --container-padding: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --font-size-3xl: 1.75rem;
    --font-size-4xl: 2rem;
  }
}

@media (max-width: 480px) {
  :root {
    --header-height: 60px;
    --container-padding: 0.75rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.25rem;
    --font-size-2xl: 1.25rem;
    --font-size-3xl: 1.5rem;
    --font-size-4xl: 1.75rem;
  }
}
