/**
 * Tailwind CSS Custom Properties
 * 
 * This file defines CSS custom properties used by our Tailwind CSS implementation.
 * These properties allow users to customize Tailwind's behavior globally.
 */

:root {
    /* Spacing System */
    --spacing: 0.25rem; /* Base spacing unit (Tailwind default: 0.25rem = 4px) */
    
    /* Color System - Essential colors */
    --color-black: #000;
    --color-white: #fff;
    --color-transparent: transparent;
    --color-current: currentColor;
    --color-inherit: inherit;
    
    /* Gray Scale */
    --color-gray-50: oklch(0.985 0.002 247.839);
    --color-gray-100: oklch(0.967 0.003 264.542);
    --color-gray-200: oklch(0.928 0.006 264.531);
    --color-gray-300: oklch(0.872 0.01 258.338);
    --color-gray-400: oklch(0.707 0.022 261.325);
    --color-gray-500: oklch(0.551 0.027 264.364);
    --color-gray-600: oklch(0.446 0.03 256.802);
    --color-gray-700: oklch(0.373 0.034 259.733);
    --color-gray-800: oklch(0.278 0.033 256.848);
    --color-gray-900: oklch(0.21 0.034 264.665);
    --color-gray-950: oklch(0.13 0.028 261.692);
    
    /* Blue Scale */
    --color-blue-50: oklch(0.97 0.014 254.604);
    --color-blue-100: oklch(0.932 0.032 255.585);
    --color-blue-200: oklch(0.882 0.059 254.128);
    --color-blue-300: oklch(0.809 0.105 251.813);
    --color-blue-400: oklch(0.707 0.165 254.624);
    --color-blue-500: oklch(0.623 0.214 259.815);
    --color-blue-600: oklch(0.546 0.245 262.881);
    --color-blue-700: oklch(0.488 0.243 264.376);
    --color-blue-800: oklch(0.424 0.199 265.638);
    --color-blue-900: oklch(0.379 0.146 265.522);
    --color-blue-950: oklch(0.282 0.091 267.935);
    
    /* Red Scale */
    --color-red-50: oklch(0.971 0.013 17.38);
    --color-red-100: oklch(0.936 0.032 17.717);
    --color-red-200: oklch(0.885 0.062 18.334);
    --color-red-300: oklch(0.808 0.114 19.571);
    --color-red-400: oklch(0.704 0.191 22.216);
    --color-red-500: oklch(0.637 0.237 25.331);
    --color-red-600: oklch(0.577 0.245 27.325);
    --color-red-700: oklch(0.505 0.213 27.518);
    --color-red-800: oklch(0.444 0.177 26.899);
    --color-red-900: oklch(0.396 0.141 25.723);
    --color-red-950: oklch(0.258 0.092 26.042);
    
    /* Green Scale */
    --color-green-50: oklch(0.982 0.018 155.826);
    --color-green-100: oklch(0.962 0.044 156.743);
    --color-green-200: oklch(0.925 0.084 155.995);
    --color-green-300: oklch(0.871 0.15 154.449);
    --color-green-400: oklch(0.792 0.209 151.711);
    --color-green-500: oklch(0.723 0.219 149.579);
    --color-green-600: oklch(0.627 0.194 149.214);
    --color-green-700: oklch(0.527 0.154 150.069);
    --color-green-800: oklch(0.448 0.119 151.328);
    --color-green-900: oklch(0.393 0.095 152.535);
    --color-green-950: oklch(0.266 0.065 152.934);
    
    /* Indigo Scale */
    --color-indigo-50: oklch(0.962 0.018 272.314);
    --color-indigo-100: oklch(0.93 0.034 272.788);
    --color-indigo-200: oklch(0.87 0.065 274.039);
    --color-indigo-300: oklch(0.785 0.115 274.713);
    --color-indigo-400: oklch(0.673 0.182 276.935);
    --color-indigo-500: oklch(0.585 0.233 277.117);
    --color-indigo-600: oklch(0.511 0.262 276.966);
    --color-indigo-700: oklch(0.457 0.24 277.023);
    --color-indigo-800: oklch(0.398 0.195 277.366);
    --color-indigo-900: oklch(0.359 0.144 278.697);
    --color-indigo-950: oklch(0.257 0.09 281.288);
    
    /* Container/Sizing System */
    --container-xs: 20rem;
    --container-sm: 24rem;
    --container-md: 28rem;
    --container-lg: 32rem;
    --container-xl: 36rem;
    --container-2xl: 42rem;
    --container-3xl: 48rem;
    --container-4xl: 56rem;
    --container-5xl: 64rem;
    --container-6xl: 72rem;
    --container-7xl: 80rem;
    
    /* Typography System */
    /* Text Sizes */
    --text-xs: 0.75rem;
    --text-xs--line-height: 1rem;
    --text-sm: 0.875rem;
    --text-sm--line-height: 1.25rem;
    --text-base: 1rem;
    --text-base--line-height: 1.5rem;
    --text-lg: 1.125rem;
    --text-lg--line-height: 1.75rem;
    --text-xl: 1.25rem;
    --text-xl--line-height: 1.75rem;
    --text-2xl: 1.5rem;
    --text-2xl--line-height: 2rem;
    --text-3xl: 1.875rem;
    --text-3xl--line-height: 2.25rem;
    --text-4xl: 2.25rem;
    --text-4xl--line-height: 2.5rem;
    --text-5xl: 3rem;
    --text-5xl--line-height: 1;
    --text-6xl: 3.75rem;
    --text-6xl--line-height: 1;
    --text-7xl: 4.5rem;
    --text-7xl--line-height: 1;
    --text-8xl: 6rem;
    --text-8xl--line-height: 1;
    --text-9xl: 8rem;
    --text-9xl--line-height: 1;
    
    /* Font Weights */
    --font-weight-thin: 100;
    --font-weight-extralight: 200;
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --font-weight-black: 900;
    
    /* Letter Spacing */
    --tracking-tighter: -0.05em;
    --tracking-tight: -0.025em;
    --tracking-normal: 0em;
    --tracking-wide: 0.025em;
    --tracking-wider: 0.05em;
    --tracking-widest: 0.1em;
    
    /* Border System */
    --tw-border-style: solid;
    
    /* Border Radius System */
    --radius-xs: 0.125rem; /* 2px */
    --radius-sm: 0.25rem;  /* 4px */
    --radius-md: 0.375rem; /* 6px */
    --radius-lg: 0.5rem;   /* 8px */
    --radius-xl: 0.75rem;  /* 12px */
    --radius-2xl: 1rem;    /* 16px */
    --radius-3xl: 1.5rem;  /* 24px */
    --radius-4xl: 2rem;    /* 32px */
    /* Note: rounded-full uses calc(infinity * 1px) directly */
    
    /* Shadow System */
    --shadow-DEFAULT: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --shadow-xs: 0 1px rgb(0 0 0 / 0.05);
    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
    
    /* Z-Index System */
    --z-0: 0;
    --z-10: 10;
    --z-20: 20;
    --z-30: 30;
    --z-40: 40;
    --z-50: 50;
    --z-auto: auto;
    
    /* Size System (used for size-* utilities) */
    --size-256: 64rem; /* 256 * 0.25rem = 64rem */
    
    /* Box Shadow System (for rings, shadows, etc.) */
    --tw-shadow: 0 0 0 0 transparent;
    --tw-inset-shadow: 0 0 0 0 transparent;
    --tw-ring-shadow: 0 0 0 0 transparent;
    --tw-inset-ring-shadow: 0 0 0 0 transparent;
    --tw-ring-offset-shadow: 0 0 0 0 transparent;
    --tw-ring-offset-width: 0px;
    --tw-ring-inset: /* empty */;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-inset-ring-color: currentcolor;
    
    /* Text Shadow System */
    --tw-text-shadow-color: currentcolor;
    --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);
    --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);
    --text-shadow-sm: 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075);
    --text-shadow-md: 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1);
    --text-shadow-lg: 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1);
    
    /* Mask System */
    --tw-mask-linear-from: 0%;
    --tw-mask-linear-to: 100%;
    --tw-mask-linear-position: 0deg;
    --tw-mask-top-from: 0%;
    --tw-mask-top-to: 100%;
    --tw-mask-right-from: 0%;
    --tw-mask-right-to: 100%;
    --tw-mask-bottom-from: 0%;
    --tw-mask-bottom-to: 100%;
    --tw-mask-left-from: 0%;
    --tw-mask-left-to: 100%;
    --tw-mask-radial-shape: ellipse;
    --tw-mask-radial-size: farthest-corner;
    --tw-mask-radial-position: center;
    --tw-mask-radial-from: 0%;
    --tw-mask-radial-to: 100%;
    --tw-mask-conic-position: 0deg;
    --tw-mask-conic-from: 0%;
    --tw-mask-conic-to: 100%;
    
    /* Filter System */
    --blur-xs: 4px;
    --blur-sm: 8px;
    --blur-md: 12px;
    --blur-lg: 16px;
    --blur-xl: 24px;
    --blur-2xl: 40px;
    --blur-3xl: 64px;
    
    /* Drop Shadow System */
    --tw-drop-shadow-color: currentcolor;
    
    /* Table System */
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    
    /* Transition System */
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-transition-duration: 150ms;
    --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);
    
    /* Animation System */
    --animate-spin: spin 1s linear infinite;
    --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
    --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    --animate-bounce: bounce 1s infinite;
    
    /* Outline System */
    --tw-outline-style: solid;
    
    /* Transform System */
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 100%;
    --tw-scale-y: 100%;
    --tw-scale-z: 100%;
    --tw-rotate-x: rotateX(0deg);
    --tw-rotate-y: rotateY(0deg);
    --tw-rotate-z: rotateZ(0deg);
    
    /* Perspective System */
    --perspective-dramatic: 100px;
    --perspective-near: 300px;
    --perspective-normal: 500px;
    --perspective-midrange: 800px;
    --perspective-distant: 1200px;
    
    /* Mask System */
    --tw-mask-linear-position: 0deg;
    --tw-mask-linear-from: 0%;
    --tw-mask-linear-to: 100%;
    
    --tw-mask-radial-shape: ellipse;
    --tw-mask-radial-size: farthest-corner;
    --tw-mask-radial-position: center;
    --tw-mask-radial-from: 0%;
    --tw-mask-radial-to: 100%;
    
    --tw-mask-conic-position: 0deg;
    --tw-mask-conic-from: 0%;
    --tw-mask-conic-to: 100%;
    
    --tw-mask-top-from: 0%;
    --tw-mask-top-to: 100%;
    --tw-mask-right-from: 0%;
    --tw-mask-right-to: 100%;
    --tw-mask-bottom-from: 0%;
    --tw-mask-bottom-to: 100%;
    --tw-mask-left-from: 0%;
    --tw-mask-left-to: 100%;
    
    /* Gradient System */
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
    
    /* Future Tailwind Custom Properties */
    /* We can add more color scales here as needed:
     * --color-slate-*, --color-zinc-*, --color-neutral-*, --color-stone-*
     * --color-orange-*, --color-amber-*, --color-yellow-*, --color-lime-*
     * --color-emerald-*, --color-teal-*, --color-cyan-*, --color-sky-*
     * --color-indigo-*, --color-violet-*, --color-purple-*, --color-fuchsia-*
     * --color-pink-*, --color-rose-*
     * --font-sans, --font-serif, --font-mono
     * --radius (for border radius scale)
     * --shadow (for box shadow scale)
     * etc.
     */
}

/* Animation Keyframes */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes ping {
    75%, 100% {
        transform: scale(2);
        opacity: 0;
    }
}

@keyframes pulse {
    50% {
        opacity: 0.5;
    }
}

@keyframes bounce {
    0%, 100% {
        transform: translateY(-25%);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }
    50% {
        transform: none;
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}