{
  "version": 3,
  "sources": ["../../src/lib/utilsComprehensive.ts", "../../src/utils/env.ts", "../../src/hooks/useReducedMotion.tsx", "../../src/icons/createGlassIcon.tsx", "../../src/icons/components.tsx", "../../src/icons/index.ts", "../../src/utils/random.ts", "../../src/components/effects/GlassShatterEffects.r3f.tsx", "../../src/tokens/glass.ts", "../../src/hooks/useLiquidGlassBackdrop.ts", "../../src/utils/contrastGuard.ts", "../../src/core/mixins/glassMixins.ts", "../../src/components/accessibility/ContrastGuard.tsx", "../../src/components/effects/SeasonalParticles.r3f.tsx", "../../src/components/effects/AuroraPro.r3f.tsx", "../../src/components/ar/ARGlassEffects.helpers.ts", "../../src/components/ar/ARGlassEffects.r3f.tsx", "../../src/components/effects/GlassShatterEffects.tsx", "../../src/utils/reactVersion.ts", "../../src/components/effects/GlassShatterEffects.presets.ts", "../../src/components/effects/SeasonalParticles.tsx", "../../src/components/effects/SeasonalParticles.presets.ts", "../../src/components/effects/AuroraPro.tsx", "../../src/components/effects/AuroraPro.presets.ts", "../../src/components/ar/ARGlassEffects.tsx", "../../src/three/index.ts"],
  "sourcesContent": ["import React from 'react';\n/**\n * AuraGlass Utility Functions\n * Production-ready utility functions for the AuraGlass design system\n */\n\nimport { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n// Class name utility function\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n\n// Color utilities\nexport function hexToRgba(hex: string, alpha: number = 1): string {\n  const r = parseInt(hex.slice(1, 3), 16);\n  const g = parseInt(hex.slice(3, 5), 16);\n  const b = parseInt(hex.slice(5, 7), 16);\n  return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n\nexport function rgbaToHex(rgba: string): string {\n  const match = rgba.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*([\\d.]+))?\\)/);\n  if (!match) return rgba;\n\n  const r = parseInt(match[1]);\n  const g = parseInt(match[2]);\n  const b = parseInt(match[3]);\n\n  return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;\n}\n\nexport function adjustOpacity(color: string, opacity: number): string {\n  if (color.startsWith('#')) {\n    return hexToRgba(color, opacity);\n  }\n  \n  if (color.startsWith('rgb')) {\n    const match = color.match(/rgba?\\(([^)]+)\\)/);\n    if (match) {\n      const values = match[1].split(',').map((v: any) => v.trim());\n      return `rgba(${values[0]}, ${values[1]}, ${values[2]}, ${opacity})`;\n    }\n  }\n\n  return color;\n}\n\n// Number utilities\nexport function clamp(value: number, min: number, max: number): number {\n  return Math.min(Math.max(value, min), max);\n}\n\nexport function lerp(start: number, end: number, progress: number): number {\n  return start + (end - start) * progress;\n}\n\nexport function roundToDecimal(value: number, decimals: number): number {\n  return Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals);\n}\n\n// String utilities\nexport function capitalize(str: string): string {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function kebabCase(str: string): string {\n  return str\n    .replace(/([a-z])([A-Z])/g, '$1-$2')\n    .replace(/[\\s_]+/g, '-')\n    .toLowerCase();\n}\n\nexport function camelCase(str: string): string {\n  return str\n    .replace(/[-_\\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : '')\n    .replace(/^(.)/, char => char.toLowerCase());\n}\n\n// Object utilities\nexport function deepMerge<T extends Record<string, any>>(target: T, ...sources: Partial<T>[]): T {\n  if (!sources.length) return target;\n  const source = sources.shift();\n\n  if (isObject(target) && isObject(source)) {\n    for (const key in source) {\n      if (isObject(source[key])) {\n        if (!target[key]) Object.assign(target, { [key]: {} });\n        deepMerge(target[key] as Record<string, any>, source[key] as Record<string, any>);\n      } else {\n        Object.assign(target, { [key]: source[key] });\n      }\n    }\n  }\n\n  return deepMerge(target, ...sources);\n}\n\nexport function isObject(item: any): item is Record<string, any> {\n  return item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function omit<T extends Record<string, any>, K extends keyof T>(\n  obj: T,\n  keys: K[]\n): Omit<T, K> {\n  const result = { ...obj };\n  keys.forEach((key: any) => delete result[key]);\n  return result;\n}\n\nexport function pick<T extends Record<string, any>, K extends keyof T>(\n  obj: T,\n  keys: K[]\n): Pick<T, K> {\n  const result = {} as Pick<T, K>;\n  keys.forEach((key: any) => {\n    if (key in obj) {\n      (result as any)[key] = obj[key];\n    }\n  });\n  return result;\n}\n\n// Array utilities\nexport function unique<T>(array: T[]): T[] {\n  return [...new Set(array)];\n}\n\nexport function groupBy<T, K extends keyof T>(array: T[], key: K): Record<string, T[]> {\n  return array.reduce((groups, item) => {\n    const groupKey = String(item[key]);\n    if (!groups[groupKey]) {\n      groups[groupKey] = [];\n    }\n    groups[groupKey].push(item);\n    return groups;\n  }, {} as Record<string, T[]>);\n}\n\nexport function sortBy<T>(array: T[], key: keyof T, direction: 'asc' | 'desc' = 'asc'): T[] {\n  return [...array].sort((a, b) => {\n    const aVal = a[key];\n    const bVal = b[key];\n    \n    if (aVal < bVal) return direction === 'asc' ? -1 : 1;\n    if (aVal > bVal) return direction === 'asc' ? 1 : -1;\n    return 0;\n  });\n}\n\n// DOM utilities\nexport function getElementRect(element: HTMLElement): DOMRect {\n  return element.getBoundingClientRect();\n}\n\nexport function isElementInViewport(element: HTMLElement): boolean {\n  const rect = getElementRect(element);\n  return (\n    rect.top >= 0 &&\n    rect.left >= 0 &&\n    rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n    rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n  );\n}\n\nexport function scrollToElement(element: HTMLElement, options: ScrollIntoViewOptions = {}): void {\n  element.scrollIntoView({\n    behavior: 'smooth',\n    block: 'start',\n    inline: 'nearest',\n    ...options,\n  });\n}\n\n// Event utilities\nexport function debounce<T extends (...args: any[]) => any>(\n  func: T,\n  wait: number\n): (...args: Parameters<T>) => void {\n  let timeout: NodeJS.Timeout;\n  \n  return (...args: Parameters<T>) => {\n    clearTimeout(timeout);\n    timeout = setTimeout(() => func(...args), wait);\n  };\n}\n\nexport function throttle<T extends (...args: any[]) => any>(\n  func: T,\n  limit: number\n): (...args: Parameters<T>) => void {\n  let inThrottle: boolean;\n  \n  return (...args: Parameters<T>) => {\n    if (!inThrottle) {\n      func(...args);\n      inThrottle = true;\n      setTimeout(() => inThrottle = false, limit);\n    }\n  };\n}\n\n// Validation utilities\nexport function isValidEmail(email: string): boolean {\n  const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n  return emailRegex.test(email);\n}\n\nexport function isValidUrl(url: string): boolean {\n  try {\n    new URL(url);\n    return true;\n  } catch {\n    return false;\n  }\n}\n\nexport function isValidHexColor(color: string): boolean {\n  const hexRegex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n  return hexRegex.test(color);\n}\n\n// Format utilities\nexport function formatNumber(\n  value: number,\n  options: Intl.NumberFormatOptions = {}\n): string {\n  return new Intl.NumberFormat('en-US', {\n    minimumFractionDigits: 0,\n    maximumFractionDigits: 2,\n    ...options,\n  }).format(value);\n}\n\nexport function formatCurrency(\n  value: number,\n  currency: string = 'USD',\n  locale: string = 'en-US'\n): string {\n  return new Intl.NumberFormat(locale, {\n    style: 'currency',\n    currency,\n  }).format(value);\n}\n\nexport function formatPercentage(\n  value: number,\n  decimals: number = 1\n): string {\n  return new Intl.NumberFormat('en-US', {\n    style: 'percent',\n    minimumFractionDigits: decimals,\n    maximumFractionDigits: decimals,\n  }).format(value / 100);\n}\n\nexport function formatDate(\n  date: Date | string,\n  options: Intl.DateTimeFormatOptions = {}\n): string {\n  const dateObj = typeof date === 'string' ? new Date(date) : date;\n  return new Intl.DateTimeFormat('en-US', {\n    year: 'numeric',\n    month: 'short',\n    day: 'numeric',\n    ...options,\n  }).format(dateObj);\n}\n\n// Animation utilities\nexport function createAnimationPromise(\n  element: HTMLElement,\n  animationName: string,\n  duration?: number\n): Promise<void> {\n  return new Promise((resolve) => {\n    const handleAnimationEnd = () => {\n      element.removeEventListener('animationend', handleAnimationEnd);\n      resolve();\n    };\n\n    element.addEventListener('animationend', handleAnimationEnd);\n    element.style.animation = `${animationName} ${duration || 300}ms ease forwards`;\n  });\n}\n\nexport function getOptimalAnimationDuration(element: HTMLElement): number {\n  const rect = getElementRect(element);\n  const area = rect.width * rect.height;\n  \n  // Base duration on element size\n  if (area < 10000) return 200;  // Small elements\n  if (area < 50000) return 300;  // Medium elements\n  if (area < 100000) return 400; // Large elements\n  return 500; // Very large elements\n}\n\n// Storage utilities\nexport const storage = {\n  get: <T>(key: string, defaultValue?: T): T | null => {\n    try {\n      const item = localStorage.getItem(`aura-glass-${key}`);\n      return item ? JSON.parse(item) : defaultValue ?? null;\n    } catch {\n      return defaultValue ?? null;\n    }\n  },\n\n  set: <T>(key: string, value: T): void => {\n    try {\n      localStorage.setItem(`aura-glass-${key}`, JSON.stringify(value));\n    } catch {\n      // Storage might be full or unavailable\n    }\n  },\n\n  remove: (key: string): void => {\n    try {\n      localStorage.removeItem(`aura-glass-${key}`);\n    } catch {\n      // Storage might be unavailable\n    }\n  },\n\n  clear: (): void => {\n    try {\n      const keys = Object.keys(localStorage).filter((key: any) => key.startsWith('aura-glass-'));\n      keys.forEach((key: any) => localStorage.removeItem(key));\n    } catch {\n      // Storage might be unavailable\n    }\n  },\n};\n\n// Error handling utilities\nexport function safeExecute<T>(\n  fn: () => T,\n  fallback?: T,\n  onError?: (error: Error) => void\n): T | undefined {\n  try {\n    return fn();\n  } catch (error) {\n    if (onError && error instanceof Error) {\n      onError(error);\n    }\n    return fallback;\n  }\n}\n\nexport async function safeExecuteAsync<T>(\n  fn: () => Promise<T>,\n  fallback?: T,\n  onError?: (error: Error) => void\n): Promise<T | undefined> {\n  try {\n    return await fn();\n  } catch (error) {\n    if (onError && error instanceof Error) {\n      onError(error);\n    }\n    return fallback;\n  }\n}\n\n// Export all utilities\nexport default {\n  cn,\n  hexToRgba,\n  rgbaToHex,\n  adjustOpacity,\n  clamp,\n  lerp,\n  roundToDecimal,\n  capitalize,\n  kebabCase,\n  camelCase,\n  deepMerge,\n  isObject,\n  omit,\n  pick,\n  unique,\n  groupBy,\n  sortBy,\n  getElementRect,\n  isElementInViewport,\n  scrollToElement,\n  debounce,\n  throttle,\n  isValidEmail,\n  isValidUrl,\n  isValidHexColor,\n  formatNumber,\n  formatCurrency,\n  formatPercentage,\n  formatDate,\n  createAnimationPromise,\n  getOptimalAnimationDuration,\n  storage,\n  safeExecute,\n  safeExecuteAsync,\n};", "import type { DependencyList, EffectCallback } from 'react';\n\n/**\n * Environment helpers to centralize SSR/browser detection and safe global access.\n *\n * CRITICAL: These must check dynamically, NOT cache at module load time,\n * to handle polyfills and avoid locking in server environment values.\n */\n\n/**\n * Dynamic check - re-evaluates on every call to support polyfills\n */\nconst hasWindow = (): boolean => typeof window !== 'undefined';\nconst hasDocument = (): boolean => typeof document !== 'undefined';\nconst hasNavigator = (): boolean => typeof navigator !== 'undefined';\n\n/**\n * Returns true when executed in a browser-like environment.\n */\nexport const isBrowser = (): boolean => hasWindow() && hasDocument();\n\n/**\n * Convenience inverse helper.\n */\nexport const isServer = (): boolean => !isBrowser();\n\n/**\n * Safely access the `window` object when available.\n */\nexport const getSafeWindow = (): typeof window | undefined => (hasWindow() ? window : undefined);\n\n/**\n * Safely access the `document` object when available.\n */\nexport const getSafeDocument = (): Document | undefined => (hasDocument() ? document : undefined);\n\n/**\n * Safely access the `navigator` object when available.\n */\nexport const getSafeNavigator = (): Navigator | undefined => (hasNavigator() ? navigator : undefined);\n\n/**\n * Helper to guard feature detection against SSR environments.\n */\nexport const safeMatchMedia = (query: string): MediaQueryList | undefined => {\n  const win = getSafeWindow();\n  return win?.matchMedia ? win.matchMedia(query) : undefined;\n};\n\n/**\n * Executes a side effect only when running in the browser. Returns a no-op cleanup on the server.\n */\nexport const runClientEffect = (effect: EffectCallback): ReturnType<EffectCallback> | undefined => {\n  if (!isBrowser()) {\n    return undefined;\n  }\n  return effect();\n};\n\n/**\n * React hook compatible helper to defer `useEffect` logic to the client.\n *\n * Example:\n *   useClientEffect(() => { /* browser only *\\/ });\n */\nexport const useClientEffect = (\n  useEffectImpl: (effect: EffectCallback, deps?: DependencyList) => void,\n  effect: EffectCallback,\n  deps?: DependencyList\n): void => {\n  useEffectImpl(() => runClientEffect(effect), deps);\n};\n\n/**\n * Creates a lazy accessor that only evaluates the factory on the client.\n */\nexport const lazyClientValue = <T>(factory: () => T, fallback: T): T => {\n  return isBrowser() ? factory() : fallback;\n};\n", "'use client';\n/**\n * Reduced Motion Hook and Utilities\n * Respects user's prefers-reduced-motion preference\n * WCAG 2.1 Success Criterion 2.3.3 (AAA)\n */\n\nimport React from 'react';\nimport { useEffect, useState } from 'react';\nimport { getSafeDocument, isBrowser, safeMatchMedia } from '../utils/env';\n\n/**\n * Hook to detect user's reduced motion preference\n *\n * CRITICAL: Defaults to `false` (no reduced motion) on both server and initial client render\n * to prevent SSR hydration mismatches. The actual preference is detected after hydration.\n *\n * @returns boolean - true if user prefers reduced motion\n */\nexport function useReducedMotion(): boolean {\n  // CRITICAL FIX: Start with `false` on both server and client to prevent hydration mismatch\n  // The server cannot access matchMedia, so we default to false (motion allowed)\n  // This matches the first client render, preventing inline style mismatches\n  const [prefersReducedMotion, setPrefersReducedMotion] = useState(false);\n\n  useEffect(() => {\n    // Detect actual motion preference after hydration\n    if (!isBrowser()) {\n      return;\n    }\n\n    const mediaQuery = safeMatchMedia('(prefers-reduced-motion: reduce)');\n    if (!mediaQuery) return;\n\n    // Update to actual preference\n    setPrefersReducedMotion(mediaQuery.matches);\n\n    // Listen for changes\n    const handleChange = (event: MediaQueryListEvent | MediaQueryList) => {\n      setPrefersReducedMotion(event.matches);\n    };\n\n    // Modern browsers\n    if (typeof mediaQuery.addEventListener === 'function') {\n      mediaQuery.addEventListener('change', handleChange);\n      return () => mediaQuery.removeEventListener('change', handleChange);\n    }\n    // Fallback for older browsers\n    if (typeof (mediaQuery as any).addListener === 'function') {\n      (mediaQuery as any).addListener(handleChange);\n      return () => (mediaQuery as any).removeListener(handleChange);\n    }\n  }, []);\n\n  return prefersReducedMotion;\n}\n\n/**\n * Get animation duration based on reduced motion preference\n * @param defaultDuration - Default duration in ms\n * @param prefersReducedMotion - Whether user prefers reduced motion\n * @returns duration in ms (0 if reduced motion)\n */\nexport function getAnimationDuration(\n  defaultDuration: number,\n  prefersReducedMotion: boolean\n): number {\n  return prefersReducedMotion ? 0 : defaultDuration;\n}\n\n/**\n * Get transition duration CSS variable\n * @param prefersReducedMotion - Whether user prefers reduced motion\n * @returns CSS duration value\n */\nexport function getTransitionDuration(prefersReducedMotion: boolean): string {\n  return prefersReducedMotion ? '0ms' : 'var(--glass-motion-duration-normal, 250ms)';\n}\n\n/**\n * Get animation CSS class based on reduced motion preference\n * @param animationClass - Animation class to apply\n * @param prefersReducedMotion - Whether user prefers reduced motion\n * @returns animation class or empty string\n */\nexport function getAnimationClass(\n  animationClass: string,\n  prefersReducedMotion: boolean\n): string {\n  return prefersReducedMotion ? '' : animationClass;\n}\n\n/**\n * Motion configuration based on reduced motion preference\n */\nexport interface MotionConfig {\n  duration: number;\n  delay: number;\n  easing: string;\n  scale: number;\n  opacity: number;\n}\n\n/**\n * Get motion configuration\n * @param prefersReducedMotion - Whether user prefers reduced motion\n * @param defaultConfig - Default motion configuration\n * @returns Motion configuration\n */\nexport function getMotionConfig(\n  prefersReducedMotion: boolean,\n  defaultConfig: Partial<MotionConfig> = {}\n): MotionConfig {\n  const defaults: MotionConfig = {\n    duration: 250,\n    delay: 0,\n    easing: 'ease-in-out',\n    scale: 1,\n    opacity: 1,\n  };\n\n  if (prefersReducedMotion) {\n    return {\n      duration: 0,\n      delay: 0,\n      easing: 'linear',\n      scale: 1,\n      opacity: 1,\n    };\n  }\n\n  return {\n    ...defaults,\n    ...defaultConfig,\n  };\n}\n\n/**\n * Apply reduced motion to inline styles\n * @param prefersReducedMotion - Whether user prefers reduced motion\n * @returns CSS properties object\n */\nexport function getReducedMotionStyles(prefersReducedMotion: boolean): React.CSSProperties {\n  if (prefersReducedMotion) {\n    return {\n      animationDuration: '0.001ms !important' as any,\n      animationIterationCount: '1 !important' as any,\n      transitionDuration: '0.001ms !important' as any,\n      scrollBehavior: 'auto !important' as any,\n    };\n  }\n  return {};\n}\n\n/**\n * Wrapper component that respects reduced motion\n */\nexport interface ReducedMotionWrapperProps {\n  children: React.ReactNode;\n  className?: string;\n  style?: React.CSSProperties;\n}\n\nexport const ReducedMotionWrapper: React.FC<ReducedMotionWrapperProps> = ({\n  children,\n  className,\n  style,\n}) => {\n  const prefersReducedMotion = useReducedMotion();\n\n  return (\n    <div\n      className={className}\n      style={{\n        ...style,\n        ...getReducedMotionStyles(prefersReducedMotion),\n      }}\n      data-reduced-motion={prefersReducedMotion}\n    >\n      {children}\n    </div>\n  );\n};\n\n/**\n * CSS-in-JS animation utilities\n */\nexport const reducedMotionStyles = `\n  @media (prefers-reduced-motion: reduce) {\n    *,\n    *::before,\n    *::after {\n      animation-duration: 0.001ms !important;\n      animation-iteration-count: 1 !important;\n      transition-duration: 0.001ms !important;\n      scroll-behavior: auto !important;\n    }\n  }\n`;\n\n/**\n * Add reduced motion CSS to document\n */\nexport function injectReducedMotionStyles(): void {\n  const doc = getSafeDocument();\n  if (!doc) return;\n\n  const styleId = 'reduced-motion-styles';\n\n  // Check if already injected\n  if (doc.getElementById(styleId)) return;\n\n  const styleElement = doc.createElement('style');\n  styleElement.id = styleId;\n  styleElement.textContent = reducedMotionStyles;\n  doc.head?.appendChild(styleElement);\n}\n\n/**\n * HOC to add reduced motion support to components\n */\nexport function withReducedMotion<P extends object>(\n  Component: React.ComponentType<P & { prefersReducedMotion?: boolean }>\n) {\n  return function ReducedMotionComponent(props: P) {\n    const prefersReducedMotion = useReducedMotion();\n\n    return <Component {...props} prefersReducedMotion={prefersReducedMotion} />;\n  };\n}\n\nexport default useReducedMotion;", "import * as React from \"react\";\n\nexport type GlassIconNode = readonly [\n  tag: keyof React.JSX.IntrinsicElements,\n  attrs: Record<string, string | number | boolean | undefined>,\n];\n\nexport interface GlassIconProps extends React.SVGProps<SVGSVGElement> {\n  size?: string | number;\n  absoluteStrokeWidth?: boolean;\n}\n\nexport type GlassIcon = React.ForwardRefExoticComponent<\n  Omit<GlassIconProps, \"ref\"> & React.RefAttributes<SVGSVGElement>\n>;\n\nexport function createGlassIcon(\n  displayName: string,\n  iconNode: readonly GlassIconNode[]\n): GlassIcon {\n  const Icon = React.forwardRef<SVGSVGElement, GlassIconProps>(\n    (\n      {\n        color = \"currentColor\",\n        size = 24,\n        strokeWidth = 2,\n        absoluteStrokeWidth,\n        children,\n        ...rest\n      },\n      ref\n    ) => {\n      const numericSize =\n        typeof size === \"number\" ? size : Number.parseFloat(size);\n      const renderedStrokeWidth =\n        absoluteStrokeWidth && Number.isFinite(numericSize) && numericSize > 0\n          ? (Number(strokeWidth) * 24) / numericSize\n          : strokeWidth;\n\n      return (\n        <svg\n          ref={ref}\n          xmlns=\"http://www.w3.org/2000/svg\"\n          width={size}\n          height={size}\n          viewBox=\"0 0 24 24\"\n          fill=\"none\"\n          stroke={color}\n          strokeWidth={renderedStrokeWidth}\n          strokeLinecap=\"round\"\n          strokeLinejoin=\"round\"\n          {...rest}\n          aria-hidden={rest[\"aria-hidden\"] ?? true}\n        >\n          {iconNode.map(([tag, attrs], index) =>\n            React.createElement(tag, { key: index, ...attrs })\n          )}\n          {children}\n        </svg>\n      );\n    }\n  );\n\n  Icon.displayName = displayName;\n  return Icon;\n}\n", "import {\n  createGlassIcon,\n  type GlassIconNode,\n  type GlassIconProps,\n} from \"./createGlassIcon\";\n\nexport type {\n  GlassIcon as GlassIconComponent,\n  GlassIconNode,\n  GlassIconProps,\n} from \"./createGlassIcon\";\n\nconst check: GlassIconNode[] = [[\"path\", { d: \"m5 12 4 4L19 6\" }]];\nconst x: GlassIconNode[] = [\n  [\"path\", { d: \"M18 6 6 18\" }],\n  [\"path\", { d: \"m6 6 12 12\" }],\n];\nconst circle: GlassIconNode[] = [[\"circle\", { cx: 12, cy: 12, r: 9 }]];\nconst square: GlassIconNode[] = [\n  [\"rect\", { x: 5, y: 5, width: 14, height: 14, rx: 2 }],\n];\nconst dotCircle: GlassIconNode[] = [\n  ...circle,\n  [\"circle\", { cx: 12, cy: 12, r: 2, fill: \"currentColor\", stroke: \"none\" }],\n];\nconst alertCircle: GlassIconNode[] = [\n  ...circle,\n  [\"path\", { d: \"M12 7v6\" }],\n  [\"path\", { d: \"M12 17h.01\" }],\n];\nconst alertTriangle: GlassIconNode[] = [\n  [\"path\", { d: \"M12 3 22 20H2L12 3Z\" }],\n  [\"path\", { d: \"M12 9v5\" }],\n  [\"path\", { d: \"M12 17h.01\" }],\n];\nconst chevronRight: GlassIconNode[] = [[\"path\", { d: \"m9 18 6-6-6-6\" }]];\nconst chevronLeft: GlassIconNode[] = [[\"path\", { d: \"m15 18-6-6 6-6\" }]];\nconst chevronDown: GlassIconNode[] = [[\"path\", { d: \"m6 9 6 6 6-6\" }]];\nconst chevronUp: GlassIconNode[] = [[\"path\", { d: \"m18 15-6-6-6 6\" }]];\nconst arrowRight: GlassIconNode[] = [\n  [\"path\", { d: \"M5 12h14\" }],\n  [\"path\", { d: \"m13 6 6 6-6 6\" }],\n];\nconst arrowUp: GlassIconNode[] = [\n  [\"path\", { d: \"M12 19V5\" }],\n  [\"path\", { d: \"m6 11 6-6 6 6\" }],\n];\nconst arrowDown: GlassIconNode[] = [\n  [\"path\", { d: \"M12 5v14\" }],\n  [\"path\", { d: \"m6 13 6 6 6-6\" }],\n];\nconst plus: GlassIconNode[] = [\n  [\"path\", { d: \"M12 5v14\" }],\n  [\"path\", { d: \"M5 12h14\" }],\n];\nconst minus: GlassIconNode[] = [[\"path\", { d: \"M5 12h14\" }]];\nconst search: GlassIconNode[] = [\n  [\"circle\", { cx: 11, cy: 11, r: 7 }],\n  [\"path\", { d: \"m20 20-4.2-4.2\" }],\n];\nconst calendar: GlassIconNode[] = [\n  [\"rect\", { x: 3, y: 4, width: 18, height: 17, rx: 2 }],\n  [\"path\", { d: \"M8 2v4\" }],\n  [\"path\", { d: \"M16 2v4\" }],\n  [\"path\", { d: \"M3 10h18\" }],\n];\nconst clock: GlassIconNode[] = [...circle, [\"path\", { d: \"M12 7v5l3 2\" }]];\nconst user: GlassIconNode[] = [\n  [\"circle\", { cx: 12, cy: 8, r: 4 }],\n  [\"path\", { d: \"M5 21a7 7 0 0 1 14 0\" }],\n];\nconst users: GlassIconNode[] = [\n  [\"path\", { d: \"M16 21v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2\" }],\n  [\"circle\", { cx: 9, cy: 7, r: 4 }],\n  [\"path\", { d: \"M22 21v-2a4 4 0 0 0-3-3.87\" }],\n  [\"path\", { d: \"M16 3.13a4 4 0 0 1 0 7.75\" }],\n];\nconst file: GlassIconNode[] = [\n  [\"path\", { d: \"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z\" }],\n  [\"path\", { d: \"M14 2v6h6\" }],\n];\nconst folder: GlassIconNode[] = [\n  [\n    \"path\",\n    {\n      d: \"M3 7a2 2 0 0 1 2-2h5l2 2h7a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z\",\n    },\n  ],\n];\nconst image: GlassIconNode[] = [\n  [\"rect\", { x: 3, y: 5, width: 18, height: 14, rx: 2 }],\n  [\"circle\", { cx: 8, cy: 10, r: 1.5 }],\n  [\"path\", { d: \"m21 16-5-5L5 19\" }],\n];\nconst video: GlassIconNode[] = [\n  [\"rect\", { x: 3, y: 6, width: 13, height: 12, rx: 2 }],\n  [\"path\", { d: \"m16 10 5-3v10l-5-3Z\" }],\n];\nconst mail: GlassIconNode[] = [\n  [\"rect\", { x: 3, y: 5, width: 18, height: 14, rx: 2 }],\n  [\"path\", { d: \"m3 7 9 6 9-6\" }],\n];\nconst home: GlassIconNode[] = [\n  [\"path\", { d: \"m3 11 9-8 9 8\" }],\n  [\"path\", { d: \"M5 10v10h14V10\" }],\n  [\"path\", { d: \"M10 20v-6h4v6\" }],\n];\nconst settings: GlassIconNode[] = [\n  [\"circle\", { cx: 12, cy: 12, r: 3 }],\n  [\"path\", { d: \"M12 2v3\" }],\n  [\"path\", { d: \"M12 19v3\" }],\n  [\"path\", { d: \"M2 12h3\" }],\n  [\"path\", { d: \"M19 12h3\" }],\n  [\"path\", { d: \"m4.9 4.9 2.1 2.1\" }],\n  [\"path\", { d: \"m17 17 2.1 2.1\" }],\n  [\"path\", { d: \"m19.1 4.9-2.1 2.1\" }],\n  [\"path\", { d: \"m7 17-2.1 2.1\" }],\n];\nconst star: GlassIconNode[] = [\n  [\n    \"path\",\n    {\n      d: \"m12 2 3 6 6.5.9-4.7 4.6 1.1 6.5-5.9-3.1L6.1 20l1.1-6.5L2.5 8.9 9 8Z\",\n    },\n  ],\n];\nconst heart: GlassIconNode[] = [\n  [\n    \"path\",\n    {\n      d: \"M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8L12 22l8.8-8.6a5.5 5.5 0 0 0 0-7.8Z\",\n    },\n  ],\n];\nconst bell: GlassIconNode[] = [\n  [\"path\", { d: \"M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9\" }],\n  [\"path\", { d: \"M10 21h4\" }],\n];\nconst chartBars: GlassIconNode[] = [\n  [\"path\", { d: \"M4 19V9\" }],\n  [\"path\", { d: \"M12 19V5\" }],\n  [\"path\", { d: \"M20 19v-7\" }],\n];\nconst lineChart: GlassIconNode[] = [\n  [\"path\", { d: \"M3 19h18\" }],\n  [\"path\", { d: \"m5 15 4-4 4 3 6-8\" }],\n];\nconst activity: GlassIconNode[] = [[\"path\", { d: \"M3 12h4l3-8 4 16 3-8h4\" }]];\nconst trendingUp: GlassIconNode[] = [\n  [\"path\", { d: \"m3 17 6-6 4 4 8-8\" }],\n  [\"path\", { d: \"M14 7h7v7\" }],\n];\nconst trendingDown: GlassIconNode[] = [\n  [\"path\", { d: \"m3 7 6 6 4-4 8 8\" }],\n  [\"path\", { d: \"M14 17h7v-7\" }],\n];\nconst target: GlassIconNode[] = [\n  ...circle,\n  [\"circle\", { cx: 12, cy: 12, r: 5 }],\n  [\"circle\", { cx: 12, cy: 12, r: 1, fill: \"currentColor\", stroke: \"none\" }],\n];\nconst zap: GlassIconNode[] = [[\"path\", { d: \"M13 2 4 14h7l-1 8 10-13h-7Z\" }]];\nconst palette: GlassIconNode[] = [\n  [\n    \"path\",\n    {\n      d: \"M12 3a9 9 0 0 0 0 18h1.5a2.5 2.5 0 0 0 0-5H12a2 2 0 0 1 0-4h1a8 8 0 0 0-1-9Z\",\n    },\n  ],\n  [\n    \"circle\",\n    { cx: 7.5, cy: 10.5, r: 0.7, fill: \"currentColor\", stroke: \"none\" },\n  ],\n  [\"circle\", { cx: 10, cy: 7.5, r: 0.7, fill: \"currentColor\", stroke: \"none\" }],\n  [\"circle\", { cx: 14, cy: 7.5, r: 0.7, fill: \"currentColor\", stroke: \"none\" }],\n];\nconst eye: GlassIconNode[] = [\n  [\"path\", { d: \"M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12Z\" }],\n  [\"circle\", { cx: 12, cy: 12, r: 3 }],\n];\nconst eyeOff: GlassIconNode[] = [\n  [\"path\", { d: \"m2 2 20 20\" }],\n  [\"path\", { d: \"M10.6 10.6a2 2 0 0 0 2.8 2.8\" }],\n  [\"path\", { d: \"M6.4 6.4C3.7 8.2 2 12 2 12s4 7 10 7c1.7 0 3.2-.5 4.5-1.2\" }],\n  [\"path\", { d: \"M14 5.2c4.9 1 8 6.8 8 6.8a17.5 17.5 0 0 1-2.2 3.1\" }],\n];\nconst lock: GlassIconNode[] = [\n  [\"rect\", { x: 5, y: 11, width: 14, height: 10, rx: 2 }],\n  [\"path\", { d: \"M8 11V7a4 4 0 0 1 8 0v4\" }],\n];\nconst unlock: GlassIconNode[] = [\n  [\"rect\", { x: 5, y: 11, width: 14, height: 10, rx: 2 }],\n  [\"path\", { d: \"M8 11V7a4 4 0 0 1 7.5-2\" }],\n];\nconst upload: GlassIconNode[] = [\n  [\"path\", { d: \"M12 16V4\" }],\n  [\"path\", { d: \"m6 10 6-6 6 6\" }],\n  [\"path\", { d: \"M4 20h16\" }],\n];\nconst download: GlassIconNode[] = [\n  [\"path\", { d: \"M12 4v12\" }],\n  [\"path\", { d: \"m6 10 6 6 6-6\" }],\n  [\"path\", { d: \"M4 20h16\" }],\n];\nconst cloud: GlassIconNode[] = [\n  [\n    \"path\",\n    { d: \"M17.5 19H7a5 5 0 0 1-.5-10 7 7 0 0 1 13.4 2.2A4 4 0 0 1 17.5 19Z\" },\n  ],\n];\nconst code: GlassIconNode[] = [\n  [\"path\", { d: \"m8 16-4-4 4-4\" }],\n  [\"path\", { d: \"m16 8 4 4-4 4\" }],\n  [\"path\", { d: \"m14 4-4 16\" }],\n];\nconst database: GlassIconNode[] = [\n  [\"ellipse\", { cx: 12, cy: 5, rx: 8, ry: 3 }],\n  [\"path\", { d: \"M4 5v14c0 1.7 3.6 3 8 3s8-1.3 8-3V5\" }],\n  [\"path\", { d: \"M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3\" }],\n];\nconst copy: GlassIconNode[] = [\n  [\"rect\", { x: 9, y: 9, width: 12, height: 12, rx: 2 }],\n  [\"path\", { d: \"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" }],\n];\nconst trash: GlassIconNode[] = [\n  [\"path\", { d: \"M3 6h18\" }],\n  [\"path\", { d: \"M8 6V4h8v2\" }],\n  [\"path\", { d: \"M19 6 18 21H6L5 6\" }],\n  [\"path\", { d: \"M10 11v6\" }],\n  [\"path\", { d: \"M14 11v6\" }],\n];\nconst refresh: GlassIconNode[] = [\n  [\"path\", { d: \"M21 12a9 9 0 0 1-15 6.7L3 16\" }],\n  [\"path\", { d: \"M3 12a9 9 0 0 1 15-6.7L21 8\" }],\n  [\"path\", { d: \"M3 21v-5h5\" }],\n  [\"path\", { d: \"M21 3v5h-5\" }],\n];\nconst rotateCcw: GlassIconNode[] = [\n  [\"path\", { d: \"M3 12a9 9 0 1 0 3-6.7L3 8\" }],\n  [\"path\", { d: \"M3 3v5h5\" }],\n];\nconst rotateCw: GlassIconNode[] = [\n  [\"path\", { d: \"M21 12a9 9 0 1 1-3-6.7L21 8\" }],\n  [\"path\", { d: \"M21 3v5h-5\" }],\n];\nconst play: GlassIconNode[] = [[\"path\", { d: \"m8 5 12 7-12 7Z\" }]];\nconst pause: GlassIconNode[] = [\n  [\"path\", { d: \"M8 5v14\" }],\n  [\"path\", { d: \"M16 5v14\" }],\n];\nconst mic: GlassIconNode[] = [\n  [\"rect\", { x: 9, y: 2, width: 6, height: 12, rx: 3 }],\n  [\"path\", { d: \"M5 10a7 7 0 0 0 14 0\" }],\n  [\"path\", { d: \"M12 17v5\" }],\n  [\"path\", { d: \"M8 22h8\" }],\n];\nconst micOff: GlassIconNode[] = [...mic, [\"path\", { d: \"m2 2 20 20\" }]];\nconst message: GlassIconNode[] = [\n  [\"path\", { d: \"M21 12a8 8 0 0 1-8 8H7l-4 3 1.2-5A8 8 0 1 1 21 12Z\" }],\n];\nconst moreHorizontal: GlassIconNode[] = [\n  [\"circle\", { cx: 6, cy: 12, r: 1, fill: \"currentColor\", stroke: \"none\" }],\n  [\"circle\", { cx: 12, cy: 12, r: 1, fill: \"currentColor\", stroke: \"none\" }],\n  [\"circle\", { cx: 18, cy: 12, r: 1, fill: \"currentColor\", stroke: \"none\" }],\n];\nconst moreVertical: GlassIconNode[] = [\n  [\"circle\", { cx: 12, cy: 6, r: 1, fill: \"currentColor\", stroke: \"none\" }],\n  [\"circle\", { cx: 12, cy: 12, r: 1, fill: \"currentColor\", stroke: \"none\" }],\n  [\"circle\", { cx: 12, cy: 18, r: 1, fill: \"currentColor\", stroke: \"none\" }],\n];\nconst menu: GlassIconNode[] = [\n  [\"path\", { d: \"M4 6h16\" }],\n  [\"path\", { d: \"M4 12h16\" }],\n  [\"path\", { d: \"M4 18h16\" }],\n];\nconst mapPin: GlassIconNode[] = [\n  [\"path\", { d: \"M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0Z\" }],\n  [\"circle\", { cx: 12, cy: 10, r: 3 }],\n];\nconst shield: GlassIconNode[] = [\n  [\"path\", { d: \"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z\" }],\n];\nconst sparkles: GlassIconNode[] = [\n  [\"path\", { d: \"m12 3 1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8Z\" }],\n  [\"path\", { d: \"m19 15 .8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8Z\" }],\n];\nconst sun: GlassIconNode[] = [\n  [\"circle\", { cx: 12, cy: 12, r: 4 }],\n  [\"path\", { d: \"M12 2v2\" }],\n  [\"path\", { d: \"M12 20v2\" }],\n  [\"path\", { d: \"m4.9 4.9 1.4 1.4\" }],\n  [\"path\", { d: \"m17.7 17.7 1.4 1.4\" }],\n  [\"path\", { d: \"M2 12h2\" }],\n  [\"path\", { d: \"M20 12h2\" }],\n  [\"path\", { d: \"m4.9 19.1 1.4-1.4\" }],\n  [\"path\", { d: \"m17.7 6.3 1.4-1.4\" }],\n];\nconst moon: GlassIconNode[] = [\n  [\"path\", { d: \"M21 13a8 8 0 1 1-10-10 7 7 0 0 0 10 10Z\" }],\n];\nconst volume: GlassIconNode[] = [\n  [\"path\", { d: \"M11 5 6 9H3v6h3l5 4Z\" }],\n  [\"path\", { d: \"M15 9a5 5 0 0 1 0 6\" }],\n];\nconst volume2: GlassIconNode[] = [\n  ...volume,\n  [\"path\", { d: \"M18 6a9 9 0 0 1 0 12\" }],\n];\nconst maximize: GlassIconNode[] = [\n  [\"path\", { d: \"M8 3H3v5\" }],\n  [\"path\", { d: \"M16 3h5v5\" }],\n  [\"path\", { d: \"M21 16v5h-5\" }],\n  [\"path\", { d: \"M3 16v5h5\" }],\n];\nconst minimize: GlassIconNode[] = [\n  [\"path\", { d: \"M8 3v5H3\" }],\n  [\"path\", { d: \"M16 3v5h5\" }],\n  [\"path\", { d: \"M21 16h-5v5\" }],\n  [\"path\", { d: \"M3 16h5v5\" }],\n];\nconst send: GlassIconNode[] = [\n  [\"path\", { d: \"M22 2 11 13\" }],\n  [\"path\", { d: \"m22 2-7 20-4-9-9-4Z\" }],\n];\nconst paperclip: GlassIconNode[] = [\n  [\n    \"path\",\n    {\n      d: \"m21 12-8.5 8.5a6 6 0 0 1-8.5-8.5L13 3a4 4 0 0 1 5.7 5.7l-9 9a2 2 0 0 1-2.8-2.8L15 6.8\",\n    },\n  ],\n];\nconst bold: GlassIconNode[] = [\n  [\"path\", { d: \"M7 5h6a4 4 0 0 1 0 8H7Z\" }],\n  [\"path\", { d: \"M7 13h7a4 4 0 0 1 0 8H7Z\" }],\n  [\"path\", { d: \"M7 5v16\" }],\n];\nconst italic: GlassIconNode[] = [\n  [\"path\", { d: \"M11 5h6\" }],\n  [\"path\", { d: \"M7 19h6\" }],\n  [\"path\", { d: \"m14 5-4 14\" }],\n];\nconst underline: GlassIconNode[] = [\n  [\"path\", { d: \"M7 5v6a5 5 0 0 0 10 0V5\" }],\n  [\"path\", { d: \"M5 21h14\" }],\n];\nconst grid: GlassIconNode[] = [\n  [\"rect\", { x: 3, y: 3, width: 7, height: 7, rx: 1 }],\n  [\"rect\", { x: 14, y: 3, width: 7, height: 7, rx: 1 }],\n  [\"rect\", { x: 3, y: 14, width: 7, height: 7, rx: 1 }],\n  [\"rect\", { x: 14, y: 14, width: 7, height: 7, rx: 1 }],\n];\nconst list: GlassIconNode[] = [\n  [\"path\", { d: \"M8 6h13\" }],\n  [\"path\", { d: \"M8 12h13\" }],\n  [\"path\", { d: \"M8 18h13\" }],\n  [\"path\", { d: \"M3 6h.01\" }],\n  [\"path\", { d: \"M3 12h.01\" }],\n  [\"path\", { d: \"M3 18h.01\" }],\n];\n\nexport const Accessibility = createGlassIcon(\"Accessibility\", [\n  ...circle,\n  [\"path\", { d: \"M12 7v10\" }],\n  [\"path\", { d: \"M8 10h8\" }],\n  [\"path\", { d: \"m9 21 3-6 3 6\" }],\n]);\nexport const Activity = createGlassIcon(\"Activity\", activity);\nexport const AlertCircle = createGlassIcon(\"AlertCircle\", alertCircle);\nexport const AlertTriangle = createGlassIcon(\"AlertTriangle\", alertTriangle);\nexport const Archive = createGlassIcon(\"Archive\", [\n  [\"path\", { d: \"M3 5h18v4H3Z\" }],\n  [\"path\", { d: \"M5 9v10h14V9\" }],\n  [\"path\", { d: \"M10 13h4\" }],\n]);\nexport const ArrowRight = createGlassIcon(\"ArrowRight\", arrowRight);\nexport const ArrowUp = createGlassIcon(\"ArrowUp\", arrowUp);\nexport const ArrowDown = createGlassIcon(\"ArrowDown\", arrowDown);\nexport const BarChart3 = createGlassIcon(\"BarChart3\", chartBars);\nexport const Bell = createGlassIcon(\"Bell\", bell);\nexport const Bold = createGlassIcon(\"Bold\", bold);\nexport const BookOpen = createGlassIcon(\"BookOpen\", [\n  [\"path\", { d: \"M4 5a3 3 0 0 1 3-3h13v17H7a3 3 0 0 0-3 3Z\" }],\n  [\"path\", { d: \"M4 5v17\" }],\n]);\nexport const Brain = createGlassIcon(\"Brain\", [\n  [\n    \"path\",\n    {\n      d: \"M8 6a4 4 0 0 1 8 0 4 4 0 0 1 2 7 4 4 0 0 1-4 6h-4a4 4 0 0 1-4-6 4 4 0 0 1 2-7Z\",\n    },\n  ],\n  [\"path\", { d: \"M12 4v16\" }],\n]);\nexport const Building2 = createGlassIcon(\"Building2\", [\n  [\"rect\", { x: 4, y: 3, width: 16, height: 18, rx: 2 }],\n  [\"path\", { d: \"M9 8h.01M15 8h.01M9 12h.01M15 12h.01M9 16h.01M15 16h.01\" }],\n]);\nexport const Calendar = createGlassIcon(\"Calendar\", calendar);\nexport const Camera = createGlassIcon(\"Camera\", [\n  [\n    \"path\",\n    {\n      d: \"M5 7h3l2-3h4l2 3h3a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2Z\",\n    },\n  ],\n  [\"circle\", { cx: 12, cy: 13, r: 4 }],\n]);\nexport const Check = createGlassIcon(\"Check\", check);\nexport const CheckCheck = createGlassIcon(\"CheckCheck\", [\n  [\"path\", { d: \"m3 12 3 3 6-6\" }],\n  [\"path\", { d: \"m11 12 3 3 7-8\" }],\n]);\nexport const CheckCircle = createGlassIcon(\"CheckCircle\", [\n  ...circle,\n  ...check,\n]);\nexport const CheckCircle2 = CheckCircle;\nexport const ChevronDown = createGlassIcon(\"ChevronDown\", chevronDown);\nexport const ChevronLeft = createGlassIcon(\"ChevronLeft\", chevronLeft);\nexport const ChevronRight = createGlassIcon(\"ChevronRight\", chevronRight);\nexport const ChevronUp = createGlassIcon(\"ChevronUp\", chevronUp);\nexport const ChevronsLeft = createGlassIcon(\"ChevronsLeft\", [\n  [\"path\", { d: \"m11 17-5-5 5-5\" }],\n  [\"path\", { d: \"m18 17-5-5 5-5\" }],\n]);\nexport const ChevronsRight = createGlassIcon(\"ChevronsRight\", [\n  [\"path\", { d: \"m6 17 5-5-5-5\" }],\n  [\"path\", { d: \"m13 17 5-5-5-5\" }],\n]);\nexport const Circle = createGlassIcon(\"Circle\", circle);\nexport const ClipboardPaste = createGlassIcon(\"ClipboardPaste\", [\n  [\"path\", { d: \"M9 3h6l1 2h3v16H5V5h3Z\" }],\n  [\"path\", { d: \"M9 13h6\" }],\n  [\"path\", { d: \"m12 10 3 3-3 3\" }],\n]);\nexport const Clock = createGlassIcon(\"Clock\", clock);\nexport const Cloud = createGlassIcon(\"Cloud\", cloud);\nexport const CloudUpload = createGlassIcon(\"CloudUpload\", [\n  ...cloud,\n  [\"path\", { d: \"M12 16V9\" }],\n  [\"path\", { d: \"m8 13 4-4 4 4\" }],\n]);\nexport const Code = createGlassIcon(\"Code\", code);\nexport const Code2 = Code;\nexport const Columns3 = createGlassIcon(\"Columns3\", [\n  [\"rect\", { x: 3, y: 4, width: 18, height: 16, rx: 2 }],\n  [\"path\", { d: \"M9 4v16\" }],\n  [\"path\", { d: \"M15 4v16\" }],\n]);\nexport const Contrast = createGlassIcon(\"Contrast\", [\n  ...circle,\n  [\n    \"path\",\n    { d: \"M12 3a9 9 0 0 0 0 18Z\", fill: \"currentColor\", stroke: \"none\" },\n  ],\n]);\nexport const Copy = createGlassIcon(\"Copy\", copy);\nexport const Cpu = createGlassIcon(\"Cpu\", [\n  [\"rect\", { x: 8, y: 8, width: 8, height: 8, rx: 1 }],\n  [\n    \"path\",\n    { d: \"M4 10h4M4 14h4M16 10h4M16 14h4M10 4v4M14 4v4M10 16v4M14 16v4\" },\n  ],\n]);\nexport const CreditCard = createGlassIcon(\"CreditCard\", [\n  [\"rect\", { x: 3, y: 5, width: 18, height: 14, rx: 2 }],\n  [\"path\", { d: \"M3 10h18\" }],\n]);\nexport const Crown = createGlassIcon(\"Crown\", [\n  [\"path\", { d: \"m3 7 5 4 4-7 4 7 5-4-2 12H5Z\" }],\n]);\nexport const Database = createGlassIcon(\"Database\", database);\nexport const Diamond = createGlassIcon(\"Diamond\", [\n  [\"path\", { d: \"m12 2 9 10-9 10L3 12Z\" }],\n]);\nexport const DollarSign = createGlassIcon(\"DollarSign\", [\n  [\"path\", { d: \"M12 2v20\" }],\n  [\"path\", { d: \"M17 5H9.5a3.5 3.5 0 0 0 0 7H14a3.5 3.5 0 0 1 0 7H6\" }],\n]);\nexport const Download = createGlassIcon(\"Download\", download);\nexport const Droplets = createGlassIcon(\"Droplets\", [\n  [\"path\", { d: \"M7 3s5 5 5 9a5 5 0 0 1-10 0c0-4 5-9 5-9Z\" }],\n  [\"path\", { d: \"M17 8s4 4 4 7a4 4 0 0 1-8 0c0-3 4-7 4-7Z\" }],\n]);\nexport const Edit = createGlassIcon(\"Edit\", [\n  [\"path\", { d: \"M12 20h9\" }],\n  [\"path\", { d: \"M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z\" }],\n]);\nexport const Eye = createGlassIcon(\"Eye\", eye);\nexport const EyeOff = createGlassIcon(\"EyeOff\", eyeOff);\nexport const File = createGlassIcon(\"File\", file);\nexport const FileCheck2 = createGlassIcon(\"FileCheck2\", [...file, ...check]);\nexport const FilePenLine = createGlassIcon(\"FilePenLine\", [\n  ...file,\n  [\"path\", { d: \"m9 16 6-6 2 2-6 6H9Z\" }],\n]);\nexport const FileText = createGlassIcon(\"FileText\", [\n  ...file,\n  [\"path\", { d: \"M8 12h8\" }],\n  [\"path\", { d: \"M8 16h6\" }],\n]);\nexport const Filter = createGlassIcon(\"Filter\", [\n  [\"path\", { d: \"M4 5h16l-6 7v6l-4 2v-8Z\" }],\n]);\nexport const Flame = createGlassIcon(\"Flame\", [\n  [\n    \"path\",\n    { d: \"M12 22a7 7 0 0 0 7-7c0-5-4-7-5-12-3 3-8 6-8 12a6 6 0 0 0 6 7Z\" },\n  ],\n]);\nexport const Flower = createGlassIcon(\"Flower\", [\n  [\"circle\", { cx: 12, cy: 12, r: 2 }],\n  [\n    \"path\",\n    {\n      d: \"M12 2c2 3 2 5 0 8-2-3-2-5 0-8ZM12 22c-2-3-2-5 0-8 2 3 2 5 0 8ZM2 12c3-2 5-2 8 0-3 2-5 2-8 0ZM22 12c-3 2-5 2-8 0 3-2 5-2 8 0Z\",\n    },\n  ],\n]);\nexport const Folder = createGlassIcon(\"Folder\", folder);\nexport const FolderKanban = Folder;\nexport const FolderOpen = createGlassIcon(\"FolderOpen\", [\n  ...folder,\n  [\"path\", { d: \"M3 18 6 10h15l-3 8\" }],\n]);\nexport const FolderSearch = createGlassIcon(\"FolderSearch\", [\n  ...folder,\n  ...search,\n]);\nexport const Gauge = createGlassIcon(\"Gauge\", [\n  [\"path\", { d: \"M4 14a8 8 0 0 1 16 0\" }],\n  [\"path\", { d: \"M12 14l4-4\" }],\n  [\"path\", { d: \"M6 20h12\" }],\n]);\nexport const Gift = createGlassIcon(\"Gift\", [\n  [\"rect\", { x: 3, y: 8, width: 18, height: 13, rx: 2 }],\n  [\"path\", { d: \"M12 8v13\" }],\n  [\"path\", { d: \"M3 12h18\" }],\n  [\"path\", { d: \"M7.5 8A2.5 2.5 0 1 1 12 6a2.5 2.5 0 1 1 4.5 2\" }],\n]);\nexport const Globe = createGlassIcon(\"Globe\", [\n  ...circle,\n  [\"path\", { d: \"M3 12h18\" }],\n  [\"path\", { d: \"M12 3a14 14 0 0 1 0 18 14 14 0 0 1 0-18Z\" }],\n]);\nexport const Grid = createGlassIcon(\"Grid\", grid);\nexport const Grid3X3 = createGlassIcon(\"Grid3X3\", [\n  [\"path\", { d: \"M3 3h18v18H3Z\" }],\n  [\"path\", { d: \"M3 9h18M3 15h18M9 3v18M15 3v18\" }],\n]);\nexport const GripVertical = createGlassIcon(\"GripVertical\", [\n  [\"path\", { d: \"M9 5h.01M15 5h.01M9 12h.01M15 12h.01M9 19h.01M15 19h.01\" }],\n]);\nexport const Hand = createGlassIcon(\"Hand\", [\n  [\"path\", { d: \"M8 13V5a2 2 0 0 1 4 0v6\" }],\n  [\"path\", { d: \"M12 11V4a2 2 0 0 1 4 0v8\" }],\n  [\"path\", { d: \"M16 12V8a2 2 0 0 1 4 0v5a7 7 0 0 1-14 0v-2a2 2 0 0 1 2-2Z\" }],\n]);\nexport const HardDrive = createGlassIcon(\"HardDrive\", [\n  [\"rect\", { x: 3, y: 5, width: 18, height: 14, rx: 2 }],\n  [\"path\", { d: \"M3 15h18\" }],\n  [\"path\", { d: \"M7 18h.01M11 18h.01\" }],\n]);\nexport const Hash = createGlassIcon(\"Hash\", [\n  [\"path\", { d: \"M4 9h16M4 15h16M10 3 8 21M16 3l-2 18\" }],\n]);\nexport const Heart = createGlassIcon(\"Heart\", heart);\nexport const HelpCircle = createGlassIcon(\"HelpCircle\", [\n  ...circle,\n  [\"path\", { d: \"M9.5 9a2.5 2.5 0 0 1 5 0c0 2-2.5 2-2.5 4\" }],\n  [\"path\", { d: \"M12 17h.01\" }],\n]);\nexport const Hexagon = createGlassIcon(\"Hexagon\", [\n  [\"path\", { d: \"M21 16V8l-9-5-9 5v8l9 5Z\" }],\n]);\nexport const History = createGlassIcon(\"History\", [\n  [\"path\", { d: \"M3 12a9 9 0 1 0 3-6.7L3 8\" }],\n  [\"path\", { d: \"M3 3v5h5\" }],\n  [\"path\", { d: \"M12 7v5l3 2\" }],\n]);\nexport const Home = createGlassIcon(\"Home\", home);\nexport const Image = createGlassIcon(\"Image\", image);\nexport const Info = createGlassIcon(\"Info\", [\n  ...circle,\n  [\"path\", { d: \"M12 11v5\" }],\n  [\"path\", { d: \"M12 8h.01\" }],\n]);\nexport const Italic = createGlassIcon(\"Italic\", italic);\nexport const Keyboard = createGlassIcon(\"Keyboard\", [\n  [\"rect\", { x: 3, y: 5, width: 18, height: 14, rx: 2 }],\n  [\"path\", { d: \"M7 9h.01M11 9h.01M15 9h.01M17 13H7\" }],\n]);\nexport const Layers = createGlassIcon(\"Layers\", [\n  [\"path\", { d: \"m12 2 10 5-10 5L2 7Z\" }],\n  [\"path\", { d: \"m2 12 10 5 10-5\" }],\n  [\"path\", { d: \"m2 17 10 5 10-5\" }],\n]);\nexport const LayoutDashboard = createGlassIcon(\"LayoutDashboard\", [\n  [\"rect\", { x: 3, y: 3, width: 7, height: 9, rx: 1 }],\n  [\"rect\", { x: 14, y: 3, width: 7, height: 5, rx: 1 }],\n  [\"rect\", { x: 14, y: 12, width: 7, height: 9, rx: 1 }],\n  [\"rect\", { x: 3, y: 16, width: 7, height: 5, rx: 1 }],\n]);\nexport const Leaf = createGlassIcon(\"Leaf\", [\n  [\"path\", { d: \"M20 3c-8 1-14 7-15 15 8-1 14-7 15-15Z\" }],\n  [\"path\", { d: \"M5 18 14 9\" }],\n]);\nexport const LineChart = createGlassIcon(\"LineChart\", lineChart);\nexport const Link = createGlassIcon(\"Link\", [\n  [\"path\", { d: \"M10 13a5 5 0 0 0 7 0l2-2a5 5 0 0 0-7-7l-1 1\" }],\n  [\"path\", { d: \"M14 11a5 5 0 0 0-7 0l-2 2a5 5 0 0 0 7 7l1-1\" }],\n]);\nexport const List = createGlassIcon(\"List\", list);\nexport const Loader2 = createGlassIcon(\"Loader2\", [\n  [\"path\", { d: \"M21 12a9 9 0 1 1-6.2-8.6\" }],\n]);\nexport const Lock = createGlassIcon(\"Lock\", lock);\nexport const Mail = createGlassIcon(\"Mail\", mail);\nexport const MapPin = createGlassIcon(\"MapPin\", mapPin);\nexport const Maximize = createGlassIcon(\"Maximize\", maximize);\nexport const Maximize2 = Maximize;\nexport const Menu = createGlassIcon(\"Menu\", menu);\nexport const MessageCircle = createGlassIcon(\"MessageCircle\", message);\nexport const MessageSquare = createGlassIcon(\"MessageSquare\", message);\nexport const MessageSquareText = createGlassIcon(\"MessageSquareText\", [\n  ...message,\n  [\"path\", { d: \"M8 10h8M8 14h5\" }],\n]);\nexport const Mic = createGlassIcon(\"Mic\", mic);\nexport const MicOff = createGlassIcon(\"MicOff\", micOff);\nexport const Minimize = createGlassIcon(\"Minimize\", minimize);\nexport const Minimize2 = Minimize;\nexport const Minus = createGlassIcon(\"Minus\", minus);\nexport const Monitor = createGlassIcon(\"Monitor\", [\n  [\"rect\", { x: 3, y: 4, width: 18, height: 13, rx: 2 }],\n  [\"path\", { d: \"M8 21h8M12 17v4\" }],\n]);\nexport const Moon = createGlassIcon(\"Moon\", moon);\nexport const MoreHorizontal = createGlassIcon(\"MoreHorizontal\", moreHorizontal);\nexport const MoreVertical = createGlassIcon(\"MoreVertical\", moreVertical);\nexport const MousePointer2 = createGlassIcon(\"MousePointer2\", [\n  [\"path\", { d: \"m4 3 7 18 2-8 8-2Z\" }],\n]);\nexport const Move = createGlassIcon(\"Move\", [\n  [\"path\", { d: \"M12 2v20M2 12h20\" }],\n  [\"path\", { d: \"m15 5-3-3-3 3M15 19l-3 3-3-3M5 9l-3 3 3 3M19 9l3 3-3 3\" }],\n]);\nexport const Music = createGlassIcon(\"Music\", [\n  [\"path\", { d: \"M9 18V5l12-2v13\" }],\n  [\"circle\", { cx: 6, cy: 18, r: 3 }],\n  [\"circle\", { cx: 18, cy: 16, r: 3 }],\n]);\nexport const Palette = createGlassIcon(\"Palette\", palette);\nexport const PanelsTopLeft = createGlassIcon(\"PanelsTopLeft\", [\n  [\"rect\", { x: 3, y: 3, width: 18, height: 18, rx: 2 }],\n  [\"path\", { d: \"M3 9h18M9 9v12\" }],\n]);\nexport const Paperclip = createGlassIcon(\"Paperclip\", paperclip);\nexport const Pause = createGlassIcon(\"Pause\", pause);\nexport const Phone = createGlassIcon(\"Phone\", [\n  [\n    \"path\",\n    {\n      d: \"M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1A19.5 19.5 0 0 1 3.2 10.8 19.8 19.8 0 0 1 .1 2.2 2 2 0 0 1 2.1 0h3a2 2 0 0 1 2 1.7l.5 3a2 2 0 0 1-.6 1.8L5.7 7.8a16 16 0 0 0 6.5 6.5l1.3-1.3a2 2 0 0 1 1.8-.6l3 .5a2 2 0 0 1 1.7 2Z\",\n      transform: \"translate(1 1) scale(.92)\",\n    },\n  ],\n]);\nexport const PieChart = createGlassIcon(\"PieChart\", [\n  [\"path\", { d: \"M12 2v10h10A10 10 0 1 1 12 2Z\" }],\n  [\"path\", { d: \"M14 2.2A10 10 0 0 1 21.8 10H14Z\" }],\n]);\nexport const Play = createGlassIcon(\"Play\", play);\nexport const Plus = createGlassIcon(\"Plus\", plus);\nexport const Redo = createGlassIcon(\"Redo\", [\n  [\"path\", { d: \"M21 7v6h-6\" }],\n  [\"path\", { d: \"M3 17a9 9 0 0 1 15-6.7L21 13\" }],\n]);\nexport const RefreshCw = createGlassIcon(\"RefreshCw\", refresh);\nexport const Reply = createGlassIcon(\"Reply\", [\n  [\"path\", { d: \"m9 17-6-5 6-5v4h5a7 7 0 0 1 7 7v1\" }],\n]);\nexport const RotateCcw = createGlassIcon(\"RotateCcw\", rotateCcw);\nexport const RotateCw = createGlassIcon(\"RotateCw\", rotateCw);\nexport const Save = createGlassIcon(\"Save\", [\n  [\"path\", { d: \"M5 3h12l2 2v16H5Z\" }],\n  [\"path\", { d: \"M8 3v6h8V3\" }],\n  [\"path\", { d: \"M8 21v-7h8v7\" }],\n]);\nexport const Search = createGlassIcon(\"Search\", search);\nexport const Send = createGlassIcon(\"Send\", send);\nexport const Server = createGlassIcon(\"Server\", [\n  [\"rect\", { x: 4, y: 3, width: 16, height: 8, rx: 2 }],\n  [\"rect\", { x: 4, y: 13, width: 16, height: 8, rx: 2 }],\n  [\"path\", { d: \"M8 7h.01M8 17h.01\" }],\n]);\nexport const Settings = createGlassIcon(\"Settings\", settings);\nexport const Share = createGlassIcon(\"Share\", [\n  [\"path\", { d: \"M4 12v7h16v-7\" }],\n  [\"path\", { d: \"M12 3v12\" }],\n  [\"path\", { d: \"m7 8 5-5 5 5\" }],\n]);\nexport const Share2 = createGlassIcon(\"Share2\", [\n  [\"circle\", { cx: 18, cy: 5, r: 3 }],\n  [\"circle\", { cx: 6, cy: 12, r: 3 }],\n  [\"circle\", { cx: 18, cy: 19, r: 3 }],\n  [\"path\", { d: \"m8.6 13.5 6.8 4M15.4 6.5l-6.8 4\" }],\n]);\nexport const Shield = createGlassIcon(\"Shield\", shield);\nexport const ShieldCheck = createGlassIcon(\"ShieldCheck\", [\n  ...shield,\n  ...check,\n]);\nexport const Shuffle = createGlassIcon(\"Shuffle\", [\n  [\"path\", { d: \"M16 3h5v5\" }],\n  [\"path\", { d: \"M4 20 21 3\" }],\n  [\"path\", { d: \"M21 16v5h-5\" }],\n  [\"path\", { d: \"m15 15 6 6\" }],\n  [\"path\", { d: \"M4 4l5 5\" }],\n]);\nexport const SkipBack = createGlassIcon(\"SkipBack\", [\n  [\"path\", { d: \"M19 20 9 12l10-8Z\" }],\n  [\"path\", { d: \"M5 19V5\" }],\n]);\nexport const SkipForward = createGlassIcon(\"SkipForward\", [\n  [\"path\", { d: \"m5 4 10 8-10 8Z\" }],\n  [\"path\", { d: \"M19 5v14\" }],\n]);\nexport const SlidersHorizontal = createGlassIcon(\"SlidersHorizontal\", [\n  [\"path\", { d: \"M3 6h18M3 12h18M3 18h18\" }],\n  [\"circle\", { cx: 8, cy: 6, r: 2 }],\n  [\"circle\", { cx: 16, cy: 12, r: 2 }],\n  [\"circle\", { cx: 10, cy: 18, r: 2 }],\n]);\nexport const Smile = createGlassIcon(\"Smile\", [\n  ...circle,\n  [\"path\", { d: \"M8 14s1.5 2 4 2 4-2 4-2\" }],\n  [\"path\", { d: \"M9 9h.01M15 9h.01\" }],\n]);\nexport const Snowflake = createGlassIcon(\"Snowflake\", [\n  [\"path\", { d: \"M12 2v20M4 6l16 12M20 6 4 18\" }],\n]);\nexport const SortAsc = createGlassIcon(\"SortAsc\", [\n  [\"path\", { d: \"M11 5h10M11 12h7M11 19h4\" }],\n  [\"path\", { d: \"M4 17V7\" }],\n  [\"path\", { d: \"m2 9 2-2 2 2\" }],\n]);\nexport const SortDesc = createGlassIcon(\"SortDesc\", [\n  [\"path\", { d: \"M11 5h4M11 12h7M11 19h10\" }],\n  [\"path\", { d: \"M4 7v10\" }],\n  [\"path\", { d: \"m2 15 2 2 2-2\" }],\n]);\nexport const Sparkles = createGlassIcon(\"Sparkles\", sparkles);\nexport const Square = createGlassIcon(\"Square\", square);\nexport const Star = createGlassIcon(\"Star\", star);\nexport const Sun = createGlassIcon(\"Sun\", sun);\nexport const Tag = createGlassIcon(\"Tag\", [\n  [\"path\", { d: \"M20 13 11 22 2 13V4h9Z\" }],\n  [\"path\", { d: \"M7 8h.01\" }],\n]);\nexport const Target = createGlassIcon(\"Target\", target);\nexport const TestTube = createGlassIcon(\"TestTube\", [\n  [\"path\", { d: \"M10 2v7L4 19a3 3 0 0 0 2.6 4h10.8A3 3 0 0 0 20 19L14 9V2\" }],\n  [\"path\", { d: \"M8 2h8\" }],\n  [\"path\", { d: \"M7 15h10\" }],\n]);\nexport const ThumbsUp = createGlassIcon(\"ThumbsUp\", [\n  [\"path\", { d: \"M7 10v11H3V10Z\" }],\n  [\n    \"path\",\n    {\n      d: \"M7 10 12 2l1 2a5 5 0 0 1-.4 4H20a2 2 0 0 1 2 2l-2 9a3 3 0 0 1-3 2H7\",\n    },\n  ],\n]);\nexport const Trash2 = createGlassIcon(\"Trash2\", trash);\nexport const TrendingDown = createGlassIcon(\"TrendingDown\", trendingDown);\nexport const TrendingUp = createGlassIcon(\"TrendingUp\", trendingUp);\nexport const Triangle = createGlassIcon(\"Triangle\", [\n  [\"path\", { d: \"M12 3 22 21H2Z\" }],\n]);\nexport const Trophy = createGlassIcon(\"Trophy\", [\n  [\"path\", { d: \"M8 21h8\" }],\n  [\"path\", { d: \"M12 17v4\" }],\n  [\"path\", { d: \"M7 4h10v5a5 5 0 0 1-10 0Z\" }],\n  [\"path\", { d: \"M7 6H3a4 4 0 0 0 4 4M17 6h4a4 4 0 0 1-4 4\" }],\n]);\nexport const Underline = createGlassIcon(\"Underline\", underline);\nexport const Undo = createGlassIcon(\"Undo\", [\n  [\"path\", { d: \"M3 7v6h6\" }],\n  [\"path\", { d: \"M21 17a9 9 0 0 0-15-6.7L3 13\" }],\n]);\nexport const Undo2 = Undo;\nexport const Unlock = createGlassIcon(\"Unlock\", unlock);\nexport const Upload = createGlassIcon(\"Upload\", upload);\nexport const User = createGlassIcon(\"User\", user);\nexport const UserRound = User;\nexport const Users = createGlassIcon(\"Users\", users);\nexport const Video = createGlassIcon(\"Video\", video);\nexport const Volume1 = createGlassIcon(\"Volume1\", volume);\nexport const Volume2 = createGlassIcon(\"Volume2\", volume2);\nexport const VolumeX = createGlassIcon(\"VolumeX\", [...volume, ...x]);\nexport const Waves = createGlassIcon(\"Waves\", [\n  [\"path\", { d: \"M2 8c3-3 5 3 8 0s5 3 8 0 4 1 4 1\" }],\n  [\"path\", { d: \"M2 14c3-3 5 3 8 0s5 3 8 0 4 1 4 1\" }],\n]);\nexport const Wifi = createGlassIcon(\"Wifi\", [\n  [\"path\", { d: \"M5 13a10 10 0 0 1 14 0\" }],\n  [\"path\", { d: \"M8.5 16.5a5 5 0 0 1 7 0\" }],\n  [\"path\", { d: \"M12 20h.01\" }],\n]);\nexport const Wind = createGlassIcon(\"Wind\", [\n  [\"path\", { d: \"M3 8h11a3 3 0 1 0-3-3\" }],\n  [\"path\", { d: \"M3 12h17\" }],\n  [\"path\", { d: \"M3 16h12a3 3 0 1 1-3 3\" }],\n]);\nexport const X = createGlassIcon(\"X\", x);\nexport const XCircle = createGlassIcon(\"XCircle\", [...circle, ...x]);\nexport const Zap = createGlassIcon(\"Zap\", zap);\nexport const ZoomIn = createGlassIcon(\"ZoomIn\", [...search, ...plus]);\nexport const ZoomOut = createGlassIcon(\"ZoomOut\", [...search, ...minus]);\n\nconst glassIconRegistry = {\n  activity: Activity,\n  alert: AlertCircle,\n  archive: Archive,\n  calendar: Calendar,\n  check: Check,\n  close: X,\n  command: Search,\n  data: Database,\n  filter: Filter,\n  home: Home,\n  loading: Loader2,\n  menu: Menu,\n  notification: Bell,\n  search: Search,\n  settings: Settings,\n  spark: Sparkles,\n  user: User,\n  users: Users,\n  warning: AlertTriangle,\n} as const;\n\nexport interface NamedGlassIconProps extends GlassIconProps {\n  name: keyof typeof glassIconRegistry | string;\n}\n\nexport const GlassIcon = ({ name, ...props }: NamedGlassIconProps) => {\n  const Icon =\n    glassIconRegistry[name as keyof typeof glassIconRegistry] ?? Circle;\n  return <Icon {...props} />;\n};\n\nexport const ActivityIcon = Activity;\nexport const AlertCircleIcon = AlertCircle;\nexport const AlertTriangleIcon = AlertTriangle;\nexport const ArrowDownIcon = ArrowDown;\nexport const ArrowRightIcon = ArrowRight;\nexport const ArrowUpIcon = ArrowUp;\nexport const BellIcon = Bell;\nexport const CalendarIcon = Calendar;\nexport const CheckIcon = Check;\nexport const ChevronDownIcon = ChevronDown;\nexport const ChevronLeftIcon = ChevronLeft;\nexport const ChevronRightIcon = ChevronRight;\nexport const ChevronUpIcon = ChevronUp;\nexport const ClockIcon = Clock;\nexport const CloseIcon = X;\nexport const CommandIcon = Search;\nexport const CopyIcon = Copy;\nexport const DashboardIcon = LayoutDashboard;\nexport const DatabaseIcon = Database;\nexport const DownloadIcon = Download;\nexport const ErrorIcon = AlertCircle;\nexport const FileIcon = File;\nexport const FilterIcon = Filter;\nexport const FolderIcon = Folder;\nexport const GridIcon = Grid;\nexport const HomeIcon = Home;\nexport const ImageIcon = Image;\nexport const InfoIcon = Info;\nexport const ListIcon = List;\nexport const LoaderIcon = Loader2;\nexport const MediaIcon = Play;\nexport const MenuIcon = Menu;\nexport const MicIcon = Mic;\nexport const MoreHorizontalIcon = MoreHorizontal;\nexport const MoreVerticalIcon = MoreVertical;\nexport const NotificationIcon = Bell;\nexport const PaletteIcon = Palette;\nexport const PlayIcon = Play;\nexport const PlusIcon = Plus;\nexport const RefreshIcon = RefreshCw;\nexport const SaveIcon = Save;\nexport const SearchIcon = Search;\nexport const SendIcon = Send;\nexport const SettingsIcon = Settings;\nexport const SparkIcon = Sparkles;\nexport const SuccessIcon = CheckCircle;\nexport const UserIcon = User;\nexport const UsersIcon = Users;\nexport const VideoIcon = Video;\nexport const WarningIcon = AlertTriangle;\nexport const XIcon = X;\nexport const ZapIcon = Zap;\n", "export * from \"./components\";\n", "/**\n * Simple deterministic pseudo-random number generator for SSR consistency.\n */\nexport class SeededRandom {\n  private state: number;\n\n  constructor(seed: number | string = Date.now()) {\n    this.state = SeededRandom.normalizeSeed(seed);\n  }\n\n  static normalizeSeed(seed: number | string): number {\n    if (typeof seed === 'number' && Number.isFinite(seed)) {\n      return SeededRandom.hash(seed);\n    }\n\n    if (typeof seed === 'string') {\n      let hash = 0;\n      for (let i = 0; i < seed.length; i++) {\n        hash = (hash << 5) - hash + seed.charCodeAt(i);\n        hash |= 0; // Convert to 32-bit integer\n      }\n      return SeededRandom.hash(hash);\n    }\n\n    return SeededRandom.hash(Date.now());\n  }\n\n  private static hash(input: number): number {\n    let x = input | 0;\n    x ^= x >>> 16;\n    x = Math.imul(x, 0x7feb352d);\n    x ^= x >>> 15;\n    x = Math.imul(x, 0x846ca68b);\n    x ^= x >>> 16;\n    return x >>> 0;\n  }\n\n  next(): number {\n    // LCG parameters from Numerical Recipes\n    this.state = (1664525 * this.state + 1013904223) >>> 0;\n    return this.state / 0xffffffff;\n  }\n\n  nextInRange(min: number, max: number): number {\n    return min + (max - min) * this.next();\n  }\n\n  nextInt(min: number, max: number): number {\n    return Math.floor(this.nextInRange(min, max + 1));\n  }\n\n  nextSigned(): number {\n    return this.next() * 2 - 1;\n  }\n}\n\nexport const createSeededRandom = (seed?: number | string): SeededRandom => {\n  return new SeededRandom(seed);\n};\n", "\"use client\";\nimport { useReducedMotion } from \"@/hooks/useReducedMotion\";\nimport { Canvas, useFrame, useThree } from \"@react-three/fiber\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { RotateCcw, Triangle, Zap } from \"@/icons\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport * as THREE from \"three\";\nimport { SeededRandom } from \"../../utils/random\";\n\n// Shatter geometry factory\nconst ShatterGeometryFactory = {\n  createGlassShard: (\n    size = 1,\n    complexity = 3,\n    random: SeededRandom = new SeededRandom()\n  ) => {\n    const geometry = new THREE.PlaneGeometry(\n      size,\n      size,\n      complexity,\n      complexity\n    );\n\n    const positions = geometry.attributes.position.array as Float32Array;\n    for (let i = 0; i < positions.length; i += 3) {\n      const x = positions[i];\n      const y = positions[i + 1];\n\n      const edgeFactor = Math.abs(x) + Math.abs(y);\n      if (edgeFactor > 0.8) {\n        positions[i] += random.nextSigned() * 0.1;\n        positions[i + 1] += random.nextSigned() * 0.1;\n        positions[i + 2] += random.nextSigned() * 0.05;\n      }\n    }\n\n    geometry.computeVertexNormals();\n    return geometry;\n  },\n\n  createShatterField: (\n    count = 20,\n    _spread = 5,\n    random: SeededRandom = new SeededRandom()\n  ) => {\n    const geometries: THREE.PlaneGeometry[] = [];\n    for (let i = 0; i < count; i++) {\n      const size = 0.5 + random.next() * 1.5;\n      const complexity = 2 + random.nextInt(0, 2);\n      const geometry = ShatterGeometryFactory.createGlassShard(\n        size,\n        complexity,\n        random\n      );\n      geometries.push(geometry);\n    }\n    return geometries;\n  },\n};\n\nconst ShatterMaterialFactory = {\n  createGlassShardMaterial: (options: any = {}) => {\n    const {\n      color = new THREE.Color(0.7, 0.9, 1.0),\n      opacity = 0.8,\n      refractionRatio = 1.5,\n      reflectivity = 0.8,\n    } = options;\n\n    return new THREE.ShaderMaterial({\n      uniforms: {\n        time: { value: 0 },\n        color: { value: color },\n        opacity: { value: opacity },\n        refractionRatio: { value: refractionRatio },\n        reflectivity: { value: reflectivity },\n        shatterProgress: { value: 0 },\n      },\n      vertexShader: `\n        varying vec3 vPosition;\n        varying vec3 vNormal;\n        varying vec2 vUv;\n\n        void main() {\n          vPosition = position;\n          vNormal = normal;\n          vUv = uv;\n\n          vec3 displacedPosition = position;\n          displacedPosition += normal * sin(time * 10.0 + position.x * 5.0) * 0.02;\n\n          gl_Position = projectionMatrix * modelViewMatrix * vec4(displacedPosition, 1.0);\n        }\n      `,\n      fragmentShader: `\n        uniform float time;\n        uniform vec3 color;\n        uniform float opacity;\n        uniform float refractionRatio;\n        uniform float reflectivity;\n        uniform float shatterProgress;\n\n        varying vec3 vPosition;\n        varying vec3 vNormal;\n        varying vec2 vUv;\n\n        void main() {\n          float fresnel = pow(1.0 - dot(vNormal, vec3(0.0, 0.0, 1.0)), 2.0);\n\n          vec3 finalColor = color;\n          finalColor += vec3(\n            sin(vPosition.x * 10.0) * 0.1,\n            cos(vPosition.y * 10.0) * 0.1,\n            sin(vPosition.z * 10.0) * 0.1\n          );\n\n          float shatterEffect = sin(time * 20.0 + vPosition.x * 5.0 + vPosition.y * 5.0) * 0.5 + 0.5;\n          finalColor *= (1.0 - shatterProgress * 0.3);\n\n          float finalOpacity = opacity * (0.7 + 0.3 * fresnel) * (1.0 - shatterProgress * 0.2);\n\n          gl_FragColor = vec4(finalColor, finalOpacity);\n        }\n      `,\n      transparent: true,\n      side: THREE.DoubleSide,\n    });\n  },\n};\n\nconst ShatterAnimations = {\n  createShardAnimation: (\n    shard: THREE.Mesh,\n    targetPosition: THREE.Vector3,\n    targetRotation: THREE.Euler,\n    duration: number = 2\n  ) => {\n    const startPosition = shard.position.clone();\n    const startRotation = shard.rotation.clone();\n    const startTime = Date.now();\n\n    return () => {\n      const elapsed = (Date.now() - startTime) / 1000;\n      const progress = Math.min(elapsed / duration, 1);\n\n      const easeOut = (t: number) => 1 - Math.pow(1 - t, 3);\n      const easedProgress = easeOut(progress);\n\n      shard.position.lerpVectors(startPosition, targetPosition, easedProgress);\n      shard.rotation.x = THREE.MathUtils.lerp(\n        startRotation.x,\n        targetRotation.x,\n        easedProgress\n      );\n      shard.rotation.y = THREE.MathUtils.lerp(\n        startRotation.y,\n        targetRotation.y,\n        easedProgress\n      );\n      shard.rotation.z = THREE.MathUtils.lerp(\n        startRotation.z,\n        targetRotation.z,\n        easedProgress\n      );\n\n      return progress >= 1;\n    };\n  },\n\n  createExplosionAnimation: (\n    shards: THREE.Mesh[],\n    center: THREE.Vector3,\n    force: number = 10,\n    duration: number = 1\n  ) => {\n    const prefersReducedMotion = useReducedMotion();\n    const animations = shards.map((shard) => {\n      const direction = new THREE.Vector3(\n        (Math.random() - 0.5) * 2,\n        (Math.random() - 0.5) * 2,\n        (Math.random() - 0.5) * 2\n      ).normalize();\n\n      const distance = 2 + Math.random() * 3;\n      const targetPosition = center\n        .clone()\n        .add(direction.multiplyScalar(distance));\n      const targetRotation = new THREE.Euler(\n        Math.random() * Math.PI * 2,\n        Math.random() * Math.PI * 2,\n        Math.random() * Math.PI * 2\n      );\n\n      return ShatterAnimations.createShardAnimation(\n        shard,\n        targetPosition,\n        targetRotation,\n        duration\n      );\n    });\n\n    return () => animations.every((animation) => animation());\n  },\n\n  createReformAnimation: (\n    shards: THREE.Mesh[],\n    originalPositions: THREE.Vector3[],\n    duration: number = 2\n  ) => {\n    const animations = shards.map((shard, index) => {\n      const targetPosition = originalPositions[index];\n      const targetRotation = new THREE.Euler(0, 0, 0);\n      return ShatterAnimations.createShardAnimation(\n        shard,\n        targetPosition,\n        targetRotation,\n        duration\n      );\n    });\n\n    return () => animations.every((animation) => animation());\n  },\n};\n\nexport interface GlassShatterEffectsProps {\n  children?: React.ReactNode;\n  className?: string;\n  trigger?: \"click\" | \"hover\" | \"manual\" | \"auto\";\n  duration?: number;\n  intensity?: number;\n  shardCount?: number;\n  autoReform?: boolean;\n  reformDelay?: number;\n  onShatter?: () => void;\n  onReform?: () => void;\n  disabled?: boolean;\n  showControls?: boolean;\n  seed?: number | string;\n}\n\nexport function GlassShatterEffectsR3F(props: GlassShatterEffectsProps) {\n  const {\n    children,\n    className = \"\",\n    trigger = \"click\",\n    duration = 2,\n    intensity = 1,\n    shardCount = 12,\n    autoReform = true,\n    reformDelay = 3000,\n    onShatter,\n    onReform,\n    disabled = false,\n    showControls = false,\n    seed,\n  } = props;\n\n  const prefersReducedMotion = useReducedMotion();\n  const containerRef = useRef<HTMLDivElement>(null);\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const [isShattered, setIsShattered] = useState(false);\n  const [isAnimating, setIsAnimating] = useState(false);\n  const [shards, setShards] = useState<THREE.Mesh[]>([]);\n  const [originalPositions, setOriginalPositions] = useState<THREE.Vector3[]>(\n    []\n  );\n  const [currentAnimation, setCurrentAnimation] = useState<\n    (() => boolean) | null\n  >(null);\n\n  useEffect(() => {\n    if (!canvasRef.current) return;\n\n    const seededRandom = new SeededRandom(seed ?? `${shardCount}`);\n    const geometries = ShatterGeometryFactory.createShatterField(\n      shardCount,\n      5,\n      seededRandom\n    );\n    const newShards: THREE.Mesh[] = [];\n    const positions: THREE.Vector3[] = [];\n\n    geometries.forEach((geometry) => {\n      const material = ShatterMaterialFactory.createGlassShardMaterial({\n        opacity: 0.8 - seededRandom.next() * 0.3,\n        refractionRatio: 1.3 + seededRandom.next() * 0.4,\n      });\n\n      const shard = new THREE.Mesh(geometry, material);\n      shard.position.set(\n        seededRandom.nextSigned() * 2,\n        seededRandom.nextSigned() * 2,\n        0\n      );\n      shard.rotation.set(\n        seededRandom.next() * Math.PI * 2,\n        seededRandom.next() * Math.PI * 2,\n        seededRandom.next() * Math.PI * 2\n      );\n\n      newShards.push(shard);\n      positions.push(shard.position.clone());\n    });\n\n    setShards(newShards);\n    setOriginalPositions(positions);\n  }, [shardCount, seed]);\n\n  const triggerReform = useCallback(() => {\n    if (!isShattered || isAnimating) return;\n    setIsAnimating(true);\n    onReform?.();\n    const animation = ShatterAnimations.createReformAnimation(\n      shards,\n      originalPositions,\n      duration\n    );\n    setCurrentAnimation(() => animation);\n  }, [isShattered, isAnimating, shards, originalPositions, duration, onReform]);\n\n  const triggerShatter = useCallback(() => {\n    if (disabled || isAnimating) return;\n    setIsShattered(true);\n    setIsAnimating(true);\n    onShatter?.();\n\n    const center = new THREE.Vector3(0, 0, 0);\n    const animation = ShatterAnimations.createExplosionAnimation(\n      shards,\n      center,\n      intensity * 10,\n      duration\n    );\n    setCurrentAnimation(() => animation);\n\n    if (autoReform) {\n      setTimeout(() => {\n        triggerReform();\n      }, reformDelay);\n    }\n  }, [\n    disabled,\n    isAnimating,\n    shards,\n    intensity,\n    duration,\n    autoReform,\n    reformDelay,\n    onShatter,\n    triggerReform,\n  ]);\n\n  const handleManualTrigger = useCallback(() => {\n    if (isShattered) {\n      triggerReform();\n    } else {\n      triggerShatter();\n    }\n  }, [isShattered, triggerReform, triggerShatter]);\n\n  useEffect(() => {\n    if (disabled) return;\n    const element = containerRef.current;\n    if (!element) return;\n\n    const handleClick = () => {\n      if (trigger === \"click\") handleManualTrigger();\n    };\n    const handleMouseEnter = () => {\n      if (trigger === \"hover\") triggerShatter();\n    };\n    const handleMouseLeave = () => {\n      if (trigger === \"hover\" && autoReform) {\n        setTimeout(() => triggerReform(), reformDelay);\n      }\n    };\n\n    if (trigger === \"click\") {\n      element.addEventListener(\"click\", handleClick);\n    } else if (trigger === \"hover\") {\n      element.addEventListener(\"mouseenter\", handleMouseEnter);\n      element.addEventListener(\"mouseleave\", handleMouseLeave);\n    }\n\n    return () => {\n      element.removeEventListener(\"click\", handleClick);\n      element.removeEventListener(\"mouseenter\", handleMouseEnter);\n      element.removeEventListener(\"mouseleave\", handleMouseLeave);\n    };\n  }, [\n    trigger,\n    disabled,\n    handleManualTrigger,\n    triggerShatter,\n    triggerReform,\n    autoReform,\n    reformDelay,\n  ]);\n\n  useEffect(() => {\n    if (trigger === \"auto\" && !disabled) {\n      const interval = setInterval(() => {\n        if (!isAnimating) triggerShatter();\n      }, 5000);\n      return () => clearInterval(interval);\n    }\n  }, [trigger, disabled, isAnimating, triggerShatter]);\n\n  return (\n    <div\n      ref={containerRef}\n      className={cn(\n        \"glass-shatter-effects glass-relative glass-overflow-hidden\",\n        className\n      )}\n      style={{\n        position: \"relative\",\n        cursor: trigger === \"click\" ? \"pointer\" : \"default\",\n      }}\n    >\n      <div\n        className={cn(\n          \"content glass-transition-opacity glass-duration-300\",\n          isShattered ? \"glass-opacity-0\" : \"glass-opacity-100\"\n        )}\n      >\n        {children}\n      </div>\n\n      <AnimatePresence>\n        {isShattered && (\n          <motion.div\n            initial={{ opacity: 0 }}\n            animate={prefersReducedMotion ? {} : { opacity: 1 }}\n            exit={{ opacity: 0 }}\n            className={cn(\n              \"glass-absolute glass-inset-0 glass-pointer-events-none\"\n            )}\n          >\n            <Canvas\n              ref={canvasRef}\n              className={cn(\"glass-w-full glass-h-full\")}\n              camera={{ position: [0, 0, 5], fov: 75 }}\n              gl={{ alpha: true, antialias: true }}\n            >\n              <ShatterScene\n                shards={shards}\n                currentAnimation={currentAnimation}\n                setCurrentAnimation={setCurrentAnimation}\n                setIsAnimating={setIsAnimating}\n                setIsShattered={setIsShattered}\n                isShattered={isShattered}\n              />\n            </Canvas>\n          </motion.div>\n        )}\n      </AnimatePresence>\n\n      {showControls && (\n        <motion.div\n          initial={{ opacity: 0, y: 20 }}\n          animate={prefersReducedMotion ? {} : { opacity: 1, y: 0 }}\n          className={cn(\n            \"glass-absolute glass-bottom-4 glass-right-4 glass-flex glass-gap-2\"\n          )}\n        >\n          <button\n            onClick={handleManualTrigger}\n            disabled={isAnimating}\n            className={cn(\n              \"glass-p-2 glass-surface-subtle glass-foundation-complete glass-radius-lg glass-border glass-border-primary hover:glass-surface-hover glass-transition-colors disabled:glass-opacity-50 glass-focus glass-touch-target glass-contrast-guard\"\n            )}\n            title={isShattered ? \"Reform\" : \"Shatter\"}\n          >\n            {isShattered ? (\n              <RotateCcw className={cn(\"glass-w-4 glass-h-4\")} />\n            ) : (\n              <Zap className={cn(\"glass-w-4 glass-h-4\")} />\n            )}\n          </button>\n\n          {isAnimating && (\n            <div\n              className={cn(\n                \"glass-flex glass-items-center glass-gap-2 glass-px-3 glass-py-2 glass-surface-info glass-foundation-complete glass-radius-lg glass-text-info glass-text-sm\"\n              )}\n            >\n              <motion.div\n                animate={prefersReducedMotion ? {} : { rotate: 360 }}\n                transition={\n                  prefersReducedMotion\n                    ? { duration: 0 }\n                    : { duration: 1, repeat: Infinity, ease: \"linear\" }\n                }\n              >\n                <Triangle className={cn(\"glass-w-3 glass-h-3\")} />\n              </motion.div>\n              Animating...\n            </div>\n          )}\n        </motion.div>\n      )}\n    </div>\n  );\n}\n\nfunction ShatterScene({\n  shards,\n  currentAnimation,\n  setCurrentAnimation,\n  setIsAnimating,\n  setIsShattered,\n  isShattered,\n}: any) {\n  const { scene } = useThree();\n\n  useEffect(() => {\n    shards.forEach((shard: THREE.Mesh) => {\n      scene.add(shard);\n    });\n    return () => {\n      shards.forEach((shard: THREE.Mesh) => {\n        scene.remove(shard);\n      });\n    };\n  }, [shards, scene]);\n\n  useFrame((state) => {\n    const time = state.clock.elapsedTime;\n    shards.forEach((shard: THREE.Mesh) => {\n      const material = shard.material as any;\n      if (material && material.uniforms) {\n        if (material.uniforms.time) material.uniforms.time.value = time;\n        if (material.uniforms.shatterProgress)\n          material.uniforms.shatterProgress.value = isShattered ? 1 : 0;\n      }\n    });\n\n    if (currentAnimation) {\n      const complete = currentAnimation();\n      if (complete) {\n        setCurrentAnimation(null);\n        setIsAnimating(false);\n        if (!isShattered) setIsShattered(false);\n      }\n    }\n  });\n\n  return (\n    <>\n      <ambientLight intensity={0.4} />\n      <pointLight position={[10, 10, 10]} intensity={0.8} />\n      <pointLight position={[-10, -10, -10]} intensity={0.3} color={0x4488ff} />\n    </>\n  );\n}\n\nexport default GlassShatterEffectsR3F;\n", "/**\n * token-lint-ignore-file: canonical token definitions are allowed to use raw values.\n *\n * AuraGlass Canonical Token Schema - SINGLE SOURCE OF TRUTH\n *\n * This is the ONLY authoritative source for all glassmorphism values.\n * All other systems MUST consume these tokens.\n *\n * Requirements:\n * - No blur values below 2px on high tier\n * - All alpha values >= 0.08 (visible)\n * - All text colors meet WCAG AA contrast (4.5:1)\n * - No undefined/empty values allowed\n */\n\nexport type GlassElevation =\n  | \"level1\"\n  | \"level2\"\n  | \"level3\"\n  | \"level4\"\n  | \"level5\";\nexport type GlassIntent =\n  | \"neutral\"\n  | \"primary\"\n  | \"success\"\n  | \"warning\"\n  | \"danger\"\n  | \"info\";\nexport type QualityTier = \"auto\" | \"low\" | \"medium\" | \"high\";\n\nexport interface GlassSurfaceSpec {\n  backdropBlur: { px: number }; // never 0, min 2 on high tier\n  surface: { base: string; overlay?: string }; // rgba or gradient() string (visible)\n  border: { color: string; width: number; style: \"solid\" | \"dashed\" | \"none\" };\n  innerGlow?: { color: string; spread: number; blur: number };\n  outerShadow?: {\n    color: string;\n    x: number;\n    y: number;\n    blur: number;\n    spread: number;\n  };\n  noiseOpacity?: number; // 0..0.15\n  highlightOpacity?: number; // 0..0.25\n  text: { primary: string; secondary: string }; // must meet AA over surface\n}\n\nexport interface GlassPerformanceSpec {\n  blurMultiplier: number;\n  opacityMultiplier: number;\n  animationSpeedMultiplier: number;\n  renderQuality: \"low\" | \"medium\" | \"high\";\n}\n\nexport interface AuraGlassTokens {\n  surfaces: Record<GlassIntent, Record<GlassElevation, GlassSurfaceSpec>>;\n  motion: { defaultMs: number; enterMs: number; exitMs: number };\n  radii: { sm: number; md: number; lg: number; xl: number; pill: number };\n  gaps: { xs: number; sm: number; md: number; lg: number };\n}\n\n// CANONICAL GLASS TOKENS - AUTHORITATIVE VALUES ONLY\nexport const AURA_GLASS: AuraGlassTokens = {\n  surfaces: {\n    neutral: {\n      // Liquid-glass neutral: luminous white frost over a faint smoke scrim.\n      // Depth comes from blur + sheen, not surface darkness.\n      level1: {\n        backdropBlur: { px: 16 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.04) 50%, rgba(255,255,255,0.08) 100%)\",\n          overlay: \"rgba(15,23,42,0.20)\",\n        },\n        border: { color: \"rgba(255,255,255,0.16)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(0,0,0,0.18)\",\n          x: 0,\n          y: 4,\n          blur: 24,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(255,255,255,0.10)\", spread: 0, blur: 8 },\n        noiseOpacity: 0.03,\n        highlightOpacity: 0.18,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // 19.4:1 contrast - Enhanced for better readability\n          secondary: \"rgba(255,255,255,0.88)\", // 17.4:1 contrast - Enhanced for better readability\n        },\n      },\n      level2: {\n        backdropBlur: { px: 24 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.05) 50%, rgba(255,255,255,0.10) 100%)\",\n          overlay: \"rgba(15,23,42,0.22)\",\n        },\n        border: { color: \"rgba(255,255,255,0.20)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(0,0,0,0.22)\",\n          x: 0,\n          y: 8,\n          blur: 32,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(255,255,255,0.12)\", spread: 0, blur: 12 },\n        noiseOpacity: 0.05,\n        highlightOpacity: 0.22,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level3: {\n        backdropBlur: { px: 32 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0.06) 50%, rgba(255,255,255,0.11) 100%)\",\n          overlay: \"rgba(15,23,42,0.24)\",\n        },\n        border: {\n          color: \"rgba(255,255,255,0.24)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"rgba(0,0,0,0.26)\",\n          x: 0,\n          y: 12,\n          blur: 40,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(255,255,255,0.14)\", spread: 1, blur: 16 },\n        noiseOpacity: 0.06,\n        highlightOpacity: 0.25,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level4: {\n        backdropBlur: { px: 40 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.07) 50%, rgba(255,255,255,0.12) 100%)\",\n          overlay: \"rgba(15,23,42,0.26)\",\n        },\n        border: {\n          color: \"rgba(255,255,255,0.28)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"rgba(0,0,0,0.30)\",\n          x: 0,\n          y: 16,\n          blur: 48,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(255,255,255,0.16)\", spread: 1, blur: 20 },\n        noiseOpacity: 0.08,\n        highlightOpacity: 0.28,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level5: {\n        backdropBlur: { px: 48 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(255,255,255,0.20) 0%, rgba(255,255,255,0.08) 50%, rgba(255,255,255,0.14) 100%)\",\n          overlay: \"rgba(15,23,42,0.28)\",\n        },\n        border: {\n          color: \"rgba(255,255,255,0.32)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"rgba(0,0,0,0.34)\",\n          x: 0,\n          y: 20,\n          blur: 56,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(255,255,255,0.18)\", spread: 2, blur: 24 },\n        noiseOpacity: 0.10,\n        highlightOpacity: 0.32,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n    },\n    primary: {\n      // Intent surfaces read as tinted liquid glass: low-alpha color wash,\n      // hairline borders, blur carries the depth.\n      level1: {\n        backdropBlur: { px: 16 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-primary)/0.22) 0%, hsl(var(--glass-color-primary)/0.12) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-primary)/0.35)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-primary)/0.18)\",\n          x: 0,\n          y: 4,\n          blur: 24,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-primary)/0.14)\",\n          spread: 0,\n          blur: 8,\n        },\n        noiseOpacity: 0.03,\n        highlightOpacity: 0.18,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level2: {\n        backdropBlur: { px: 24 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-primary)/0.26) 0%, hsl(var(--glass-color-primary)/0.15) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-primary)/0.40)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-primary)/0.22)\",\n          x: 0,\n          y: 8,\n          blur: 32,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-primary)/0.16)\",\n          spread: 0,\n          blur: 12,\n        },\n        noiseOpacity: 0.05,\n        highlightOpacity: 0.22,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level3: {\n        backdropBlur: { px: 32 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-primary)/0.30) 0%, hsl(var(--glass-color-primary)/0.18) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-primary)/0.45)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-primary)/0.26)\",\n          x: 0,\n          y: 12,\n          blur: 40,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-primary)/0.18)\",\n          spread: 1,\n          blur: 16,\n        },\n        noiseOpacity: 0.06,\n        highlightOpacity: 0.25,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level4: {\n        backdropBlur: { px: 40 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-primary)/0.34) 0%, hsl(var(--glass-color-primary)/0.21) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-primary)/0.50)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-primary)/0.30)\",\n          x: 0,\n          y: 16,\n          blur: 48,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-primary)/0.20)\",\n          spread: 1,\n          blur: 20,\n        },\n        noiseOpacity: 0.08,\n        highlightOpacity: 0.28,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level5: {\n        backdropBlur: { px: 48 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-primary)/0.38) 0%, hsl(var(--glass-color-primary)/0.24) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-primary)/0.55)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-primary)/0.34)\",\n          x: 0,\n          y: 20,\n          blur: 56,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-primary)/0.22)\",\n          spread: 2,\n          blur: 24,\n        },\n        noiseOpacity: 0.10,\n        highlightOpacity: 0.32,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n    },\n    success: {\n      level1: {\n        backdropBlur: { px: 16 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(34,197,94,0.20) 0%, rgba(22,163,74,0.12) 100%)\",\n        },\n        border: { color: \"rgba(34,197,94,0.35)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(34,197,94,0.16)\",\n          x: 0,\n          y: 4,\n          blur: 24,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(34,197,94,0.12)\", spread: 0, blur: 8 },\n        noiseOpacity: 0.03,\n        highlightOpacity: 0.18,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level2: {\n        backdropBlur: { px: 24 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(34,197,94,0.24) 0%, rgba(22,163,74,0.15) 100%)\",\n        },\n        border: { color: \"rgba(34,197,94,0.40)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(34,197,94,0.20)\",\n          x: 0,\n          y: 8,\n          blur: 32,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(34,197,94,0.14)\", spread: 0, blur: 12 },\n        noiseOpacity: 0.05,\n        highlightOpacity: 0.22,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level3: {\n        backdropBlur: { px: 32 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(34,197,94,0.28) 0%, rgba(22,163,74,0.18) 100%)\",\n        },\n        border: { color: \"rgba(34,197,94,0.45)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(34,197,94,0.24)\",\n          x: 0,\n          y: 12,\n          blur: 40,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(34,197,94,0.16)\", spread: 1, blur: 16 },\n        noiseOpacity: 0.06,\n        highlightOpacity: 0.25,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level4: {\n        backdropBlur: { px: 40 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(34,197,94,0.32) 0%, rgba(22,163,74,0.21) 100%)\",\n        },\n        border: { color: \"rgba(34,197,94,0.50)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(34,197,94,0.28)\",\n          x: 0,\n          y: 16,\n          blur: 48,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(34,197,94,0.18)\", spread: 1, blur: 20 },\n        noiseOpacity: 0.08,\n        highlightOpacity: 0.28,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level5: {\n        backdropBlur: { px: 48 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(34,197,94,0.36) 0%, rgba(22,163,74,0.24) 100%)\",\n        },\n        border: { color: \"rgba(34,197,94,0.55)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(34,197,94,0.32)\",\n          x: 0,\n          y: 20,\n          blur: 56,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(34,197,94,0.20)\", spread: 2, blur: 24 },\n        noiseOpacity: 0.10,\n        highlightOpacity: 0.32,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n    },\n    warning: {\n      level1: {\n        backdropBlur: { px: 16 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-warning)/0.20) 0%, rgba(217,119,6,0.12) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-warning)/0.35)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-warning)/0.16)\",\n          x: 0,\n          y: 4,\n          blur: 24,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-warning)/0.12)\",\n          spread: 0,\n          blur: 8,\n        },\n        noiseOpacity: 0.03,\n        highlightOpacity: 0.18,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level2: {\n        backdropBlur: { px: 24 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-warning)/0.24) 0%, rgba(217,119,6,0.15) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-warning)/0.40)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-warning)/0.20)\",\n          x: 0,\n          y: 8,\n          blur: 32,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-warning)/0.14)\",\n          spread: 0,\n          blur: 12,\n        },\n        noiseOpacity: 0.05,\n        highlightOpacity: 0.22,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level3: {\n        backdropBlur: { px: 32 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-warning)/0.28) 0%, rgba(217,119,6,0.18) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-warning)/0.45)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-warning)/0.24)\",\n          x: 0,\n          y: 12,\n          blur: 40,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-warning)/0.16)\",\n          spread: 1,\n          blur: 16,\n        },\n        noiseOpacity: 0.06,\n        highlightOpacity: 0.25,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level4: {\n        backdropBlur: { px: 40 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-warning)/0.32) 0%, rgba(217,119,6,0.21) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-warning)/0.50)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-warning)/0.28)\",\n          x: 0,\n          y: 16,\n          blur: 48,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-warning)/0.18)\",\n          spread: 1,\n          blur: 20,\n        },\n        noiseOpacity: 0.08,\n        highlightOpacity: 0.28,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level5: {\n        backdropBlur: { px: 48 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-warning)/0.36) 0%, rgba(217,119,6,0.24) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-warning)/0.55)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-warning)/0.32)\",\n          x: 0,\n          y: 20,\n          blur: 56,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-warning)/0.20)\",\n          spread: 2,\n          blur: 24,\n        },\n        noiseOpacity: 0.10,\n        highlightOpacity: 0.32,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n    },\n    danger: {\n      level1: {\n        backdropBlur: { px: 16 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-danger)/0.20) 0%, rgba(220,38,38,0.12) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-danger)/0.35)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-danger)/0.16)\",\n          x: 0,\n          y: 4,\n          blur: 24,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-danger)/0.12)\",\n          spread: 0,\n          blur: 8,\n        },\n        noiseOpacity: 0.03,\n        highlightOpacity: 0.18,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level2: {\n        backdropBlur: { px: 24 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-danger)/0.24) 0%, rgba(220,38,38,0.15) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-danger)/0.40)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-danger)/0.20)\",\n          x: 0,\n          y: 8,\n          blur: 32,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-danger)/0.14)\",\n          spread: 0,\n          blur: 12,\n        },\n        noiseOpacity: 0.05,\n        highlightOpacity: 0.22,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level3: {\n        backdropBlur: { px: 32 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-danger)/0.28) 0%, rgba(220,38,38,0.18) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-danger)/0.45)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-danger)/0.24)\",\n          x: 0,\n          y: 12,\n          blur: 40,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-danger)/0.16)\",\n          spread: 1,\n          blur: 16,\n        },\n        noiseOpacity: 0.06,\n        highlightOpacity: 0.25,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level4: {\n        backdropBlur: { px: 40 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-danger)/0.32) 0%, rgba(220,38,38,0.21) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-danger)/0.50)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-danger)/0.28)\",\n          x: 0,\n          y: 16,\n          blur: 48,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-danger)/0.18)\",\n          spread: 1,\n          blur: 20,\n        },\n        noiseOpacity: 0.08,\n        highlightOpacity: 0.28,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level5: {\n        backdropBlur: { px: 48 },\n        surface: {\n          base: \"linear-gradient(135deg, hsl(var(--glass-color-danger)/0.36) 0%, rgba(220,38,38,0.24) 100%)\",\n        },\n        border: {\n          color: \"hsl(var(--glass-color-danger)/0.55)\",\n          width: 1,\n          style: \"solid\",\n        },\n        outerShadow: {\n          color: \"hsl(var(--glass-color-danger)/0.32)\",\n          x: 0,\n          y: 20,\n          blur: 56,\n          spread: 0,\n        },\n        innerGlow: {\n          color: \"hsl(var(--glass-color-danger)/0.20)\",\n          spread: 2,\n          blur: 24,\n        },\n        noiseOpacity: 0.10,\n        highlightOpacity: 0.32,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n    },\n    info: {\n      level1: {\n        backdropBlur: { px: 16 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(14,165,233,0.20) 0%, rgba(2,132,199,0.12) 100%)\",\n        },\n        border: { color: \"rgba(14,165,233,0.35)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(14,165,233,0.16)\",\n          x: 0,\n          y: 4,\n          blur: 24,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(14,165,233,0.12)\", spread: 0, blur: 8 },\n        noiseOpacity: 0.03,\n        highlightOpacity: 0.18,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level2: {\n        backdropBlur: { px: 24 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(14,165,233,0.24) 0%, rgba(2,132,199,0.15) 100%)\",\n        },\n        border: { color: \"rgba(14,165,233,0.40)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(14,165,233,0.20)\",\n          x: 0,\n          y: 8,\n          blur: 32,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(14,165,233,0.14)\", spread: 0, blur: 12 },\n        noiseOpacity: 0.05,\n        highlightOpacity: 0.22,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level3: {\n        backdropBlur: { px: 32 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(14,165,233,0.28) 0%, rgba(2,132,199,0.18) 100%)\",\n        },\n        border: { color: \"rgba(14,165,233,0.45)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(14,165,233,0.24)\",\n          x: 0,\n          y: 12,\n          blur: 40,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(14,165,233,0.16)\", spread: 1, blur: 16 },\n        noiseOpacity: 0.06,\n        highlightOpacity: 0.25,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level4: {\n        backdropBlur: { px: 40 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(14,165,233,0.32) 0%, rgba(2,132,199,0.21) 100%)\",\n        },\n        border: { color: \"rgba(14,165,233,0.50)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(14,165,233,0.28)\",\n          x: 0,\n          y: 16,\n          blur: 48,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(14,165,233,0.18)\", spread: 1, blur: 20 },\n        noiseOpacity: 0.08,\n        highlightOpacity: 0.28,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n      level5: {\n        backdropBlur: { px: 48 },\n        surface: {\n          base: \"linear-gradient(135deg, rgba(14,165,233,0.36) 0%, rgba(2,132,199,0.24) 100%)\",\n        },\n        border: { color: \"rgba(14,165,233,0.55)\", width: 1, style: \"solid\" },\n        outerShadow: {\n          color: \"rgba(14,165,233,0.32)\",\n          x: 0,\n          y: 20,\n          blur: 56,\n          spread: 0,\n        },\n        innerGlow: { color: \"rgba(14,165,233,0.20)\", spread: 2, blur: 24 },\n        noiseOpacity: 0.10,\n        highlightOpacity: 0.32,\n        text: {\n          primary: \"rgba(255,255,255,0.98)\", // Enhanced contrast for all glass levels\n          secondary: \"rgba(255,255,255,0.88)\", // Enhanced contrast for all glass levels\n        },\n      },\n    },\n  },\n  motion: {\n    defaultMs: 200,\n    enterMs: 150,\n    exitMs: 100,\n  },\n  radii: {\n    sm: 10,\n    md: 16,\n    lg: 24,\n    xl: 32,\n    pill: 9999,\n  },\n  gaps: {\n    xs: 4,\n    sm: 8,\n    md: 16,\n    lg: 24,\n  },\n};\n\n/**\n * Performance tier configurations\n *\n * CRITICAL: Glass is never disabled - only reduced in intensity\n */\nexport const PERFORMANCE_TIERS = {\n  high: {\n    blurMultiplier: 1.0,\n    shadowMultiplier: 1.0,\n    saturateMultiplier: 1.0,\n    enableGlow: true,\n    enableNoise: true,\n  },\n  medium: {\n    blurMultiplier: 0.75, // Reduce blur by 25%\n    shadowMultiplier: 0.8, // Reduce shadows by 20%\n    saturateMultiplier: 0.9, // Reduce saturation slightly\n    enableGlow: true,\n    enableNoise: false,\n  },\n  low: {\n    blurMultiplier: 0.5, // Reduce blur by 50%\n    shadowMultiplier: 0.6, // Reduce shadows by 40%\n    saturateMultiplier: 0.8, // Reduce saturation more\n    enableGlow: false,\n    enableNoise: false,\n  },\n  auto: {\n    // Will be determined at runtime based on device capabilities\n    blurMultiplier: 1.0,\n    shadowMultiplier: 1.0,\n    saturateMultiplier: 1.0,\n    enableGlow: true,\n    enableNoise: true,\n  },\n} as const;\n\n/**\n * Utility functions for consuming tokens\n */\nexport const glassTokenUtils = {\n  /**\n   * Get surface specification for intent and elevation\n   */\n  getSurface: (\n    intent: GlassIntent,\n    elevation: GlassElevation\n  ): GlassSurfaceSpec => {\n    return AURA_GLASS.surfaces[intent][elevation];\n  },\n\n  /**\n   * Get performance-adjusted blur value\n   */\n  getPerformanceBlur: (baseBlur: number, tier: QualityTier): number => {\n    const config = PERFORMANCE_TIERS[tier];\n    return Math.max(2, Math.round(baseBlur * config.blurMultiplier)); // Never below 2px\n  },\n\n  /**\n   * Validate contrast ratio for text over surface\n   */\n  validateTextContrast: (textColor: string, surfaceColor: string): boolean => {\n    // Implementation would calculate actual contrast ratio\n    // For now, we ensure our predefined values meet WCAG AA\n    return true; // Our defined colors all meet 4.5:1 contrast\n  },\n\n  /**\n   * Generate CSS backdrop-filter string\n   */\n  buildBackdropFilter: (blur: number, tier: QualityTier): string => {\n    const performanceBlur = glassTokenUtils.getPerformanceBlur(blur, tier);\n    const config = PERFORMANCE_TIERS[tier];\n\n    const parts = [`blur(${performanceBlur}px)`];\n\n    // Heavy saturation is what lets the backdrop's color bleed through the\n    // frost \u2014 the signature liquid-glass quality. Brightness/contrast stay\n    // near 1 so labels never wash out.\n    const saturate =\n      Math.round(1.8 * config.saturateMultiplier * 100) / 100;\n    parts.push(`saturate(${saturate})`);\n    parts.push(\"brightness(1.05)\");\n    parts.push(\"contrast(1.05)\");\n\n    return parts.join(\" \");\n  },\n\n  /**\n   * Build complete surface styles from token specification\n   */\n  buildSurfaceStyles: (\n    intent: GlassIntent,\n    elevation: GlassElevation,\n    tier: QualityTier = \"high\"\n  ) => {\n    const surface = glassTokenUtils.getSurface(intent, elevation);\n    const config = PERFORMANCE_TIERS[tier];\n    const backdropFilter = glassTokenUtils.buildBackdropFilter(\n      surface.backdropBlur.px,\n      tier\n    );\n\n    const BACKDROP_FILTER_PROP = \"backdropFilter\" as const;\n    const WEBKIT_BACKDROP_FILTER_PROP = \"WebkitBackdropFilter\" as const;\n\n    // Compose outer shadow with the inset top-edge highlight and inner glow.\n    // The 1px inset highlight is what reads as a polished glass edge catching\n    // light \u2014 without it surfaces look like flat tinted panels.\n    const shadowParts: string[] = [];\n    if (surface.outerShadow) {\n      shadowParts.push(\n        `${surface.outerShadow.x}px ${surface.outerShadow.y}px ${Math.round(surface.outerShadow.blur * config.shadowMultiplier)}px ${surface.outerShadow.spread}px ${surface.outerShadow.color}`\n      );\n    }\n    if (surface.highlightOpacity) {\n      shadowParts.push(\n        `inset 0 1px 0 rgba(255,255,255,${surface.highlightOpacity})`\n      );\n    }\n    if (config.enableGlow && surface.innerGlow) {\n      shadowParts.push(\n        `inset 0 0 ${surface.innerGlow.blur}px ${surface.innerGlow.color}`\n      );\n    }\n\n    return {\n      background: surface.surface.base,\n      backgroundColor: surface.surface.overlay ?? undefined,\n      [BACKDROP_FILTER_PROP]: backdropFilter,\n      [WEBKIT_BACKDROP_FILTER_PROP]: backdropFilter,\n      \"--glass-text-primary\": surface.text.primary,\n      \"--glass-text-secondary\": surface.text.secondary,\n      \"--typography-text-primary\": surface.text.primary,\n      \"--typography-text-secondary\": surface.text.secondary,\n      // Use createGlassStyle() instead,\n      // Use createGlassStyle() instead,\n      border: `${surface.border.width}px ${surface.border.style} ${surface.border.color}`,\n      borderRadius: `${AURA_GLASS.radii.md}px`,\n      boxShadow: shadowParts.length > 0 ? shadowParts.join(\", \") : \"none\",\n      color: \"var(--glass-text-primary)\",\n      transition: `all ${AURA_GLASS.motion.defaultMs}ms ease-out`,\n      position: \"relative\" as const,\n      transform: \"translateZ(0)\",\n    };\n  },\n};\n\n// Export the canonical tokens as default\nexport default AURA_GLASS;\n\n// Legacy glassTokens structure for backward compatibility\nexport const glassTokens = {\n  // Elevation levels\n  elevation: {\n    level1: {\n      boxShadow: \"0 4px 16px rgba(0, 0, 0, 0.15)\",\n      zIndex: 1,\n    },\n    level2: {\n      boxShadow: \"0 8px 24px rgba(0, 0, 0, 0.2)\",\n      zIndex: 10,\n    },\n    level3: {\n      boxShadow: \"0 12px 32px rgba(0, 0, 0, 0.25)\",\n      zIndex: 100,\n    },\n    level4: {\n      boxShadow: \"0 16px 40px rgba(0, 0, 0, 0.3)\",\n      zIndex: 1000,\n    },\n  },\n\n  // Backdrop blur values\n  backdrop: {\n    none: \"none\",\n    subtle: \"blur(4px)\",\n    medium: \"blur(8px)\",\n    strong: \"blur(16px)\",\n    intense: \"blur(24px)\",\n  },\n\n  // Gradient patterns\n  gradients: {\n    primary:\n      \"linear-gradient(135deg, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.15) 100%)\",\n    secondary:\n      \"linear-gradient(135deg, hsl(var(--glass-color-primary)/0.2) 0%, hsl(var(--glass-color-primary)/0.1) 100%)\",\n    primaryRadial:\n      \"radial-gradient(circle at center, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%)\",\n    mesh: \"linear-gradient(45deg, rgba(255,255,255,0.1) 25%, transparent 25%), linear-gradient(-45deg, rgba(255,255,255,0.1) 25%, transparent 25%)\",\n    iridescent:\n      \"linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #ffeaa7)\",\n    rainbow:\n      \"linear-gradient(45deg, #ff0000, #ff7f00, #ffff00, #00ff00, #0000ff, #4b0082, #9400d3)\",\n  },\n\n  // Border styles\n  border: {\n    primary: \"rgba(255,255,255,0.4)\",\n    secondary: \"rgba(255,255,255,0.3)\",\n    subtle: \"rgba(255,255,255,0.2)\",\n    gradient: {\n      rainbow: \"linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4)\",\n    },\n  },\n\n  // Surface colors\n  surface: {\n    primary: \"rgba(255,255,255,0.25)\",\n    secondary: \"rgba(255,255,255,0.15)\",\n    success: \"rgba(34,197,94,0.25)\",\n    warning: \"hsl(var(--glass-color-warning)/0.25)\",\n    error: \"hsl(var(--glass-color-danger)/0.25)\",\n    dark: \"rgba(0,0,0,0.25)\",\n    darkSubtle: \"rgba(0,0,0,0.15)\",\n  },\n\n  // Noise patterns\n  noise: {\n    subtle:\n      'url(\"data:image/svg+xml,%3Csvg viewBox=\"0 0 256 256\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cfilter id=\"noiseFilter\"%3E%3CfeTurbulence type=\"fractalNoise\" baseFrequency=\"0.9\" numOctaves=\"4\" stitchTiles=\"stitch\"/%3E%3C/filter%3E%3Crect width=\"100%25\" height=\"100%25\" filter=\"url(%23noiseFilter)\"/%3E%3C/svg%3E\")',\n  },\n\n  // Glow effects\n  glow: {\n    primary: \"hsl(var(--glass-color-primary)/0.6)\",\n    secondary: \"rgba(147,51,234,0.6)\",\n    success: \"rgba(34,197,94,0.6)\",\n    warning: \"hsl(var(--glass-color-warning)/0.6)\",\n    error: \"hsl(var(--glass-color-danger)/0.6)\",\n  },\n};\n\n// Alias for backward compatibility\nexport const glassUtils = glassTokenUtils;\n\n/**\n * ========================================\n * LIQUID GLASS EXTENSIONS - Apple Parity\n * ========================================\n *\n * Extended tokens for Liquid Glass material system\n * Provides dynamic material properties, environmental adaptation,\n * and enhanced visual effects to match Apple's implementation.\n */\n\n// Liquid Glass Material Types\nexport type LiquidGlassMaterial = \"standard\" | \"liquid\";\nexport type MaterialVariant = \"regular\" | \"clear\";\nexport type TintMode = \"auto\" | \"light\" | \"dark\" | \"adaptive\";\nexport type SheenIntensity = 0 | 1 | 2 | 3;\n\n// Enhanced material specification for Liquid Glass\nexport interface LiquidGlassSurfaceSpec extends GlassSurfaceSpec {\n  // Core material properties\n  ior: number; // Index of refraction (1.0-2.0)\n  thickness: number; // Visual depth in px (0-8)\n  sheen: SheenIntensity; // Edge sheen intensity\n  variant: MaterialVariant; // Regular or Clear transparency\n\n  // Environmental adaptation\n  tintMode: TintMode; // Content-aware tinting mode\n  adaptiveOpacity: { min: number; max: number }; // Dynamic transparency range\n  contrastGuard: { enabled: boolean; minRatio: number }; // Accessibility enforcement\n\n  // Motion responsiveness\n  motionSensitivity: number; // 0-1 response to motion/scroll\n  microInteractions: boolean; // Enable subtle hover/focus effects\n\n  // Advanced effects\n  refraction: { enabled: boolean; intensity: number }; // Screen-space refraction\n  reflection: { enabled: boolean; intensity: number }; // Environmental reflections\n  parallax: { enabled: boolean; depth: number }; // Thickness parallax\n}\n\n// Liquid Glass token extensions\nexport interface LiquidGlassTokens extends AuraGlassTokens {\n  // Material physics\n  material: {\n    ior: {\n      glass: 1.52; // Standard glass\n      crystal: 1.76; // Enhanced clarity\n      liquid: 1.33; // Water-like fluidity\n      diamond: 2.42; // Maximum refraction\n    };\n    thickness: {\n      hairline: 1; // Minimal depth\n      thin: 2; // Subtle depth\n      medium: 4; // Standard depth\n      thick: 6; // Enhanced depth\n      ultra: 8; // Maximum depth\n    };\n    sheen: {\n      none: 0;\n      subtle: 1; // Gentle edge highlight\n      medium: 2; // Noticeable edge effect\n      intense: 3; // Strong refractive edge\n    };\n  };\n\n  // Material variants with different transparency levels\n  variants: {\n    regular: {\n      opacity: { base: 0.85; hover: 0.9; active: 0.95 };\n      blur: { multiplier: 1.0 }; // Standard blur\n      contrast: { minRatio: 4.5 }; // WCAG AA\n    };\n    clear: {\n      opacity: { base: 0.65; hover: 0.75; active: 0.85 };\n      blur: { multiplier: 1.2 }; // Enhanced blur for readability\n      contrast: { minRatio: 7.0 }; // WCAG AAA for high transparency\n    };\n  };\n\n  // Content-aware tinting system\n  tinting: {\n    auto: {\n      lightThreshold: 0.6; // Luminance threshold for light/dark detection\n      contrastBoost: 0.15; // Additional contrast for readability\n      saturationAdjust: 0.1; // Subtle color temperature shift\n    };\n    adaptive: {\n      samplingRadius: 32; // Backdrop sampling area (px)\n      updateThrottle: 100; // Update frequency (ms)\n      transitionDuration: 200; // Smooth transition time (ms)\n    };\n  };\n\n  // Enhanced motion system for fluidity\n  motionFluency: {\n    // Micro-interactions\n    hover: { duration: 120; easing: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\" };\n    press: { duration: 80; easing: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\" };\n    focus: { duration: 150; easing: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\" };\n\n    // Environmental responses\n    scroll: { sensitivity: 0.3; maxShift: 2 }; // Subtle parallax on scroll\n    tilt: { sensitivity: 0.1; maxTilt: 1 }; // Device orientation response\n    ambient: { duration: 4000; intensity: 0.05 }; // Breathing effect\n  };\n\n  // Performance optimization presets\n  performance: {\n    ultra: {\n      enableRefraction: true;\n      enableReflection: true;\n      enableParallax: true;\n      enableMicroInteractions: true;\n      sampleRate: 60; // 60fps target\n    };\n    high: {\n      enableRefraction: true;\n      enableReflection: true;\n      enableParallax: false;\n      enableMicroInteractions: true;\n      sampleRate: 60;\n    };\n    balanced: {\n      enableRefraction: true;\n      enableReflection: false;\n      enableParallax: false;\n      enableMicroInteractions: true;\n      sampleRate: 30;\n    };\n    efficient: {\n      enableRefraction: false;\n      enableReflection: false;\n      enableParallax: false;\n      enableMicroInteractions: false;\n      sampleRate: 30;\n    };\n  };\n\n  // System-level Liquid Glass behavior tokens\n  system: {\n    scrollEdge: {\n      soft: { size: 32; blur: 10; opacity: 0.2 };\n      hard: { size: 44; blur: 16; opacity: 0.32 };\n      transitionMs: 160;\n    };\n    concentric: {\n      inset: { compact: 6; comfortable: 10; spacious: 14 };\n      fallbackRadius: 8;\n    };\n    layer: {\n      maxRecommendedDepth: 1;\n      warningDepth: 2;\n      zBase: 100;\n    };\n    clearDimming: {\n      subtle: 0.16;\n      standard: 0.22;\n      strong: 0.32;\n    };\n    group: {\n      spacing: { tight: 6; regular: 12; loose: 18 };\n      blendStrength: 0.72;\n    };\n    density: {\n      compact: 0.86;\n      comfortable: 0.92;\n      spacious: 1;\n    };\n    illumination: {\n      hover: 0.12;\n      press: 0.18;\n      focus: 0.16;\n    };\n    reducedMotion: {\n      transitionMs: 1;\n      disableParallax: true;\n      disableShimmer: true;\n    };\n  };\n}\n\n/**\n * LIQUID GLASS CANONICAL TOKENS\n * Extended version of AURA_GLASS with Liquid Glass properties\n */\nexport const LIQUID_GLASS: LiquidGlassTokens = {\n  // Inherit all base AURA_GLASS tokens\n  ...AURA_GLASS,\n\n  // Extended material physics\n  material: {\n    ior: {\n      glass: 1.52,\n      crystal: 1.76,\n      liquid: 1.33,\n      diamond: 2.42,\n    },\n    thickness: {\n      hairline: 1,\n      thin: 2,\n      medium: 4,\n      thick: 6,\n      ultra: 8,\n    },\n    sheen: {\n      none: 0,\n      subtle: 1,\n      medium: 2,\n      intense: 3,\n    },\n  },\n\n  // Material variants\n  variants: {\n    regular: {\n      opacity: { base: 0.85, hover: 0.9, active: 0.95 },\n      blur: { multiplier: 1.0 },\n      contrast: { minRatio: 4.5 },\n    },\n    clear: {\n      opacity: { base: 0.65, hover: 0.75, active: 0.85 },\n      blur: { multiplier: 1.2 },\n      contrast: { minRatio: 7.0 },\n    },\n  },\n\n  // Content-aware tinting\n  tinting: {\n    auto: {\n      lightThreshold: 0.6,\n      contrastBoost: 0.15,\n      saturationAdjust: 0.1,\n    },\n    adaptive: {\n      samplingRadius: 32,\n      updateThrottle: 100,\n      transitionDuration: 200,\n    },\n  },\n\n  // Enhanced motion fluency\n  motionFluency: {\n    hover: { duration: 120, easing: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\" },\n    press: { duration: 80, easing: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\" },\n    focus: { duration: 150, easing: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\" },\n    scroll: { sensitivity: 0.3, maxShift: 2 },\n    tilt: { sensitivity: 0.1, maxTilt: 1 },\n    ambient: { duration: 4000, intensity: 0.05 },\n  },\n\n  // Performance presets\n  performance: {\n    ultra: {\n      enableRefraction: true,\n      enableReflection: true,\n      enableParallax: true,\n      enableMicroInteractions: true,\n      sampleRate: 60,\n    },\n    high: {\n      enableRefraction: true,\n      enableReflection: true,\n      enableParallax: false,\n      enableMicroInteractions: true,\n      sampleRate: 60,\n    },\n    balanced: {\n      enableRefraction: true,\n      enableReflection: false,\n      enableParallax: false,\n      enableMicroInteractions: true,\n      sampleRate: 30,\n    },\n    efficient: {\n      enableRefraction: false,\n      enableReflection: false,\n      enableParallax: false,\n      enableMicroInteractions: false,\n      sampleRate: 30,\n    },\n  },\n\n  // System-level behavior tokens\n  system: {\n    scrollEdge: {\n      soft: { size: 32, blur: 10, opacity: 0.2 },\n      hard: { size: 44, blur: 16, opacity: 0.32 },\n      transitionMs: 160,\n    },\n    concentric: {\n      inset: { compact: 6, comfortable: 10, spacious: 14 },\n      fallbackRadius: 8,\n    },\n    layer: {\n      maxRecommendedDepth: 1,\n      warningDepth: 2,\n      zBase: 100,\n    },\n    clearDimming: {\n      subtle: 0.16,\n      standard: 0.22,\n      strong: 0.32,\n    },\n    group: {\n      spacing: { tight: 6, regular: 12, loose: 18 },\n      blendStrength: 0.72,\n    },\n    density: {\n      compact: 0.86,\n      comfortable: 0.92,\n      spacious: 1,\n    },\n    illumination: {\n      hover: 0.12,\n      press: 0.18,\n      focus: 0.16,\n    },\n    reducedMotion: {\n      transitionMs: 1,\n      disableParallax: true,\n      disableShimmer: true,\n    },\n  },\n};\n\n/**\n * Enhanced utility functions for Liquid Glass\n */\nexport const liquidGlassUtils = {\n  ...glassTokenUtils,\n\n  /**\n   * Get Liquid Glass material specification\n   */\n  getLiquidSurface: (\n    intent: GlassIntent,\n    elevation: GlassElevation,\n    material: LiquidGlassMaterial = \"standard\",\n    variant: MaterialVariant = \"regular\"\n  ): LiquidGlassSurfaceSpec => {\n    const baseSurface = glassTokenUtils.getSurface(intent, elevation);\n\n    if (material === \"standard\") {\n      // Return enhanced base surface with minimal liquid properties\n      return {\n        ...baseSurface,\n        ior: LIQUID_GLASS.material.ior.glass,\n        thickness: LIQUID_GLASS.material.thickness.thin,\n        sheen: LIQUID_GLASS.material.sheen.none,\n        variant: \"regular\",\n        tintMode: \"auto\",\n        adaptiveOpacity: {\n          min: LIQUID_GLASS.variants.regular.opacity.base,\n          max: LIQUID_GLASS.variants.regular.opacity.active,\n        },\n        contrastGuard: { enabled: true, minRatio: 4.5 },\n        motionSensitivity: 0.1,\n        microInteractions: false,\n        refraction: { enabled: false, intensity: 0 },\n        reflection: { enabled: false, intensity: 0 },\n        parallax: { enabled: false, depth: 0 },\n      };\n    }\n\n    // Full Liquid Glass specification\n    const variantSpec = LIQUID_GLASS.variants[variant];\n    return {\n      ...baseSurface,\n      ior: LIQUID_GLASS.material.ior.liquid,\n      thickness: LIQUID_GLASS.material.thickness.medium,\n      sheen: LIQUID_GLASS.material.sheen.subtle,\n      variant,\n      tintMode: \"adaptive\",\n      adaptiveOpacity: {\n        min: variantSpec.opacity.base,\n        max: variantSpec.opacity.active,\n      },\n      contrastGuard: { enabled: true, minRatio: variantSpec.contrast.minRatio },\n      motionSensitivity: 0.7,\n      microInteractions: true,\n      refraction: { enabled: true, intensity: 0.8 },\n      reflection: { enabled: true, intensity: 0.6 },\n      parallax: {\n        enabled: true,\n        depth: LIQUID_GLASS.material.thickness.medium,\n      },\n    };\n  },\n\n  /**\n   * Calculate backdrop luminance for content-aware tinting\n   */\n  sampleBackdropLuminance: (element: HTMLElement): number => {\n    if (typeof window === \"undefined\" || !element) return 0.5;\n\n    // In a real implementation, this would sample the backdrop\n    // For now, return a reasonable default\n    return 0.5;\n  },\n\n  /**\n   * Generate content-aware tint color based on backdrop\n   */\n  generateAdaptiveTint: (\n    backdropLuminance: number,\n    intent: GlassIntent = \"neutral\"\n  ): string => {\n    const { lightThreshold, contrastBoost, saturationAdjust } =\n      LIQUID_GLASS.tinting.auto;\n\n    const isLightBackdrop = backdropLuminance > lightThreshold;\n    const baseSurface = glassTokenUtils.getSurface(intent, \"level2\");\n\n    if (isLightBackdrop) {\n      // Dark tint for light backgrounds\n      return `rgba(0, 0, 0, ${0.15 + contrastBoost})`;\n    } else {\n      // Light tint for dark backgrounds\n      return `rgba(255, 255, 255, ${0.25 + contrastBoost})`;\n    }\n  },\n\n  /**\n   * Build complete Liquid Glass styles with environmental adaptation\n   */\n  buildLiquidGlassStyles: (\n    intent: GlassIntent,\n    elevation: GlassElevation,\n    material: LiquidGlassMaterial = \"liquid\",\n    variant: MaterialVariant = \"regular\",\n    performanceLevel: keyof LiquidGlassTokens[\"performance\"] = \"high\"\n  ) => {\n    const liquidSurface = liquidGlassUtils.getLiquidSurface(\n      intent,\n      elevation,\n      material,\n      variant\n    );\n    const performance = LIQUID_GLASS.performance[performanceLevel];\n    const baseStyles = glassTokenUtils.buildSurfaceStyles(\n      intent,\n      elevation,\n      \"high\"\n    );\n    const {\n      backgroundColor: _backgroundColor,\n      color: _color,\n      ...baseStylesWithoutColorConflict\n    } = baseStyles;\n\n    return {\n      ...baseStylesWithoutColorConflict,\n\n      // Enhanced backdrop filter with IOR simulation\n      // Use createGlassStyle() instead,\n\n      // Adaptive surface with environmental tinting\n      background:\n        material === \"liquid\" && liquidSurface.tintMode === \"adaptive\"\n          ? `${liquidSurface.surface.base}, linear-gradient(135deg, rgba(255,255,255,${liquidSurface.adaptiveOpacity.min * 0.3}) 0%, transparent 100%)`\n          : liquidSurface.surface.base,\n\n      // Enhanced transitions for micro-interactions\n      transition: performance.enableMicroInteractions\n        ? `all ${LIQUID_GLASS.motionFluency.hover.duration}ms ${LIQUID_GLASS.motionFluency.hover.easing}, transform ${LIQUID_GLASS.motionFluency.press.duration}ms ${LIQUID_GLASS.motionFluency.press.easing}`\n        : baseStyles.transition,\n\n      // Thickness-based box shadow enhancement\n      boxShadow:\n        liquidSurface.thickness > 2\n          ? `${baseStyles.boxShadow}, inset 0 1px ${liquidSurface.thickness}px rgba(255,255,255,${0.12 + liquidSurface.sheen * 0.06})`\n          : baseStyles.boxShadow,\n\n      // Performance optimizations\n      willChange: performance.enableMicroInteractions\n        ? \"transform, opacity, backdrop-filter\"\n        : \"auto\",\n      contain: \"layout style paint\",\n    };\n  },\n\n  /**\n   * Validate contrast compliance for Liquid Glass\n   */\n  validateLiquidContrast: (\n    intent: GlassIntent,\n    variant: MaterialVariant,\n    backdropLuminance: number\n  ): boolean => {\n    const variantSpec = LIQUID_GLASS.variants[variant];\n    const requiredRatio = variantSpec.contrast.minRatio;\n\n    // In a real implementation, this would calculate actual contrast\n    // For now, we trust our predefined values meet requirements\n    return true;\n  },\n};\n\n// Types are exported individually above\n", "\"use client\";\n\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport type { RefObject } from \"react\";\n\nexport type LiquidGlassContrastHint = \"light\" | \"dark\" | \"mixed\";\n\nexport interface LiquidGlassBackdropSample {\n  luminance: number;\n  dominantColor: { r: number; g: number; b: number; a: number };\n  contrastHint: LiquidGlassContrastHint;\n  mediaRichness: number;\n  requiresDimming: boolean;\n  source: \"dom-grid\" | \"computed-style\" | \"theme\" | \"fallback\";\n}\n\nexport interface LiquidGlassBackdropOptions {\n  enabled?: boolean;\n  variant?: \"regular\" | \"clear\";\n  throttleMs?: number;\n  minContrastRatio?: number;\n  observeMutations?: boolean;\n  observeResize?: boolean;\n}\n\nconst FALLBACK_SAMPLE: LiquidGlassBackdropSample = {\n  luminance: 0.5,\n  dominantColor: { r: 128, g: 128, b: 128, a: 1 },\n  contrastHint: \"mixed\",\n  mediaRichness: 0,\n  requiresDimming: false,\n  source: \"fallback\",\n};\n\nfunction parseRgb(value: string | null | undefined) {\n  if (!value || value === \"transparent\") return null;\n  const match = value.match(/rgba?\\(([^)]+)\\)/i);\n  if (!match) return null;\n  const [r, g, b, a = \"1\"] = match[1].split(\",\").map((part) => part.trim());\n  const color = {\n    r: Number.parseFloat(r),\n    g: Number.parseFloat(g),\n    b: Number.parseFloat(b),\n    a: Number.parseFloat(a),\n  };\n  if ([color.r, color.g, color.b, color.a].some((channel) => Number.isNaN(channel))) {\n    return null;\n  }\n  return color;\n}\n\nfunction luminanceFor(color: { r: number; g: number; b: number }) {\n  const toLinear = (channel: number) => {\n    const normalized = channel / 255;\n    return normalized <= 0.03928\n      ? normalized / 12.92\n      : Math.pow((normalized + 0.055) / 1.055, 2.4);\n  };\n  return 0.2126 * toLinear(color.r) + 0.7152 * toLinear(color.g) + 0.0722 * toLinear(color.b);\n}\n\nfunction backdropElementAt(element: HTMLElement, x: number, y: number) {\n\n  if (\n    typeof document === \"undefined\" ||\n    typeof document.elementsFromPoint !== \"function\" ||\n    typeof document.elementFromPoint !== \"function\"\n  ) {\n    return element.parentElement;\n  }\n\n  try {\n    const stack = document.elementsFromPoint(x, y);\n    return stack.find((candidate) => candidate !== element && !element.contains(candidate)) as HTMLElement | undefined;\n  } catch {\n    return element.parentElement;\n  }\n}\n\nfunction getComputedBackdropColor(element: HTMLElement) {\n  const computed = window.getComputedStyle(element);\n  const color = parseRgb(computed.backgroundColor);\n  const image = computed.backgroundImage || \"\";\n  if (!color) return null;\n  return { color, image };\n}\n\nfunction sampleBackdropGrid(element: HTMLElement) {\n  const rect = element.getBoundingClientRect();\n  const points = [\n    [0.5, 0.5],\n    [0.2, 0.2],\n    [0.8, 0.2],\n    [0.2, 0.8],\n    [0.8, 0.8],\n    [0.5, 0.2],\n    [0.5, 0.8],\n    [0.2, 0.5],\n    [0.8, 0.5],\n  ];\n  const samples: Array<{ color: { r: number; g: number; b: number; a: number }; image: string }> = [];\n\n  for (const [xRatio, yRatio] of points) {\n    const target = backdropElementAt(\n      element,\n      rect.left + rect.width * xRatio,\n      rect.top + rect.height * yRatio\n    );\n    if (!target) continue;\n    const sample = getComputedBackdropColor(target);\n    if (sample) samples.push(sample);\n  }\n\n  return samples;\n}\n\nexport function sampleLiquidGlassBackdrop(\n  element: HTMLElement | null,\n  options: LiquidGlassBackdropOptions = {}\n): LiquidGlassBackdropSample {\n  if (typeof window === \"undefined\" || !element) {\n    return FALLBACK_SAMPLE;\n  }\n\n  const gridSamples = sampleBackdropGrid(element);\n  const target = backdropElementAt(\n    element,\n    element.getBoundingClientRect().left + element.offsetWidth / 2,\n    element.getBoundingClientRect().top + element.offsetHeight / 2\n  ) || element.parentElement || document.body;\n  const fallbackColor =\n    parseRgb(window.getComputedStyle(document.body).backgroundColor) ||\n    FALLBACK_SAMPLE.dominantColor;\n  const color =\n    gridSamples.length > 0\n      ? gridSamples.reduce(\n          (acc, sample) => ({\n            r: acc.r + sample.color.r / gridSamples.length,\n            g: acc.g + sample.color.g / gridSamples.length,\n            b: acc.b + sample.color.b / gridSamples.length,\n            a: acc.a + sample.color.a / gridSamples.length,\n          }),\n          { r: 0, g: 0, b: 0, a: 0 }\n        )\n      : getComputedBackdropColor(target)?.color || fallbackColor;\n\n  const imageCount = gridSamples.filter((sample) => sample.image && sample.image !== \"none\").length;\n  const mediaRichness =\n    gridSamples.length > 0\n      ? Math.min(1, imageCount / gridSamples.length + (gridSamples.length > 1 ? 0.1 : 0))\n      : getComputedBackdropColor(target)?.image && getComputedBackdropColor(target)?.image !== \"none\"\n        ? 0.85\n        : 0.15;\n  const luminance = luminanceFor(color);\n  const contrastHint: LiquidGlassContrastHint =\n    luminance > 0.68 ? \"light\" : luminance < 0.32 ? \"dark\" : \"mixed\";\n  const variant = options.variant ?? \"regular\";\n  const minContrastRatio = options.minContrastRatio ?? (variant === \"clear\" ? 7 : 4.5);\n  const requiresDimming =\n    variant === \"clear\" && (mediaRichness > 0.5 || contrastHint === \"mixed\" || minContrastRatio >= 7);\n\n  return {\n    luminance,\n    dominantColor: color,\n    contrastHint,\n    mediaRichness,\n    requiresDimming,\n    source: gridSamples.length > 1 ? \"dom-grid\" : \"computed-style\",\n  };\n}\n\nexport function useLiquidGlassBackdrop<T extends HTMLElement>(\n  ref: RefObject<T>,\n  options: LiquidGlassBackdropOptions = {}\n) {\n  const {\n    enabled = true,\n    throttleMs = 100,\n    observeMutations = true,\n    observeResize = true,\n  } = options;\n  const optionsRef = useRef(options);\n  const [sample, setSample] = useState<LiquidGlassBackdropSample>(FALLBACK_SAMPLE);\n\n  optionsRef.current = options;\n\n  const update = useMemo(() => {\n    let frame = 0;\n    let last = 0;\n    return () => {\n      if (!enabled || typeof window === \"undefined\") return;\n      const now = window.performance?.now?.() ?? Date.now();\n      if (now - last < throttleMs) return;\n      last = now;\n      if (frame) window.cancelAnimationFrame(frame);\n      frame = window.requestAnimationFrame(() => {\n        setSample(sampleLiquidGlassBackdrop(ref.current, optionsRef.current));\n      });\n    };\n  }, [enabled, ref, throttleMs]);\n\n  useEffect(() => {\n    if (!enabled || typeof window === \"undefined\") return;\n\n    update();\n    const target = ref.current;\n    const scrollTarget = target?.closest(\"[data-liquid-glass-scroll-target]\") || window;\n\n    window.addEventListener(\"resize\", update, { passive: true });\n    scrollTarget.addEventListener(\"scroll\", update as EventListener, { passive: true });\n\n    let resizeObserver: ResizeObserver | undefined;\n    if (observeResize && typeof ResizeObserver !== \"undefined\" && target) {\n      resizeObserver = new ResizeObserver(update);\n      resizeObserver.observe(target);\n    }\n\n    let mutationObserver: MutationObserver | undefined;\n    if (observeMutations && typeof MutationObserver !== \"undefined\" && target?.parentElement) {\n      mutationObserver = new MutationObserver(update);\n      mutationObserver.observe(target.parentElement, {\n        attributes: true,\n        childList: true,\n        subtree: true,\n        attributeFilter: [\"class\", \"style\", \"data-theme\"],\n      });\n    }\n\n    return () => {\n      window.removeEventListener(\"resize\", update);\n      scrollTarget.removeEventListener(\"scroll\", update as EventListener);\n      resizeObserver?.disconnect();\n      mutationObserver?.disconnect();\n    };\n  }, [enabled, observeMutations, observeResize, ref, update]);\n\n  return sample;\n}\n\nexport { FALLBACK_SAMPLE as LIQUID_GLASS_FALLBACK_BACKDROP_SAMPLE };\n", "/**\n * Liquid Glass Contrast Guard System\n *\n * Ensures WCAG compliance for all glass surfaces with dynamic tinting.\n * Automatically adjusts opacity, tint, and backdrop-filter to maintain\n * readable text contrast ratios even with environmental changes.\n *\n * Features:\n * - Real-time backdrop luminance sampling\n * - Automatic contrast ratio enforcement (AA/AAA)\n * - Content-aware tint adjustment\n * - Performance optimized with throttling\n * - Fallback modes for edge cases\n */\n\nimport React from \"react\";\nimport {\n  LIQUID_GLASS,\n  type LiquidGlassMaterial,\n  type MaterialVariant,\n  type GlassIntent,\n} from \"../tokens/glass\";\nimport { sampleLiquidGlassBackdrop } from \"../hooks/useLiquidGlassBackdrop\";\n\n// WCAG contrast level requirements\nexport type ContrastLevel = \"A\" | \"AA\" | \"AAA\";\nexport const CONTRAST_RATIOS: Record<ContrastLevel, number> = {\n  A: 3.0, // Minimum for large text\n  AA: 4.5, // Standard requirement\n  AAA: 7.0, // Enhanced requirement\n};\n\n// Color representation for calculations\nexport interface RGBColor {\n  r: number; // 0-255\n  g: number; // 0-255\n  b: number; // 0-255\n  a?: number; // 0-1\n}\n\nexport interface HSLColor {\n  h: number; // 0-360\n  s: number; // 0-100\n  l: number; // 0-100\n  a?: number; // 0-1\n}\n\n// Backdrop sampling result\nexport interface BackdropSample {\n  averageLuminance: number; // 0-1\n  dominantHue: number; // 0-360\n  contrast: number; // Measured contrast with current text\n  timestamp: number; // When sampled\n  confidence: number; // 0-1 quality of sample\n}\n\n// Contrast adjustment result\nexport interface ContrastAdjustment {\n  originalContrast: number;\n  adjustedContrast: number;\n  modifications: {\n    opacity?: number;\n    tint?: string;\n    backdropBlur?: number;\n    fallbackMode?: boolean;\n  };\n  meetsRequirement: boolean;\n  level: ContrastLevel;\n}\n\n/**\n * Core Contrast Guard System\n */\nexport class ContrastGuard {\n  private cache: Map<string, BackdropSample> = new Map();\n  private observers: Map<HTMLElement, ResizeObserver | MutationObserver> =\n    new Map();\n  private throttleTimers: Map<HTMLElement, number> = new Map();\n\n  private readonly CACHE_TTL = 500; // 500ms cache lifetime\n  private readonly THROTTLE_DELAY = 100; // 100ms update throttle\n  private readonly SAMPLING_SIZE = 32; // 32x32 pixel sampling area\n\n  /**\n   * Sample backdrop luminance behind a glass element\n   */\n  async sampleBackdrop(element: HTMLElement): Promise<BackdropSample> {\n    const cacheKey = this.getCacheKey(element);\n    const cached = this.cache.get(cacheKey);\n\n    // Return cached result if valid\n    if (cached && Date.now() - cached.timestamp < this.CACHE_TTL) {\n      return cached;\n    }\n\n    const sample = await this.performBackdropSample(element);\n    this.cache.set(cacheKey, sample);\n\n    // Clean old cache entries\n    this.cleanCache();\n\n    return sample;\n  }\n\n  /**\n   * Calculate contrast ratio between foreground and background colors\n   */\n  calculateContrastRatio(foreground: string, background: string): number {\n    const fgLuminance = this.getRelativeLuminance(foreground);\n    const bgLuminance = this.getRelativeLuminance(background);\n\n    const lighter = Math.max(fgLuminance, bgLuminance);\n    const darker = Math.min(fgLuminance, bgLuminance);\n\n    return (lighter + 0.05) / (darker + 0.05);\n  }\n\n  /**\n   * Adjust glass surface properties to meet contrast requirements\n   */\n  enforceContrast(\n    element: HTMLElement,\n    textColor: string,\n    targetLevel: ContrastLevel = \"AA\",\n    material: LiquidGlassMaterial = \"liquid\",\n    variant: MaterialVariant = \"regular\"\n  ): Promise<ContrastAdjustment> {\n    return new Promise(async (resolve) => {\n      try {\n        const backdrop = await this.sampleBackdrop(element);\n        const currentContrast = this.calculateContrastRatio(\n          textColor,\n          this.luminanceToColor(backdrop.averageLuminance)\n        );\n        const requiredRatio = CONTRAST_RATIOS[targetLevel];\n\n        if (currentContrast >= requiredRatio) {\n          // Already meets requirements\n          resolve({\n            originalContrast: currentContrast,\n            adjustedContrast: currentContrast,\n            modifications: {},\n            meetsRequirement: true,\n            level: targetLevel,\n          });\n          return;\n        }\n\n        // Calculate required adjustments\n        const adjustment = this.calculateAdjustments(\n          backdrop,\n          textColor,\n          requiredRatio,\n          material,\n          variant\n        );\n\n        resolve(adjustment);\n      } catch {\n        resolve(this.getFallbackAdjustment(targetLevel));\n      }\n    });\n  }\n\n  /**\n   * Start monitoring an element for backdrop changes\n   */\n  startMonitoring(\n    element: HTMLElement,\n    callback: (adjustment: ContrastAdjustment) => void,\n    options: {\n      targetLevel?: ContrastLevel;\n      material?: LiquidGlassMaterial;\n      variant?: MaterialVariant;\n      textColor?: string;\n    } = {}\n  ): void {\n    const {\n      targetLevel = \"AA\",\n      material = \"liquid\",\n      variant = \"regular\",\n      textColor = \"var(--glass-text-primary)\",\n    } = options;\n\n    // Throttled update function\n    const updateContrast = () => {\n      const existingTimer = this.throttleTimers.get(element);\n      if (existingTimer) {\n        clearTimeout(existingTimer);\n      }\n\n      const timer = window.setTimeout(async () => {\n        const adjustment = await this.enforceContrast(\n          element,\n          textColor,\n          targetLevel,\n          material,\n          variant\n        );\n        callback(adjustment);\n        this.throttleTimers.delete(element);\n      }, this.THROTTLE_DELAY);\n\n      this.throttleTimers.set(element, timer);\n    };\n\n    // Monitor size changes\n    const resizeObserver = new ResizeObserver(updateContrast);\n    resizeObserver.observe(element);\n    this.observers.set(element, resizeObserver);\n\n    // Monitor DOM changes in backdrop area\n    const parentElement = element.parentElement || document.body;\n    const mutationObserver = new MutationObserver((mutations) => {\n      const hasRelevantChanges = mutations.some(\n        (mutation) =>\n          mutation.type === \"childList\" ||\n          (mutation.type === \"attributes\" &&\n            [\"style\", \"class\", \"background\", \"color\"].includes(\n              mutation.attributeName || \"\"\n            ))\n      );\n\n      if (hasRelevantChanges) {\n        updateContrast();\n      }\n    });\n\n    mutationObserver.observe(parentElement, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: [\"style\", \"class\", \"background\", \"color\"],\n    });\n\n    // Perform initial check\n    updateContrast();\n  }\n\n  /**\n   * Stop monitoring an element\n   */\n  stopMonitoring(element: HTMLElement): void {\n    const observer = this.observers.get(element);\n    if (observer) {\n      observer.disconnect();\n      this.observers.delete(element);\n    }\n\n    const timer = this.throttleTimers.get(element);\n    if (timer) {\n      clearTimeout(timer);\n      this.throttleTimers.delete(element);\n    }\n\n    // Clean cache entries for this element\n    const cacheKey = this.getCacheKey(element);\n    this.cache.delete(cacheKey);\n  }\n\n  /**\n   * Generate adaptive tint based on backdrop analysis\n   */\n  generateAdaptiveTint(\n    backdrop: BackdropSample,\n    intent: GlassIntent = \"neutral\"\n  ): string {\n    const { averageLuminance, dominantHue } = backdrop;\n    const { lightThreshold, contrastBoost, saturationAdjust } =\n      LIQUID_GLASS.tinting.auto;\n\n    const isLightBackdrop = averageLuminance > lightThreshold;\n    const baseOpacity = isLightBackdrop ? 0.15 : 0.25;\n    const adjustedOpacity = baseOpacity + contrastBoost;\n\n    // Apply subtle color temperature shift based on dominant hue\n    const hueShift = Math.sin((dominantHue * Math.PI) / 180) * saturationAdjust;\n\n    if (isLightBackdrop) {\n      // Dark tint for light backgrounds with subtle color temperature\n      const r = Math.max(0, Math.min(255, Math.round(0 + hueShift * 255)));\n      const g = Math.max(0, Math.min(255, Math.round(0 + hueShift * 128)));\n      const b = Math.max(0, Math.min(255, Math.round(0 + hueShift * 64)));\n      return `rgba(${r}, ${g}, ${b}, ${adjustedOpacity})`;\n    } else {\n      // Light tint for dark backgrounds with subtle warmth\n      const r = Math.max(0, Math.min(255, Math.round(255 - hueShift * 64)));\n      const g = Math.max(0, Math.min(255, Math.round(255 - hueShift * 32)));\n      const b = Math.max(0, Math.min(255, Math.round(255 - hueShift * 128)));\n      return `rgba(${r}, ${g}, ${b}, ${adjustedOpacity})`;\n    }\n  }\n\n  // Private helper methods\n\n  private async performBackdropSample(\n    element: HTMLElement\n  ): Promise<BackdropSample> {\n    const liquidSample = sampleLiquidGlassBackdrop(element);\n    if (liquidSample.source !== \"fallback\") {\n      return {\n        averageLuminance: liquidSample.luminance,\n        dominantHue: 0,\n        contrast: liquidSample.contrastHint === \"mixed\" ? 4.5 : 7,\n        timestamp: Date.now(),\n        confidence: liquidSample.source === \"computed-style\" ? 0.8 : 0.5,\n      };\n    }\n    try {\n      const rect = element.getBoundingClientRect();\n      const canvas = document.createElement(\"canvas\");\n      const ctx = canvas.getContext(\"2d\");\n\n      if (!ctx) {\n        throw new Error(\"Canvas context not available\");\n      }\n\n      // Set up sampling area\n      canvas.width = this.SAMPLING_SIZE;\n      canvas.height = this.SAMPLING_SIZE;\n\n      // Get backdrop content (simplified - in real implementation would use more sophisticated sampling)\n      const backdrop = await this.captureBackdrop(element, rect);\n\n      if (backdrop) {\n        ctx.drawImage(backdrop, 0, 0, this.SAMPLING_SIZE, this.SAMPLING_SIZE);\n        const imageData = ctx.getImageData(\n          0,\n          0,\n          this.SAMPLING_SIZE,\n          this.SAMPLING_SIZE\n        );\n        return this.analyzeImageData(imageData);\n      }\n\n      // Fallback: estimate from computed styles\n      return this.estimateBackdropFromStyles(element);\n    } catch {\n      return this.getDefaultBackdropSample();\n    }\n  }\n\n  private async captureBackdrop(\n    element: HTMLElement,\n    rect: DOMRect\n  ): Promise<HTMLCanvasElement | null> {\n    // In a real implementation, this would capture the backdrop using various techniques:\n    // - html2canvas for DOM elements behind the glass\n    // - canvas.drawImage for images\n    // - getComputedStyle analysis for solid backgrounds\n    // For now, return null to trigger fallback\n    return null;\n  }\n\n  private analyzeImageData(imageData: ImageData): BackdropSample {\n    const pixels = imageData.data;\n    let totalLuminance = 0;\n    let hueSum = 0;\n    let hueCount = 0;\n\n    for (let i = 0; i < pixels.length; i += 4) {\n      const r = pixels[i];\n      const g = pixels[i + 1];\n      const b = pixels[i + 2];\n      const a = pixels[i + 3] / 255;\n\n      // Calculate relative luminance\n      const luminance = this.getRelativeLuminanceFromRGB(r, g, b) * a;\n      totalLuminance += luminance;\n\n      // Calculate hue for dominant color detection\n      const hsl = this.rgbToHsl(r, g, b);\n      if (hsl.s > 0.1) {\n        // Only count saturated colors\n        hueSum += hsl.h;\n        hueCount++;\n      }\n    }\n\n    const pixelCount = pixels.length / 4;\n    const averageLuminance = totalLuminance / pixelCount;\n    const dominantHue = hueCount > 0 ? hueSum / hueCount : 0;\n\n    return {\n      averageLuminance,\n      dominantHue,\n      contrast: 4.5, // Will be calculated properly in real implementation\n      timestamp: Date.now(),\n      confidence: 0.8,\n    };\n  }\n\n  private estimateBackdropFromStyles(element: HTMLElement): BackdropSample {\n    const stack: HTMLElement[] = [];\n    let current: HTMLElement | null = element;\n\n    while (current) {\n      stack.unshift(current);\n      current = current.parentElement;\n    }\n\n    let composed: RGBColor = { r: 0, g: 0, b: 0, a: 1 };\n    let confidence = 0.3;\n\n    for (const item of stack) {\n      const computedStyle = window.getComputedStyle(item);\n      const color =\n        this.parseColorOrNull(computedStyle.backgroundColor) ||\n        this.extractFirstBackgroundColor(computedStyle.backgroundImage);\n\n      if (color && (color.a ?? 1) > 0) {\n        composed = this.compositeColor(color, composed);\n        confidence = 0.65;\n      }\n    }\n\n    const luminance = this.getRelativeLuminanceFromRGB(\n      composed.r,\n      composed.g,\n      composed.b\n    );\n\n    return {\n      averageLuminance: luminance,\n      dominantHue: 0,\n      contrast: 4.5,\n      timestamp: Date.now(),\n      confidence,\n    };\n  }\n\n  private calculateAdjustments(\n    backdrop: BackdropSample,\n    textColor: string,\n    requiredRatio: number,\n    material: LiquidGlassMaterial,\n    variant: MaterialVariant\n  ): ContrastAdjustment {\n    const variantSpec = LIQUID_GLASS.variants[variant];\n    let adjustedOpacity: number = variantSpec.opacity.base;\n    let adjustedTint = this.generateAdaptiveTint(backdrop);\n    let adjustedBlur = 1.0;\n    let fallbackMode = false;\n\n    // Try opacity adjustment first\n    for (\n      let opacity = variantSpec.opacity.base;\n      opacity <= 0.95;\n      opacity += 0.05\n    ) {\n      const testContrast = this.calculateContrastWithOpacity(\n        textColor,\n        backdrop,\n        opacity\n      );\n      if (testContrast >= requiredRatio) {\n        adjustedOpacity = opacity;\n        break;\n      }\n    }\n\n    // If opacity adjustment isn't enough, try blur increase\n    let finalContrast = this.calculateContrastWithOpacity(\n      textColor,\n      backdrop,\n      adjustedOpacity\n    );\n    if (finalContrast < requiredRatio) {\n      adjustedBlur = variantSpec.blur.multiplier * 1.3; // Increase blur by 30%\n      finalContrast = Math.min(requiredRatio + 0.5, finalContrast * 1.2); // Estimate improvement\n    }\n\n    // Last resort: fallback mode with high contrast\n    if (finalContrast < requiredRatio) {\n      fallbackMode = true;\n      adjustedOpacity = 0.9 as number;\n      adjustedTint =\n        backdrop.averageLuminance > 0.5\n          ? \"rgba(0,0,0,0.3)\"\n          : \"rgba(255,255,255,0.4)\";\n      finalContrast = requiredRatio + 0.5; // Assume fallback meets requirement\n    }\n\n    return {\n      originalContrast: backdrop.contrast,\n      adjustedContrast: finalContrast,\n      modifications: {\n        opacity: adjustedOpacity,\n        tint: adjustedTint,\n        backdropBlur: adjustedBlur,\n        fallbackMode,\n      },\n      meetsRequirement: finalContrast >= requiredRatio,\n      level: this.getContrastLevel(finalContrast),\n    };\n  }\n\n  private calculateContrastWithOpacity(\n    textColor: string,\n    backdrop: BackdropSample,\n    opacity: number\n  ): number {\n    // Simplified contrast calculation with opacity\n    const baseContrast = this.calculateContrastRatio(\n      textColor,\n      this.luminanceToColor(backdrop.averageLuminance)\n    );\n    // Higher opacity generally improves contrast by reducing backdrop influence\n    const opacityBoost = (opacity - 0.5) * 2; // 0-1 boost factor\n    return baseContrast * (1 + opacityBoost * 0.3);\n  }\n\n  private getRelativeLuminance(color: string): number {\n    const rgb = this.parseColor(color);\n    return this.getRelativeLuminanceFromRGB(rgb.r, rgb.g, rgb.b);\n  }\n\n  private getRelativeLuminanceFromRGB(r: number, g: number, b: number): number {\n    // Convert to 0-1 range and apply gamma correction\n    const [rs, gs, bs] = [r, g, b].map((c: any) => {\n      c = c / 255;\n      return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n    });\n\n    // Apply ITU-R BT.709 coefficients\n    return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;\n  }\n\n  private parseColor(color: string): RGBColor {\n    // Simple color parsing (would be more robust in real implementation)\n    if (color.startsWith(\"rgb\")) {\n      const match = color.match(\n        /rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*([\\d.]+))?\\)/\n      );\n      if (match) {\n        return {\n          r: parseInt(match[1]),\n          g: parseInt(match[2]),\n          b: parseInt(match[3]),\n          a: match[4] ? parseFloat(match[4]) : 1,\n        };\n      }\n    }\n\n    // Default to white for unknown colors\n    return { r: 255, g: 255, b: 255, a: 1 };\n  }\n\n  private parseColorOrNull(color: string): RGBColor | null {\n    if (!color || color === \"transparent\" || color === \"rgba(0, 0, 0, 0)\") {\n      return null;\n    }\n\n    if (color.startsWith(\"rgb\")) {\n      const match = color.match(\n        /rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*([\\d.]+))?\\)/\n      );\n      if (match) {\n        return {\n          r: parseInt(match[1]),\n          g: parseInt(match[2]),\n          b: parseInt(match[3]),\n          a: match[4] ? parseFloat(match[4]) : 1,\n        };\n      }\n    }\n\n    return null;\n  }\n\n  private extractFirstBackgroundColor(\n    backgroundImage: string\n  ): RGBColor | null {\n    const match = backgroundImage.match(/rgba?\\([^)]+\\)/);\n    return match ? this.parseColorOrNull(match[0]) : null;\n  }\n\n  private compositeColor(foreground: RGBColor, background: RGBColor): RGBColor {\n    const fgAlpha = foreground.a ?? 1;\n    const bgAlpha = background.a ?? 1;\n    const alpha = fgAlpha + bgAlpha * (1 - fgAlpha);\n\n    if (alpha <= 0) {\n      return { r: 0, g: 0, b: 0, a: 0 };\n    }\n\n    return {\n      r: Math.round(\n        (foreground.r * fgAlpha + background.r * bgAlpha * (1 - fgAlpha)) /\n          alpha\n      ),\n      g: Math.round(\n        (foreground.g * fgAlpha + background.g * bgAlpha * (1 - fgAlpha)) /\n          alpha\n      ),\n      b: Math.round(\n        (foreground.b * fgAlpha + background.b * bgAlpha * (1 - fgAlpha)) /\n          alpha\n      ),\n      a: alpha,\n    };\n  }\n\n  private rgbToHsl(r: number, g: number, b: number): HSLColor {\n    r /= 255;\n    g /= 255;\n    b /= 255;\n\n    const max = Math.max(r, g, b);\n    const min = Math.min(r, g, b);\n    const diff = max - min;\n    const sum = max + min;\n    const l = sum / 2;\n\n    let h = 0;\n    let s = 0;\n\n    if (diff !== 0) {\n      s = l < 0.5 ? diff / sum : diff / (2 - sum);\n\n      switch (max) {\n        case r:\n          h = (g - b) / diff + (g < b ? 6 : 0);\n          break;\n        case g:\n          h = (b - r) / diff + 2;\n          break;\n        case b:\n          h = (r - g) / diff + 4;\n          break;\n      }\n      h /= 6;\n    }\n\n    return { h: h * 360, s: s * 100, l: l * 100 };\n  }\n\n  private luminanceToColor(luminance: number): string {\n    const value = Math.round(luminance * 255);\n    return `rgb(${value}, ${value}, ${value})`;\n  }\n\n  private getContrastLevel(ratio: number): ContrastLevel {\n    if (ratio >= CONTRAST_RATIOS.AAA) return \"AAA\";\n    if (ratio >= CONTRAST_RATIOS.AA) return \"AA\";\n    return \"A\";\n  }\n\n  private getCacheKey(element: HTMLElement): string {\n    const rect = element.getBoundingClientRect();\n    return `${rect.x}-${rect.y}-${rect.width}-${rect.height}`;\n  }\n\n  private cleanCache(): void {\n    const now = Date.now();\n    for (const [key, sample] of this.cache.entries()) {\n      if (now - sample.timestamp > this.CACHE_TTL) {\n        this.cache.delete(key);\n      }\n    }\n  }\n\n  private getDefaultBackdropSample(): BackdropSample {\n    return {\n      averageLuminance: 0.5,\n      dominantHue: 0,\n      contrast: 4.5,\n      timestamp: Date.now(),\n      confidence: 0.3,\n    };\n  }\n\n  private getFallbackAdjustment(\n    targetLevel: ContrastLevel\n  ): ContrastAdjustment {\n    return {\n      originalContrast: 3.0,\n      adjustedContrast: CONTRAST_RATIOS[targetLevel] + 0.5,\n      modifications: {\n        opacity: 0.9,\n        tint: \"rgba(0,0,0,0.2)\",\n        backdropBlur: 1.2,\n        fallbackMode: true,\n      },\n      meetsRequirement: true,\n      level: targetLevel,\n    };\n  }\n}\n\n/**\n * Singleton instance for global use\n */\nexport const contrastGuard = new ContrastGuard();\n\n/**\n * Hook for React components to use contrast guard\n */\nexport function useContrastGuard(\n  elementRef: React.RefObject<HTMLElement | null>,\n  options: {\n    targetLevel?: ContrastLevel;\n    material?: LiquidGlassMaterial;\n    variant?: MaterialVariant;\n    textColor?: string;\n    onAdjustment?: (adjustment: ContrastAdjustment) => void;\n  } = {}\n): ContrastAdjustment | null {\n  const [adjustment, setAdjustment] = React.useState<ContrastAdjustment | null>(\n    null\n  );\n\n  React.useEffect(() => {\n    const element = elementRef.current;\n    if (!element) return;\n\n    const handleAdjustment = (adj: ContrastAdjustment) => {\n      setAdjustment(adj);\n      options.onAdjustment?.(adj);\n    };\n\n    contrastGuard.startMonitoring(element, handleAdjustment, options);\n\n    return () => {\n      contrastGuard.stopMonitoring(element);\n    };\n  }, [elementRef.current, JSON.stringify(options)]);\n\n  return adjustment;\n}\n\n/**\n * Utility function to apply contrast adjustments to an element\n */\nexport function applyContrastAdjustment(\n  element: HTMLElement,\n  adjustment: ContrastAdjustment\n): void {\n  const { modifications } = adjustment;\n\n  if (modifications.opacity !== undefined) {\n    element.style.setProperty(\n      \"--glass-surface-opacity\",\n      String(modifications.opacity)\n    );\n  }\n\n  if (modifications.tint) {\n    element.style.setProperty(\"--glass-adaptive-tint\", modifications.tint);\n  }\n\n  if (modifications.backdropBlur !== undefined) {\n    element.style.setProperty(\n      \"--glass-adaptive-blur-multiplier\",\n      String(modifications.backdropBlur)\n    );\n  }\n\n  if (modifications.fallbackMode) {\n    element.classList.add(\"glass-contrast-fallback\");\n  } else {\n    element.classList.remove(\"glass-contrast-fallback\");\n  }\n}\n", "import { CSSProperties } from \"react\";\nimport { detectDevice } from \"../../utils/deviceCapabilities\";\nimport { getSafeNavigator, safeMatchMedia } from \"../../utils/env\";\nimport {\n  AURA_GLASS,\n  PERFORMANCE_TIERS,\n  glassTokenUtils,\n  GlassIntent,\n  GlassElevation,\n  QualityTier,\n} from \"../../tokens/glass\";\n\nexport interface GlassOptions {\n  intent?: GlassIntent;\n  elevation?: GlassElevation;\n  tier?: QualityTier;\n  interactive?: boolean;\n  hoverLift?: boolean;\n  focusRing?: boolean;\n  press?: boolean;\n}\n\nexport interface LegacyGlassMixinOptions {\n  interactive?: boolean;\n  variant?: \"primary\" | \"success\" | \"warning\" | \"error\" | \"info\" | string;\n  elevation?: 1 | 2 | 3 | 4 | number;\n}\n\ninterface NavigatorWithConnection extends Navigator {\n  connection?: {\n    effectiveType?: string;\n  };\n}\n\ntype MutableGlassStyle = CSSProperties & {\n  WebkitBackdropFilter?: string;\n};\n\n/**\n * SINGLE PUBLIC API - Creates glass styles from canonical tokens\n *\n * This is the ONLY way to create glass styles going forward.\n * All other methods are deprecated.\n */\nexport function createGlassStyle(opts: GlassOptions = {}): CSSProperties {\n  const {\n    intent = \"neutral\",\n    elevation = \"level2\",\n    tier = \"high\",\n    interactive = false,\n    hoverLift = false,\n    focusRing = false,\n    press = false,\n  } = opts;\n\n  // Get the base styles from canonical tokens\n  const styles = glassTokenUtils.buildSurfaceStyles(\n    intent,\n    elevation,\n    tier\n  ) as MutableGlassStyle;\n\n  if (!styles.backdropFilter) {\n    const surface = glassTokenUtils.getSurface(intent, elevation);\n    const fallbackFilter = glassTokenUtils.buildBackdropFilter(\n      surface.backdropBlur.px,\n      tier\n    );\n    styles.backdropFilter = fallbackFilter;\n    styles.WebkitBackdropFilter = fallbackFilter;\n  }\n\n  if (!styles.background) {\n    const surface = glassTokenUtils.getSurface(intent, elevation);\n    styles.background = surface.surface.base;\n  }\n\n  // Add interactive enhancements if requested\n  if (interactive) {\n    styles.cursor = \"pointer\";\n    styles.userSelect = \"none\";\n\n    // Interactive surfaces get slightly enhanced shadows by default\n    if (styles.boxShadow && styles.boxShadow !== \"none\") {\n      styles.transition = `all ${AURA_GLASS.motion.defaultMs}ms ease-out, transform ${AURA_GLASS.motion.defaultMs}ms ease-out`;\n    }\n  }\n\n  // Add hover lift capability (transform applied via CSS :hover)\n  if (hoverLift) {\n    styles.transition = `${styles.transition || \"all 200ms ease-out\"}, transform ${AURA_GLASS.motion.defaultMs}ms ease-out`;\n  }\n\n  // Add focus ring capability (applied via CSS :focus-visible)\n  if (focusRing) {\n    // The actual focus ring is applied via CSS, but we ensure transitions are smooth\n    styles.transition = `${styles.transition || \"all 200ms ease-out\"}, box-shadow ${AURA_GLASS.motion.defaultMs}ms ease-out`;\n  }\n\n  // Add press effect capability (applied via CSS :active)\n  if (press) {\n    // The actual press effect is applied via CSS, but we ensure transitions are smooth\n    styles.transition = `${styles.transition || \"all 200ms ease-out\"}, transform ${AURA_GLASS.motion.defaultMs}ms ease-out`;\n  }\n\n  return styles;\n}\n\n/**\n * DEPRECATED: Legacy API support - will be removed in next version\n * @deprecated Use createGlassStyle() instead\n */\nexport function createGlassMixin(\n  options: LegacyGlassMixinOptions = {}\n): CSSProperties {\n  // Map old options to new options\n  const newOptions: GlassOptions = {\n    intent: \"neutral\",\n    elevation: \"level2\",\n    tier: \"high\",\n    interactive: options.interactive || false,\n  };\n\n  // Basic variant mapping\n  if (options.variant === \"primary\") newOptions.intent = \"primary\";\n  if (options.variant === \"success\") newOptions.intent = \"success\";\n  if (options.variant === \"warning\") newOptions.intent = \"warning\";\n  if (options.variant === \"error\") newOptions.intent = \"danger\";\n  if (options.variant === \"info\") newOptions.intent = \"info\";\n\n  // Basic elevation mapping\n  if (options.elevation === 1) newOptions.elevation = \"level1\";\n  if (options.elevation === 2) newOptions.elevation = \"level2\";\n  if (options.elevation === 3) newOptions.elevation = \"level3\";\n  if (options.elevation === 4) newOptions.elevation = \"level4\";\n\n  return createGlassStyle(newOptions);\n}\n\n/**\n * DEPRECATED: Legacy hover mixin\n * @deprecated Use CSS :hover with createGlassStyle({ hoverLift: true })\n */\nexport function createGlassHoverMixin(\n  options: LegacyGlassMixinOptions = {}\n): CSSProperties {\n  return {\n    transform: \"translateY(-2px) scale(1.01)\",\n    boxShadow: \"0 12px 40px rgba(0,0,0,0.3)\",\n  };\n}\n\n/**\n * DEPRECATED: Legacy focus mixin\n * @deprecated Use CSS :focus-visible with createGlassStyle({ focusRing: true })\n */\nexport function createGlassFocusMixin(\n  options: LegacyGlassMixinOptions = {}\n): CSSProperties {\n  return {\n    outline: \"none\",\n    boxShadow: \"0 0 0 3px hsl(var(--glass-color-primary)/0.3)\",\n  };\n}\n\n/**\n * DEPRECATED: Legacy disabled mixin\n * @deprecated Use CSS :disabled with reduced opacity\n */\nexport function createGlassDisabledMixin(): CSSProperties {\n  return {\n    opacity: 0.6,\n    cursor: \"not-allowed\",\n    pointerEvents: \"none\",\n  };\n}\n\n/**\n * DEPRECATED: Legacy loading mixin\n * @deprecated Use modern loading UI patterns\n */\nexport function createGlassLoadingMixin(): CSSProperties {\n  return {\n    position: \"relative\",\n    overflow: \"hidden\",\n  };\n}\n\n/**\n * Utility: Generate CSS custom properties for dynamic theming\n * This creates CSS variables that can be overridden at runtime\n */\nexport function generateGlassThemeVariables(\n  options: {\n    intent?: GlassIntent;\n    elevation?: GlassElevation;\n  } = {}\n): Record<string, string> {\n  const { intent = \"neutral\", elevation = \"level2\" } = options;\n\n  const surface = glassTokenUtils.getSurface(intent, elevation);\n\n  return {\n    \"--glass-surface\": surface.surface.base,\n    \"--glass-border-color\": surface.border.color,\n    \"--glass-border-width\": `${surface.border.width}px`,\n    \"--glass-blur\": `${surface.backdropBlur.px}px`,\n    \"--glass-text-primary\": surface.text.primary,\n    \"--glass-text-secondary\": surface.text.secondary,\n    \"--glass-shadow\": surface.outerShadow\n      ? `${surface.outerShadow.x}px ${surface.outerShadow.y}px ${surface.outerShadow.blur}px ${surface.outerShadow.spread}px ${surface.outerShadow.color}`\n      : \"none\",\n    \"--glass-radius\": `${AURA_GLASS.radii.md}px`,\n    \"--glass-transition\": `all ${AURA_GLASS.motion.defaultMs}ms ease-out`,\n  };\n}\n\n/**\n * Utility: Create responsive glass styles for different screen sizes\n *\n * Returns CSS properties optimized for different performance tiers\n * based on typical device capabilities.\n */\nexport function createResponsiveGlassStyle(\n  mobile: GlassOptions,\n  tablet: GlassOptions,\n  desktop: GlassOptions\n): Record<string, CSSProperties> {\n  return {\n    // Mobile: use low tier for better performance\n    mobile: createGlassStyle({ ...mobile, tier: \"low\" }),\n    // Tablet: use medium tier for balanced experience\n    tablet: createGlassStyle({ ...tablet, tier: \"medium\" }),\n    // Desktop: use high tier for full experience\n    desktop: createGlassStyle({ ...desktop, tier: \"high\" }),\n  };\n}\n\n/**\n * Performance helper: Detect if device supports high-quality glass\n */\nexport function canUseHighQualityGlass(): boolean {\n  if (typeof window === \"undefined\") return true;\n\n  const cssSupports =\n    typeof CSS !== \"undefined\" && typeof CSS.supports === \"function\"\n      ? CSS.supports.bind(CSS)\n      : undefined;\n\n  if (!cssSupports) return false;\n\n  if (safeMatchMedia(\"(prefers-reduced-transparency: reduce)\")?.matches) {\n    return false;\n  }\n\n  // Check for backdrop-filter support\n  const supportsBackdropFilter =\n    cssSupports(\"backdrop-filter\", \"blur(1px)\") ||\n    cssSupports(\"-webkit-backdrop-filter\", \"blur(1px)\");\n\n  if (!supportsBackdropFilter) return false;\n\n  // Check device capabilities\n  const devicePixelRatio = window.devicePixelRatio || 1;\n  const isHighDPI = devicePixelRatio >= 2;\n\n  // Check for hardware acceleration via cached device capabilities\n  const hasWebGL = detectDevice().capabilities.webgl;\n\n  return isHighDPI && hasWebGL;\n}\n\n/**\n * Performance helper: Get recommended tier for current device\n */\nexport function getRecommendedTier(): QualityTier {\n  if (typeof window === \"undefined\") return \"high\";\n\n  if (canUseHighQualityGlass()) return \"high\";\n\n  // Check if user prefers reduced motion\n  const prefersReducedMotion =\n    safeMatchMedia(\"(prefers-reduced-motion: reduce)\")?.matches ?? false;\n  if (prefersReducedMotion) return \"low\";\n\n  const prefersReducedTransparency =\n    safeMatchMedia(\"(prefers-reduced-transparency: reduce)\")?.matches ?? false;\n  if (prefersReducedTransparency) return \"low\";\n\n  // Check connection quality if available\n  const nav = getSafeNavigator();\n  if (nav && \"connection\" in nav) {\n    const conn = (nav as NavigatorWithConnection).connection;\n    if (conn?.effectiveType === \"4g\") return \"medium\";\n    if (conn?.effectiveType === \"3g\") return \"low\";\n  }\n\n  return \"medium\";\n}\n\n// Export types for external usage\nexport type { GlassIntent, GlassElevation, QualityTier };\n\n// Legacy types for backward compatibility\nexport type GlassVariant =\n  | \"clear\"\n  | \"frosted\"\n  | \"tinted\"\n  | \"luminous\"\n  | \"dynamic\";\nexport type BlurIntensity = \"none\" | \"subtle\" | \"medium\" | \"strong\" | \"intense\";\n", "\"use client\";\n/**\n * ContrastGuard Component\n * A React wrapper component that ensures WCAG contrast compliance\n */\n\nimport React, {\n  useRef,\n  useEffect,\n  useState,\n  forwardRef,\n  useImperativeHandle,\n} from \"react\";\nimport {\n  useContrastGuard,\n  applyContrastAdjustment,\n  type ContrastLevel,\n} from \"../../utils/contrastGuard\";\nimport type { LiquidGlassMaterial, MaterialVariant } from \"../../tokens/glass\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport { createGlassStyle } from \"../../core/mixins/glassMixins\";\n\ntype ContrastGuardElement = keyof HTMLElementTagNameMap;\n\nexport interface ContrastGuardProps extends React.HTMLAttributes<HTMLElement> {\n  /**\n   * Content to be rendered with contrast protection\n   */\n  children?: React.ReactNode;\n\n  /**\n   * Target WCAG compliance level\n   * @default 'AA'\n   */\n  level?: ContrastLevel;\n\n  /**\n   * Minimum contrast ratio\n   * @default 4.5\n   */\n  minContrast?: number;\n\n  /**\n   * Fallback text color if contrast cannot be met\n   */\n  fallbackColor?: string;\n\n  /**\n   * Background color to test against\n   */\n  backgroundColor?: string;\n\n  /**\n   * Text color\n   * @default 'var(--glass-text-primary)'\n   */\n  textColor?: string;\n\n  /**\n   * Glass material type\n   */\n  material?: LiquidGlassMaterial;\n\n  /**\n   * Material variant\n   */\n  variant?: MaterialVariant;\n\n  /**\n   * Whether to automatically adjust contrast\n   * @default true\n   */\n  autoAdjust?: boolean;\n\n  /**\n   * Custom className\n   */\n  className?: string;\n\n  /**\n   * Element type to render\n   * @default 'span'\n   */\n  as?: ContrastGuardElement;\n\n  /**\n   * Callback when contrast adjustment is applied\n   */\n  onAdjustment?: (meetsRequirement: boolean, ratio: number) => void;\n\n  /**\n   * Show a small contrast status indicator. Useful in docs, previews, and\n   * audit tooling where the component's behavior should be visible.\n   */\n  showIndicator?: boolean;\n\n  /**\n   * Optional package-owned demo backdrop for docs/previews. Normal app usage\n   * should leave this as `none`.\n   * @default 'none'\n   */\n  demoBackdrop?: \"none\" | \"busy-light\" | \"busy-dark\";\n}\n\nfunction demoBackdropStyle(\n  demoBackdrop: NonNullable<ContrastGuardProps[\"demoBackdrop\"]>\n): React.CSSProperties {\n  if (demoBackdrop === \"busy-light\") {\n    return {\n      ...createGlassStyle({\n        intent: \"info\",\n        elevation: \"level1\",\n        tier: \"high\",\n      }),\n      display: \"inline-flex\",\n      alignItems: \"center\",\n      gap: \"0.5rem\",\n      padding: \"0.65rem 0.75rem\",\n      borderRadius: \"0.75rem\",\n      color: \"#0f172a\",\n    };\n  }\n\n  if (demoBackdrop === \"busy-dark\") {\n    return {\n      ...createGlassStyle({\n        intent: \"neutral\",\n        elevation: \"level3\",\n        tier: \"high\",\n      }),\n      display: \"inline-flex\",\n      alignItems: \"center\",\n      gap: \"0.5rem\",\n      padding: \"0.65rem 0.75rem\",\n      borderRadius: \"0.75rem\",\n      color: \"#f8fafc\",\n    };\n  }\n\n  return {};\n}\n\n/**\n * ContrastGuard wrapper component\n * Ensures text content meets WCAG contrast requirements\n */\nexport const ContrastGuard = forwardRef<HTMLElement | null, ContrastGuardProps>(\n  (\n    {\n      children,\n      level = \"AA\",\n      minContrast = 4.5,\n      fallbackColor = \"var(--glass-text-primary)\",\n      backgroundColor,\n      textColor = \"var(--glass-text-primary)\",\n      material = \"liquid\",\n      variant = \"regular\",\n      autoAdjust = true,\n      className,\n      as: Component = \"span\",\n      onAdjustment,\n      showIndicator = false,\n      demoBackdrop = \"none\",\n      style,\n      ...rest\n    },\n    forwardedRef: React.ForwardedRef<HTMLElement | null>\n  ) => {\n    const elementRef = useRef<HTMLElement | null>(null);\n    const [appliedStyles, setAppliedStyles] = useState<React.CSSProperties>({});\n\n    useImperativeHandle<HTMLElement | null, HTMLElement | null>(\n      forwardedRef,\n      () => elementRef.current,\n      []\n    );\n\n    // Use ContrastGuard hook if autoAdjust is enabled\n    const adjustment = useContrastGuard(\n      elementRef,\n      autoAdjust\n        ? {\n            targetLevel: level,\n            material,\n            variant,\n            textColor,\n            onAdjustment: (adj) => {\n              if (elementRef.current) {\n                applyContrastAdjustment(elementRef.current, adj);\n              }\n              onAdjustment?.(adj.meetsRequirement, adj.adjustedContrast);\n\n              // Apply styles dynamically\n              const styles: React.CSSProperties = {};\n              if (adj.modifications.fallbackMode && fallbackColor) {\n                styles.color = fallbackColor;\n              }\n              setAppliedStyles(styles);\n            },\n          }\n        : undefined\n    );\n\n    const indicator = showIndicator\n      ? React.createElement(\n          \"span\",\n          {\n            \"aria-hidden\": true,\n            className: \"contrast-guard__indicator\",\n            style: {\n              marginLeft: \"0.5rem\",\n              padding: \"0.12rem 0.4rem\",\n              borderRadius: \"999px\",\n              fontSize: \"0.64rem\",\n              fontWeight: 700,\n              letterSpacing: \"0.06em\",\n              textTransform: \"uppercase\",\n              color: adjustment?.meetsRequirement ? \"#052e16\" : \"#451a03\",\n              background: adjustment?.meetsRequirement\n                ? \"rgba(134,239,172,0.92)\"\n                : \"rgba(253,186,116,0.92)\",\n            },\n          },\n          adjustment?.meetsRequirement ? \"AA\" : \"Check\"\n        )\n      : null;\n\n    return React.createElement(\n      Component,\n      {\n        \"data-glass-component\": true,\n        ref: elementRef,\n        className: cn(\n          \"contrast-guard\",\n          adjustment?.meetsRequirement && \"contrast-guard--compliant\",\n          adjustment?.modifications.fallbackMode && \"contrast-guard--fallback\",\n          className\n        ),\n        style: {\n          ...demoBackdropStyle(demoBackdrop),\n          ...style,\n          ...appliedStyles,\n          ...(backgroundColor && { backgroundColor }),\n        },\n        \"data-contrast-level\": level,\n        \"data-contrast-ratio\": adjustment?.adjustedContrast?.toFixed(2),\n        \"data-meets-wcag\": adjustment?.meetsRequirement,\n        \"data-demo-backdrop\":\n          demoBackdrop === \"none\" ? undefined : demoBackdrop,\n        ...rest,\n      },\n      indicator\n        ? React.createElement(React.Fragment, null, children, indicator)\n        : children\n    );\n  }\n);\n\n/**\n * Simpler text wrapper with contrast protection\n */\nexport interface TextWithContrastProps\n  extends React.HTMLAttributes<HTMLElement> {\n  children?: React.ReactNode;\n  level?: \"AA\" | \"AAA\";\n  className?: string;\n  as?: ContrastGuardElement;\n}\n\nexport const TextWithContrast: React.FC<TextWithContrastProps> = ({\n  children,\n  level = \"AA\",\n  className,\n  as: Component = \"span\",\n  ...rest\n}) => {\n  return (\n    <ContrastGuard\n      level={level}\n      minContrast={level === \"AAA\" ? 7.0 : 4.5}\n      as={Component}\n      className={className}\n      {...rest}\n    >\n      {children}\n    </ContrastGuard>\n  );\n};\n\n/**\n * High contrast mode wrapper for critical UI elements\n */\nexport const HighContrastText: React.FC<{\n  children: React.ReactNode;\n  className?: string;\n}> = ({ children, className }) => {\n  return (\n    <ContrastGuard\n      level=\"AAA\"\n      minContrast={7.0}\n      fallbackColor=\"var(--glass-text-primary)\"\n      className={className}\n    >\n      {children}\n    </ContrastGuard>\n  );\n};\n\nexport default ContrastGuard;\n", "\"use client\";\nimport { useReducedMotion } from \"@/hooks/useReducedMotion\";\nimport { Canvas, useFrame, useThree } from \"@react-three/fiber\";\nimport { motion } from \"framer-motion\";\nimport {\n  Cloud,\n  Flower,\n  Leaf,\n  Pause,\n  Play,\n  Snowflake,\n  Sun,\n  Wind,\n} from \"@/icons\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport * as THREE from \"three\";\nimport { SeededRandom } from \"../../utils/random\";\nimport { ContrastGuard } from \"../accessibility/ContrastGuard\";\n\n// Seasonal particle systems\nconst SeasonalParticleFactory = {\n  // Snow particles\n  createSnowParticle: (size = 1, complexity = 6) => {\n    const geometry = new THREE.ConeGeometry(size * 0.1, size * 0.3, complexity);\n    return geometry;\n  },\n\n  // Leaf particles\n  createLeafParticle: (size = 1) => {\n    const geometry = new THREE.PlaneGeometry(size, size * 1.5);\n    // Add some curvature to make it look like a leaf\n    const positions = geometry.attributes.position.array;\n    for (let i = 0; i < positions.length; i += 3) {\n      const x = positions[i];\n      const y = positions[i + 1];\n      positions[i + 2] = Math.sin(x * 5) * 0.1 * Math.abs(y);\n    }\n    geometry.computeVertexNormals();\n    return geometry;\n  },\n\n  // Flower petals\n  createPetalParticle: (size = 1) => {\n    const geometry = new THREE.PlaneGeometry(size, size * 2);\n    // Curve the petal\n    const positions = geometry.attributes.position.array;\n    for (let i = 0; i < positions.length; i += 3) {\n      const x = positions[i];\n      const y = positions[i + 1];\n      positions[i + 2] = Math.sin(x * 3) * 0.2 * (1 - Math.abs(y));\n    }\n    geometry.computeVertexNormals();\n    return geometry;\n  },\n\n  // Sun rays\n  createSunRayParticle: (length = 1, width = 0.1) => {\n    const geometry = new THREE.CylinderGeometry(width, width * 0.5, length, 8);\n    return geometry;\n  },\n\n  // Rain drops\n  createRainDropParticle: (length = 1) => {\n    const geometry = new THREE.CylinderGeometry(0.02, 0.02, length, 6);\n    return geometry;\n  },\n\n  // Create particle field for season\n  createSeasonalField: (\n    season: string,\n    count = 50,\n    random: SeededRandom = new SeededRandom()\n  ) => {\n    const particles = [];\n\n    for (let i = 0; i < count; i++) {\n      let geometry;\n      let material;\n\n      switch (season) {\n        case \"winter\":\n          geometry = SeasonalParticleFactory.createSnowParticle(\n            0.5 + random.next() * 0.5\n          );\n          material = SeasonalParticleFactory.createSnowMaterial();\n          break;\n        case \"autumn\":\n          geometry = SeasonalParticleFactory.createLeafParticle(\n            0.3 + random.next() * 0.4\n          );\n          material = SeasonalParticleFactory.createLeafMaterial();\n          break;\n        case \"spring\":\n          geometry = SeasonalParticleFactory.createPetalParticle(\n            0.2 + random.next() * 0.3\n          );\n          material = SeasonalParticleFactory.createPetalMaterial(random);\n          break;\n        case \"summer\":\n          geometry = SeasonalParticleFactory.createSunRayParticle(\n            1 + random.next() * 2\n          );\n          material = SeasonalParticleFactory.createSunRayMaterial();\n          break;\n        default:\n          geometry = new THREE.SphereGeometry(0.1);\n          material = new THREE.MeshBasicMaterial({ color: 0xffffff });\n      }\n\n      const particle = new THREE.Mesh(geometry, material);\n      particle.position.set(\n        random.nextSigned() * 10,\n        random.next() * 15,\n        random.nextSigned() * 5\n      );\n      particle.rotation.set(\n        random.next() * Math.PI * 2,\n        random.next() * Math.PI * 2,\n        random.next() * Math.PI * 2\n      );\n\n      // Add custom properties for animation\n      particle.userData = {\n        originalY: particle.position.y,\n        fallSpeed: 0.01 + random.next() * 0.05,\n        rotationSpeed: random.nextSigned() * 0.02,\n        windOffset: random.next() * Math.PI * 2,\n        season,\n      };\n\n      particles.push(particle);\n    }\n\n    return particles;\n  },\n\n  // Material factories\n  createSnowMaterial: () =>\n    new THREE.MeshPhongMaterial({\n      color: 0xffffff,\n      transparent: true,\n      opacity: 0.8,\n      shininess: 100,\n    }),\n\n  createLeafMaterial: () =>\n    new THREE.MeshPhongMaterial({\n      color: new THREE.Color().setHSL(0.1, 0.8, 0.4),\n      transparent: true,\n      opacity: 0.9,\n      side: THREE.DoubleSide,\n    }),\n\n  createPetalMaterial: (random: SeededRandom) =>\n    new THREE.MeshPhongMaterial({\n      color: new THREE.Color().setHSL(random.nextInRange(0.8, 1.0), 0.8, 0.6),\n      transparent: true,\n      opacity: 0.8,\n      side: THREE.DoubleSide,\n    }),\n\n  createSunRayMaterial: () =>\n    new THREE.MeshBasicMaterial({\n      color: new THREE.Color(1, 0.9, 0.3),\n      transparent: true,\n      opacity: 0.6,\n    }),\n\n  createRainMaterial: () =>\n    new THREE.MeshBasicMaterial({\n      color: new THREE.Color(0.5, 0.7, 1),\n      transparent: true,\n      opacity: 0.7,\n    }),\n};\n\n// Seasonal animation system\nconst SeasonalAnimations = {\n  // Snow falling animation\n  snowFall: (particle: THREE.Mesh, time: number, windStrength: number = 1) => {\n    particle.position.y -= particle.userData.fallSpeed;\n    particle.position.x +=\n      Math.sin(time * 2 + particle.userData.windOffset) * 0.01 * windStrength;\n    particle.rotation.x += particle.userData.rotationSpeed;\n    particle.rotation.y += particle.userData.rotationSpeed * 0.5;\n\n    // Reset particle when it falls below screen\n    if (particle.position.y < -10) {\n      particle.position.y = 15 + Math.random() * 5;\n      particle.position.x = (Math.random() - 0.5) * 20;\n    }\n  },\n\n  // Leaf falling animation\n  leafFall: (particle: THREE.Mesh, time: number, windStrength: number = 1) => {\n    particle.position.y -= particle.userData.fallSpeed;\n    particle.position.x +=\n      Math.sin(time * 1.5 + particle.userData.windOffset) * 0.02 * windStrength;\n    particle.rotation.x += particle.userData.rotationSpeed;\n    particle.rotation.z += particle.userData.rotationSpeed * 2;\n\n    if (particle.position.y < -10) {\n      particle.position.y = 15 + Math.random() * 5;\n      particle.position.x = (Math.random() - 0.5) * 20;\n    }\n  },\n\n  // Petal floating animation\n  petalFloat: (\n    particle: THREE.Mesh,\n    time: number,\n    windStrength: number = 1\n  ) => {\n    particle.position.y -= particle.userData.fallSpeed * 0.5;\n    particle.position.x +=\n      Math.sin(time * 1 + particle.userData.windOffset) * 0.015 * windStrength;\n    particle.rotation.y += particle.userData.rotationSpeed;\n    particle.rotation.x +=\n      Math.sin(time * 3 + particle.userData.windOffset) * 0.01;\n\n    if (particle.position.y < -10) {\n      particle.position.y = 15 + Math.random() * 5;\n      particle.position.x = (Math.random() - 0.5) * 20;\n    }\n  },\n\n  // Sun ray pulsing animation\n  sunRayPulse: (particle: THREE.Mesh, time: number) => {\n    const pulse = Math.sin(time * 4) * 0.3 + 0.7;\n    particle.scale.y = pulse;\n    if (particle.material && \"opacity\" in particle.material) {\n      particle.material.opacity = 0.3 + pulse * 0.4;\n    }\n  },\n\n  // Rain falling animation\n  rainFall: (particle: THREE.Mesh, time: number, windStrength: number = 1) => {\n    particle.position.y -= particle.userData.fallSpeed * 3;\n    particle.position.x += windStrength * 0.05;\n\n    if (particle.position.y < -10) {\n      particle.position.y = 15 + Math.random() * 5;\n      particle.position.x = (Math.random() - 0.5) * 20;\n    }\n  },\n};\n\n// Main SeasonalParticles Component\nexport interface SeasonalParticlesProps {\n  season?: \"winter\" | \"spring\" | \"summer\" | \"autumn\" | \"auto\";\n  particleCount?: number;\n  windStrength?: number;\n  animationSpeed?: number;\n  className?: string;\n  showControls?: boolean;\n  autoSeason?: boolean;\n  seasonDuration?: number;\n  onSeasonChange?: (season: string) => void;\n  seed?: number | string;\n  children?: React.ReactNode;\n}\n\nexport function SeasonalParticlesR3F({\n  season = \"auto\",\n  particleCount = 30,\n  windStrength = 1,\n  animationSpeed = 1,\n  className = \"\",\n  showControls = false,\n  autoSeason = true,\n  seasonDuration = 10000, // 10 seconds per season\n  onSeasonChange,\n  children,\n  seed,\n}: SeasonalParticlesProps) {\n  const prefersReducedMotion = useReducedMotion();\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const [currentSeason, setCurrentSeason] = useState(\n    season === \"auto\" ? \"winter\" : season\n  );\n  const [particles, setParticles] = useState<THREE.Mesh[]>([]);\n  const [isPlaying, setIsPlaying] = useState(true);\n  const [seasonIndex, setSeasonIndex] = useState(0);\n\n  const seasons = [\"winter\", \"spring\", \"summer\", \"autumn\"];\n\n  // Initialize particles for current season\n  useEffect(() => {\n    const seededRandom = new SeededRandom(\n      seed ?? `${currentSeason}-${particleCount}`\n    );\n    const newParticles = SeasonalParticleFactory.createSeasonalField(\n      currentSeason,\n      particleCount,\n      seededRandom\n    );\n    setParticles(newParticles);\n\n    onSeasonChange?.(currentSeason);\n  }, [currentSeason, particleCount, onSeasonChange, seed]);\n\n  // Auto season rotation\n  useEffect(() => {\n    if (!autoSeason || season !== \"auto\") return;\n\n    const interval = setInterval(() => {\n      setSeasonIndex((prev: any) => {\n        const next = (prev + 1) % seasons.length;\n        setCurrentSeason(\n          seasons[next] as \"winter\" | \"spring\" | \"summer\" | \"autumn\"\n        );\n        return next;\n      });\n    }, seasonDuration);\n\n    return () => clearInterval(interval);\n  }, [autoSeason, season, seasonDuration, seasons]);\n\n  // Manual season control\n  const changeSeason = useCallback(\n    (newSeason: string) => {\n      setCurrentSeason(newSeason as \"winter\" | \"spring\" | \"summer\" | \"autumn\");\n      setSeasonIndex(seasons.indexOf(newSeason));\n    },\n    [seasons]\n  );\n\n  // Play/pause control\n  const togglePlay = useCallback(() => {\n    setIsPlaying((prev: any) => !prev);\n  }, []);\n\n  // Get season icon\n  const getSeasonIcon = (seasonName: string) => {\n    switch (seasonName) {\n      case \"winter\":\n        return <Snowflake className={cn(\"glass-w-4 glass-h-4\")} />;\n      case \"spring\":\n        return <Flower className={cn(\"glass-w-4 glass-h-4\")} />;\n      case \"summer\":\n        return <Sun className={cn(\"glass-w-4 glass-h-4\")} />;\n      case \"autumn\":\n        return <Leaf className={cn(\"glass-w-4 glass-h-4\")} />;\n      default:\n        return <Cloud className={cn(\"glass-w-4 glass-h-4\")} />;\n    }\n  };\n\n  // Get season colors for UI\n  const getSeasonColors = (seasonName: string) => {\n    switch (seasonName) {\n      case \"winter\":\n        return \"text-blue-400 border-blue-400/30 bg-blue-400/10\";\n      case \"spring\":\n        return \"text-pink-400 border-pink-400/30 bg-pink-400/10\";\n      case \"summer\":\n        return \"text-yellow-400 border-yellow-400/30 bg-yellow-400/10\";\n      case \"autumn\":\n        return \"text-orange-400 border-orange-400/30 bg-orange-400/10\";\n      default:\n        return \"text-gray-400 border-gray-400/30 bg-gray-400/10\";\n    }\n  };\n\n  return (\n    <div\n      className={cn(\n        \"seasonal-particles glass-relative glass-overflow-hidden\",\n        className\n      )}\n    >\n      {/* 3D Canvas */}\n      <Canvas\n        ref={canvasRef}\n        className={cn(\"glass-absolute glass-inset-0 glass-pointer-events-none\")}\n        camera={{ position: [0, 5, 10], fov: 75 }}\n        gl={{ alpha: true, antialias: true }}\n      >\n        <SeasonalScene\n          particles={particles}\n          currentSeason={currentSeason}\n          windStrength={windStrength}\n          animationSpeed={animationSpeed}\n          isPlaying={isPlaying}\n        />\n      </Canvas>\n\n      {/* Content overlay */}\n      <div className={cn(\"glass-relative glass-z-10\")}>{children}</div>\n\n      {/* Season indicator */}\n      <motion.div\n        initial={{ opacity: 0, y: 20 }}\n        animate={prefersReducedMotion ? {} : { opacity: 1, y: 0 }}\n        className={cn(\n          \"glass-absolute glass-top-4 glass-left-4 glass-px-3 glass-py-2 glass-radius-lg glass-foundation-complete glass-border\",\n          getSeasonColors(currentSeason)\n        )}\n      >\n        <div className={cn(\"glass-flex glass-items-center glass-gap-2\")}>\n          {getSeasonIcon(currentSeason)}\n          <ContrastGuard>\n            <span\n              className={cn(\"glass-text-sm glass-font-medium glass-capitalize\")}\n            >\n              {currentSeason}\n            </span>\n          </ContrastGuard>\n        </div>\n      </motion.div>\n\n      {/* Controls */}\n      {showControls && (\n        <motion.div\n          initial={{ opacity: 0, y: 20 }}\n          animate={prefersReducedMotion ? {} : { opacity: 1, y: 0 }}\n          className=\"glass-absolute glass-bottom-4 glass-right-4 glass-flex glass-flex-col glass-gap-2\"\n        >\n          {/* Season selector */}\n          <div className=\"glass-flex glass-gap-2 glass-p-2 glass-surface-dark/20 glass-backdrop-blur-lg glass-radius-lg glass-border glass-border-white/10 glass-contrast-guard\">\n            {seasons.map((seasonName: any) => (\n              <button\n                key={seasonName}\n                onClick={() => changeSeason(seasonName)}\n                className={`p-2 rounded-lg transition-colors glass-focus glass-touch-target glass-contrast-guard ${\n                  currentSeason === seasonName\n                    ? \"bg-white/20 text-white\"\n                    : \"text-white/60 hover:text-white hover:bg-white/10\"\n                }`}\n                title={`Switch to ${seasonName}`}\n              >\n                {getSeasonIcon(seasonName)}\n              </button>\n            ))}\n          </div>\n\n          {/* Playback controls */}\n          <div className=\"glass-flex glass-gap-2 glass-p-2 glass-surface-dark/20 glass-backdrop-blur-lg glass-radius-lg glass-border glass-border-white/10 glass-contrast-guard\">\n            <button\n              onClick={togglePlay}\n              className=\"glass-p-2 glass-radius-lg glass-text-primary hover:glass-surface-subtle/10 glass-transition-colors glass-focus glass-touch-target glass-contrast-guard\"\n              title={isPlaying ? \"Pause\" : \"Play\"}\n            >\n              {isPlaying ? (\n                <Pause className=\"glass-w-4 glass-h-4\" />\n              ) : (\n                <Play className=\"glass-w-4 glass-h-4\" />\n              )}\n            </button>\n\n            <div className=\"glass-flex glass-items-center glass-gap-2 glass-text-primary-glass-opacity-60 glass-text-sm\">\n              <Wind className=\"glass-w-3 glass-h-3\" />\n              <ContrastGuard>\n                <span>{windStrength.toFixed(1)}</span>\n              </ContrastGuard>\n            </div>\n          </div>\n        </motion.div>\n      )}\n\n      {/* Wind strength indicator */}\n      {windStrength > 0 && (\n        <motion.div\n          initial={{ opacity: 0, x: -20 }}\n          animate={prefersReducedMotion ? {} : { opacity: 1, x: 0 }}\n          className=\"glass-absolute glass-top-4 glass-right-4 glass-px-3 glass-py-2 glass-surface-dark/20 glass-backdrop-blur-lg glass-radius-lg glass-border glass-border-white/10 glass-contrast-guard\"\n        >\n          <div className=\"glass-flex glass-items-center glass-gap-2 glass-text-primary-glass-opacity-60 glass-text-sm\">\n            <motion.div\n              animate={\n                prefersReducedMotion\n                  ? {}\n                  : {\n                      x: windStrength > 0 ? [0, 5, 0] : 0,\n                    }\n              }\n              transition={\n                prefersReducedMotion\n                  ? { duration: 0 }\n                  : {\n                      duration: 2,\n                      repeat: Infinity,\n                      ease: \"easeInOut\",\n                    }\n              }\n            >\n              <Wind className=\"glass-w-3 glass-h-3\" />\n            </motion.div>\n            <ContrastGuard>\n              <span>Wind: {windStrength.toFixed(1)}</span>\n            </ContrastGuard>\n          </div>\n        </motion.div>\n      )}\n    </div>\n  );\n}\n\n// 3D Seasonal Scene Component\nfunction SeasonalScene({\n  particles,\n  currentSeason,\n  windStrength,\n  animationSpeed,\n  isPlaying,\n}: any) {\n  const { scene } = useThree();\n\n  // Add particles to scene\n  useEffect(() => {\n    particles.forEach((particle: THREE.Mesh) => {\n      scene.add(particle);\n    });\n\n    return () => {\n      particles.forEach((particle: THREE.Mesh) => {\n        scene.remove(particle);\n      });\n    };\n  }, [particles, scene]);\n\n  // Animation loop\n  useFrame((state) => {\n    if (!isPlaying) return;\n\n    const time = state.clock.elapsedTime * animationSpeed;\n\n    particles.forEach((particle: THREE.Mesh) => {\n      if (!particle.userData) return;\n\n      switch (particle.userData.season || currentSeason) {\n        case \"winter\":\n          SeasonalAnimations.snowFall(particle, time, windStrength);\n          break;\n        case \"autumn\":\n          SeasonalAnimations.leafFall(particle, time, windStrength);\n          break;\n        case \"spring\":\n          SeasonalAnimations.petalFloat(particle, time, windStrength);\n          break;\n        case \"summer\":\n          SeasonalAnimations.sunRayPulse(particle, time);\n          break;\n      }\n    });\n  });\n\n  return (\n    <>\n      {/* Lighting based on season */}\n      <ambientLight intensity={0.3} />\n      {currentSeason === \"summer\" && (\n        <directionalLight\n          position={[10, 10, 5]}\n          intensity={1.2}\n          color={0xffeb3b}\n        />\n      )}\n      {currentSeason === \"winter\" && (\n        <directionalLight\n          position={[5, 5, 10]}\n          intensity={0.8}\n          color={0xe3f2fd}\n        />\n      )}\n      {currentSeason === \"autumn\" && (\n        <directionalLight\n          position={[5, 10, 5]}\n          intensity={0.9}\n          color={0xff9800}\n        />\n      )}\n      {currentSeason === \"spring\" && (\n        <directionalLight\n          position={[10, 5, 5]}\n          intensity={1.0}\n          color={0xe91e63}\n        />\n      )}\n    </>\n  );\n}\n\nexport default SeasonalParticlesR3F;\n", "\"use client\";\nimport { useReducedMotion } from \"@/hooks/useReducedMotion\";\nimport { Canvas, useFrame, useThree } from \"@react-three/fiber\";\nimport { motion } from \"framer-motion\";\nimport {\n  Flame,\n  Palette,\n  Pause,\n  Play,\n  Sparkles,\n  Star,\n  Waves,\n  Wind,\n  Zap,\n} from \"@/icons\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport * as THREE from \"three\";\nimport { ContrastGuard } from \"../accessibility/ContrastGuard\";\n\n// Aurora geometry and material factories\nconst AuroraFactory = {\n  // Create aurora wave geometry\n  createAuroraWave: (width = 20, height = 10, segments = 64) => {\n    const geometry = new THREE.PlaneGeometry(width, height, segments, 32);\n\n    // Add wave-like deformation\n    const positions = geometry.attributes.position.array;\n    for (let i = 0; i < positions.length; i += 3) {\n      const x = positions[i];\n      const y = positions[i + 1];\n      const wave = Math.sin(x * 0.2) * Math.cos(y * 0.3) * 2;\n      positions[i + 2] = wave;\n    }\n\n    geometry.computeVertexNormals();\n    return geometry;\n  },\n\n  // Create aurora curtain geometry\n  createAuroraCurtain: (width = 15, height = 8, depth = 3) => {\n    const geometry = new THREE.PlaneGeometry(width, height, 32, 16);\n\n    // Add depth variation\n    const positions = geometry.attributes.position.array;\n    for (let i = 0; i < positions.length; i += 3) {\n      const x = positions[i];\n      const y = positions[i + 1];\n      const depthVariation = Math.sin(x * 0.3) * Math.cos(y * 0.4) * depth;\n      positions[i + 2] = depthVariation;\n    }\n\n    geometry.computeVertexNormals();\n    return geometry;\n  },\n\n  // Create aurora particles\n  createAuroraParticles: (count = 100) => {\n    const geometry = new THREE.BufferGeometry();\n    const positions = new Float32Array(count * 3);\n    const colors = new Float32Array(count * 3);\n    const sizes = new Float32Array(count);\n\n    const colorPalette = [\n      new THREE.Color(0x4fc3f7), // Light blue\n      new THREE.Color(0x81c784), // Light green\n      new THREE.Color(0xffb74d), // Light orange\n      new THREE.Color(0xba68c8), // Light purple\n      new THREE.Color(0xff8a65), // Light red\n      new THREE.Color(0x4db6ac), // Light teal\n    ];\n\n    for (let i = 0; i < count; i++) {\n      // Random position in aurora band\n      positions[i * 3] = (Math.random() - 0.5) * 25;\n      positions[i * 3 + 1] = Math.random() * 12 + 2;\n      positions[i * 3 + 2] = (Math.random() - 0.5) * 8;\n\n      // Random color from palette\n      const color =\n        colorPalette[Math.floor(Math.random() * colorPalette.length)];\n      colors[i * 3] = color.r;\n      colors[i * 3 + 1] = color.g;\n      colors[i * 3 + 2] = color.b;\n\n      // Random size\n      sizes[i] = Math.random() * 3 + 1;\n    }\n\n    geometry.setAttribute(\"position\", new THREE.BufferAttribute(positions, 3));\n    geometry.setAttribute(\"color\", new THREE.BufferAttribute(colors, 3));\n    geometry.setAttribute(\"size\", new THREE.BufferAttribute(sizes, 1));\n\n    return geometry;\n  },\n\n  // Aurora wave material\n  createAuroraMaterial: (options: any = {}) => {\n    const {\n      color1 = new THREE.Color(0x4fc3f7),\n      color2 = new THREE.Color(0x81c784),\n      color3 = new THREE.Color(0xba68c8),\n      intensity = 1.0,\n      speed = 1.0,\n    } = options;\n\n    return new THREE.ShaderMaterial({\n      uniforms: {\n        time: { value: 0 },\n        color1: { value: color1 },\n        color2: { value: color2 },\n        color3: { value: color3 },\n        intensity: { value: intensity },\n        speed: { value: speed },\n      },\n      vertexShader: `\n        varying vec3 vPosition;\n        varying vec2 vUv;\n\n        void main() {\n          vPosition = position;\n          vUv = uv;\n          gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n        }\n      `,\n      fragmentShader: `\n        uniform float time;\n        uniform vec3 color1;\n        uniform vec3 color2;\n        uniform vec3 color3;\n        uniform float intensity;\n        uniform float speed;\n\n        varying vec3 vPosition;\n        varying vec2 vUv;\n\n        // Noise function for organic movement\n        float noise(vec2 st) {\n  const prefersReducedMotion = useReducedMotion();\n          return fract(sin(dot(st.xy, vec2(12.9898, 78.233))) * 43758.5453123);\n        }\n\n        void main() {\n          vec2 st = vUv;\n          float n = noise(st * 3.0 + time * speed * 0.1);\n\n          // Create flowing aurora effect\n          float wave1 = sin(st.x * 6.0 + time * speed) * 0.5 + 0.5;\n          float wave2 = cos(st.y * 4.0 + time * speed * 0.7) * 0.5 + 0.5;\n          float wave3 = sin((st.x + st.y) * 3.0 + time * speed * 0.5) * 0.5 + 0.5;\n\n          // Mix colors based on waves\n          vec3 color = mix(color1, color2, wave1);\n          color = mix(color, color3, wave2);\n          color = mix(color, color1, wave3);\n\n          // Add some sparkle\n          float sparkle = sin(time * 10.0 + st.x * 20.0 + st.y * 20.0) * 0.5 + 0.5;\n          color += sparkle * 0.3;\n\n          float alpha = (wave1 + wave2 + wave3) / 3.0 * intensity * 0.8;\n\n          gl_FragColor = vec4(color, alpha);\n        }\n      `,\n      transparent: true,\n      side: THREE.DoubleSide,\n      blending: THREE.AdditiveBlending,\n    });\n  },\n\n  // Aurora particle material\n  createParticleMaterial: () => {\n    return new THREE.ShaderMaterial({\n      uniforms: {\n        time: { value: 0 },\n      },\n      vertexShader: `\n        attribute float size;\n        attribute vec3 color;\n        varying vec3 vColor;\n\n        void main() {\n          vColor = color;\n          vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n          gl_PointSize = size * (300.0 / -mvPosition.z);\n          gl_Position = projectionMatrix * mvPosition;\n        }\n      `,\n      fragmentShader: `\n        uniform float time;\n        varying vec3 vColor;\n\n        void main() {\n          float r = distance(gl_PointCoord, vec2(0.5, 0.5));\n          if (r > 0.5) discard;\n\n          float alpha = 1.0 - smoothstep(0.0, 0.5, r);\n          alpha *= sin(time * 3.0 + gl_PointCoord.x * 10.0) * 0.3 + 0.7;\n\n          gl_FragColor = vec4(vColor, alpha);\n        }\n      `,\n      transparent: true,\n      vertexColors: true,\n      blending: THREE.AdditiveBlending,\n    });\n  },\n};\n\n// Aurora animation system\nconst AuroraAnimations = {\n  // Flowing wave animation\n  waveFlow: (mesh: THREE.Mesh, time: number, speed: number = 1) => {\n    if (\n      mesh.material &&\n      \"uniforms\" in mesh.material &&\n      mesh.material.uniforms &&\n      typeof mesh.material.uniforms === \"object\" &&\n      \"time\" in mesh.material.uniforms\n    ) {\n      (mesh.material.uniforms.time as any).value = time * speed;\n    }\n  },\n\n  // Particle drift animation\n  particleDrift: (particles: THREE.Points, time: number, speed: number = 1) => {\n    if (!particles.geometry) return;\n\n    const positions = particles.geometry.attributes.position.array;\n    for (let i = 0; i < positions.length; i += 3) {\n      const originalX = positions[i];\n      positions[i] = originalX + Math.sin(time * speed + i * 0.01) * 0.5;\n    }\n    particles.geometry.attributes.position.needsUpdate = true;\n  },\n\n  // Color shift animation\n  colorShift: (mesh: THREE.Mesh, time: number, speed: number = 1) => {\n    if (\n      !mesh.material ||\n      !(\"uniforms\" in mesh.material) ||\n      !mesh.material.uniforms\n    )\n      return;\n\n    const hue = (time * speed * 0.1) % 1;\n    const color1 = new THREE.Color().setHSL(hue, 0.7, 0.6);\n    const color2 = new THREE.Color().setHSL((hue + 0.3) % 1, 0.7, 0.6);\n    const color3 = new THREE.Color().setHSL((hue + 0.6) % 1, 0.7, 0.6);\n\n    if (\n      typeof mesh.material.uniforms === \"object\" &&\n      \"color1\" in mesh.material.uniforms\n    )\n      (mesh.material.uniforms.color1 as any).value = color1;\n    if (\n      typeof mesh.material.uniforms === \"object\" &&\n      \"color2\" in mesh.material.uniforms\n    )\n      (mesh.material.uniforms.color2 as any).value = color2;\n    if (\n      typeof mesh.material.uniforms === \"object\" &&\n      \"color3\" in mesh.material.uniforms\n    )\n      (mesh.material.uniforms.color3 as any).value = color3;\n  },\n\n  // Intensity pulsing\n  intensityPulse: (mesh: THREE.Mesh, time: number, speed: number = 1) => {\n    if (\n      !mesh.material ||\n      !(\"uniforms\" in mesh.material) ||\n      !mesh.material.uniforms\n    )\n      return;\n\n    const pulse = Math.sin(time * speed) * 0.3 + 0.7;\n    if (\n      typeof mesh.material.uniforms === \"object\" &&\n      \"intensity\" in mesh.material.uniforms\n    )\n      (mesh.material.uniforms.intensity as any).value = pulse;\n  },\n};\n\n// Main AuroraPro Component\nexport interface AuroraProProps {\n  intensity?: number;\n  speed?: number;\n  colorPalette?: \"arctic\" | \"forest\" | \"sunset\" | \"ocean\" | \"cosmic\" | \"custom\";\n  customColors?: [string, string, string];\n  particleCount?: number;\n  showParticles?: boolean;\n  showWaves?: boolean;\n  showCurtain?: boolean;\n  animationMode?: \"flow\" | \"pulse\" | \"shift\" | \"mixed\";\n  className?: string;\n  showControls?: boolean;\n  autoAnimate?: boolean;\n  onAnimationChange?: (mode: string) => void;\n  children?: React.ReactNode;\n}\n\nexport function AuroraPro({\n  intensity = 1.0,\n  speed = 1.0,\n  colorPalette = \"arctic\",\n  customColors,\n  particleCount = 50,\n  showParticles = true,\n  showWaves = true,\n  showCurtain = false,\n  animationMode = \"flow\",\n  className = \"\",\n  showControls = false,\n  autoAnimate = true,\n  onAnimationChange,\n  children,\n}: AuroraProProps) {\n  const prefersReducedMotion = useReducedMotion();\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const [isPlaying, setIsPlaying] = useState(autoAnimate);\n  const [currentMode, setCurrentMode] = useState(animationMode);\n  const [auroraMeshes, setAuroraMeshes] = useState<THREE.Mesh[]>([]);\n  const [particleSystem, setParticleSystem] = useState<THREE.Points | null>(\n    null\n  );\n\n  // Color palette configurations\n  const colorPalettes = {\n    arctic: [\"#4fc3f7\", \"#81c784\", \"#ba68c8\"],\n    forest: [\"#4caf50\", \"#8bc34a\", \"#009688\"],\n    sunset: [\"#ff9800\", \"#e91e63\", \"#9c27b0\"],\n    ocean: [\"#00bcd4\", \"#2196f3\", \"#3f51b5\"],\n    cosmic: [\"#9c27b0\", \"#673ab7\", \"#3f51b5\"],\n    custom: customColors || [\n      \"var(--glass-white)\",\n      \"var(--glass-white)\",\n      \"var(--glass-white)\",\n    ],\n  };\n\n  // Initialize aurora elements\n  useEffect(() => {\n    const meshes: THREE.Mesh[] = [];\n    const colors = colorPalettes[colorPalette].map(\n      (c: any) => new THREE.Color(c)\n    );\n\n    // Create wave mesh\n    if (showWaves) {\n      const waveGeometry = AuroraFactory.createAuroraWave(25, 12, 64);\n      const waveMaterial = AuroraFactory.createAuroraMaterial({\n        color1: colors[0],\n        color2: colors[1],\n        color3: colors[2],\n        intensity,\n        speed,\n      });\n      const waveMesh = new THREE.Mesh(waveGeometry, waveMaterial);\n      waveMesh.position.set(0, 5, -5);\n      meshes.push(waveMesh);\n    }\n\n    // Create curtain mesh\n    if (showCurtain) {\n      const curtainGeometry = AuroraFactory.createAuroraCurtain(20, 10, 2);\n      const curtainMaterial = AuroraFactory.createAuroraMaterial({\n        color1: colors[1],\n        color2: colors[2],\n        color3: colors[0],\n        intensity: intensity * 0.8,\n        speed: speed * 0.7,\n      });\n      const curtainMesh = new THREE.Mesh(curtainGeometry, curtainMaterial);\n      curtainMesh.position.set(0, 3, -3);\n      meshes.push(curtainMesh);\n    }\n\n    // Create particle system\n    if (showParticles) {\n      const particleGeometry =\n        AuroraFactory.createAuroraParticles(particleCount);\n      const particleMaterial = AuroraFactory.createParticleMaterial();\n      const particles = new THREE.Points(particleGeometry, particleMaterial);\n      setParticleSystem(particles);\n    }\n\n    setAuroraMeshes(meshes);\n  }, [\n    colorPalette,\n    intensity,\n    speed,\n    showWaves,\n    showCurtain,\n    showParticles,\n    particleCount,\n    customColors,\n  ]);\n\n  // Handle animation mode changes\n  const changeAnimationMode = useCallback(\n    (mode: string) => {\n      setCurrentMode(mode as \"flow\" | \"pulse\" | \"shift\" | \"mixed\");\n      onAnimationChange?.(mode);\n    },\n    [onAnimationChange]\n  );\n\n  // Toggle play/pause\n  const togglePlay = useCallback(() => {\n    setIsPlaying((prev: any) => !prev);\n  }, []);\n\n  // Get animation mode icon\n  const getAnimationIcon = (mode: string) => {\n    switch (mode) {\n      case \"flow\":\n        return <Waves className={cn(\"glass-w-4 glass-h-4\")} />;\n      case \"pulse\":\n        return <Zap className={cn(\"glass-w-4 glass-h-4\")} />;\n      case \"shift\":\n        return <Palette className={cn(\"glass-w-4 glass-h-4\")} />;\n      case \"mixed\":\n        return <Sparkles className={cn(\"glass-w-4 glass-h-4\")} />;\n      default:\n        return <Star className={cn(\"glass-w-4 glass-h-4\")} />;\n    }\n  };\n\n  // Get color palette colors for UI\n  const getPaletteColors = (palette: string) => {\n    const prefersReducedMotion = useReducedMotion();\n    return (\n      colorPalettes[palette as keyof typeof colorPalettes] ||\n      colorPalettes.arctic\n    );\n  };\n\n  return (\n    <div\n      className={cn(\n        \"aurora-pro glass-relative glass-overflow-hidden\",\n        className\n      )}\n    >\n      {/* 3D Canvas */}\n      <Canvas\n        ref={canvasRef}\n        className={cn(\"glass-absolute glass-inset-0 glass-pointer-events-none\")}\n        camera={{ position: [0, 8, 15], fov: 75 }}\n        gl={{\n          alpha: true,\n          antialias: true,\n          powerPreference: \"high-performance\",\n        }}\n      >\n        <AuroraScene\n          auroraMeshes={auroraMeshes}\n          particleSystem={particleSystem}\n          currentMode={currentMode}\n          intensity={intensity}\n          speed={speed}\n          isPlaying={isPlaying}\n        />\n      </Canvas>\n\n      {/* Content overlay */}\n      <div className={cn(\"glass-relative glass-z-10\")}>{children}</div>\n\n      {/* Aurora intensity indicator */}\n      <motion.div\n        initial={{ opacity: 0, y: 20 }}\n        animate={prefersReducedMotion ? {} : { opacity: 1, y: 0 }}\n        className={cn(\n          \"glass-absolute glass-top-4 glass-left-4 glass-px-3 glass-py-2 glass-radius-lg glass-foundation-complete glass-border glass-border-subtle glass-surface-dark\"\n        )}\n      >\n        <div\n          className={cn(\n            \"glass-flex glass-items-center glass-gap-2 glass-text-white\"\n          )}\n        >\n          <div className={cn(\"glass-flex glass-gap-1\")}>\n            {getPaletteColors(colorPalette).map((color, index) => (\n              <div\n                key={index}\n                className={cn(\"glass-w-3 glass-h-3 glass-radius-full\")}\n                style={{ backgroundColor: color }}\n              />\n            ))}\n          </div>\n          <ContrastGuard>\n            <span\n              className={cn(\"glass-text-sm glass-font-medium glass-capitalize\")}\n            >\n              {colorPalette}\n            </span>\n          </ContrastGuard>\n          <div\n            className={cn(\n              \"glass-flex glass-items-center glass-gap-1 glass-text-xs glass-text-secondary\"\n            )}\n          >\n            <Flame className={cn(\"glass-w-3 glass-h-3\")} />\n            <ContrastGuard>\n              <span>{(intensity * 100).toFixed(0)}%</span>\n            </ContrastGuard>\n          </div>\n        </div>\n      </motion.div>\n\n      {/* Controls */}\n      {showControls && (\n        <motion.div\n          initial={{ opacity: 0, y: 20 }}\n          animate={prefersReducedMotion ? {} : { opacity: 1, y: 0 }}\n          className={cn(\n            \"glass-absolute glass-bottom-4 glass-right-4 glass-flex glass-flex-col glass-gap-2\"\n          )}\n        >\n          {/* Animation mode selector */}\n          <div\n            className={cn(\n              \"glass-flex glass-gap-2 glass-p-2 glass-surface-dark glass-foundation-complete glass-radius-lg glass-border glass-border-subtle\"\n            )}\n          >\n            {[\"flow\", \"pulse\", \"shift\", \"mixed\"].map((mode: any) => (\n              <button\n                key={mode}\n                onClick={() => changeAnimationMode(mode)}\n                className={cn(\n                  \"glass-p-2 glass-radius-lg glass-transition-colors glass-focus glass-touch-target glass-contrast-guard\",\n                  currentMode === mode\n                    ? \"glass-surface-subtle glass-text-white\"\n                    : \"glass-text-secondary hover:glass-text-white hover:glass-surface-hover\"\n                )}\n                title={`Switch to ${mode} animation`}\n              >\n                {getAnimationIcon(mode)}\n              </button>\n            ))}\n          </div>\n\n          {/* Playback and settings */}\n          <div\n            className={cn(\n              \"glass-flex glass-gap-2 glass-p-2 glass-surface-dark glass-foundation-complete glass-radius-lg glass-border glass-border-subtle\"\n            )}\n          >\n            <button\n              onClick={togglePlay}\n              className={cn(\n                \"glass-p-2 glass-radius-lg glass-text-white hover:glass-surface-hover glass-transition-colors glass-focus glass-touch-target glass-contrast-guard\"\n              )}\n              title={isPlaying ? \"Pause Aurora\" : \"Play Aurora\"}\n            >\n              {isPlaying ? (\n                <Pause className={cn(\"glass-w-4 glass-h-4\")} />\n              ) : (\n                <Play className={cn(\"glass-w-4 glass-h-4\")} />\n              )}\n            </button>\n\n            <div\n              className={cn(\n                \"glass-flex glass-items-center glass-gap-2 glass-text-secondary glass-text-sm\"\n              )}\n            >\n              <Wind className={cn(\"glass-w-3 glass-h-3\")} />\n              <ContrastGuard>\n                <span>{speed.toFixed(1)}x</span>\n              </ContrastGuard>\n            </div>\n          </div>\n\n          {/* Color palette selector */}\n          <div\n            className={cn(\n              \"glass-grid glass-grid-cols-2 glass-gap-2 glass-p-2 glass-surface-dark glass-foundation-complete glass-radius-lg glass-border glass-border-subtle\"\n            )}\n          >\n            {Object.keys(colorPalettes)\n              .slice(0, 6)\n              .map((palette: any) => (\n                <button\n                  key={palette}\n                  onClick={() => {\n                    /* Would update colorPalette prop */\n                  }}\n                  className={cn(\n                    \"glass-p-2 glass-radius-lg glass-transition-colors glass-text-xs glass-focus glass-touch-target glass-contrast-guard\",\n                    colorPalette === palette\n                      ? \"glass-surface-subtle glass-text-white\"\n                      : \"glass-text-secondary hover:glass-text-white hover:glass-surface-hover\"\n                  )}\n                  title={`Switch to ${palette} palette`}\n                >\n                  <div className={cn(\"glass-flex glass-gap-0.5 glass-mb-1\")}>\n                    {getPaletteColors(palette).map((color, index) => (\n                      <div\n                        key={index}\n                        className={cn(\"glass-w-2 glass-h-2 glass-radius-full\")}\n                        style={{ backgroundColor: color }}\n                      />\n                    ))}\n                  </div>\n                  <ContrastGuard>\n                    <span className={cn(\"glass-capitalize\")}>{palette}</span>\n                  </ContrastGuard>\n                </button>\n              ))}\n          </div>\n        </motion.div>\n      )}\n\n      {/* Aurora status indicator */}\n      <motion.div\n        initial={{ opacity: 0, x: -20 }}\n        animate={prefersReducedMotion ? {} : { opacity: 1, x: 0 }}\n        className={cn(\n          \"glass-absolute glass-top-4 glass-right-4 glass-px-3 glass-py-2 glass-radius-lg glass-foundation-complete glass-border glass-border-subtle glass-surface-dark\"\n        )}\n      >\n        <div\n          className={cn(\n            \"glass-flex glass-items-center glass-gap-2 glass-text-secondary glass-text-sm\"\n          )}\n        >\n          <motion.div\n            animate={\n              prefersReducedMotion\n                ? {}\n                : {\n                    scale: isPlaying ? [1, 1.2, 1] : 1,\n                    opacity: isPlaying ? [0.6, 1, 0.6] : 0.6,\n                  }\n            }\n            transition={\n              prefersReducedMotion\n                ? { duration: 0 }\n                : {\n                    duration: 2,\n                    repeat: isPlaying ? Infinity : 0,\n                    ease: \"easeInOut\",\n                  }\n            }\n          >\n            <Sparkles className={cn(\"glass-w-3 glass-h-3\")} />\n          </motion.div>\n          <ContrastGuard>\n            <span className={cn(\"glass-capitalize\")}>{currentMode}</span>\n          </ContrastGuard>\n          {isPlaying && (\n            <div\n              className={cn(\n                \"glass-w-2 glass-h-2 glass-surface-success glass-radius-full glass-animate-pulse\"\n              )}\n            />\n          )}\n        </div>\n      </motion.div>\n    </div>\n  );\n}\n\n// 3D Aurora Scene Component\nfunction AuroraScene({\n  auroraMeshes,\n  particleSystem,\n  currentMode,\n  intensity,\n  speed,\n  isPlaying,\n}: any) {\n  const { scene } = useThree();\n\n  // Add aurora meshes to scene\n  useEffect(() => {\n    auroraMeshes.forEach((mesh: THREE.Mesh) => {\n      scene.add(mesh);\n    });\n\n    if (particleSystem) {\n      scene.add(particleSystem);\n    }\n\n    return () => {\n      auroraMeshes.forEach((mesh: THREE.Mesh) => {\n        scene.remove(mesh);\n      });\n      if (particleSystem) {\n        scene.remove(particleSystem);\n      }\n    };\n  }, [auroraMeshes, particleSystem, scene]);\n\n  // Animation loop\n  useFrame((state) => {\n    if (!isPlaying) return;\n\n    const time = state.clock.elapsedTime;\n\n    // Animate aurora meshes\n    auroraMeshes.forEach((mesh: THREE.Mesh, index: number) => {\n      const meshSpeed = speed * (0.8 + index * 0.2);\n\n      switch (currentMode) {\n        case \"flow\":\n          AuroraAnimations.waveFlow(mesh, time, meshSpeed);\n          break;\n        case \"pulse\":\n          AuroraAnimations.intensityPulse(mesh, time, meshSpeed);\n          break;\n        case \"shift\":\n          AuroraAnimations.colorShift(mesh, time, meshSpeed);\n          break;\n        case \"mixed\":\n          AuroraAnimations.waveFlow(mesh, time, meshSpeed);\n          AuroraAnimations.intensityPulse(mesh, time, meshSpeed * 0.5);\n          if (index % 2 === 0) {\n            AuroraAnimations.colorShift(mesh, time, meshSpeed * 0.3);\n          }\n          break;\n      }\n    });\n\n    // Animate particles\n    if (particleSystem) {\n      AuroraAnimations.particleDrift(particleSystem, time, speed * 0.5);\n    }\n  });\n\n  return (\n    <>\n      {/* Atmospheric lighting */}\n      <ambientLight intensity={0.1} />\n      <directionalLight\n        position={[10, 10, 5]}\n        intensity={0.3}\n        color={0x4fc3f7}\n      />\n      <pointLight position={[0, 15, 0]} intensity={0.2} color={0x81c784} />\n\n      {/* Subtle fog effect */}\n      <fog attach=\"fog\" args={[\"#000011\", 10, 50]} />\n    </>\n  );\n}\n\nexport default AuroraPro;\n", "import * as THREE from \"three\";\n\nexport const ARGlassMaterialFactory = {\n  createSpatialUI: (options: any) => {\n    return new THREE.ShaderMaterial({\n      uniforms: {\n        time: { value: 0 },\n        userPosition: { value: new THREE.Vector3() },\n        interactionRadius: { value: options.interactionRadius || 3.0 },\n        glowIntensity: { value: options.glowIntensity || 1.0 },\n        color: { value: options.color || new THREE.Color(0.3, 0.7, 1.0) },\n        opacity: { value: options.opacity || 0.8 },\n      },\n      vertexShader: `\n        varying vec3 vPosition;\n        varying vec3 vNormal;\n        varying vec3 vUserPosition;\n\n        void main() {\n          vPosition = position;\n          vNormal = normal;\n          vUserPosition = (modelViewMatrix * vec4(position, 1.0)).xyz;\n          gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n        }\n      `,\n      fragmentShader: `\n        uniform float time;\n        uniform vec3 userPosition;\n        uniform float interactionRadius;\n        uniform float glowIntensity;\n        uniform vec3 color;\n        uniform float opacity;\n\n        varying vec3 vPosition;\n        varying vec3 vNormal;\n        varying vec3 vUserPosition;\n\n        void main() {\n          float distance = length(vUserPosition - userPosition);\n          float interaction = 1.0 - smoothstep(0.0, interactionRadius, distance);\n\n          vec3 finalColor = color + (glowIntensity * interaction * vec3(0.5, 0.8, 1.0));\n          float finalOpacity = opacity * (0.8 + 0.2 * interaction);\n\n          gl_FragColor = vec4(finalColor, finalOpacity);\n        }\n      `,\n      transparent: true,\n      side: THREE.DoubleSide,\n    });\n  },\n\n  createHolographicGlass: (options: any) => {\n    return new THREE.ShaderMaterial({\n      uniforms: {\n        time: { value: 0 },\n        color: { value: options.color || new THREE.Color(0.6, 0.8, 1.0) },\n        opacity: { value: options.opacity || 0.9 },\n        fresnelPower: { value: options.fresnelPower || 1.5 },\n      },\n      vertexShader: `\n        varying vec3 vNormal;\n        varying vec3 vViewDirection;\n\n        void main() {\n          vNormal = normalize(normalMatrix * normal);\n          vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n          vViewDirection = normalize(-mvPosition.xyz);\n          gl_Position = projectionMatrix * mvPosition;\n        }\n      `,\n      fragmentShader: `\n        uniform float time;\n        uniform vec3 color;\n        uniform float opacity;\n        uniform float fresnelPower;\n\n        varying vec3 vNormal;\n        varying vec3 vViewDirection;\n\n        void main() {\n          float fresnel = pow(1.0 - dot(vNormal, vViewDirection), fresnelPower);\n          vec3 finalColor = color * (0.5 + 0.5 * fresnel);\n          float finalOpacity = opacity * (0.7 + 0.3 * fresnel);\n\n          gl_FragColor = vec4(finalColor, finalOpacity);\n        }\n      `,\n      transparent: true,\n      side: THREE.DoubleSide,\n    });\n  },\n\n  createDataVisualization: (options: any) => {\n    return new THREE.ShaderMaterial({\n      uniforms: {\n        time: { value: 0 },\n        lowColor: { value: options.lowColor || new THREE.Color(0.2, 0.4, 1.0) },\n        highColor: {\n          value: options.highColor || new THREE.Color(1.0, 0.4, 0.2),\n        },\n        dataValue: { value: options.dataValue || 0.5 },\n      },\n      vertexShader: `\n        varying vec3 vPosition;\n\n        void main() {\n          vPosition = position;\n          gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n        }\n      `,\n      fragmentShader: `\n        uniform float time;\n        uniform vec3 lowColor;\n        uniform vec3 highColor;\n        uniform float dataValue;\n\n        varying vec3 vPosition;\n\n        void main() {\n          float height = vPosition.y;\n          vec3 finalColor = mix(lowColor, highColor, dataValue);\n\n          // Add some animation\n          float pulse = sin(time * 2.0) * 0.1 + 0.9;\n          finalColor *= pulse;\n\n          gl_FragColor = vec4(finalColor, 0.8);\n        }\n      `,\n      transparent: true,\n    });\n  },\n};\n\nexport const ARGlassGeometryFactory = {\n  createCurvedPanel: (width: number, height: number, depth: number) => {\n    const geometry = new THREE.PlaneGeometry(width, height, 32, 32);\n\n    const positions = geometry.attributes.position.array as Float32Array;\n    for (let i = 0; i < positions.length; i += 3) {\n      const x = positions[i];\n      const y = positions[i + 1];\n      positions[i + 2] = Math.sin(x * 0.5) * Math.cos(y * 0.5) * depth;\n    }\n\n    geometry.computeVertexNormals();\n    return geometry;\n  },\n\n  createPortalGeometry: (innerRadius: number, outerRadius: number) => {\n    const geometry = new THREE.RingGeometry(innerRadius, outerRadius, 32);\n\n    const positions = geometry.attributes.position.array as Float32Array;\n    for (let i = 0; i < positions.length; i += 3) {\n      const angle = Math.atan2(positions[i + 1], positions[i]);\n      positions[i + 2] = Math.sin(angle * 4) * 0.1;\n    }\n\n    geometry.computeVertexNormals();\n    return geometry;\n  },\n\n  createParticleField: (count: number) => {\n    const geometry = new THREE.BufferGeometry();\n    const positions = new Float32Array(count * 3);\n    const colors = new Float32Array(count * 3);\n\n    for (let i = 0; i < count; i++) {\n      positions[i * 3] = (Math.random() - 0.5) * 10;\n      positions[i * 3 + 1] = (Math.random() - 0.5) * 10;\n      positions[i * 3 + 2] = (Math.random() - 0.5) * 10;\n\n      colors[i * 3] = Math.random();\n      colors[i * 3 + 1] = Math.random();\n      colors[i * 3 + 2] = Math.random();\n    }\n\n    geometry.setAttribute(\"position\", new THREE.BufferAttribute(positions, 3));\n    geometry.setAttribute(\"color\", new THREE.BufferAttribute(colors, 3));\n\n    return geometry;\n  },\n};\n\nexport const ARGlassAnimations = {\n  createFloatingAnimation: (\n    object: THREE.Object3D,\n    amplitude: number = 0.05,\n    frequency: number = 0.5\n  ) => {\n    return (time: number) => {\n      object.position.y += Math.sin(time * frequency) * amplitude;\n    };\n  },\n\n  createRotationAnimation: (\n    object: THREE.Object3D,\n    axis: THREE.Vector3,\n    speed: number = 1\n  ) => {\n    return (time: number) => {\n      object.rotateOnAxis(axis, speed * 0.01);\n    };\n  },\n\n  createScaleAnimation: (\n    object: THREE.Object3D,\n    minScale: number,\n    maxScale: number,\n    frequency: number = 2\n  ) => {\n    return (time: number) => {\n      const scale =\n        minScale +\n        (maxScale - minScale) * (Math.sin(time * frequency) * 0.5 + 0.5);\n      object.scale.setScalar(scale);\n    };\n  },\n};\n\nexport const ARGlassInteractions = {\n  createHapticFeedback: (intensity = 0.5, duration = 100) => {\n    if (typeof navigator !== \"undefined\" && \"vibrate\" in navigator) {\n      navigator.vibrate(duration * intensity);\n    }\n  },\n\n  setupHandTracking: (\n    objects: THREE.Object3D[],\n    callback: (\n      object: THREE.Object3D,\n      hand: {\n        isActive: boolean;\n        position: THREE.Vector3;\n        rotation: THREE.Quaternion;\n      }\n    ) => void\n  ) => {\n    const handleHandMove = (handData: {\n      left: {\n        isActive: boolean;\n        position: THREE.Vector3;\n        rotation: THREE.Quaternion;\n      };\n      right: {\n        isActive: boolean;\n        position: THREE.Vector3;\n        rotation: THREE.Quaternion;\n      };\n    }) => {\n      objects.forEach((obj: THREE.Object3D) => {\n        if (obj && handData.left.isActive) {\n          const distance = obj.position.distanceTo(handData.left.position);\n          if (distance < 0.5) {\n            callback(obj, handData.left);\n          }\n        }\n      });\n    };\n\n    return handleHandMove;\n  },\n};\n\nexport const ARGlassUtils = {\n  createAdaptiveScaling: (minScale: number, maxScale: number) => {\n    return (distance: number) => {\n      const normalizedDistance = Math.min(Math.max(distance, 1), 10);\n      const scale =\n        maxScale - ((normalizedDistance - 1) / 9) * (maxScale - minScale);\n      return Math.max(scale, minScale);\n    };\n  },\n\n  createDistanceBasedOpacity: (maxDistance: number = 5) => {\n    return (distance: number) => {\n      return Math.max(0, 1 - distance / maxDistance);\n    };\n  },\n};\n", "\"use client\";\n// WebXR API type declarations - extend existing XR types\ndeclare global {\n  interface Navigator {\n    xr?: XRSystem;\n  }\n}\n\nimport React from \"react\";\nimport { useReducedMotion } from \"@/hooks/useReducedMotion\";\nimport { OrbitControls, PerspectiveCamera } from \"@react-three/drei\";\nimport { Canvas, useFrame, useThree } from \"@react-three/fiber\";\nimport { motion } from \"framer-motion\";\nimport { AlertCircle, Eye, EyeOff, Hand, Info, Loader2 } from \"@/icons\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport * as THREE from \"three\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport {\n  ARGlassAnimations,\n  ARGlassGeometryFactory,\n  ARGlassInteractions,\n  ARGlassMaterialFactory,\n  ARGlassUtils,\n} from \"./ARGlassEffects.helpers\";\n\n// Mock WebXR hook for demonstration - in real implementation this would use actual WebXR APIs\nconst useWebXR = () => {\n  const [isSupported, setIsSupported] = useState(false);\n  const [isARSupported, setIsARSupported] = useState(false);\n  const [session, setSession] = useState({ isActive: false });\n  const [capabilities, setCapabilities] = useState({\n    supportsHandTracking: false,\n    supportsHitTest: false,\n    supportsDomOverlay: false,\n    isARSupported: false,\n  });\n  const [handTracking, setHandTracking] = useState({\n    left: {\n      isActive: false,\n      position: new THREE.Vector3(),\n      rotation: new THREE.Quaternion(),\n    },\n    right: {\n      isActive: false,\n      position: new THREE.Vector3(),\n      rotation: new THREE.Quaternion(),\n    },\n  });\n  const [hitTestResults, setHitTestResults] = useState<\n    { point: THREE.Vector3; distance: number }[]\n  >([]);\n  const [isLoading, setIsLoading] = useState(false);\n  const [error, setError] = useState<string | null>(null);\n\n  useEffect(() => {\n    // Mock WebXR detection\n    const checkSupport = async () => {\n      // In real implementation, check for 'xr' in navigator\n      const xrSupported = typeof navigator !== \"undefined\" && \"xr\" in navigator;\n      const arSupported =\n        xrSupported && (await navigator.xr?.isSessionSupported(\"immersive-ar\"));\n\n      setIsSupported(xrSupported);\n      setIsARSupported(arSupported || false);\n      setCapabilities({\n        supportsHandTracking: arSupported || false,\n        supportsHitTest: arSupported || false,\n        supportsDomOverlay: arSupported || false,\n        isARSupported: arSupported || false,\n      });\n    };\n\n    checkSupport();\n  }, []);\n\n  const startARSession = useCallback(async (options: any = {}) => {\n    setIsLoading(true);\n    try {\n      // Mock AR session start\n      await new Promise((resolve) => setTimeout(resolve, 1000));\n      setSession({ isActive: true });\n      setIsLoading(false);\n    } catch (err: unknown) {\n      setError(err instanceof Error ? err.message : String(err));\n      setIsLoading(false);\n    }\n  }, []);\n\n  const endARSession = useCallback(async () => {\n    setSession({ isActive: false });\n    setHandTracking({\n      left: {\n        isActive: false,\n        position: new THREE.Vector3(),\n        rotation: new THREE.Quaternion(),\n      },\n      right: {\n        isActive: false,\n        position: new THREE.Vector3(),\n        rotation: new THREE.Quaternion(),\n      },\n    });\n  }, []);\n\n  const onHitTest = useCallback(\n    (\n      callback: (results: { point: THREE.Vector3; distance: number }[]) => void\n    ) => {\n      // Mock hit test callback\n      const mockResults = [{ point: new THREE.Vector3(0, 0, -2), distance: 2 }];\n      setHitTestResults(mockResults);\n      callback(mockResults);\n    },\n    []\n  );\n\n  const onHandTracking = useCallback(\n    (\n      callback: (hands: {\n        left: {\n          isActive: boolean;\n          position: THREE.Vector3;\n          rotation: THREE.Quaternion;\n        };\n        right: {\n          isActive: boolean;\n          position: THREE.Vector3;\n          rotation: THREE.Quaternion;\n        };\n      }) => void\n    ) => {\n      // Mock hand tracking callback\n      const mockHands = {\n        left: {\n          isActive: true,\n          position: new THREE.Vector3(-0.3, 1.2, -0.5),\n          rotation: new THREE.Quaternion(),\n        },\n        right: {\n          isActive: true,\n          position: new THREE.Vector3(0.3, 1.2, -0.5),\n          rotation: new THREE.Quaternion(),\n        },\n      };\n      setHandTracking(mockHands);\n      callback(mockHands);\n    },\n    []\n  );\n\n  const startVoiceRecognition = useCallback(() => {\n    // Mock voice recognition\n    return {\n      start: () => {},\n      stop: () => {},\n    };\n  }, []);\n\n  return {\n    isSupported,\n    isARSupported,\n    session,\n    capabilities,\n    handTracking,\n    hitTestResults,\n    isLoading,\n    error,\n    startARSession,\n    endARSession,\n    onHitTest,\n    onHandTracking,\n    startVoiceRecognition,\n  };\n};\n\n// Main ARGlassEffects Component\nexport interface ARGlassEffectsProps {\n  mode?: \"ar\" | \"preview\" | \"demo\";\n  content?: {\n    title?: string;\n    text?: string;\n    data?: number[];\n    media?: string;\n  };\n  onInteraction?: (type: string, data?: any) => void;\n  className?: string;\n  enablePhysics?: boolean;\n  enableHandTracking?: boolean;\n  enableVoiceControl?: boolean;\n  adaptiveScaling?: boolean;\n  showControls?: boolean;\n  showInfo?: boolean;\n}\n\nexport function ARGlassEffects({\n  mode = \"preview\",\n  content = {},\n  onInteraction,\n  className = \"\",\n  enablePhysics = false,\n  enableHandTracking = false,\n  enableVoiceControl = false,\n  adaptiveScaling = true,\n  showControls = true,\n  showInfo = true,\n}: ARGlassEffectsProps) {\n  const prefersReducedMotion = useReducedMotion();\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const [userPosition] = useState(new THREE.Vector3(0, 1.6, 0));\n  const [isInitialized, setIsInitialized] = useState(false);\n  const [error, setError] = useState<string | null>(null);\n  const [portalActive, setPortalActive] = useState(false);\n\n  const {\n    capabilities,\n    session,\n    handTracking,\n    hitTestResults,\n    isLoading,\n    error: xrError,\n    startARSession,\n    endARSession,\n    onHitTest,\n    onHandTracking,\n    startVoiceRecognition,\n  } = useWebXR();\n\n  // Initialize AR Glass Effects\n  useEffect(() => {\n    const initialize = async () => {\n      try {\n        setIsInitialized(true);\n      } catch (error) {\n        setError(`Failed to initialize AR Glass Effects: ${error}`);\n      }\n    };\n\n    initialize();\n  }, []);\n\n  // Setup hand tracking\n  useEffect(() => {\n    if (enableHandTracking && capabilities.supportsHandTracking) {\n      const handleHandTracking = ARGlassInteractions.setupHandTracking(\n        [], // Objects will be populated from scene\n        (\n          object: THREE.Object3D,\n          hand: {\n            isActive: boolean;\n            position: THREE.Vector3;\n            rotation: THREE.Quaternion;\n          }\n        ) => {\n          if (onInteraction) {\n            onInteraction(\"hand_interaction\", { object: object.uuid, hand });\n          }\n        }\n      );\n\n      onHandTracking(handleHandTracking);\n    }\n  }, [\n    enableHandTracking,\n    capabilities.supportsHandTracking,\n    onHandTracking,\n    onInteraction,\n  ]);\n\n  // Setup voice control\n  useEffect(() => {\n    if (enableVoiceControl && mode === \"ar\") {\n      const recognition = startVoiceRecognition();\n      return () => {\n        if (recognition) {\n          recognition.stop();\n        }\n      };\n    }\n  }, [enableVoiceControl, mode, startVoiceRecognition]);\n\n  // Handle AR session start/stop\n  const handleARToggle = useCallback(async () => {\n    if (session.isActive) {\n      await endARSession();\n    } else {\n      try {\n        await startARSession({\n          requiredFeatures: [\"local-floor\"],\n          optionalFeatures: enableHandTracking ? [\"hand-tracking\"] : [],\n          domOverlay: canvasRef.current?.parentElement\n            ? {\n                root: canvasRef.current.parentElement,\n              }\n            : undefined,\n        });\n      } catch (error) {\n        setError(`Failed to start AR session: ${error}`);\n      }\n    }\n  }, [session.isActive, endARSession, startARSession, enableHandTracking]);\n\n  // Handle hit test results\n  useEffect(() => {\n    onHitTest((results: { point: THREE.Vector3; distance: number }[]) => {\n      if (onInteraction && results.length > 0) {\n        onInteraction(\"surface_detected\", {\n          points: results.map(\n            (r: { point: THREE.Vector3; distance: number }) => r.point\n          ),\n          count: results.length,\n        });\n      }\n    });\n  }, [onHitTest, onInteraction]);\n\n  const handlePanelInteraction = useCallback(\n    (panelType: string) => {\n      if (onInteraction) {\n        onInteraction(\"panel_interaction\", { type: panelType });\n      }\n    },\n    [onInteraction]\n  );\n\n  const handlePortalActivation = useCallback(() => {\n    const prefersReducedMotion = useReducedMotion();\n    setPortalActive(!portalActive);\n    if (onInteraction) {\n      onInteraction(\"portal_toggle\", { active: !portalActive });\n    }\n  }, [portalActive, onInteraction]);\n\n  if (error) {\n    return (\n      <div\n        className={cn(\n          \"ar-glass-error glass-foundation-complete glass-surface-danger\",\n          \"glass-p-md glass-radius-lg glass-text-danger\",\n          className\n        )}\n      >\n        <div className=\"glass-flex glass-items-center glass-gap-2\">\n          <AlertCircle className=\"glass-w-5 glass-h-5\" />\n          <span>AR Glass Effects Error: {error}</span>\n        </div>\n      </div>\n    );\n  }\n\n  if (!isInitialized) {\n    return (\n      <div\n        className={cn(\n          \"ar-glass-loading glass-foundation-complete glass-surface-info\",\n          \"glass-p-md glass-radius-lg glass-text-info\",\n          className\n        )}\n      >\n        <div className=\"glass-flex glass-items-center glass-gap-2\">\n          <Loader2 className=\"glass-w-5 glass-h-5 glass-animate-spin\" />\n          <span>Initializing AR Glass Effects...</span>\n        </div>\n      </div>\n    );\n  }\n\n  return (\n    <div\n      className={cn(\n        \"ar-glass-effects glass-foundation-complete relative\",\n        className\n      )}\n    >\n      {/* AR Controls */}\n      {mode === \"ar\" && capabilities.isARSupported && showControls && (\n        <motion.div\n          initial={{ opacity: 0, y: -20 }}\n          animate={prefersReducedMotion ? {} : { opacity: 1, y: 0 }}\n          className=\"glass-absolute glass-top-4 glass-right-4 glass-z-10 glass-flex glass-gap-2\"\n        >\n          <button\n            onClick={handleARToggle}\n            disabled={isLoading}\n            className={cn(\n              \"glass-foundation-complete glass-surface-primary glass-text-primary\",\n              \"glass-px-md glass-py-sm glass-radius-lg glass-shadow-lg\",\n              \"hover:glass-surface-primary-hover disabled:opacity-50\",\n              \"flex items-center glass-gap-2 glass-transition glass-focus glass-touch-target glass-contrast-guard\",\n              \"glass-press glass-magnet\"\n            )}\n          >\n            {isLoading ? (\n              <Loader2 className=\"glass-w-4 glass-h-4 glass-animate-spin glass-touch-target glass-contrast-guard\" />\n            ) : session.isActive ? (\n              <EyeOff className=\"glass-w-4 glass-h-4\" />\n            ) : (\n              <Eye className=\"glass-w-4 glass-h-4\" />\n            )}\n            {isLoading\n              ? \"Loading...\"\n              : session.isActive\n                ? \"Exit AR\"\n                : \"Enter AR\"}\n          </button>\n\n          {enableVoiceControl && (\n            <div className=\"glass-px-3 glass-py-2 glass-surface-green/20 glass-text-primary glass-radius-lg glass-text-sm glass-contrast-guard\">\n              \uD83C\uDFA4 Voice Active\n            </div>\n          )}\n        </motion.div>\n      )}\n\n      {/* Capabilities Info */}\n      {mode === \"demo\" && showInfo && (\n        <motion.div\n          initial={{ opacity: 0, x: -20 }}\n          animate={prefersReducedMotion ? {} : { opacity: 1, x: 0 }}\n          className=\"glass-absolute glass-top-4 glass-left-4 glass-z-10 glass-p-4 glass-surface-dark/80 glass-backdrop-blur-lg glass-radius-lg glass-text-primary glass-text-sm glass-max-w-xs glass-contrast-guard\"\n        >\n          <h3 className=\"glass-font-semibold glass-mb-2 glass-flex glass-items-center glass-gap-2\">\n            <Info className=\"glass-w-4 glass-h-4\" />\n            AR Capabilities\n          </h3>\n          <ul className=\"glass-space-y-1\">\n            <li className=\"glass-flex glass-items-center glass-gap-2\">\n              <span\n                className={\n                  capabilities.isARSupported ? \"text-green-400\" : \"text-red-400\"\n                }\n              >\n                {capabilities.isARSupported ? \"\u2705\" : \"\u274C\"}\n              </span>\n              AR Supported\n            </li>\n            <li className=\"glass-flex glass-items-center glass-gap-2\">\n              <span\n                className={\n                  capabilities.supportsHandTracking\n                    ? \"text-green-400\"\n                    : \"text-red-400\"\n                }\n              >\n                {capabilities.supportsHandTracking ? \"\u2705\" : \"\u274C\"}\n              </span>\n              Hand Tracking\n            </li>\n            <li className=\"glass-flex glass-items-center glass-gap-2\">\n              <span\n                className={\n                  capabilities.supportsHitTest\n                    ? \"text-green-400\"\n                    : \"text-red-400\"\n                }\n              >\n                {capabilities.supportsHitTest ? \"\u2705\" : \"\u274C\"}\n              </span>\n              Hit Testing\n            </li>\n            <li className=\"glass-flex glass-items-center glass-gap-2\">\n              <span\n                className={\n                  capabilities.supportsDomOverlay\n                    ? \"text-green-400\"\n                    : \"text-red-400\"\n                }\n              >\n                {capabilities.supportsDomOverlay ? \"\u2705\" : \"\u274C\"}\n              </span>\n              DOM Overlay\n            </li>\n          </ul>\n        </motion.div>\n      )}\n\n      {/* Error Display */}\n      {xrError && (\n        <motion.div\n          initial={{ opacity: 0, y: 20 }}\n          animate={prefersReducedMotion ? {} : { opacity: 1, y: 0 }}\n          className=\"glass-absolute glass-bottom-4 glass-left-4 glass-z-10 glass-surface-red glass-text-primary glass-p-3 glass-radius-lg glass-max-w-xs glass-contrast-guard\"\n        >\n          <div className=\"glass-flex glass-items-center glass-gap-2\">\n            <AlertCircle className=\"glass-w-4 glass-h-4\" />\n            <span className=\"glass-text-sm\">{xrError}</span>\n          </div>\n        </motion.div>\n      )}\n\n      {/* Hand Tracking Status */}\n      {enableHandTracking &&\n        (handTracking.left.isActive || handTracking.right.isActive) && (\n          <motion.div\n            initial={{ opacity: 0, y: 20 }}\n            animate={prefersReducedMotion ? {} : { opacity: 1, y: 0 }}\n            className=\"glass-absolute glass-bottom-4 glass-right-4 glass-z-10 glass-surface-green glass-text-primary glass-p-3 glass-radius-lg glass-text-sm glass-contrast-guard\"\n          >\n            <div className=\"glass-flex glass-items-center glass-gap-2\">\n              <Hand className=\"glass-w-4 glass-h-4\" />\n              <span>\n                Hands: {handTracking.left.isActive ? \"L\" : \"\"}{\" \"}\n                {handTracking.right.isActive ? \"R\" : \"\"}\n              </span>\n            </div>\n          </motion.div>\n        )}\n\n      {/* 3D Canvas */}\n      <Canvas\n        ref={canvasRef}\n        className=\"glass-w-full glass-h-full\"\n        camera={{ position: [0, 1.6, 3], fov: 75 }}\n        gl={{\n          antialias: true,\n          alpha: true,\n          preserveDrawingBuffer: false,\n        }}\n      >\n        {/* Camera setup */}\n        {mode !== \"ar\" && (\n          <OrbitControls\n            enablePan={true}\n            enableZoom={true}\n            enableRotate={true}\n          />\n        )}\n        <PerspectiveCamera makeDefault position={[0, 1.6, 3]} />\n\n        {/* AR Scene */}\n        <ARScene\n          content={content}\n          onInteraction={onInteraction}\n          userPosition={userPosition}\n          enablePhysics={enablePhysics}\n          portalActive={portalActive}\n          onPortalActivation={handlePortalActivation}\n          onPanelInteraction={handlePanelInteraction}\n        />\n      </Canvas>\n    </div>\n  );\n}\n\n// AR Scene Component\nfunction ARScene({\n  content,\n  onInteraction,\n  userPosition,\n  enablePhysics,\n  portalActive,\n  onPortalActivation,\n  onPanelInteraction,\n}: any) {\n  const { scene } = useThree();\n\n  // Initialize physics if enabled\n  useEffect(() => {\n    if (enablePhysics) {\n      scene.traverse((child) => {\n        if (child instanceof THREE.Mesh && child.userData.physics) {\n          // Add physics objects to the system\n        }\n      });\n    }\n  }, [scene, enablePhysics]);\n\n  // Update physics\n  useFrame((state, delta) => {\n    if (enablePhysics) {\n      // Update physics simulation\n    }\n  });\n\n  return (\n    <>\n      {/* Ambient lighting */}\n      <ambientLight intensity={0.4} />\n      <pointLight position={[10, 10, 10]} intensity={0.8} />\n      <directionalLight position={[0, 10, 5]} intensity={0.5} />\n\n      {/* Main content panel */}\n      <FloatingPanel\n        position={[0, 1.5, -2]}\n        content={content?.title || \"AR Content\"}\n        userPosition={userPosition}\n        onInteraction={() => onPanelInteraction(\"main\")}\n      />\n\n      {/* Secondary information panel */}\n      <FloatingPanel\n        position={[-2, 1, -2.5]}\n        rotation={[0, 0.3, 0]}\n        content={content?.text || \"Additional Information\"}\n        userPosition={userPosition}\n        onInteraction={() => onPanelInteraction(\"secondary\")}\n      />\n\n      {/* Data visualization */}\n      {content?.data && (\n        <DataVisualization\n          data={content.data}\n          position={[2, 0.5, -2]}\n          userPosition={userPosition}\n        />\n      )}\n\n      {/* Portal for immersive content */}\n      <HolographicPortal\n        position={[0, 0, -5]}\n        isActive={portalActive}\n        onActivate={onPortalActivation}\n      />\n\n      {/* Particle field for atmosphere */}\n      <ParticleField position={[0, 0, -3]} count={50} />\n\n      {/* Environmental elements */}\n      <group position={[0, -1, 0]}>\n        {/* Ground plane with glass material */}\n        <mesh rotation={[-Math.PI / 2, 0, 0]}>\n          <planeGeometry args={[20, 20]} />\n          <meshBasicMaterial color={0x333333} transparent opacity={0.1} />\n        </mesh>\n      </group>\n    </>\n  );\n}\n\n// Floating Panel Component\nfunction FloatingPanel({\n  position,\n  rotation = [0, 0, 0],\n  content,\n  userPosition,\n  onInteraction,\n  isInteractive = true,\n}: any) {\n  const meshRef = useRef<THREE.Mesh>(null!);\n  const materialRef = useRef<THREE.ShaderMaterial>(null!);\n  const [isHovered, setIsHovered] = useState(false);\n  const [distance, setDistance] = useState(0);\n\n  const geometry = useMemo(\n    () => ARGlassGeometryFactory.createCurvedPanel(2, 1.5, 0.2),\n    []\n  );\n  const material = useMemo(\n    () =>\n      ARGlassMaterialFactory.createSpatialUI({\n        color: new THREE.Color(0.3, 0.7, 1.0),\n        opacity: 0.8,\n        userPosition,\n        interactionRadius: 3.0,\n        glowIntensity: isHovered ? 2.0 : 1.0,\n      }),\n    [userPosition, isHovered]\n  );\n\n  useFrame((state) => {\n    if (!meshRef.current || !materialRef.current) return;\n\n    const time = state.clock.elapsedTime;\n    const mesh = meshRef.current;\n    const mat = materialRef.current;\n\n    // Update distance to user\n    const currentDistance = mesh.position.distanceTo(userPosition);\n    setDistance(currentDistance);\n\n    // Update material uniforms\n    mat.uniforms.time.value = time;\n    mat.uniforms.userPosition.value.copy(userPosition);\n\n    // Floating animation\n    const floatingAnimation = ARGlassAnimations.createFloatingAnimation(\n      mesh,\n      0.05,\n      0.5\n    );\n    floatingAnimation(time);\n\n    // Adaptive scaling\n    if (isInteractive) {\n      const scale = ARGlassUtils.createAdaptiveScaling(\n        1.0,\n        5.0\n      )(currentDistance);\n      mesh.scale.setScalar(scale);\n    }\n\n    // Look at user\n    mesh.lookAt(userPosition);\n  });\n\n  const handlePointerEnter = useCallback(() => {\n    setIsHovered(true);\n  }, []);\n\n  const handlePointerLeave = useCallback(() => {\n    setIsHovered(false);\n  }, []);\n\n  const handleClick = useCallback(() => {\n    if (onInteraction) {\n      onInteraction();\n      ARGlassInteractions.createHapticFeedback(0.7, 150);\n    }\n  }, [onInteraction]);\n\n  return (\n    <mesh\n      ref={meshRef}\n      position={position}\n      rotation={rotation}\n      geometry={geometry}\n      material={material}\n      onPointerEnter={handlePointerEnter}\n      onPointerLeave={handlePointerLeave}\n      onClick={handleClick}\n    />\n  );\n}\n\n// Data Visualization Component\nfunction DataVisualization({ data, position, userPosition }: any) {\n  const groupRef = useRef<THREE.Group>(null!);\n  const materials = useRef<THREE.ShaderMaterial[]>([]);\n\n  const geometries = useMemo(() => {\n    return data.map((_: number, index: number) => {\n      const height = data[index] * 2;\n      return new THREE.BoxGeometry(0.2, height, 0.2);\n    });\n  }, [data]);\n\n  const dataMaterials = useMemo(() => {\n    return data.map((value: number) =>\n      ARGlassMaterialFactory.createDataVisualization({\n        lowColor: new THREE.Color(0.2, 0.4, 1.0),\n        highColor: new THREE.Color(1.0, 0.4, 0.2),\n        opacity: 0.8,\n        dataValue: value,\n      })\n    );\n  }, [data]);\n\n  useFrame((state) => {\n    if (!groupRef.current) return;\n\n    const time = state.clock.elapsedTime;\n\n    // Update materials\n    materials.current.forEach((material, index) => {\n      if (material && material.uniforms) {\n        material.uniforms.time.value = time;\n        material.uniforms.animationProgress.value = Math.min(1, time * 0.5);\n        material.uniforms.dataValue.value = data[index];\n      }\n    });\n\n    // Look at user\n    groupRef.current.lookAt(userPosition);\n  });\n\n  return (\n    <group ref={groupRef} position={position}>\n      {data.map((value: number, index: number) => (\n        <mesh\n          key={index}\n          position={[(index - data.length / 2) * 0.3, value, 0]}\n          geometry={geometries[index]}\n          material={dataMaterials[index]}\n          ref={(ref) => {\n            if (ref)\n              materials.current[index] = ref.material as THREE.ShaderMaterial;\n          }}\n        />\n      ))}\n    </group>\n  );\n}\n\n// Holographic Portal Component\nfunction HolographicPortal({ position, isActive, onActivate }: any) {\n  const meshRef = useRef<THREE.Mesh>(null!);\n  const materialRef = useRef<THREE.ShaderMaterial>(null!);\n\n  const geometry = useMemo(\n    () => ARGlassGeometryFactory.createPortalGeometry(0.8, 1.2),\n    []\n  );\n  const material = useMemo(\n    () =>\n      ARGlassMaterialFactory.createHolographicGlass({\n        color: new THREE.Color(0.6, 0.8, 1.0),\n        opacity: isActive ? 0.9 : 0.5,\n        fresnelPower: 1.5,\n      }),\n    [isActive]\n  );\n\n  useFrame((state) => {\n    if (!meshRef.current || !materialRef.current) return;\n\n    const time = state.clock.elapsedTime;\n    const mesh = meshRef.current;\n    const mat = materialRef.current;\n\n    // Update shader uniforms\n    mat.uniforms.time.value = time;\n    mat.uniforms.opacity.value = isActive ? 0.9 : 0.5;\n\n    // Rotation animation\n    const rotationAnimation = ARGlassAnimations.createRotationAnimation(\n      mesh,\n      new THREE.Vector3(0, 1, 0),\n      isActive ? 2 : 0.5\n    );\n    rotationAnimation(time);\n\n    // Scale animation when active\n    if (isActive) {\n      const scaleAnimation = ARGlassAnimations.createScaleAnimation(\n        mesh,\n        1.0,\n        1.1,\n        3\n      );\n      scaleAnimation(time);\n    }\n  });\n\n  return (\n    <mesh\n      ref={meshRef}\n      position={position}\n      geometry={geometry}\n      material={material}\n      onClick={onActivate}\n    />\n  );\n}\n\n// Particle Field Component\nfunction ParticleField({ position, count }: any) {\n  const meshRef = useRef<THREE.Points>(null!);\n\n  const geometry = useMemo(\n    () => ARGlassGeometryFactory.createParticleField(count),\n    [count]\n  );\n  const material = useMemo(\n    () =>\n      new THREE.PointsMaterial({\n        size: 0.05,\n        vertexColors: true,\n        transparent: true,\n        opacity: 0.6,\n        blending: THREE.AdditiveBlending,\n      }),\n    []\n  );\n\n  useFrame((state) => {\n    if (!meshRef.current) return;\n\n    const time = state.clock.elapsedTime;\n    const positions = geometry.attributes.position.array;\n\n    // Animate particles\n    for (let i = 0; i < positions.length; i += 3) {\n      positions[i + 1] += Math.sin(time + i * 0.01) * 0.002;\n    }\n\n    geometry.attributes.position.needsUpdate = true;\n  });\n\n  return (\n    <points\n      ref={meshRef}\n      position={position}\n      geometry={geometry}\n      material={material}\n    />\n  );\n}\n\nexport default ARGlassEffects;\n", "\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport type { GlassShatterEffectsProps as R3FProps } from \"./GlassShatterEffects.r3f\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport { assertReact19ForThree } from \"../../utils/reactVersion\";\n\nexport type GlassShatterEffectsProps = R3FProps;\n\nlet LoadedImpl: React.ComponentType<R3FProps> | null = null;\n\nexport function GlassShatterEffects(props: GlassShatterEffectsProps) {\n  const [Impl, setImpl] = useState<React.ComponentType<R3FProps> | null>(\n    LoadedImpl\n  );\n\n  useEffect(() => {\n    let cancelled = false;\n\n    if (!assertReact19ForThree()) {\n      return;\n    }\n\n    if (!Impl) {\n      import(\"./GlassShatterEffects.r3f\")\n        .then((mod) => {\n          if (cancelled) return;\n          const Component = (mod.GlassShatterEffectsR3F ||\n            mod.default) as React.ComponentType<R3FProps>;\n          LoadedImpl = Component;\n          setImpl(() => Component);\n        })\n        .catch(() => {\n          // Keep the lightweight fallback when optional R3F loading fails.\n        });\n    }\n\n    return () => {\n      cancelled = true;\n    };\n  }, [Impl]);\n\n  if (!Impl) {\n    const {\n      className,\n      children,\n      trigger = \"click\",\n      ...rest\n    } = props as R3FProps & {\n      className?: string;\n      children?: React.ReactNode;\n      trigger?: string;\n    };\n\n    return (\n      <div\n        className={cn(\n          \"glass-shatter-effects glass-relative glass-overflow-hidden\",\n          className\n        )}\n        style={{\n          position: \"relative\",\n          cursor: trigger === \"click\" ? \"pointer\" : \"default\",\n        }}\n        {...rest}\n      >\n        <div\n          className={cn(\n            \"content glass-transition-opacity glass-duration-300\",\n            \"glass-opacity-100\"\n          )}\n        >\n          {children}\n        </div>\n      </div>\n    );\n  }\n\n  return <Impl {...props} />;\n}\n\nexport { shatterPresets } from \"./GlassShatterEffects.presets\";\n\nexport default GlassShatterEffects;\n", "import React from \"react\";\n\n/**\n * Detects whether the current React runtime exposes the React 19+ reconciler internals.\n * React 18 does not define the `S` slot, which newer reconcilers rely on.\n */\nexport const isReact19OrNewer = (): boolean => {\n  const internals =\n    // @ts-ignore - accessing React internals on purpose to detect React 19 shape\n    (React as any).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n  return Boolean(\n    internals && typeof internals === \"object\" && \"S\" in internals\n  );\n};\n\nexport const assertReact19ForThree = (): boolean => {\n  if (!isReact19OrNewer()) {\n    return false;\n  }\n  return true;\n};\n", "export const shatterPresets = {\n  gentle: {\n    duration: 1.5,\n    intensity: 0.5,\n    shardCount: 8,\n    autoReform: true,\n    reformDelay: 2000,\n  },\n  dramatic: {\n    duration: 2.5,\n    intensity: 1.2,\n    shardCount: 16,\n    autoReform: true,\n    reformDelay: 4000,\n  },\n  explosive: {\n    duration: 3,\n    intensity: 2,\n    shardCount: 24,\n    autoReform: false,\n    reformDelay: 6000,\n  },\n  subtle: {\n    duration: 1,\n    intensity: 0.3,\n    shardCount: 6,\n    autoReform: true,\n    reformDelay: 1500,\n  },\n} as const;\n\nexport type ShatterPresetName = keyof typeof shatterPresets;\n", "\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport type { SeasonalParticlesProps as R3FProps } from \"./SeasonalParticles.r3f\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport { assertReact19ForThree } from \"../../utils/reactVersion\";\n\nexport type SeasonalParticlesProps = R3FProps;\n\nlet LoadedImpl: React.ComponentType<R3FProps> | null = null;\n\nexport function SeasonalParticles(props: SeasonalParticlesProps) {\n  const [Impl, setImpl] = useState<React.ComponentType<R3FProps> | null>(\n    LoadedImpl\n  );\n\n  useEffect(() => {\n    let cancelled = false;\n\n    if (!assertReact19ForThree()) {\n      return;\n    }\n\n    if (!Impl) {\n      import(\"./SeasonalParticles.r3f\")\n        .then((mod) => {\n          if (cancelled) return;\n          const Component = (mod.SeasonalParticlesR3F ||\n            mod.default) as React.ComponentType<R3FProps>;\n          LoadedImpl = Component;\n          setImpl(() => Component);\n        })\n        .catch(() => {\n          // Keep the lightweight fallback when optional R3F loading fails.\n        });\n    }\n\n    return () => {\n      cancelled = true;\n    };\n  }, [Impl]);\n\n  if (!Impl) {\n    const { className, children, ...rest } = props as R3FProps & {\n      className?: string;\n      children?: React.ReactNode;\n    };\n\n    return (\n      <div\n        className={cn(\n          \"seasonal-particles glass-relative glass-overflow-hidden\",\n          className\n        )}\n        {...rest}\n      >\n        <div className={cn(\"glass-relative glass-z-10\")}>{children}</div>\n      </div>\n    );\n  }\n\n  return <Impl {...props} />;\n}\n\nexport { seasonalPresets, seasonalThemes } from \"./SeasonalParticles.presets\";\n\nexport default SeasonalParticles;\n", "export const seasonalPresets = {\n  gentle: {\n    particleCount: 20,\n    windStrength: 0.5,\n    animationSpeed: 0.8,\n    seasonDuration: 15000,\n  },\n  lively: {\n    particleCount: 40,\n    windStrength: 1.2,\n    animationSpeed: 1.2,\n    seasonDuration: 10000,\n  },\n  dramatic: {\n    particleCount: 60,\n    windStrength: 2.0,\n    animationSpeed: 1.5,\n    seasonDuration: 8000,\n  },\n  subtle: {\n    particleCount: 15,\n    windStrength: 0.3,\n    animationSpeed: 0.6,\n    seasonDuration: 20000,\n  },\n} as const;\n\nexport const seasonalThemes = {\n  winter: {\n    background: \"linear-gradient(135deg, #667eea 0%, #764ba2 100%)\",\n    glassColor: \"var(--glass-bg-default)\",\n    accentColor: \"#e3f2fd\",\n  },\n  spring: {\n    background: \"linear-gradient(135deg, #f093fb 0%, #f5576c 100%)\",\n    glassColor: \"var(--glass-bg-disabled)\",\n    accentColor: \"#fce4ec\",\n  },\n  summer: {\n    background: \"linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)\",\n    glassColor: \"var(--glass-bg-default)\",\n    accentColor: \"#fff3e0\",\n  },\n  autumn: {\n    background: \"linear-gradient(135deg, #fa709a 0%, #fee140 100%)\",\n    glassColor: \"color-mix(in srgb, var(--glass-white) 12%, transparent)\",\n    accentColor: \"#efebe9\",\n  },\n} as const;\n\nexport type SeasonalPresetName = keyof typeof seasonalPresets;\n", "\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport type { AuroraProProps as R3FProps } from \"./AuroraPro.r3f\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport { assertReact19ForThree } from \"../../utils/reactVersion\";\n\nexport type AuroraProProps = R3FProps;\n\nlet LoadedImpl: React.ComponentType<R3FProps> | null = null;\n\nexport function AuroraPro(props: AuroraProProps) {\n  const [Impl, setImpl] = useState<React.ComponentType<R3FProps> | null>(\n    LoadedImpl\n  );\n\n  useEffect(() => {\n    let cancelled = false;\n\n    if (!assertReact19ForThree()) {\n      return;\n    }\n\n    if (!Impl) {\n      import(\"./AuroraPro.r3f\")\n        .then((mod) => {\n          if (cancelled) return;\n          const Component = (mod.AuroraPro ||\n            mod.default) as React.ComponentType<R3FProps>;\n          LoadedImpl = Component;\n          setImpl(() => Component);\n        })\n        .catch(() => {\n          // Keep the lightweight fallback when optional R3F loading fails.\n        });\n    }\n\n    return () => {\n      cancelled = true;\n    };\n  }, [Impl]);\n\n  if (!Impl) {\n    const { className, children, ...rest } = props as R3FProps & {\n      className?: string;\n      children?: React.ReactNode;\n    };\n\n    return (\n      <div\n        className={cn(\n          \"aurora-pro glass-relative glass-overflow-hidden\",\n          className\n        )}\n        {...rest}\n      >\n        {children}\n      </div>\n    );\n  }\n\n  return <Impl {...props} />;\n}\n\nexport { auroraPresets, auroraThemes } from \"./AuroraPro.presets\";\n\nexport default AuroraPro;\n", "export const auroraPresets = {\n  subtle: {\n    intensity: 0.6,\n    speed: 0.5,\n    particleCount: 30,\n    colorPalette: \"arctic\",\n    animationMode: \"flow\",\n  },\n  dynamic: {\n    intensity: 1.0,\n    speed: 1.0,\n    particleCount: 50,\n    colorPalette: \"cosmic\",\n    animationMode: \"mixed\",\n  },\n  intense: {\n    intensity: 1.5,\n    speed: 1.5,\n    particleCount: 80,\n    colorPalette: \"sunset\",\n    animationMode: \"pulse\",\n  },\n  serene: {\n    intensity: 0.4,\n    speed: 0.3,\n    particleCount: 20,\n    colorPalette: \"ocean\",\n    animationMode: \"shift\",\n  },\n} as const;\n\nexport const auroraThemes = {\n  northern: {\n    background:\n      \"linear-gradient(180deg, #0c0c0c 0%, #1a1a2e 50%, #16213e 100%)\",\n    glassColor:\n      \"color-mix(in srgb, hsl(var(--glass-color-info)) 10%, transparent)\",\n    accentColor: \"#4fc3f7\",\n  },\n  mystical: {\n    background:\n      \"linear-gradient(180deg, #0f0f23 0%, #1a1a2e 50%, #2d1b69 100%)\",\n    glassColor:\n      \"color-mix(in srgb, var(--glass-color-secondary) 10%, transparent)\",\n    accentColor: \"#ba68c8\",\n  },\n  tropical: {\n    background:\n      \"linear-gradient(180deg, #0c0c0c 0%, #1a1a2e 50%, #0f3460 100%)\",\n    glassColor:\n      \"color-mix(in srgb, hsl(var(--glass-color-info)) 10%, transparent)\",\n    accentColor: \"#00bcd4\",\n  },\n  enchanted: {\n    background:\n      \"linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%)\",\n    glassColor:\n      \"color-mix(in srgb, hsl(var(--glass-color-warning)) 10%, transparent)\",\n    accentColor: \"#ff9843\",\n  },\n} as const;\n\nexport type AuroraPresetName = keyof typeof auroraPresets;\n", "\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport type { ARGlassEffectsProps as R3FProps } from \"./ARGlassEffects.r3f\";\nimport { cn } from \"../../lib/utilsComprehensive\";\nimport { assertReact19ForThree } from \"../../utils/reactVersion\";\n\nexport type ARGlassEffectsProps = R3FProps;\n\nlet LoadedImpl: React.ComponentType<R3FProps> | null = null;\n\nexport function ARGlassEffects(props: ARGlassEffectsProps) {\n  const [Impl, setImpl] = useState<React.ComponentType<R3FProps> | null>(\n    LoadedImpl\n  );\n\n  useEffect(() => {\n    let cancelled = false;\n\n    if (!assertReact19ForThree()) {\n      return;\n    }\n\n    if (!Impl) {\n      import(\"./ARGlassEffects.r3f\")\n        .then((mod) => {\n          if (cancelled) return;\n          const Component = (mod.ARGlassEffects ||\n            mod.default) as React.ComponentType<R3FProps>;\n          LoadedImpl = Component;\n          setImpl(() => Component);\n        })\n        .catch(() => {\n          // Keep the lightweight fallback when optional R3F loading fails.\n        });\n    }\n\n    return () => {\n      cancelled = true;\n    };\n  }, [Impl]);\n\n  if (!Impl) {\n    const { className, children, content, mode } = props as R3FProps & {\n      className?: string;\n      children?: React.ReactNode;\n    };\n    const values = content?.data?.length ? content.data : [0.8, 0.6, 0.9];\n\n    return (\n      <div\n        className={cn(\n          \"ar-glass-effects glass-foundation-complete glass-relative glass-flex glass-min-h-[480px] glass-items-center glass-justify-center glass-overflow-hidden glass-rounded-2xl glass-border glass-border-white/20 glass-bg-white/5 glass-p-6 glass-text-white\",\n          className\n        )}\n      >\n        <div className=\"glass-absolute glass-inset-0 glass-bg-[radial-gradient(circle_at_25%_20%,rgba(56,189,248,0.35),transparent_34%),linear-gradient(135deg,rgba(30,41,59,0.95),rgba(14,116,144,0.72))]\" />\n        <section className=\"glass-relative glass-z-10 glass-w-full glass-max-w-3xl glass-rounded-2xl glass-border glass-border-white/25 glass-bg-white/12 glass-p-6 glass-shadow-2xl glass-backdrop-blur-xl\">\n          <p className=\"glass-text-xs glass-font-semibold glass-uppercase glass-tracking-wide glass-text-cyan-100\">\n            AR preview fallback\n          </p>\n          <h2 className=\"glass-mt-2 glass-text-3xl glass-font-semibold glass-text-white\">\n            {content?.title || \"AR Glass Experience\"}\n          </h2>\n          <p className=\"glass-mt-3 glass-max-w-2xl glass-text-sm glass-leading-6 glass-text-cyan-50/85\">\n            {content?.text ||\n              \"Preview mode is showing a non-3D fallback while optional React Three Fiber support is unavailable.\"}\n          </p>\n          <div className=\"glass-mt-6 glass-grid glass-gap-3 sm:glass-grid-cols-3\">\n            {values.slice(0, 3).map((value, index) => (\n              <div\n                key={index}\n                className=\"glass-rounded-xl glass-border glass-border-white/20 glass-bg-white/8 glass-p-4\"\n              >\n                <span className=\"glass-text-xs glass-text-cyan-100/75\">\n                  Signal {index + 1}\n                </span>\n                <div className=\"glass-mt-3 glass-h-2 glass-rounded-full glass-bg-white/15\">\n                  <span\n                    className=\"glass-block glass-h-full glass-rounded-full glass-bg-cyan-300\"\n                    style={{\n                      width: `${Math.max(12, Math.round(value * 100))}%`,\n                    }}\n                  />\n                </div>\n              </div>\n            ))}\n          </div>\n          <div className=\"glass-mt-5 glass-inline-flex glass-rounded-full glass-border glass-border-white/20 glass-bg-white/8 glass-px-3 glass-py-1 glass-text-xs glass-text-cyan-50\">\n            Mode: {mode || \"preview\"}\n          </div>\n        </section>\n        {children}\n      </div>\n    );\n  }\n\n  return <Impl {...props} />;\n}\n\nexport {\n  ARGlassAnimations,\n  ARGlassGeometryFactory,\n  ARGlassInteractions,\n  ARGlassMaterialFactory,\n  ARGlassUtils,\n} from \"./ARGlassEffects.helpers\";\n\nexport default ARGlassEffects;\n", "\"use client\";\n\nexport { GlassShatterEffects } from \"../components/effects/GlassShatterEffects\";\nexport type { GlassShatterEffectsProps } from \"../components/effects/GlassShatterEffects\";\nexport { shatterPresets } from \"../components/effects/GlassShatterEffects.presets\";\n\nexport { SeasonalParticles } from \"../components/effects/SeasonalParticles\";\nexport type { SeasonalParticlesProps } from \"../components/effects/SeasonalParticles\";\nexport {\n  seasonalPresets,\n  seasonalThemes,\n} from \"../components/effects/SeasonalParticles.presets\";\n\nexport { AuroraPro } from \"../components/effects/AuroraPro\";\nexport type { AuroraProProps } from \"../components/effects/AuroraPro\";\nexport {\n  auroraPresets,\n  auroraThemes,\n} from \"../components/effects/AuroraPro.presets\";\n\nexport { ARGlassEffects } from \"../components/ar/ARGlassEffects\";\nexport type { ARGlassEffectsProps } from \"../components/ar/ARGlassEffects\";\nexport {\n  ARGlassAnimations,\n  ARGlassGeometryFactory,\n  ARGlassInteractions,\n  ARGlassMaterialFactory,\n  ARGlassUtils,\n} from \"../components/ar/ARGlassEffects.helpers\";\n"],
  "mappings": "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",
  "names": ["React", "jsx", "x", "useEffect", "useState", "jsx", "jsxs", "x", "useEffect", "useRef", "useState", "x", "image", "target", "React", "React", "useRef", "useState", "forwardRef", "jsx", "ContrastGuard", "Canvas", "useFrame", "useThree", "motion", "useCallback", "useEffect", "useRef", "useState", "THREE", "Fragment", "jsx", "jsxs", "ContrastGuard", "x", "Canvas", "useFrame", "useThree", "motion", "useCallback", "useEffect", "useRef", "useState", "THREE", "Fragment", "jsx", "jsxs", "palette", "prefersReducedMotion", "ContrastGuard", "x", "THREE", "x", "Canvas", "useFrame", "useThree", "motion", "useCallback", "useEffect", "useMemo", "useRef", "useState", "THREE", "Fragment", "jsx", "jsxs", "error", "prefersReducedMotion", "useEffect", "useState", "jsx", "useState", "useEffect", "useEffect", "useState", "jsx", "LoadedImpl", "useState", "useEffect", "useEffect", "useState", "jsx", "LoadedImpl", "AuroraPro", "useState", "useEffect", "useEffect", "useState", "jsx", "jsxs", "LoadedImpl", "ARGlassEffects", "useState", "useEffect"]
}
