/* millend-css — generated by generate.js. DO NOT EDIT BY HAND.
 * Edit theme.default.json and regenerate. Project-specific CSS goes in the
 * (custom) layer, which is declared last and always wins.
 * Layer order (low -> high priority): */
@layer reset, primitives, tokens, base, layout, components, utilities, custom;


@layer primitives {
  :root {
    /* OKLCH color ramps — raw palette, not used directly in components */
    --clr-primary-50: oklch(97.2% 0.0288 256);
    --clr-primary-100: oklch(94% 0.0512 256);
    --clr-primary-200: oklch(87.2% 0.088 256);
    --clr-primary-300: oklch(78.8% 0.1248 256);
    --clr-primary-400: oklch(69.4% 0.1504 256);
    --clr-primary-500: oklch(60.2% 0.16 256);
    --clr-primary-600: oklch(52.4% 0.1536 256);
    --clr-primary-700: oklch(44.4% 0.1344 256);
    --clr-primary-800: oklch(36.6% 0.1056 256);
    --clr-primary-900: oklch(28.8% 0.0736 256);
    --clr-primary-950: oklch(21.4% 0.048 256);

    --clr-secondary-50: oklch(97.2% 0.0198 200);
    --clr-secondary-100: oklch(94% 0.0352 200);
    --clr-secondary-200: oklch(87.2% 0.0605 200);
    --clr-secondary-300: oklch(78.8% 0.0858 200);
    --clr-secondary-400: oklch(69.4% 0.1034 200);
    --clr-secondary-500: oklch(60.2% 0.11 200);
    --clr-secondary-600: oklch(52.4% 0.1056 200);
    --clr-secondary-700: oklch(44.4% 0.0924 200);
    --clr-secondary-800: oklch(36.6% 0.0726 200);
    --clr-secondary-900: oklch(28.8% 0.0506 200);
    --clr-secondary-950: oklch(21.4% 0.033 200);

    --clr-accent-50: oklch(97.2% 0.0306 28);
    --clr-accent-100: oklch(94% 0.0544 28);
    --clr-accent-200: oklch(87.2% 0.0935 28);
    --clr-accent-300: oklch(78.8% 0.1326 28);
    --clr-accent-400: oklch(69.4% 0.1598 28);
    --clr-accent-500: oklch(60.2% 0.17 28);
    --clr-accent-600: oklch(52.4% 0.1632 28);
    --clr-accent-700: oklch(44.4% 0.1428 28);
    --clr-accent-800: oklch(36.6% 0.1122 28);
    --clr-accent-900: oklch(28.8% 0.0782 28);
    --clr-accent-950: oklch(21.4% 0.051 28);

    --clr-base-50: oklch(97.2% 0.0014 256);
    --clr-base-100: oklch(94% 0.0026 256);
    --clr-base-200: oklch(87.2% 0.0044 256);
    --clr-base-300: oklch(78.8% 0.0062 256);
    --clr-base-400: oklch(69.4% 0.0075 256);
    --clr-base-500: oklch(60.2% 0.008 256);
    --clr-base-600: oklch(52.4% 0.0077 256);
    --clr-base-700: oklch(44.4% 0.0067 256);
    --clr-base-800: oklch(36.6% 0.0053 256);
    --clr-base-900: oklch(28.8% 0.0037 256);
    --clr-base-950: oklch(21.4% 0.0024 256);

    --clr-success-50: oklch(97.2% 0.0234 150);
    --clr-success-100: oklch(94% 0.0416 150);
    --clr-success-200: oklch(87.2% 0.0715 150);
    --clr-success-300: oklch(78.8% 0.1014 150);
    --clr-success-400: oklch(69.4% 0.1222 150);
    --clr-success-500: oklch(60.2% 0.13 150);
    --clr-success-600: oklch(52.4% 0.1248 150);
    --clr-success-700: oklch(44.4% 0.1092 150);
    --clr-success-800: oklch(36.6% 0.0858 150);
    --clr-success-900: oklch(28.8% 0.0598 150);
    --clr-success-950: oklch(21.4% 0.039 150);

    --clr-warning-50: oklch(97.2% 0.0288 80);
    --clr-warning-100: oklch(94% 0.0512 80);
    --clr-warning-200: oklch(87.2% 0.088 80);
    --clr-warning-300: oklch(78.8% 0.1248 80);
    --clr-warning-400: oklch(69.4% 0.1504 80);
    --clr-warning-500: oklch(60.2% 0.16 80);
    --clr-warning-600: oklch(52.4% 0.1536 80);
    --clr-warning-700: oklch(44.4% 0.1344 80);
    --clr-warning-800: oklch(36.6% 0.1056 80);
    --clr-warning-900: oklch(28.8% 0.0736 80);
    --clr-warning-950: oklch(21.4% 0.048 80);

    --clr-danger-50: oklch(97.2% 0.036 27);
    --clr-danger-100: oklch(94% 0.064 27);
    --clr-danger-200: oklch(87.2% 0.11 27);
    --clr-danger-300: oklch(78.8% 0.156 27);
    --clr-danger-400: oklch(69.4% 0.188 27);
    --clr-danger-500: oklch(60.2% 0.2 27);
    --clr-danger-600: oklch(52.4% 0.192 27);
    --clr-danger-700: oklch(44.4% 0.168 27);
    --clr-danger-800: oklch(36.6% 0.132 27);
    --clr-danger-900: oklch(28.8% 0.092 27);
    --clr-danger-950: oklch(21.4% 0.06 27);

    --clr-info-50: oklch(97.2% 0.0216 240);
    --clr-info-100: oklch(94% 0.0384 240);
    --clr-info-200: oklch(87.2% 0.066 240);
    --clr-info-300: oklch(78.8% 0.0936 240);
    --clr-info-400: oklch(69.4% 0.1128 240);
    --clr-info-500: oklch(60.2% 0.12 240);
    --clr-info-600: oklch(52.4% 0.1152 240);
    --clr-info-700: oklch(44.4% 0.1008 240);
    --clr-info-800: oklch(36.6% 0.0792 240);
    --clr-info-900: oklch(28.8% 0.0552 240);
    --clr-info-950: oklch(21.4% 0.036 240);
  }
}

@layer tokens {
  :root {
    /* ---- color (semantic, ACSS-mirrored) ---- */
    --primary: var(--clr-primary-500);
    --primary-hover: var(--clr-primary-600);
    --primary-ultra-light: var(--clr-primary-50);
    --primary-light: var(--clr-primary-200);
    --primary-dark: var(--clr-primary-700);
    --primary-ultra-dark: var(--clr-primary-900);
    --primary-trans-10: oklch(from var(--primary) l c h / 0.1);
    --primary-trans-20: oklch(from var(--primary) l c h / 0.2);
    --primary-trans-30: oklch(from var(--primary) l c h / 0.3);
    --primary-trans-40: oklch(from var(--primary) l c h / 0.4);
    --primary-trans-50: oklch(from var(--primary) l c h / 0.5);
    --primary-trans-60: oklch(from var(--primary) l c h / 0.6);
    --primary-trans-70: oklch(from var(--primary) l c h / 0.7);
    --primary-trans-80: oklch(from var(--primary) l c h / 0.8);
    --primary-trans-90: oklch(from var(--primary) l c h / 0.9);

    --secondary: var(--clr-secondary-500);
    --secondary-hover: var(--clr-secondary-600);
    --secondary-ultra-light: var(--clr-secondary-50);
    --secondary-light: var(--clr-secondary-200);
    --secondary-dark: var(--clr-secondary-700);
    --secondary-ultra-dark: var(--clr-secondary-900);
    --secondary-trans-10: oklch(from var(--secondary) l c h / 0.1);
    --secondary-trans-20: oklch(from var(--secondary) l c h / 0.2);
    --secondary-trans-30: oklch(from var(--secondary) l c h / 0.3);
    --secondary-trans-40: oklch(from var(--secondary) l c h / 0.4);
    --secondary-trans-50: oklch(from var(--secondary) l c h / 0.5);
    --secondary-trans-60: oklch(from var(--secondary) l c h / 0.6);
    --secondary-trans-70: oklch(from var(--secondary) l c h / 0.7);
    --secondary-trans-80: oklch(from var(--secondary) l c h / 0.8);
    --secondary-trans-90: oklch(from var(--secondary) l c h / 0.9);

    --accent: var(--clr-accent-500);
    --accent-hover: var(--clr-accent-600);
    --accent-ultra-light: var(--clr-accent-50);
    --accent-light: var(--clr-accent-200);
    --accent-dark: var(--clr-accent-700);
    --accent-ultra-dark: var(--clr-accent-900);
    --accent-trans-10: oklch(from var(--accent) l c h / 0.1);
    --accent-trans-20: oklch(from var(--accent) l c h / 0.2);
    --accent-trans-30: oklch(from var(--accent) l c h / 0.3);
    --accent-trans-40: oklch(from var(--accent) l c h / 0.4);
    --accent-trans-50: oklch(from var(--accent) l c h / 0.5);
    --accent-trans-60: oklch(from var(--accent) l c h / 0.6);
    --accent-trans-70: oklch(from var(--accent) l c h / 0.7);
    --accent-trans-80: oklch(from var(--accent) l c h / 0.8);
    --accent-trans-90: oklch(from var(--accent) l c h / 0.9);

    --base: var(--clr-base-500);
    --base-hover: var(--clr-base-600);
    --base-ultra-light: var(--clr-base-50);
    --base-light: var(--clr-base-200);
    --base-dark: var(--clr-base-700);
    --base-ultra-dark: var(--clr-base-900);
    --base-trans-10: oklch(from var(--base) l c h / 0.1);
    --base-trans-20: oklch(from var(--base) l c h / 0.2);
    --base-trans-30: oklch(from var(--base) l c h / 0.3);
    --base-trans-40: oklch(from var(--base) l c h / 0.4);
    --base-trans-50: oklch(from var(--base) l c h / 0.5);
    --base-trans-60: oklch(from var(--base) l c h / 0.6);
    --base-trans-70: oklch(from var(--base) l c h / 0.7);
    --base-trans-80: oklch(from var(--base) l c h / 0.8);
    --base-trans-90: oklch(from var(--base) l c h / 0.9);

    --success: var(--clr-success-500);
    --success-hover: var(--clr-success-600);
    --success-ultra-light: var(--clr-success-50);
    --success-light: var(--clr-success-200);
    --success-dark: var(--clr-success-700);
    --success-ultra-dark: var(--clr-success-900);
    --success-trans-10: oklch(from var(--success) l c h / 0.1);
    --success-trans-20: oklch(from var(--success) l c h / 0.2);
    --success-trans-30: oklch(from var(--success) l c h / 0.3);
    --success-trans-40: oklch(from var(--success) l c h / 0.4);
    --success-trans-50: oklch(from var(--success) l c h / 0.5);
    --success-trans-60: oklch(from var(--success) l c h / 0.6);
    --success-trans-70: oklch(from var(--success) l c h / 0.7);
    --success-trans-80: oklch(from var(--success) l c h / 0.8);
    --success-trans-90: oklch(from var(--success) l c h / 0.9);

    --warning: var(--clr-warning-500);
    --warning-hover: var(--clr-warning-600);
    --warning-ultra-light: var(--clr-warning-50);
    --warning-light: var(--clr-warning-200);
    --warning-dark: var(--clr-warning-700);
    --warning-ultra-dark: var(--clr-warning-900);
    --warning-trans-10: oklch(from var(--warning) l c h / 0.1);
    --warning-trans-20: oklch(from var(--warning) l c h / 0.2);
    --warning-trans-30: oklch(from var(--warning) l c h / 0.3);
    --warning-trans-40: oklch(from var(--warning) l c h / 0.4);
    --warning-trans-50: oklch(from var(--warning) l c h / 0.5);
    --warning-trans-60: oklch(from var(--warning) l c h / 0.6);
    --warning-trans-70: oklch(from var(--warning) l c h / 0.7);
    --warning-trans-80: oklch(from var(--warning) l c h / 0.8);
    --warning-trans-90: oklch(from var(--warning) l c h / 0.9);

    --danger: var(--clr-danger-500);
    --danger-hover: var(--clr-danger-600);
    --danger-ultra-light: var(--clr-danger-50);
    --danger-light: var(--clr-danger-200);
    --danger-dark: var(--clr-danger-700);
    --danger-ultra-dark: var(--clr-danger-900);
    --danger-trans-10: oklch(from var(--danger) l c h / 0.1);
    --danger-trans-20: oklch(from var(--danger) l c h / 0.2);
    --danger-trans-30: oklch(from var(--danger) l c h / 0.3);
    --danger-trans-40: oklch(from var(--danger) l c h / 0.4);
    --danger-trans-50: oklch(from var(--danger) l c h / 0.5);
    --danger-trans-60: oklch(from var(--danger) l c h / 0.6);
    --danger-trans-70: oklch(from var(--danger) l c h / 0.7);
    --danger-trans-80: oklch(from var(--danger) l c h / 0.8);
    --danger-trans-90: oklch(from var(--danger) l c h / 0.9);

    --info: var(--clr-info-500);
    --info-hover: var(--clr-info-600);
    --info-ultra-light: var(--clr-info-50);
    --info-light: var(--clr-info-200);
    --info-dark: var(--clr-info-700);
    --info-ultra-dark: var(--clr-info-900);
    --info-trans-10: oklch(from var(--info) l c h / 0.1);
    --info-trans-20: oklch(from var(--info) l c h / 0.2);
    --info-trans-30: oklch(from var(--info) l c h / 0.3);
    --info-trans-40: oklch(from var(--info) l c h / 0.4);
    --info-trans-50: oklch(from var(--info) l c h / 0.5);
    --info-trans-60: oklch(from var(--info) l c h / 0.6);
    --info-trans-70: oklch(from var(--info) l c h / 0.7);
    --info-trans-80: oklch(from var(--info) l c h / 0.8);
    --info-trans-90: oklch(from var(--info) l c h / 0.9);

    /* surface + text shorthands map onto the neutral 'base' ramp */
    --text: var(--clr-base-900);
    --text-soft: var(--clr-base-700);
    --surface: var(--clr-base-50);
    --surface-raised: oklch(100% 0 0);
    --border: var(--clr-base-200);
    --shade: var(--clr-base-900);

    /* ---- fonts ---- */
    --font-primary: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --font-secondary: 'Inter', system-ui, sans-serif;
    --font-mono: ui-monospace, 'SF Mono', 'Cascadia Code', Menlo, monospace;
    --line-height: 1.6;
    --line-height-tight: 1.1;

    /* ---- fluid type scale ---- */
    --text-2xs: clamp(0.5787rem, 0.5797rem + -0.0041vw, 0.576rem);
    --text-xs: clamp(0.6944rem, 0.6854rem + 0.0384vw, 0.72rem);
    --text-s: clamp(0.8333rem, 0.8099rem + 0.1002vw, 0.9rem);
    --text-m: clamp(1rem, 0.956rem + 0.1878vw, 1.125rem);
    --text-l: clamp(1.2rem, 1.1274rem + 0.3099vw, 1.4063rem);
    --text-xl: clamp(1.44rem, 1.3281rem + 0.4775vw, 1.7578rem);
    --text-2xl: clamp(1.728rem, 1.5628rem + 0.705vw, 2.1973rem);
    --text-3xl: clamp(2.0736rem, 1.8366rem + 1.0111vw, 2.7466rem);

    /* ---- fluid heading scale ---- */
    --h6: clamp(1.2rem, 1.0945rem + 0.4501vw, 1.4996rem);
    --h5: clamp(1.44rem, 1.2432rem + 0.8398vw, 1.999rem);
    --h4: clamp(1.728rem, 1.3982rem + 1.4072vw, 2.6647rem);
    --h3: clamp(2.0736rem, 1.553rem + 2.2211vw, 3.552rem);
    --h2: clamp(2.4883rem, 1.6973rem + 3.375vw, 4.7348rem);
    --h1: clamp(2.986rem, 1.815rem + 4.9961vw, 6.3115rem);

    /* ---- fluid spacing scale ---- */
    --space-3xs: clamp(0.2603rem, 0.265rem + -0.0201vw, 0.2469rem);
    --space-2xs: clamp(0.3644rem, 0.3623rem + 0.0089vw, 0.3704rem);
    --space-xs: clamp(0.5102rem, 0.4942rem + 0.0681vw, 0.5556rem);
    --space-s: clamp(0.7143rem, 0.6724rem + 0.1789vw, 0.8333rem);
    --space-m: clamp(1rem, 0.912rem + 0.3756vw, 1.25rem);
    --space-l: clamp(1.4rem, 1.2327rem + 0.7136vw, 1.875rem);
    --space-xl: clamp(1.96rem, 1.6598rem + 1.2808vw, 2.8125rem);
    --space-2xl: clamp(2.744rem, 2.2247rem + 2.2156vw, 4.2188rem);
    --space-3xl: clamp(3.8416rem, 2.9661rem + 3.7356vw, 6.3281rem);
    --section-space: clamp(2.744rem, 2.2247rem + 2.2156vw, 4.2188rem);

    /* ---- radius ---- */
    --radius-s: 0.25rem;
    --radius-m: 0.5rem;
    --radius-l: 1rem;
    --radius-circle: 50%;
    --radius-pill: 100vmax;

    /* ---- widths ---- */
    --width-content: 65ch;
    --width-narrow: 45rem;
    --width-wide: 75rem;
    --width-full: 90rem;
  }
}

@layer tokens {
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --text: var(--clr-base-50);
      --text-soft: var(--clr-base-300);
      --surface: var(--clr-base-950);
      --surface-raised: var(--clr-base-900);
      --border: var(--clr-base-800);
    }
  }
  /* Manual override hook: <html data-theme="dark"> or data-theme="light" */
  [data-theme="dark"] {
      --text: var(--clr-base-50);
      --text-soft: var(--clr-base-300);
      --surface: var(--clr-base-950);
      --surface-raised: var(--clr-base-900);
      --border: var(--clr-base-800);
  }
}

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  * { margin: 0; }
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
  body {
    min-height: 100svh;
    font-family: var(--font-primary);
    font-size: var(--text-m);
    line-height: var(--line-height);
    color: var(--text);
    background: var(--surface);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
  input, button, textarea, select { font: inherit; color: inherit; }
  p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
  ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
  a { color: inherit; }
  :target { scroll-margin-block: var(--space-xl); }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  }
}

@layer base {
  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-secondary);
    line-height: var(--line-height-tight);
    text-wrap: balance;
    font-weight: 700;
  }
  h1 { font-size: var(--h1); }
  h2 { font-size: var(--h2); }
  h3 { font-size: var(--h3); }
  h4 { font-size: var(--h4); }
  h5 { font-size: var(--h5); }
  h6 { font-size: var(--h6); }
  p { max-width: var(--width-content); text-wrap: pretty; }
  a { color: var(--primary); text-decoration-thickness: 0.08em; text-underline-offset: 0.15em; transition: color 0.15s ease; }
  a:hover { color: var(--primary-hover); }
  code, pre, kbd { font-family: var(--font-mono); }
  hr { border: none; border-top: 1px solid var(--border); margin-block: var(--space-l); }
  :where(:focus-visible) { outline: 2px solid var(--primary); outline-offset: 2px; }
}

@layer layout {
  .container { width: min(100% - (var(--space-l) * 2), var(--width-wide)); margin-inline: auto; }
  .container--narrow { --width-wide: var(--width-narrow); }
  .container--full { --width-wide: var(--width-full); }
  .section { padding-block: var(--section-space); }
  .stack > * + * { margin-block-start: var(--flow, var(--space-m)); }
  .cluster { display: flex; flex-wrap: wrap; gap: var(--gap, var(--space-s)); align-items: center; }
  .grid-auto { display: grid; gap: var(--gap, var(--space-l)); grid-template-columns: repeat(auto-fit, minmax(min(var(--min, 16rem), 100%), 1fr)); }
  .center { display: grid; place-items: center; }
}

@layer components {
  .button {
    display: inline-flex; align-items: center; gap: var(--space-2xs);
    padding: var(--space-2xs) var(--space-m);
    background: var(--primary); color: oklch(100% 0 0);
    border: 1px solid transparent; border-radius: var(--radius-m);
    font-weight: 600; line-height: 1.2; cursor: pointer;
    transition: background 0.15s ease;
  }
  .button:hover { background: var(--primary-hover); }
  .button--ghost { background: transparent; color: var(--primary); border-color: var(--border); }
  .button--ghost:hover { background: var(--primary-trans-10); }
  .card {
    background: var(--surface-raised); border: 1px solid var(--border);
    border-radius: var(--radius-l); padding: var(--space-l);
  }
}

@layer utilities {
  .p-0 { padding: 0; }
  .px-0 { padding-inline: 0; }
  .py-0 { padding-block: 0; }
  .m-0 { margin: 0; }
  .my-0 { margin-block: 0; }
  .gap-0 { gap: 0; }
  .p-3xs { padding: var(--space-3xs); }
  .px-3xs { padding-inline: var(--space-3xs); }
  .py-3xs { padding-block: var(--space-3xs); }
  .m-3xs { margin: var(--space-3xs); }
  .my-3xs { margin-block: var(--space-3xs); }
  .gap-3xs { gap: var(--space-3xs); }
  .p-2xs { padding: var(--space-2xs); }
  .px-2xs { padding-inline: var(--space-2xs); }
  .py-2xs { padding-block: var(--space-2xs); }
  .m-2xs { margin: var(--space-2xs); }
  .my-2xs { margin-block: var(--space-2xs); }
  .gap-2xs { gap: var(--space-2xs); }
  .p-xs { padding: var(--space-xs); }
  .px-xs { padding-inline: var(--space-xs); }
  .py-xs { padding-block: var(--space-xs); }
  .m-xs { margin: var(--space-xs); }
  .my-xs { margin-block: var(--space-xs); }
  .gap-xs { gap: var(--space-xs); }
  .p-s { padding: var(--space-s); }
  .px-s { padding-inline: var(--space-s); }
  .py-s { padding-block: var(--space-s); }
  .m-s { margin: var(--space-s); }
  .my-s { margin-block: var(--space-s); }
  .gap-s { gap: var(--space-s); }
  .p-m { padding: var(--space-m); }
  .px-m { padding-inline: var(--space-m); }
  .py-m { padding-block: var(--space-m); }
  .m-m { margin: var(--space-m); }
  .my-m { margin-block: var(--space-m); }
  .gap-m { gap: var(--space-m); }
  .p-l { padding: var(--space-l); }
  .px-l { padding-inline: var(--space-l); }
  .py-l { padding-block: var(--space-l); }
  .m-l { margin: var(--space-l); }
  .my-l { margin-block: var(--space-l); }
  .gap-l { gap: var(--space-l); }
  .p-xl { padding: var(--space-xl); }
  .px-xl { padding-inline: var(--space-xl); }
  .py-xl { padding-block: var(--space-xl); }
  .m-xl { margin: var(--space-xl); }
  .my-xl { margin-block: var(--space-xl); }
  .gap-xl { gap: var(--space-xl); }
  .p-2xl { padding: var(--space-2xl); }
  .px-2xl { padding-inline: var(--space-2xl); }
  .py-2xl { padding-block: var(--space-2xl); }
  .m-2xl { margin: var(--space-2xl); }
  .my-2xl { margin-block: var(--space-2xl); }
  .gap-2xl { gap: var(--space-2xl); }
  .p-3xl { padding: var(--space-3xl); }
  .px-3xl { padding-inline: var(--space-3xl); }
  .py-3xl { padding-block: var(--space-3xl); }
  .m-3xl { margin: var(--space-3xl); }
  .my-3xl { margin-block: var(--space-3xl); }
  .gap-3xl { gap: var(--space-3xl); }
  .text-2xs { font-size: var(--text-2xs); }
  .text-xs { font-size: var(--text-xs); }
  .text-s { font-size: var(--text-s); }
  .text-m { font-size: var(--text-m); }
  .text-l { font-size: var(--text-l); }
  .text-xl { font-size: var(--text-xl); }
  .text-2xl { font-size: var(--text-2xl); }
  .text-3xl { font-size: var(--text-3xl); }
  .color-primary { color: var(--primary); }
  .bg-primary { background-color: var(--primary); }
  .color-secondary { color: var(--secondary); }
  .bg-secondary { background-color: var(--secondary); }
  .color-accent { color: var(--accent); }
  .bg-accent { background-color: var(--accent); }
  .color-base { color: var(--base); }
  .bg-base { background-color: var(--base); }
  .color-success { color: var(--success); }
  .bg-success { background-color: var(--success); }
  .color-warning { color: var(--warning); }
  .bg-warning { background-color: var(--warning); }
  .color-danger { color: var(--danger); }
  .bg-danger { background-color: var(--danger); }
  .color-info { color: var(--info); }
  .bg-info { background-color: var(--info); }
  .color-text { color: var(--text); }
  .bg-surface { background-color: var(--surface); }
  .radius-s { border-radius: var(--radius-s); }
  .radius-m { border-radius: var(--radius-m); }
  .radius-l { border-radius: var(--radius-l); }
  .text-center { text-align: center; }
  .flow-tight { --flow: var(--space-s); }
  .flow-loose { --flow: var(--space-xl); }
  .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
}

@layer custom {
  /* Your project-specific overrides live here, or in a separate file. */
}
