/* GENERATED by scripts/build-tokens.mjs from visual-system.json v1.6.4 and motion.json.
   Do not edit by hand. Change the JSON, then run: node scripts/build-tokens.mjs */

:root {

  /* Color (primitives). signal is the only accent; see color.md. */
  --m-color-ink: #1a1918;
  --m-color-paper: #e8e8e8;
  --m-color-concrete: #d9d9d9;
  --m-color-sheet: #fcfbfa;
  --m-color-graphite: #757575;
  --m-color-ash: #8c8d8d;
  --m-color-signal: #af69f4;

  /* Alpha */
  --m-alpha-ink-75: rgba(26, 25, 24, 0.75);
  --m-alpha-ink-65: rgba(26, 25, 24, 0.65);
  --m-alpha-ink-42: rgba(26, 25, 24, 0.42);
  --m-alpha-ink-10: rgba(26, 25, 24, 0.10);
  --m-alpha-paper-80: rgba(232, 232, 232, 0.80);
  --m-alpha-paper-42: rgba(232, 232, 232, 0.42);
  --m-alpha-paper-10: rgba(232, 232, 232, 0.10);
  --m-alpha-paper-25: rgba(232, 232, 232, 0.25);
  --m-alpha-signal-40: rgba(175, 105, 244, 0.40);
  --m-alpha-frost: rgba(40, 40, 40, 0.80);
  --m-alpha-frost-hover: rgba(144, 144, 144, 0.80);

  /* Font */
  --m-font-sans: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --m-font-serif: "Libre Baskerville", Baskerville, Georgia, serif;
  --m-weight-light: 300;
  --m-weight-regular: 400;
  --m-weight-medium: 500;
  --m-weight-semibold: 600;
  --m-weight-bold: 700;
  --m-weight-extrabold: 800;
  --m-weight-black: 900;
  --m-tracking-brand: -0.042em;
  --m-tracking-italic: -0.042em;
  --m-tracking-display: -0.03em;
  --m-tracking-body-long: -0.025em;
  --m-tracking-mono: 0em;
  --m-tracking-mono-caption: 0.08em;

  /* Type roles: size / weight / line-height / tracking */
  --m-type-display-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-type-display-size: clamp(3.125rem, 1.6rem + 6.5vw, 6.875rem);
  --m-type-display-weight: 900;
  --m-type-display-line-height: 1;
  --m-type-display-tracking: -0.03em;
  --m-type-h1-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-type-h1-size: clamp(2.8125rem, 1.9rem + 3.6vw, 5rem);
  --m-type-h1-weight: 800;
  --m-type-h1-line-height: 1.05;
  --m-type-h1-tracking: -0.042em;
  --m-type-statement-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-type-statement-size: clamp(1.875rem, 1.2rem + 2.4vw, 3rem);
  --m-type-statement-weight: 500;
  --m-type-statement-line-height: 1.3;
  --m-type-statement-tracking: -0.042em;
  --m-type-h2-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-type-h2-size: clamp(1.875rem, 1.1rem + 3vw, 3.75rem);
  --m-type-h2-weight: 500;
  --m-type-h2-line-height: 1.15;
  --m-type-h2-tracking: -0.042em;
  --m-type-h3-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-type-h3-size: clamp(1.25rem, 1rem + 1vw, 2rem);
  --m-type-h3-weight: 500;
  --m-type-h3-line-height: 1.3;
  --m-type-h3-tracking: -0.042em;
  --m-type-body-lg-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-type-body-lg-size: clamp(1.35rem, 1rem + 1.2vw, 2rem);
  --m-type-body-lg-weight: 400;
  --m-type-body-lg-line-height: 1.3;
  --m-type-body-lg-tracking: -0.025em;
  --m-type-body-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-type-body-size: 1.2rem;
  --m-type-body-weight: 500;
  --m-type-body-line-height: 1.4;
  --m-type-body-tracking: -0.042em;
  --m-type-small-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --m-type-small-size: 1rem;
  --m-type-small-weight: 500;
  --m-type-small-line-height: 1.4;
  --m-type-small-tracking: -0.042em;
  --m-type-label-family: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --m-type-label-size: clamp(0.75rem, 0.6rem + 0.35vw, 0.906rem);
  --m-type-label-weight: 400;
  --m-type-label-line-height: 1;
  --m-type-label-tracking: 0em;
  --m-type-caption-family: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --m-type-caption-size: 0.6875rem;
  --m-type-caption-weight: 400;
  --m-type-caption-line-height: 1.3;
  --m-type-caption-tracking: 0.08em;
  --m-type-emphasis-family: "Libre Baskerville", Baskerville, Georgia, serif;
  --m-type-emphasis-weight: 400;
  --m-type-emphasis-tracking: -0.042em;
  --m-type-quote-family: "Libre Baskerville", Baskerville, Georgia, serif;
  --m-type-quote-size: clamp(1.5rem, 3vw, 2.5rem);
  --m-type-quote-weight: 400;
  --m-type-quote-line-height: 1.4;
  --m-type-quote-tracking: -0.042em;

  /* Space */
  --m-space-3xs: 0.25rem;
  --m-space-2xs: 0.5rem;
  --m-space-xs: 0.75rem;
  --m-space-sm: 1rem;
  --m-space-md: 1.5rem;
  --m-space-lg: 2rem;
  --m-space-xl: 3rem;
  --m-space-2xl: 4.5rem;
  --m-space-3xl: 7.5rem;
  --m-space-4xl: 11.25rem;

  /* Radius / border */
  --m-radius-none: 0;
  --m-radius-pill: 999px;
  --m-border-rule: 1px solid;
  --m-border-hairline: 1px solid;
  --m-border-button: 1.5px solid;

  /* Effects */
  --m-effect-frost: blur(20px) saturate(220%);
  --m-effect-frost-hover: blur(60px) saturate(190%);
  --m-effect-frost-tooltip: blur(5px) saturate(220%);
  --m-effect-shadow-soft: 0 6px 24px rgba(0, 0, 0, 0.08);
  --m-effect-shadow-tooltip: 0 10px 30px rgba(0, 0, 0, 0.05);
  --m-effect-glow: 0 0 20px rgba(232, 232, 232, 0.8);
  --m-effect-blend-difference: difference;
  --m-effect-noise-opacity: 0.06;

  /* Layout */
  --m-layout-container-max: 1470px;
  --m-layout-gutter: 2rem;
  --m-layout-edge: 1rem;
  --m-layout-measure: 38em;
  --m-deck-width: 1920px;
  --m-deck-height: 1080px;
  --m-deck-margin: 16px;
  --m-deck-columns: 4;
  --m-deck-column-rule: 1px solid #757575;

  /* Z-index */
  --m-z-base: 0;
  --m-z-raised: 1;
  --m-z-dropdown: 800;
  --m-z-tooltip: 999;
  --m-z-nav: 1050;

  /* Motion (from motion.json) */
  --m-ease-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --m-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --m-ease-in-out: cubic-bezier(0.455, 0.03, 0.515, 0.955);
  --m-duration-instant: 150ms;
  --m-duration-quick: 300ms;
  --m-duration-moderate: 500ms;
  --m-duration-slow: 800ms;
  --m-duration-deliberate: 950ms;
  --m-duration-reveal: 1000ms;
  --m-duration-statement: 1500ms;

  /* Semantic theme (default: dark). Swap with .m-theme-light / .m-theme-sheet. */
  --m-bg: #1a1918;
  --m-fg: #e8e8e8;
  --m-fg-secondary: rgba(232, 232, 232, 0.80);
  --m-muted: #8c8d8d;
  --m-muted-small: #8c8d8d;
  --m-rule: rgba(232, 232, 232, 0.42);
  --m-hairline: rgba(232, 232, 232, 0.10);
  --m-focus: #af69f4;
  --m-selection: rgba(175, 105, 244, 0.40);
  --m-wordmark-ghost: rgba(117, 117, 117, 0.3);
  --m-wordmark-ghost-blend: normal;
}

.m-theme-dark {
  --m-bg: #1a1918;
  --m-fg: #e8e8e8;
  --m-fg-secondary: rgba(232, 232, 232, 0.80);
  --m-muted: #8c8d8d;
  --m-muted-small: #8c8d8d;
  --m-rule: rgba(232, 232, 232, 0.42);
  --m-hairline: rgba(232, 232, 232, 0.10);
  --m-focus: #af69f4;
  --m-selection: rgba(175, 105, 244, 0.40);
  --m-wordmark-ghost: rgba(117, 117, 117, 0.3);
  --m-wordmark-ghost-blend: normal;
}

.m-theme-light {
  --m-bg: #d9d9d9;
  --m-fg: #1a1918;
  --m-fg-secondary: rgba(26, 25, 24, 0.75);
  --m-muted: #757575;
  --m-muted-small: rgba(26, 25, 24, 0.65);
  --m-rule: rgba(26, 25, 24, 0.42);
  --m-hairline: rgba(26, 25, 24, 0.10);
  --m-focus: #1a1918;
  --m-selection: rgba(175, 105, 244, 0.40);
  --m-wordmark-ghost: #d9d9d9;
  --m-wordmark-ghost-blend: multiply;
}

.m-theme-paper {
  --m-bg: #e8e8e8;
  --m-fg: #1a1918;
  --m-fg-secondary: rgba(26, 25, 24, 0.75);
  --m-muted: #757575;
  --m-muted-small: rgba(26, 25, 24, 0.65);
  --m-label: #757575;
  --m-rule: #757575;
  --m-hairline: rgba(26, 25, 24, 0.10);
  --m-focus: #1a1918;
  --m-selection: rgba(175, 105, 244, 0.40);
  --m-wordmark-ghost: #d9d9d9;
  --m-wordmark-ghost-blend: multiply;
}

.m-theme-sheet {
  --m-bg: #fcfbfa;
  --m-fg: #1a1918;
  --m-fg-secondary: rgba(26, 25, 24, 0.75);
  --m-muted: #757575;
  --m-muted-small: rgba(26, 25, 24, 0.65);
  --m-label: #757575;
  --m-rule: #757575;
  --m-hairline: rgba(26, 25, 24, 0.10);
  --m-focus: #1a1918;
  --m-selection: rgba(175, 105, 244, 0.40);
  --m-wordmark-ghost: #d9d9d9;
  --m-wordmark-ghost-blend: multiply;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --m-duration-instant: 0ms;
    --m-duration-quick: 0ms;
    --m-duration-moderate: 0ms;
    --m-duration-slow: 0ms;
    --m-duration-deliberate: 0ms;
    --m-duration-reveal: 0ms;
    --m-duration-statement: 0ms;
  }
}
