/* ByteDesk canonical design tokens, CSS custom properties.
 * Generated by build/generate.mjs from foundation/tokens.json and apps/<slug>/app.json. Do not edit.
 * Prefix: --bd-*. Consumers alias into their local token roots. Dark is the default;
 * [data-bd-theme="light"] renders the exact semantic counterpart.
 */
:root {
  color-scheme: dark;

  /* Backgrounds */
  --bd-bg-base: #101316;
  --bd-bg-subtle: #171A1D;
  --bd-bg-surface: #1D2125;
  --bd-bg-elevated: #24282D;
  --bd-bg-overlay: #2B3036;

  /* Text */
  --bd-text-primary: #E6E8EB;
  --bd-text-secondary: #A1A8B1;
  --bd-text-tertiary: #7E8792;
  --bd-text-disabled: #626A74;
  --bd-text-on-brand: #101316;
  --bd-text-on-interactive: #101316;

  /* Brand + interactive */
  --bd-brand-orange: #EC4E02;
  --bd-brand-orange-muted: #D96D00;
  --bd-interactive-blue: #047BF4;
  --bd-interactive-focus: #71A7EF;

  /* Interaction blue ramp. Never #000 or #fff. */
  --bd-blue-50: #071221;
  --bd-blue-100: #0E2037;
  --bd-blue-200: #193356;
  --bd-blue-300: #1F487C;
  --bd-blue-400: #255DA5;
  --bd-blue-500: #047BF4;
  --bd-blue-600: #468CE8;
  --bd-blue-700: #71A7EF;
  --bd-blue-800: #9CC0F1;
  --bd-blue-900: #C7D9F2;

  --bd-accent-subtle: #193356;
  --bd-accent-muted: #255DA5;
  --bd-accent-default: #047BF4;
  --bd-accent-emphasis: #468CE8;
  --bd-accent-fg: #E8F1FB;

  /* Per-desk chrome tints (Gateway data-bd-desk). */
  --bd-desk-sessions: #193356;
  --bd-desk-files: #013752;
  --bd-desk-projects: #282F56;
  --bd-desk-agentic: #1B3060;
  --bd-desk-system: #1D354B;
  --bd-desk-developer: #2F2D55;

  /* Semantic */
  --bd-success: #029219;
  --bd-success-muted: #007012;
  --bd-success-bg: #0C2414;
  --bd-success-line: #165C22;
  --bd-success-ink: #4A9A4A;
  --bd-danger: #E52222;
  --bd-danger-bg: #2A1212;
  --bd-danger-line: #7A2424;
  --bd-danger-ink: #D6695D;
  --bd-warning: #DFA700;
  --bd-warning-bg: #241E0C;
  --bd-warning-line: #6B5A14;
  --bd-warning-ink: #B18100;
  --bd-info: #1DB8CE;
  --bd-info-bg: #0C2226;
  --bd-info-line: #1A5A64;
  --bd-info-ink: #0097AD;

  /* Borders */
  --bd-border-dimmest: #272A2C;
  --bd-border-dimmer: #303438;
  --bd-border-default: #3A3E42;
  --bd-border-stronger: #44484C;
  --bd-border-strongest: #4C4F52;

  /* Charts and operational visualizations */
  --bd-chart-series-1: #047BF4;
  --bd-chart-series-2: #1DB8CE;
  --bd-chart-series-3: #A170EB;
  --bd-chart-series-4: #EA5DA9;
  --bd-chart-series-5: #EC4E02;
  --bd-chart-series-6: #029219;
  --bd-chart-series-7: #DFA700;
  --bd-chart-series-8: #E52222;
  --bd-chart-grid: #31343F;
  --bd-chart-axis: #A2A8B2;
  --bd-chart-plot: #1A1C25;
  --bd-chart-selection: #468CE8;

  /* Fonts */
  --bd-font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --bd-font-display: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --bd-font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;

  /* Type roles shared by web and native adapters */
  --bd-font-weight-regular: 400;
  --bd-font-weight-medium: 500;
  --bd-font-weight-semibold: 600;
  --bd-font-weight-bold: 700;
  --bd-line-height-tight: 1.2;
  --bd-line-height-compact: 1.35;
  --bd-line-height-body: 1.5;
  --bd-letter-spacing-tight: -0.02em;
  --bd-letter-spacing-label: 0.04em;
  --bd-letter-spacing-caps: 0.08em;

  /* Type scale. Fluid on the web where the token carries a css extension. */
  --bd-text-display: clamp(2.5rem, 2rem + 2.5vw, 5.5rem);
  --bd-text-h1: clamp(2rem, 1.6rem + 2vw, 3.5rem);
  --bd-text-h2: clamp(1.5rem, 1.25rem + 1.25vw, 2.5rem);
  --bd-text-h3: clamp(1.25rem, 1.1rem + 0.75vw, 1.875rem);
  --bd-text-h4: clamp(1.125rem, 1rem + 0.625vw, 1.5rem);
  --bd-text-body-lg: clamp(1.0625rem, 1rem + 0.3125vw, 1.25rem);
  --bd-text-body: clamp(0.9375rem, 0.9rem + 0.1875vw, 1.0625rem);
  --bd-text-body-sm: clamp(0.8125rem, 0.8rem + 0.125vw, 0.875rem);
  --bd-text-caption: clamp(0.6875rem, 0.675rem + 0.0625vw, 0.75rem);
  --bd-text-console: 12.5px;
  --bd-text-console-sm: 11px;

  /* Fixed cross-platform spacing ladder */
  --bd-space-0: 0px;
  --bd-space-1: 2px;
  --bd-space-2: 4px;
  --bd-space-3: 6px;
  --bd-space-4: 8px;
  --bd-space-5: 12px;
  --bd-space-6: 16px;
  --bd-space-7: 20px;
  --bd-space-8: 24px;
  --bd-space-9: 32px;
  --bd-space-10: 40px;
  --bd-space-11: 48px;

  /* Cross-platform control, shell, panel, and visualization sizes */
  --bd-size-control-compact: 28px;
  --bd-size-control-default: 32px;
  --bd-size-control-touch: 44px;
  --bd-size-row-compact: 28px;
  --bd-size-row-default: 32px;
  --bd-size-row-touch: 44px;
  --bd-size-hit-target-pointer: 28px;
  --bd-size-hit-target-touch: 44px;
  --bd-size-icon-sm: 14px;
  --bd-size-icon-md: 16px;
  --bd-size-icon-lg: 20px;
  --bd-size-icon-xl: 24px;
  --bd-size-shell-topbar: 44px;
  --bd-size-shell-rail: 48px;
  --bd-size-shell-sidebar: 196px;
  --bd-size-shell-inspector: 360px;
  --bd-size-shell-statusbar: 24px;
  --bd-size-shell-commandbar: 36px;
  --bd-size-panel-minimum: 280px;
  --bd-size-panel-comfortable: 360px;
  --bd-size-panel-wide: 480px;
  --bd-size-terminal-tab: 32px;
  --bd-size-chart-point: 6px;
  --bd-size-chart-minimum-height: 180px;

  /* Logical layout breakpoints. Native clients apply these to content width. */
  --bd-breakpoint-compact-max: 719px;
  --bd-breakpoint-standard-min: 720px;
  --bd-breakpoint-wide-min: 1200px;
  --bd-breakpoint-ultrawide-min: 1600px;

  /* Strokes and opacity */
  --bd-stroke-hairline: 1px;
  --bd-stroke-active: 2px;
  --bd-stroke-focus: 2px;
  --bd-stroke-chart: 2px;
  --bd-opacity-disabled: 0.5;
  --bd-opacity-secondary: 0.72;
  --bd-opacity-scrim: 0.72;
  --bd-opacity-hover: 0.08;

  /* Radii */
  --bd-radius-sm: 0.25rem;
  --bd-radius-md: 0.375rem;
  --bd-radius-lg: 0.5rem;
  --bd-radius-xl: 0.75rem;
  --bd-radius-2xl: 1rem;
  --bd-radius-full: 9999px;

  /* Motion */
  --bd-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --bd-duration-fast: 150ms;
  --bd-duration-base: 250ms;
  --bd-duration-slow: 400ms;

  /* Black Glass + Optical Layering */
  --bd-material-blur-shell: 18px;
  --bd-material-blur-overlay: 24px;
  --bd-material-shell-opacity: 0.94;
  --bd-material-top-light: #FFFFFF0A;
  --bd-material-ambient-blue: #07182E66;
  --bd-material-ambient-orange: #EC4E0238;
  --bd-richness-ambient-strength: 0.75;
  --bd-richness-bloom-strength: 0.75;
  --bd-shadow-shell: inset 0 1px 0 #FFFFFF0A, 0 24px 56px #05080DB8, 0 8px 20px #07182E66;
  --bd-shadow-card: inset 0 1px 0 #FFFFFF08, 0 8px 20px #05080D66;
  --bd-shadow-focus-glow: 0 0 0 1px #1B84F3, 0 0 24px #1B84F34D;
  --bd-shadow-attention-glow: 0 0 20px #EC4E0238;

  /* Product accents (identification only, never semantic). Declared once in apps/<slug>/app.json. */
  --bd-product-platform: #EC4E02;
  --bd-product-agent-browser: #1DB6A5;
  --bd-product-agent-mail: #7F95FE;
  --bd-product-agent-memory: #FA618E;
  --bd-product-agent-orchestration: #C1BBFF;
  --bd-product-capture: #6AD3FF;
  --bd-product-gateway: var(--bd-interactive-blue); /* family colour by declaration */
  --bd-product-mangodisk: #FEAF7B;
  --bd-product-marketplace: #D2CA06;
  --bd-product-openseo: #19E5AD;
  --bd-product-passport: #E26ACE;
  --bd-product-store: #8DAE00;
  --bd-product-toolbox: #B97BFD;
  --bd-product-vault: #D98A0D;
  --bd-product-workforce: #FEA3D0;

  /* Web-only derivations. These have no scalar token: aliases, color-mix, fluid
   * spacing, and the focus ring. Everything above this line is generated from
   * foundation/tokens.json. */
  --bd-desk: var(--bd-desk-sessions);
  --bd-bg-hover: color-mix(in srgb, var(--bd-bg-surface) 74%, var(--bd-text-primary) 8%);
  --bd-glow-brand: color-mix(in srgb, var(--bd-brand-orange) 38%, transparent);
  --bd-glow-interactive: color-mix(in srgb, var(--bd-interactive-blue) 32%, transparent);
  --bd-overlay-backdrop: color-mix(in srgb, var(--bd-bg-base) 72%, transparent);
  --bd-accent: var(--bd-brand-orange);
  --bd-accent-glow: color-mix(in srgb, var(--bd-accent) 32%, transparent);
  --bd-space-section-x: clamp(1rem, 0.5rem + 2.5vw, 2rem);
  --bd-space-section-y: clamp(3rem, 2rem + 5vw, 7rem);
  --bd-focus-ring: 0 0 0 var(--bd-stroke-focus) var(--bd-bg-base),
    0 0 0 calc(var(--bd-stroke-focus) * 2)
      color-mix(in srgb, var(--bd-interactive-focus) 70%, transparent);
  --bd-shadow-elevated: var(--bd-shadow-card);
  --bd-shadow-glow-accent: 0 0 40px var(--bd-accent-glow);
}

/* The explicit dark stamp restates the themed set rather than only the colour scheme, so a dark
 * subtree nested inside a light one resolves dark values instead of inheriting the light ones.
 * :root already carries these; repeating them is what makes nesting work in both directions. */
[data-bd-theme="dark"] {
  color-scheme: dark;
  --bd-bg-base: #101316;
  --bd-bg-subtle: #171A1D;
  --bd-bg-surface: #1D2125;
  --bd-bg-elevated: #24282D;
  --bd-bg-overlay: #2B3036;
  --bd-text-primary: #E6E8EB;
  --bd-text-secondary: #A1A8B1;
  --bd-text-tertiary: #7E8792;
  --bd-text-disabled: #626A74;
  --bd-text-on-interactive: #101316;
  --bd-interactive-blue: #047BF4;
  --bd-border-dimmest: #272A2C;
  --bd-border-dimmer: #303438;
  --bd-border-default: #3A3E42;
  --bd-border-stronger: #44484C;
  --bd-border-strongest: #4C4F52;
  --bd-success: #029219;
  --bd-success-bg: #0C2414;
  --bd-success-line: #165C22;
  --bd-success-ink: #4A9A4A;
  --bd-danger: #E52222;
  --bd-danger-bg: #2A1212;
  --bd-danger-line: #7A2424;
  --bd-danger-ink: #D6695D;
  --bd-warning: #DFA700;
  --bd-warning-bg: #241E0C;
  --bd-warning-line: #6B5A14;
  --bd-warning-ink: #B18100;
  --bd-info: #1DB8CE;
  --bd-info-bg: #0C2226;
  --bd-info-line: #1A5A64;
  --bd-info-ink: #0097AD;
  --bd-material-shell-opacity: 0.94;
  --bd-material-top-light: #FFFFFF0A;
  --bd-material-ambient-blue: #07182E66;
  --bd-shadow-shell: inset 0 1px 0 #FFFFFF0A, 0 24px 56px #05080DB8, 0 8px 20px #07182E66;
  --bd-shadow-card: inset 0 1px 0 #FFFFFF08, 0 8px 20px #05080D66;
  --bd-shadow-elevated: var(--bd-shadow-card);
  --bd-product-agent-browser: #1DB6A5;
  --bd-product-agent-mail: #7F95FE;
  --bd-product-agent-memory: #FA618E;
  --bd-product-agent-orchestration: #C1BBFF;
  --bd-product-capture: #6AD3FF;
  --bd-product-mangodisk: #FEAF7B;
  --bd-product-marketplace: #D2CA06;
  --bd-product-openseo: #19E5AD;
  --bd-product-passport: #E26ACE;
  --bd-product-store: #8DAE00;
  --bd-product-toolbox: #B97BFD;
  --bd-product-vault: #D98A0D;
  --bd-product-workforce: #FEA3D0;
  --bd-bg-hover: color-mix(in srgb, var(--bd-bg-surface) 74%, var(--bd-text-primary) 8%);
  --bd-glow-interactive: color-mix(in srgb, var(--bd-interactive-blue) 32%, transparent);
  --bd-overlay-backdrop: color-mix(in srgb, var(--bd-bg-base) 72%, transparent);
  --bd-focus-ring: 0 0 0 var(--bd-stroke-focus) var(--bd-bg-base), 0 0 0 calc(var(--bd-stroke-focus) * 2) color-mix(in srgb, var(--bd-interactive-focus) 70%, transparent);
  --bd-product-gateway: var(--bd-interactive-blue);
}

/* No stamp on the root means "follow the machine". An explicit stamp wins in both directions,
 * because :not([data-bd-theme]) stops matching the moment one is present. */
@media (prefers-color-scheme: light) {
  :root:not([data-bd-theme]) {
    color-scheme: light;
    --bd-bg-base: #ECEDEF;
    --bd-bg-subtle: #F8F9FB;
    --bd-bg-surface: #FBFCFE;
    --bd-bg-elevated: #FBFCFE;
    --bd-bg-overlay: #FDFDFF;
    --bd-text-primary: #22252A;
    --bd-text-secondary: #6B717A;
    --bd-text-tertiary: #858C96;
    --bd-text-disabled: #9AA1AB;
    --bd-text-on-interactive: #F4F7FD;
    --bd-interactive-blue: #255DA5;
    --bd-border-dimmest: #E0E3E8;
    --bd-border-dimmer: #D6DAE0;
    --bd-border-default: #CDD2D9;
    --bd-border-stronger: #C3C9D1;
    --bd-border-strongest: #B9C0C9;
    --bd-success: #0F7B1A;
    --bd-success-bg: #E8F9E7;
    --bd-success-line: #9BCD99;
    --bd-success-ink: #0F7B1A;
    --bd-danger: #B93F36;
    --bd-danger-bg: #FFECE8;
    --bd-danger-line: #F2A89E;
    --bd-danger-ink: #B93F36;
    --bd-warning: #945F00;
    --bd-warning-bg: #FDF2DD;
    --bd-warning-line: #D9B979;
    --bd-warning-ink: #945F00;
    --bd-info: #007489;
    --bd-info-bg: #DEF9FF;
    --bd-info-line: #73CEDE;
    --bd-info-ink: #007489;
    --bd-material-shell-opacity: 0.97;
    --bd-material-top-light: #FFFFFFCC;
    --bd-material-ambient-blue: #315B9B14;
    --bd-shadow-shell: inset 0 1px 0 #FFFFFFCC, 0 24px 56px #17203324, 0 8px 20px #315B9B14;
    --bd-shadow-card: inset 0 1px 0 #FFFFFFE6, 0 8px 20px #17203317;
    --bd-shadow-elevated: var(--bd-shadow-card);
    --bd-product-agent-browser: #0C796E;
    --bd-product-agent-mail: #5161D0;
    --bd-product-agent-memory: #BD3964;
    --bd-product-agent-orchestration: #5339A8;
    --bd-product-capture: #05556F;
    --bd-product-mangodisk: #7B3D05;
    --bd-product-marketplace: #535000;
    --bd-product-openseo: #0A5841;
    --bd-product-passport: #A9429A;
    --bd-product-store: #5D7303;
    --bd-product-toolbox: #854EBD;
    --bd-product-vault: #965D02;
    --bd-product-workforce: #901461;
    --bd-bg-hover: color-mix(in srgb, var(--bd-bg-surface) 74%, var(--bd-text-primary) 8%);
    --bd-glow-interactive: color-mix(in srgb, var(--bd-interactive-blue) 32%, transparent);
    --bd-overlay-backdrop: color-mix(in srgb, var(--bd-bg-base) 72%, transparent);
    --bd-focus-ring: 0 0 0 var(--bd-stroke-focus) var(--bd-bg-base), 0 0 0 calc(var(--bd-stroke-focus) * 2) color-mix(in srgb, var(--bd-interactive-focus) 70%, transparent);
    --bd-product-gateway: var(--bd-interactive-blue);
  }
}

[data-bd-theme="light"] {
  color-scheme: light;
  --bd-bg-base: #ECEDEF;
  --bd-bg-subtle: #F8F9FB;
  --bd-bg-surface: #FBFCFE;
  --bd-bg-elevated: #FBFCFE;
  --bd-bg-overlay: #FDFDFF;
  --bd-text-primary: #22252A;
  --bd-text-secondary: #6B717A;
  --bd-text-tertiary: #858C96;
  --bd-text-disabled: #9AA1AB;
  --bd-text-on-interactive: #F4F7FD;
  --bd-interactive-blue: #255DA5;
  --bd-border-dimmest: #E0E3E8;
  --bd-border-dimmer: #D6DAE0;
  --bd-border-default: #CDD2D9;
  --bd-border-stronger: #C3C9D1;
  --bd-border-strongest: #B9C0C9;
  --bd-success: #0F7B1A;
  --bd-success-bg: #E8F9E7;
  --bd-success-line: #9BCD99;
  --bd-success-ink: #0F7B1A;
  --bd-danger: #B93F36;
  --bd-danger-bg: #FFECE8;
  --bd-danger-line: #F2A89E;
  --bd-danger-ink: #B93F36;
  --bd-warning: #945F00;
  --bd-warning-bg: #FDF2DD;
  --bd-warning-line: #D9B979;
  --bd-warning-ink: #945F00;
  --bd-info: #007489;
  --bd-info-bg: #DEF9FF;
  --bd-info-line: #73CEDE;
  --bd-info-ink: #007489;
  --bd-material-shell-opacity: 0.97;
  --bd-material-top-light: #FFFFFFCC;
  --bd-material-ambient-blue: #315B9B14;
  --bd-shadow-shell: inset 0 1px 0 #FFFFFFCC, 0 24px 56px #17203324, 0 8px 20px #315B9B14;
  --bd-shadow-card: inset 0 1px 0 #FFFFFFE6, 0 8px 20px #17203317;
  --bd-shadow-elevated: var(--bd-shadow-card);
  --bd-product-agent-browser: #0C796E;
  --bd-product-agent-mail: #5161D0;
  --bd-product-agent-memory: #BD3964;
  --bd-product-agent-orchestration: #5339A8;
  --bd-product-capture: #05556F;
  --bd-product-mangodisk: #7B3D05;
  --bd-product-marketplace: #535000;
  --bd-product-openseo: #0A5841;
  --bd-product-passport: #A9429A;
  --bd-product-store: #5D7303;
  --bd-product-toolbox: #854EBD;
  --bd-product-vault: #965D02;
  --bd-product-workforce: #901461;
  --bd-bg-hover: color-mix(in srgb, var(--bd-bg-surface) 74%, var(--bd-text-primary) 8%);
  --bd-glow-interactive: color-mix(in srgb, var(--bd-interactive-blue) 32%, transparent);
  --bd-overlay-backdrop: color-mix(in srgb, var(--bd-bg-base) 72%, transparent);
  --bd-focus-ring: 0 0 0 var(--bd-stroke-focus) var(--bd-bg-base), 0 0 0 calc(var(--bd-stroke-focus) * 2) color-mix(in srgb, var(--bd-interactive-focus) 70%, transparent);
  --bd-product-gateway: var(--bd-interactive-blue);
}


[data-bd-theme="dark"][data-bd-richness="soft"] {
  --bd-bg-base: #1B1E22;
  --bd-bg-subtle: #22262A;
  --bd-richness-ambient-strength: 0.55;
  --bd-richness-bloom-strength: 0.55;
}

[data-bd-theme="dark"][data-bd-richness="balanced"] {
  --bd-bg-base: #101316;
  --bd-bg-subtle: #171A1D;
  --bd-richness-ambient-strength: 0.75;
  --bd-richness-bloom-strength: 0.75;
}

[data-bd-theme="dark"][data-bd-richness="rich"] {
  --bd-bg-base: #090C0F;
  --bd-bg-subtle: #121518;
  --bd-richness-ambient-strength: 1;
  --bd-richness-bloom-strength: 1;
}

/* Product scoping: any element subtree adopts a product identity through data-bd-product.
 * An inherited accent still carries its own scope; without one it would fall back to brand orange. */
[data-bd-product="platform"] { --bd-accent: var(--bd-product-platform); }
[data-bd-product="ade"] { --bd-accent: var(--bd-text-secondary); } /* monochrome by direction: Imported profile carrying its own oklch paper palette */
[data-bd-product="agent-browser"] { --bd-accent: var(--bd-product-agent-browser); }
[data-bd-product="agent-browser-website"] { --bd-accent: var(--bd-product-agent-browser); }
[data-bd-product="agent-mail"] { --bd-accent: var(--bd-product-agent-mail); }
[data-bd-product="agent-memory"] { --bd-accent: var(--bd-product-agent-memory); }
[data-bd-product="agent-memory-website"] { --bd-accent: var(--bd-product-agent-memory); }
[data-bd-product="agent-orchestration"] { --bd-accent: var(--bd-product-agent-orchestration); }
[data-bd-product="bytedesk-ai"] { --bd-accent: var(--bd-product-platform); }
[data-bd-product="capture"] { --bd-accent: var(--bd-product-capture); }
[data-bd-product="capture-website"] { --bd-accent: var(--bd-product-capture); }
[data-bd-product="designer-studio"] { --bd-accent: var(--bd-product-platform); }
[data-bd-product="gateway"] { --bd-accent: var(--bd-product-gateway); }
[data-bd-product="mangodisk"] { --bd-accent: var(--bd-product-mangodisk); }
[data-bd-product="marketplace"] { --bd-accent: var(--bd-product-marketplace); }
[data-bd-product="openseo"] { --bd-accent: var(--bd-product-openseo); }
[data-bd-product="passport"] { --bd-accent: var(--bd-product-passport); }
[data-bd-product="store"] { --bd-accent: var(--bd-product-store); }
[data-bd-product="task-management"] { --bd-accent: var(--bd-product-gateway); }
[data-bd-product="terminal"] { --bd-accent: var(--bd-text-secondary); } /* monochrome by direction: The cockpit stage stays on the base ground and carries no colour anywhere; its profile motif is regions built from value alone */
[data-bd-product="toolbox"] { --bd-accent: var(--bd-product-toolbox); }
[data-bd-product="vault"] { --bd-accent: var(--bd-product-vault); }
[data-bd-product="workforce"] { --bd-accent: var(--bd-product-workforce); }

/* Gateway desk tints: chrome only. Do not recolor the stage canvas. */
[data-bd-desk="sessions"]   { --bd-desk: var(--bd-desk-sessions); }
[data-bd-desk="files"]      { --bd-desk: var(--bd-desk-files); }
[data-bd-desk="projects"]   { --bd-desk: var(--bd-desk-projects); }
[data-bd-desk="agentic"]    { --bd-desk: var(--bd-desk-agentic); }
[data-bd-desk="system"]     { --bd-desk: var(--bd-desk-system); }
[data-bd-desk="developer"]  { --bd-desk: var(--bd-desk-developer); }
[data-bd-desk="store"]      { --bd-desk: var(--bd-desk-sessions); }
[data-bd-desk="security"]   { --bd-desk: var(--bd-desk-sessions); }

@media (prefers-reduced-motion: reduce) {
  :root {
    --bd-duration-fast: 0ms;
    --bd-duration-base: 0ms;
    --bd-duration-slow: 0ms;
  }
}
