@layer gfv-tokens {
  :root {
    /* Colors */
    --gfv-brand-50: #eff6ff;
    --gfv-brand-100: #dbeafe;
    --gfv-brand-200: #bfdbfe;
    --gfv-brand-300: #93c5fd;
    --gfv-brand-400: #60a5fa;
    --gfv-brand-500: #3b82f6;
    --gfv-brand-600: #2563eb;
    --gfv-brand-700: #1d4ed8;
    --gfv-brand-800: #1e40af;
    --gfv-brand-900: #1e3a8a;
    --gfv-brand-950: #172554;

    --gfv-accent-50: #fef2f2;
    --gfv-accent-100: #fee2e2;
    --gfv-accent-200: #fecaca;
    --gfv-accent-300: #fca5a5;
    --gfv-accent-400: #f87171;
    --gfv-accent-500: #ef4444;
    --gfv-accent-600: #dc2626;
    --gfv-accent-700: #b91c1c;
    --gfv-accent-800: #991b1b;
    --gfv-accent-900: #7f1d1d;
    --gfv-accent-950: #450a0a;

    --gfv-neutral-50: #fafaf9;
    --gfv-neutral-100: #f5f5f4;
    --gfv-neutral-200: #e7e5e4;
    --gfv-neutral-300: #d6d3d1;
    --gfv-neutral-400: #a8a29e;
    --gfv-neutral-500: #78716c;
    --gfv-neutral-600: #57534e;
    --gfv-neutral-700: #44403c;
    --gfv-neutral-800: #292524;
    --gfv-neutral-900: #1c1917;
    --gfv-neutral-950: #0c0a09;

    --gfv-warm-50: #fefdf9;
    --gfv-warm-100: #fef7ed;
    --gfv-warm-200: #fed7aa;
    --gfv-warm-300: #fdba74;
    --gfv-warm-400: #fb923c;
    --gfv-warm-500: #f97316;
    --gfv-warm-600: #ea580c;
    --gfv-warm-700: #c2410c;
    --gfv-warm-800: #9a3412;
    --gfv-warm-900: #7c2d12;

    /* Semantic Colors */
    --gfv-surface: var(--gfv-neutral-50);
    --gfv-surface-secondary: var(--gfv-neutral-100);
    --gfv-surface-tertiary: var(--gfv-neutral-200);
    --gfv-surface-accent: var(--gfv-warm-100);
    --gfv-surface-brand: var(--gfv-brand-900);
    --gfv-surface-accent-strong: var(--gfv-accent-600);

    --gfv-text-primary: var(--gfv-neutral-900);
    --gfv-text-secondary: var(--gfv-neutral-600);
    --gfv-text-tertiary: var(--gfv-neutral-500);
    --gfv-text-inverse: var(--gfv-neutral-50);
    --gfv-text-brand: var(--gfv-brand-600);
    --gfv-text-accent: var(--gfv-accent-600);

    --gfv-border: var(--gfv-neutral-200);
    --gfv-border-secondary: var(--gfv-neutral-300);
    --gfv-border-accent: var(--gfv-accent-300);

    /* Spacing */
    --gfv-space-1: 0.25rem;
    --gfv-space-2: 0.5rem;
    --gfv-space-3: 0.75rem;
    --gfv-space-4: 1rem;
    --gfv-space-5: 1.25rem;
    --gfv-space-6: 1.5rem;
    --gfv-space-8: 2rem;
    --gfv-space-10: 2.5rem;
    --gfv-space-12: 3rem;
    --gfv-space-16: 4rem;
    --gfv-space-20: 5rem;
    --gfv-space-24: 6rem;
    --gfv-space-32: 8rem;

    /* Typography */
    --gfv-font-family-base: "Kantumruy", system-ui, -apple-system, sans-serif;
    --gfv-font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;

    --gfv-font-size-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
    --gfv-font-size-sm: clamp(0.875rem, 0.8rem + 0.375vw, 1rem);
    --gfv-font-size-base: clamp(1rem, 0.9rem + 0.5vw, 1.125rem);
    --gfv-font-size-lg: clamp(1.125rem, 1rem + 0.625vw, 1.25rem);
    --gfv-font-size-xl: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);
    --gfv-font-size-2xl: clamp(1.5rem, 1.3rem + 1vw, 1.875rem);
    --gfv-font-size-3xl: clamp(1.875rem, 1.6rem + 1.375vw, 2.25rem);
    --gfv-font-size-4xl: clamp(2.25rem, 1.9rem + 1.75vw, 3rem);
    --gfv-font-size-5xl: clamp(3rem, 2.5rem + 2.5vw, 4rem);

    --gfv-line-height-tight: 1.25;
    --gfv-line-height-snug: 1.375;
    --gfv-line-height-normal: 1.5;
    --gfv-line-height-relaxed: 1.625;
    --gfv-line-height-loose: 2;

    --gfv-font-weight-normal: 400;
    --gfv-font-weight-medium: 500;
    --gfv-font-weight-semibold: 600;
    --gfv-font-weight-bold: 700;

    /* Layout */
    --gfv-container-max: 1200px;
    --gfv-container-padding: var(--gfv-space-4);

    /* Border Radius */
    --gfv-radius-sm: 0.25rem;
    --gfv-radius: 0.5rem;
    --gfv-radius-lg: 0.75rem;
    --gfv-radius-xl: 1rem;
    --gfv-radius-full: 9999px;

    /* Shadows */
    --gfv-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --gfv-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --gfv-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --gfv-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --gfv-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);

    /* Transitions */
    --gfv-transition-fast: 150ms ease;
    --gfv-transition-base: 250ms ease;
    --gfv-transition-slow: 350ms ease;

    /* Z-index */
    --gfv-z-dropdown: 1000;
    --gfv-z-sticky: 1020;
    --gfv-z-fixed: 1030;
    --gfv-z-modal: 1040;
    --gfv-z-popover: 1050;
    --gfv-z-tooltip: 1060;
  }

  [data-theme="dark"] {
    --gfv-surface: var(--gfv-neutral-900);
    --gfv-surface-secondary: var(--gfv-neutral-800);
    --gfv-surface-tertiary: var(--gfv-neutral-700);
    --gfv-surface-accent: var(--gfv-warm-900);
    --gfv-surface-brand: var(--gfv-brand-950);

    --gfv-text-primary: var(--gfv-neutral-50);
    --gfv-text-secondary: var(--gfv-neutral-300);
    --gfv-text-tertiary: var(--gfv-neutral-400);
    --gfv-text-inverse: var(--gfv-neutral-900);
    --gfv-text-brand: var(--gfv-brand-400);
    --gfv-text-accent: var(--gfv-accent-400);

    --gfv-border: var(--gfv-neutral-700);
    --gfv-border-secondary: var(--gfv-neutral-600);
    --gfv-border-accent: var(--gfv-accent-700);
  }
}
