/* PragDesign Universal Design System Tokens (v3.0.0) */
/* Generated by compile-tokens.py. Single Source of Truth for all PragCore products. */

:root {
  color-scheme: dark;

  /* Base Void & Surface Palette */
  --prag-void: #030306;
  --prag-voidSecondary: #080910;
  --prag-ink: #0a0a12;
  --prag-surface: rgba(10, 14, 24, 0.68);
  --prag-surfaceGlass: rgba(10, 14, 24, 0.68);
  --prag-surfaceGlassHover: rgba(16, 22, 38, 0.82);
  --prag-surfaceGlassWash: rgba(255, 255, 255, 0.03);
  --prag-surfaceBorder: rgba(255, 255, 255, 0.08);
  --prag-surfaceBorderHover: rgba(255, 255, 255, 0.18);
  --prag-surfaceHover: rgba(16, 22, 38, 0.82);
  --prag-specularBevel: inset 0 1px 0 0 rgba(255, 255, 255, 0.14);
  --prag-specularBevelHover: inset 0 1px 0 0 rgba(255, 255, 255, 0.24);
  --prag-textDisplay: #ffffff;
  --prag-textPrimary: #f0f2f6;
  --prag-textSecondary: #94a3b8;
  --prag-textMuted: rgba(218, 214, 236, 0.72);
  --prag-textDisabled: rgba(148, 163, 184, 0.40);
  --prag-cyan: #00f2fe;
  --prag-emerald: #10b981;
  --prag-amber: #fbbf24;
  --prag-crimson: #f43f5e;
  --prag-magenta: #ff2d8b;
  --prag-lime: #c4fb4f;
  --prag-cobalt: #1552d6;
  --prag-caribbean: #27d4c8;
  --prag-glowCyan: rgba(0, 242, 254, 0.35);
  --prag-glowEmerald: rgba(16, 185, 129, 0.35);
  --prag-glowAmber: rgba(251, 191, 36, 0.35);
  --prag-glowCrimson: rgba(244, 63, 94, 0.35);
  --prag-glowMagenta: rgba(255, 45, 139, 0.35);
  --prag-glowLime: rgba(196, 251, 79, 0.35);

  /* Canonical Base & Theme Aliases (Dark Mode Default) */
  --void: var(--prag-void, #030306);
  --void-secondary: var(--prag-voidSecondary, #080910);
  --surface: var(--prag-surface, rgba(10, 14, 24, 0.68));
  --surface-glass: var(--prag-surfaceGlass, rgba(10, 14, 24, 0.68));
  --surface-border: var(--prag-surfaceBorder, rgba(255, 255, 255, 0.08));
  --specular-bevel: var(--prag-specularBevel, inset 0 1px 0 0 rgba(255, 255, 255, 0.14));
  --text: var(--prag-textSecondary, #94a3b8);
  --text-display: var(--prag-textDisplay, #ffffff);
  --text-secondary: var(--prag-textSecondary, #94a3b8);
  --text-muted: var(--prag-textMuted, rgba(218, 214, 236, 0.72));
  --webgl-light-opacity: 1.0;

  /* Frosted Glassmorphic Optical Standard */
  --prag-glass-bg: var(--prag-surfaceGlass, rgba(10, 14, 24, 0.68));
  --prag-glass-bg-hover: var(--prag-surfaceGlassHover, rgba(16, 22, 38, 0.82));
  --prag-glass-border: var(--prag-surfaceBorder, rgba(255, 255, 255, 0.08));
  --prag-glass-border-hover: var(--prag-surfaceBorderHover, rgba(255, 255, 255, 0.18));
  --prag-glass-blur: blur(28px) saturate(190%);
  --prag-glass-top-bevel: var(--prag-specularBevel, inset 0 1px 0 0 rgba(255, 255, 255, 0.14));
  --prag-glass-top-bevel-hover: var(--prag-specularBevelHover, inset 0 1px 0 0 rgba(255, 255, 255, 0.24));
  --prag-glass-shadow: var(--prag-elevation-shadowLg, 0 16px 40px rgba(0, 0, 0, 0.55));
  --prag-glass-shadow-hover: var(--prag-elevation-shadowXl, 0 24px 56px rgba(0, 0, 0, 0.75));

  /* Elevation & Blur Steps */
  --prag-elevation-blurSm: 8px;
  --prag-elevation-blurMd: 16px;
  --prag-elevation-blurLg: 24px;
  --prag-elevation-blurXl: 28px;
  --prag-elevation-blurDeep: 40px;
  --prag-elevation-shadowSm: 0 2px 8px rgba(0, 0, 0, 0.35);
  --prag-elevation-shadowMd: 0 8px 24px rgba(0, 0, 0, 0.45);
  --prag-elevation-shadowLg: 0 16px 40px rgba(0, 0, 0, 0.55);
  --prag-elevation-shadowXl: 0 24px 56px rgba(0, 0, 0, 0.75);

  /* Spacing Rhythm (4px Base Grid) */
  --prag-space-xs: 4px;
  --prag-space-sm: 8px;
  --prag-space-md: 16px;
  --prag-space-base: 16px;
  --prag-space-lg: 24px;
  --prag-space-xl: 32px;
  --prag-space-xxl: 48px;
  --prag-space-hero: 64px;

  /* Geometric Radii Scale */
  --prag-radius-xs: 4px;
  --prag-radius-sm: 8px;
  --prag-radius-md: 12px;
  --prag-radius-lg: 16px;
  --prag-radius-xl: 22px;
  --prag-radius-xxl: 28px;
  --prag-radius-pill: 9999px;

  /* Kinetic Transitions & Spring Dynamics */
  --prag-anim-fast: 0.15s ease;
  --prag-anim-normal: 0.24s cubic-bezier(0.2, 0.8, 0.2, 1);
  --prag-anim-spring: 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  --prag-anim-slow: 0.6s cubic-bezier(0.16, 1, 0.3, 1);

  /* Apple Pro 3-Tier Typographic Hierarchy */
  --prag-font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Syne", system-ui, sans-serif;
  --prag-font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", system-ui, sans-serif;
  --prag-font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", system-ui, sans-serif;
  --prag-font-mono: "SF Mono", "JetBrains Mono", Menlo, Monaco, monospace;
  --prag-font-feature-tnum: "tnum" 1;
  --prag-font-size-xs: 0.75rem;
  --prag-font-size-sm: 0.875rem;
  --prag-font-size-md: 1rem;
  --prag-font-size-lg: 1.25rem;
  --prag-font-size-xl: 1.5rem;
  --prag-font-size-xxl: 2rem;
  --prag-font-size-display: 2.75rem;
  --prag-font-size-hero: 4.5rem;
  --prag-font-weight-regular: 400;
  --prag-font-weight-medium: 500;
  --prag-font-weight-semibold: 600;
  --prag-font-weight-bold: 700;
  --prag-font-weight-heavy: 800;
  --prag-letter-spacing-display: -0.038em;
  --prag-letter-spacing-ui: -0.012em;
  --prag-letter-spacing-mono: 0.02em;
  --prag-letter-spacing-caps: 0.16em;

  /* Header Ergonomics & Drag Standard */
  --prag-header-lockedHeight: 50px;
  --prag-header-electronTrafficLightPadding: 88px;

  /* 4-Column Progressive Disclosure Miller Rail Layout */
  --prag-layout-millerCol1: 260px;
  --prag-layout-millerCol2: 320px;
  --prag-layout-millerCol3: 1fr;
  --prag-layout-millerCol4: 340px;

  /* Brand Core Mark */
  --prag-brand-coreDiameter: 72px;
  --prag-brand-exclusionZone: 36px;
  --prag-brand-ocean: #071B3A;
  --prag-brand-cobalt: #1552D6;
  --prag-brand-caribbeanCyan: #27D4C8;

  /* 3D Soft-Body Gummy Physics (Scott Sun Standard) */
  --prag-gummy-transmission: 0.92;
  --prag-gummy-ior: 1.38;
  --prag-gummy-roughness: 0.08;
  --prag-gummy-clearcoat: 1.0;
  --prag-gummy-clearcoatRoughness: 0.04;
  --prag-gummy-thickness: 18.0px;
  --prag-gummy-volRatio: 0.35;
  --prag-gummy-stiffness: 220;
  --prag-gummy-damping: 18;
  --prag-gummy-radianceRadius: 180;
  --prag-gummy-radianceIntensity: 0.35;

  /* Atmospheric 3D Realm (DuneUltra) */
  --prag-atmosphere-defaultRealm: duneUltra;
  --prag-atmosphere-realmTitle: Desert Spice Ultra · Shifting Crimson Dunes;
  --prag-atmosphere-glassBlur: 28px;
  --prag-atmosphere-glassOpacity: 0.68;
  --prag-atmosphere-fogColor: #030306;
  --prag-atmosphere-fogDensity: 0.0012;

  /* Tensilux Spatial Viscoelastic Surface Standard */
  --prag-tensilux-void: #030308;
  --prag-tensilux-surface: rgba(10, 16, 32, 0.76);
  --prag-tensilux-border: rgba(56, 189, 248, 0.22);
  --prag-tensilux-text-primary: #FFFFFF;
  --prag-tensilux-text-secondary: #CBD5E1;
  --prag-tensilux-text-tertiary: #94A3B8;
  --prag-tensilux-accent-primary: #38BDF8;
  --prag-tensilux-accent-secondary: #27D4C8;
  --prag-tensilux-accent-tertiary: #818CF8;
  --prag-tensilux-specular-bevel: inset 0 1px 0 0 rgba(255, 255, 255, 0.16);
  --prag-tensilux-stiffness-k: 190;
  --prag-tensilux-damping-zeta: 16;
  --prag-tensilux-mass-m: 1.0;
  --prag-tensilux-vol-ratio: 0.35;
  --prag-tensilux-jelly-stiffness: 0.13;
  --prag-tensilux-jelly-damping: 0.74;
  --prag-tensilux-max-displacement: 9.5px;
  --prag-tensilux-max-stretch: 1.032;
  --prag-tensilux-max-radius-deform: 10px;
  --prag-tensilux-base-radius: 28px;
  --prag-tensilux-settle-window-ms: 350;
  --prag-tensilux-settle-epsilon: 0.0001;
  --prag-tensilux-gummy-transmission: 0.92;
  --prag-tensilux-gummy-ior: 1.38;
  --prag-tensilux-gummy-roughness: 0.08;
  --prag-tensilux-gummy-clearcoat: 1.0;
  --prag-tensilux-gummy-clearcoat-roughness: 0.04;
  --prag-tensilux-gummy-thickness: 18px;
  --prag-tensilux-gummy-shadow-rest: 0 12px 32px -4px rgba(0, 0, 0, 0.75), 0 4px 16px -2px rgba(56, 189, 248, 0.22), 0 2px 6px 0 rgba(0, 0, 0, 0.5);
  --prag-tensilux-gummy-shadow-hover: calc(var(--jelly-shadow-x, 0px) * 1.3) calc(18px + var(--jelly-shadow-y, 0px) * 1.3) 42px -2px rgba(0, 0, 0, 0.82), calc(var(--jelly-shadow-x, 0px) * 0.8) calc(6px + var(--jelly-shadow-y, 0px) * 0.8) 22px 0px rgba(56, 189, 248, 0.36), 0 2px 8px 0 rgba(0, 0, 0, 0.6);
  --prag-tensilux-gummy-shadow-active: 0 6px 16px -2px rgba(0, 0, 0, 0.7), 0 2px 8px -1px rgba(56, 189, 248, 0.18);
  --prag-tensilux-gummy-active-transform: scale(0.96) translateY(1px);
  --prag-tensilux-water-wake-lifetime-ms: 4200;
  --prag-tensilux-water-wake-plateau-ratio: 0.38;
  --prag-tensilux-idle-timeout-ms: 3500;
  --prag-tensilux-idle-throttle-fps: 30;
  --prag-tensilux-cockpit-height: 50px;
  --prag-tensilux-canvas-height: calc(100vh - 50px);
  --prag-tensilux-bedrock-bg: #030308;
  --prag-tensilux-bedrock-border: rgba(255, 255, 255, 0.08);
  --prag-tensilux-unibody-chassis: rgba(11, 14, 22, 0.96);
  --prag-tensilux-laser-seam: 1px solid rgba(255, 255, 255, 0.08);
  --prag-tensilux-splash-max-r: 380px;

  /* Canonical Tensilux Tokens (Universal Design System v2.3.0) */
  --tensilux-void: #030308;
  --tensilux-surface: rgba(10, 16, 32, 0.76);
  --tensilux-surface-secondary: #121A30;
  --tensilux-border: rgba(56, 189, 248, 0.22);
  --tensilux-text-primary: #FFFFFF;
  --tensilux-text-secondary: #CBD5E1;
  --tensilux-text-tertiary: #94A3B8;
  --tensilux-accent-primary: #38BDF8;
  --tensilux-accent-secondary: #27D4C8;
  --tensilux-accent-tertiary: #818CF8;
  --tensilux-cockpit-height: 50px;
  --tensilux-canvas-height: calc(100vh - 50px);
  --tensilux-bedrock-bg: #030308;
  --tensilux-bedrock-border: rgba(255, 255, 255, 0.08);
  --tensilux-unibody-chassis: rgba(11, 14, 22, 0.96);
  --tensilux-laser-seam: 1px solid rgba(255, 255, 255, 0.08);
  --tensilux-splash-max-r: 380px;

  /* Tensilux Centralized Predefined Typography Hierarchy */
  --tensilux-font-display: var(--prag-font-display, -apple-system, BlinkMacSystemFont, "SF Pro Display", "Syne", system-ui, sans-serif);
  --tensilux-font-body: var(--prag-font-body, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", system-ui, sans-serif);
  --tensilux-font-mono: var(--prag-font-mono, "SF Mono", "JetBrains Mono", Menlo, Monaco, monospace);
  --tensilux-heading-hero-size: clamp(2.75rem, 2.2rem + 2.8vw, 4.5rem);
  --tensilux-heading-hero-weight: 800;
  --tensilux-heading-hero-line-height: 1.08;
  --tensilux-heading-hero-tracking: -0.04em;
  --tensilux-heading-section-size: clamp(2.2rem, 1.8rem + 1.8vw, 3.2rem);
  --tensilux-heading-section-weight: 800;
  --tensilux-heading-section-line-height: 1.08;
  --tensilux-heading-section-tracking: -0.04em;
  --tensilux-heading-card-size: clamp(1.25rem, 1.15rem + 0.5vw, 1.65rem);
  --tensilux-heading-card-weight: 700;
  --tensilux-heading-card-line-height: 1.2;
  --tensilux-heading-card-tracking: -0.025em;
  --tensilux-subtitle-size: clamp(1.05rem, 0.98rem + 0.35vw, 1.25rem);
  --tensilux-subtitle-weight: 500;
  --tensilux-subtitle-line-height: 1.55;
  --tensilux-subtitle-tracking: -0.015em;
  --tensilux-body-size: clamp(0.92rem, 0.88rem + 0.2vw, 1.05rem);
  --tensilux-body-weight: 400;
  --tensilux-body-line-height: 1.65;
  --tensilux-body-tracking: -0.01em;
  --tensilux-telemetry-size: 0.72rem;
  --tensilux-telemetry-weight: 600;
  --tensilux-telemetry-line-height: 1.4;
  --tensilux-telemetry-tracking: 0.04em;
  --tensilux-telemetry-feature-tnum: "tnum" 1;

  /* Tensilux Spatial Canvas Typography (Elements floating over 3D WebGL reality) */
  --tensilux-spatial-heading-color: #ffffff;
  --tensilux-spatial-heading-shadow: 0 2px 24px rgba(0, 0, 0, 0.98), 0 1px 4px rgba(0, 0, 0, 0.85);
  --tensilux-spatial-subtitle-color: #ffffff;
  --tensilux-spatial-subtitle-shadow: 0 2px 14px rgba(0, 0, 0, 0.98);

  /* TensiLogs Spatial Telemetry & Viscoelastic Dynamics Standard */
  --prag-tensilogs-void: #030306;
  --prag-tensilogs-surface: rgba(10, 16, 32, 0.76);
  --prag-tensilogs-surface-secondary: #101626;
  --prag-tensilogs-border: rgba(56, 189, 248, 0.22);
  --prag-tensilogs-text-primary: #FFFFFF;
  --prag-tensilogs-text-secondary: #CBD5E1;
  --prag-tensilogs-text-tertiary: #94A3B8;
  --prag-tensilogs-accent-primary: #00F2FE;
  --prag-tensilogs-accent-secondary: #27D4C8;
  --prag-tensilogs-accent-tertiary: #818CF8;
  --prag-tensilogs-accent-amber: #F59E0B;
  --prag-tensilogs-accent-emerald: #10B981;
  --prag-tensilogs-alert-crimson: #F43F5E;
  --prag-tensilogs-specular-bevel: inset 0 1px 0 0 rgba(255, 255, 255, 0.16);
  --prag-tensilogs-stiffness-k: 190;
  --prag-tensilogs-damping-zeta: 16;
  --prag-tensilogs-mass-m: 1.0;
  --prag-tensilogs-vol-ratio: 0.35;
  --prag-tensilogs-jelly-stiffness: 0.13;
  --prag-tensilogs-jelly-damping: 0.74;
  --prag-tensilogs-max-displacement: 9.5px;
  --prag-tensilogs-max-stretch: 1.032;
  --prag-tensilogs-max-radius-deform: 10px;
  --prag-tensilogs-base-radius: 28px;
  --prag-tensilogs-gummy-transmission: 0.92;
  --prag-tensilogs-gummy-ior: 1.38;
  --prag-tensilogs-gummy-roughness: 0.08;
  --prag-tensilogs-gummy-clearcoat: 1.0;
  --prag-tensilogs-gummy-clearcoat-roughness: 0.04;
  --prag-tensilogs-gummy-thickness: 18px;
  --prag-tensilogs-gummy-shadow-rest: 0 12px 32px -4px rgba(0, 0, 0, 0.75), 0 4px 16px -2px rgba(0, 242, 254, 0.22), 0 2px 6px 0 rgba(0, 0, 0, 0.5);
  --prag-tensilogs-gummy-shadow-hover: calc(var(--jelly-shadow-x, 0px) * 1.3) calc(18px + var(--jelly-shadow-y, 0px) * 1.3) 42px -2px rgba(0, 0, 0, 0.82), calc(var(--jelly-shadow-x, 0px) * 0.8) calc(6px + var(--jelly-shadow-y, 0px) * 0.8) 22px 0px rgba(0, 242, 254, 0.36), 0 2px 8px 0 rgba(0, 0, 0, 0.6);
  --prag-tensilogs-gummy-shadow-active: 0 6px 16px -2px rgba(0, 0, 0, 0.7), 0 2px 8px -1px rgba(0, 242, 254, 0.18);
  --prag-tensilogs-gummy-active-transform: scale(0.96) translateY(1px);
  --prag-tensilogs-water-wake-lifetime-ms: 4200;
  --prag-tensilogs-water-wake-plateau-ratio: 0.38;
  --prag-tensilogs-idle-timeout-ms: 3500;
  --prag-tensilogs-idle-throttle-fps: 30;

  /* PragBrand Centralized Copy Tokens */
  --prag-copy-tagline: "Taste, compiled.";
  --prag-copy-strapline: "Outlasting hype cycles. Forward deployed software systems.";
  --prag-copy-description: "High-performance sovereign software engineered with local execution and zero telemetry leaks.";
  --prag-copy-plain-language-explainer: "PragCore builds fast, private, and durable software tools that work reliably without subscription traps, cloud lag, or corporate surveillance.";
}

[data-resolved-theme="light"], :root[data-theme="light"] {
  color-scheme: light;
  --prag-void: #f8fafc;
  --prag-voidSecondary: #f1f5f9;
  --prag-ink: #090d16;
  --prag-surface: rgba(255, 255, 255, 0.90);
  --prag-surfaceGlass: rgba(255, 255, 255, 0.86);
  --prag-surfaceGlassHover: rgba(248, 250, 252, 0.96);
  --prag-surfaceGlassWash: rgba(15, 23, 42, 0.02);
  --prag-surfaceBorder: rgba(15, 23, 42, 0.08);
  --prag-surfaceBorderHover: rgba(15, 23, 42, 0.16);
  --prag-surfaceHover: rgba(241, 245, 249, 0.90);
  --prag-specularBevel: inset 0 1px 0 0 rgba(255, 255, 255, 1.0);
  --prag-specularBevelHover: inset 0 1px 0 0 rgba(255, 255, 255, 1.0);
  --prag-textDisplay: #090d16;
  --prag-textPrimary: #0f172a;
  --prag-textSecondary: #334155;
  --prag-textMuted: #64748b;
  --prag-textDisabled: #94a3b8;
  --prag-cyan: #0284c7;
  --prag-emerald: #059669;
  --prag-amber: #d97706;
  --prag-crimson: #e11d48;
  --prag-magenta: #db2777;
  --prag-lime: #65a30d;
  --prag-cobalt: #1552d6;
  --prag-caribbean: #0d9488;
  --prag-glowCyan: rgba(2, 132, 199, 0.18);
  --prag-glowEmerald: rgba(5, 150, 105, 0.18);
  --prag-glowAmber: rgba(217, 119, 6, 0.18);
  --prag-glowCrimson: rgba(225, 29, 72, 0.18);
  --prag-glowMagenta: rgba(219, 39, 119, 0.18);
  --prag-glowLime: rgba(101, 163, 13, 0.18);
  --prag-glass-bg: var(--prag-surfaceGlass, rgba(255, 255, 255, 0.88));
  --prag-glass-bg-hover: var(--prag-surfaceGlassHover, rgba(245, 245, 250, 0.96));
  --prag-glass-border: var(--prag-surfaceBorder, rgba(14, 12, 24, 0.10));
  --prag-glass-border-hover: var(--prag-surfaceBorderHover, rgba(14, 12, 24, 0.22));
  --prag-glass-top-bevel: var(--prag-specularBevel, inset 0 1px 0 0 rgba(255, 255, 255, 0.95));
  --prag-glass-top-bevel-hover: var(--prag-specularBevelHover, inset 0 1px 0 0 rgba(255, 255, 255, 1.0));

  /* Canonical Base & Theme Aliases in Light Mode */
  --void: var(--prag-void, #f8fafc);
  --void-secondary: var(--prag-voidSecondary, #f1f5f9);
  --surface: var(--prag-surface, #ffffff);
  --surface-glass: var(--prag-surfaceGlass, rgba(255, 255, 255, 0.86));
  --surface-border: var(--prag-surfaceBorder, rgba(15, 23, 42, 0.08));
  --specular-bevel: var(--prag-specularBevel, inset 0 1px 0 0 rgba(255, 255, 255, 1.0));
  --text: var(--prag-textSecondary, #334155);
  --text-display: var(--prag-textDisplay, #090d16);
  --text-secondary: var(--prag-textSecondary, #334155);
  --text-muted: var(--prag-textMuted, #64748b);
  --webgl-light-opacity: 1.0;

  /* Canonical Tensilux Tokens in Light Mode */
  --tensilux-void: #f8fafc;
  --tensilux-surface: rgba(255, 255, 255, 0.90);
  --tensilux-surface-secondary: #f1f5f9;
  --tensilux-border: rgba(15, 23, 42, 0.12);
  --tensilux-text-primary: #090d16;
  --tensilux-text-secondary: #334155;
  --tensilux-text-tertiary: #64748b;
  --tensilux-bedrock-bg: #ffffff;
  --tensilux-bedrock-border: rgba(15, 23, 42, 0.08);
  --tensilux-unibody-chassis: rgba(255, 255, 255, 0.96);
  --tensilux-laser-seam: 1px solid rgba(15, 23, 42, 0.08);

  /* Tensilux Spatial Canvas in Light Mode: Preserves White Letterforms with Daylight Contact Drop Shadow over WebGL Reality */
  --tensilux-spatial-heading-color: #ffffff;
  --tensilux-spatial-heading-shadow: 0 2px 8px rgba(15, 23, 42, 0.22), 0 6px 20px rgba(15, 23, 42, 0.15), 0 14px 36px rgba(15, 23, 42, 0.08);
  --tensilux-spatial-subtitle-color: #ffffff;
  --tensilux-spatial-subtitle-shadow: 0 1px 6px rgba(15, 23, 42, 0.20), 0 3px 12px rgba(15, 23, 42, 0.12);
}
