/*
 * GENERATED by scripts/gen_tokens.mjs from design/tokens.json. Do not edit this file by hand:
 * change design/tokens.json and run `node scripts/gen_tokens.mjs`.
 * tests/design/tokens_contrast.mjs fails when this file differs from the generator's output.
 *
 * Consumer: public site (linked as /assets/tokens.css)
 * Themes: Light is the default declaration. Dark applies when the viewer chose Dark
 * (data-theme="dark"), or when the OS prefers dark and the viewer did not explicitly choose Light.
 */

:root {
  color-scheme: light;

  /* palette */
  --gt-palette-paper-cream: #f8f5ed;
  --gt-palette-paper-cream-lift: #fffdf6;
  --gt-palette-paper-sun-tint: #fbf0d2;
  --gt-palette-paper-ink: #000000;
  --gt-palette-paper-slate: #4a463d;
  --gt-palette-paper-graphite: #6d6a61;
  --gt-palette-paper-rule: #d8d2c2;
  --gt-palette-paper-sun: #ffda6e;
  --gt-palette-paper-sun-hover: #f2c94f;
  --gt-palette-paper-sun-pressed: #e0b636;
  --gt-palette-paper-disabled-fill: #e8e4d7;
  --gt-palette-paper-mint: #6ece9d;
  --gt-palette-paper-link: #1f4fb8;
  --gt-palette-paper-link-hover: #173d8f;
  --gt-palette-paper-focus-ring: #0b57d0;
  --gt-palette-paper-success-fg: #1f6b47;
  --gt-palette-paper-success-bg: #e6f4ec;
  --gt-palette-paper-success-border: #2f7d57;
  --gt-palette-paper-warning-fg: #7a4f00;
  --gt-palette-paper-warning-bg: #f9eed6;
  --gt-palette-paper-warning-border: #8a5a00;
  --gt-palette-paper-danger-fg: #9e2016;
  --gt-palette-paper-danger-bg: #fbe7e5;
  --gt-palette-paper-danger-border: #b3261e;
  --gt-palette-paper-info-fg: #22518f;
  --gt-palette-paper-info-bg: #f2eee2;
  --gt-palette-paper-info-border: #2b5fa8;
  --gt-palette-slate-night-canvas: #14130f;
  --gt-palette-slate-night-raised: #211f19;
  --gt-palette-slate-night-selected: #231e10;
  --gt-palette-slate-night-rule: #3a3730;
  --gt-palette-slate-night-disabled-fill: #312e26;
  --gt-palette-slate-night-chalk: #c4bfb2;
  --gt-palette-slate-night-chalk-muted: #8a867c;
  --gt-palette-slate-night-link: #a8c4f5;
  --gt-palette-slate-night-sun-hover: #ffe595;
  --gt-palette-slate-night-sun-pressed: #e8c94d;
  --gt-palette-slate-night-link-hover: #c3d7fa;
  --gt-palette-slate-night-focus-ring: #9cc0ff;
  --gt-palette-slate-night-success-fg: #7fd6a8;
  --gt-palette-slate-night-success-bg: #16261d;
  --gt-palette-slate-night-success-border: #4fae7d;
  --gt-palette-slate-night-warning-fg: #e8b757;
  --gt-palette-slate-night-warning-bg: #2a2113;
  --gt-palette-slate-night-warning-border: #c08f2e;
  --gt-palette-slate-night-danger-fg: #f08b81;
  --gt-palette-slate-night-danger-bg: #2b1715;
  --gt-palette-slate-night-danger-border: #c9594e;
  --gt-palette-slate-night-info-fg: #9cc0ff;
  --gt-palette-slate-night-info-bg: #1f1d16;
  --gt-palette-slate-night-info-border: #5a86d1;
  --gt-palette-neutral-0: #ffffff;
  --gt-palette-neutral-50: #f4f5f7;
  --gt-palette-neutral-200: #d9dade;
  --gt-palette-neutral-400: #8a8c94;
  --gt-palette-neutral-500: #7c7e87;
  --gt-palette-neutral-600: #6a6c75;
  --gt-palette-neutral-700: #43454d;
  --gt-palette-neutral-900: #1b1b1f;
  --gt-palette-night-50: #f2f2f4;
  --gt-palette-night-300: #c8cad1;
  --gt-palette-night-500: #9a9ca5;
  --gt-palette-night-650: #7a7c86;
  --gt-palette-night-700: #6e707a;
  --gt-palette-night-850: #33353c;
  --gt-palette-night-900: #21232a;
  --gt-palette-night-925: #1f2026;
  --gt-palette-night-950: #17181c;
  --gt-palette-blue-100: #e8effa;
  --gt-palette-blue-150: #b9d0f7;
  --gt-palette-blue-200: #9dbef5;
  --gt-palette-blue-300: #7fa9f0;
  --gt-palette-blue-450: #5f86c8;
  --gt-palette-blue-500: #4a7fcf;
  --gt-palette-blue-600: #1f5fbf;
  --gt-palette-blue-650: #1a4f9f;
  --gt-palette-blue-700: #164587;
  --gt-palette-blue-950: #172338;
  --gt-palette-green-100: #e8f3ec;
  --gt-palette-green-300: #79d49c;
  --gt-palette-green-450: #4f9e6d;
  --gt-palette-green-500: #3f8f5f;
  --gt-palette-green-700: #17703f;
  --gt-palette-green-950: #16271d;
  --gt-palette-amber-100: #fbf0da;
  --gt-palette-amber-300: #e0b061;
  --gt-palette-amber-450: #a8813f;
  --gt-palette-amber-500: #b27d1a;
  --gt-palette-amber-700: #8a5a00;
  --gt-palette-amber-950: #2b2214;
  --gt-palette-red-100: #fbe9e9;
  --gt-palette-red-300: #f08a8f;
  --gt-palette-red-450: #c3666b;
  --gt-palette-red-500: #cf4a50;
  --gt-palette-red-700: #b4282e;
  --gt-palette-red-950: #2e1a1c;
  --gt-palette-scrim-light: rgb(27 27 31 / 0.5);
  --gt-palette-scrim-dark: rgb(0 0 0 / 0.6);

  /* surface */
  --gt-surface-canvas: var(--gt-palette-paper-cream);
  --gt-surface-panel: var(--gt-palette-paper-cream);
  --gt-surface-raised: var(--gt-palette-paper-cream-lift);
  --gt-surface-selected: var(--gt-palette-paper-sun-tint);
  --gt-surface-overlay: var(--gt-palette-paper-cream);

  /* text */
  --gt-text-primary: var(--gt-palette-paper-ink);
  --gt-text-secondary: var(--gt-palette-paper-slate);
  --gt-text-muted: var(--gt-palette-paper-graphite);
  --gt-text-inverse: var(--gt-palette-paper-ink);
  --gt-text-link: var(--gt-palette-paper-link);
  --gt-text-link-hover: var(--gt-palette-paper-link-hover);

  /* border */
  --gt-border-subtle: var(--gt-palette-paper-rule);
  --gt-border-strong: var(--gt-palette-paper-ink);
  --gt-border-interactive: var(--gt-palette-paper-ink);

  /* action */
  --gt-action-primary: var(--gt-palette-paper-sun);
  --gt-action-hover: var(--gt-palette-paper-sun-hover);
  --gt-action-pressed: var(--gt-palette-paper-sun-pressed);
  --gt-action-disabled: var(--gt-palette-paper-disabled-fill);

  /* status */
  --gt-status-success-fg: var(--gt-palette-paper-success-fg);
  --gt-status-success-bg: var(--gt-palette-paper-success-bg);
  --gt-status-success-border: var(--gt-palette-paper-success-border);
  --gt-status-warning-fg: var(--gt-palette-paper-warning-fg);
  --gt-status-warning-bg: var(--gt-palette-paper-warning-bg);
  --gt-status-warning-border: var(--gt-palette-paper-warning-border);
  --gt-status-danger-fg: var(--gt-palette-paper-danger-fg);
  --gt-status-danger-bg: var(--gt-palette-paper-danger-bg);
  --gt-status-danger-border: var(--gt-palette-paper-danger-border);
  --gt-status-info-fg: var(--gt-palette-paper-info-fg);
  --gt-status-info-bg: var(--gt-palette-paper-info-bg);
  --gt-status-info-border: var(--gt-palette-paper-info-border);

  /* focus */
  --gt-focus-ring: var(--gt-palette-paper-focus-ring);
  --gt-focus-offset: 2px;

  /* space */
  --gt-space-1: 4px;
  --gt-space-2: 8px;
  --gt-space-3: 12px;
  --gt-space-4: 16px;
  --gt-space-5: 24px;
  --gt-space-6: 40px;
  --gt-space-7: 64px;

  /* type */
  --gt-type-family-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --gt-type-family-display: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --gt-type-family-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --gt-type-size-xs: 0.8125rem;
  --gt-type-size-sm: 0.875rem;
  --gt-type-size-md: 1rem;
  --gt-type-size-lg: 1.125rem;
  --gt-type-size-xl: 1.25rem;
  --gt-type-size-2xl: 1.5rem;
  --gt-type-size-3xl: 1.75rem;
  --gt-type-size-display: 4rem;
  --gt-type-weight-regular: 400;
  --gt-type-weight-medium: 500;
  --gt-type-weight-semibold: 600;

  /* lineHeight */
  --gt-line-height-tight: 1.25;
  --gt-line-height-normal: 1.5;
  --gt-line-height-relaxed: 1.6;

  /* radius */
  --gt-radius-none: 0px;
  --gt-radius: 10px;
  --gt-radius-pill: 999px;

  /* elevation */
  --gt-elevation-none: none;
  --gt-elevation-scrim: rgb(0 0 0 / 0.45);
  --gt-elevation-overlay: 0px 8px 24px 0px rgb(0 0 0 / 0.16);
  --gt-elevation-raised: 0px 12px 32px -8px rgb(0 0 0 / 0.1);

  /* motion */
  --gt-motion-fast: 180ms;
  --gt-motion-base: 220ms;
  --gt-motion-easing: cubic-bezier(0.2, 0, 0, 1);

  /* zIndex */
  --gt-z-index-base: 0;
  --gt-z-index-sticky: 100;
  --gt-z-index-menu: 1000;
  --gt-z-index-overlay: 1100;
  --gt-z-index-toast: 1200;

  /* safeArea */
  --gt-safe-area-top: var(--safe-top, env(safe-area-inset-top, 0px));
  --gt-safe-area-right: var(--safe-right, env(safe-area-inset-right, 0px));
  --gt-safe-area-bottom: var(--safe-bottom, env(safe-area-inset-bottom, 0px));
  --gt-safe-area-left: var(--safe-left, env(safe-area-inset-left, 0px));

  /* component */
  --gt-tap-target: 44px;
  --gt-component-control-comfort-target: 48px;
  --gt-component-control-border-width: 1px;
  --gt-component-control-border: var(--gt-border-interactive);
  --gt-component-control-border-error: var(--gt-status-danger-border);
  --gt-on-action: var(--gt-text-inverse);
  --gt-component-action-disabled-text: var(--gt-text-muted);
  --gt-component-focus-width: 2px;
  --gt-component-card-border: var(--gt-border-subtle);
  --gt-component-card-background: var(--gt-surface-panel);
  --gt-component-dialog-background: var(--gt-surface-overlay);
  --gt-component-dialog-border: var(--gt-border-strong);
  --gt-component-dialog-max-width: 32rem;
  --gt-component-dialog-scrim: var(--gt-elevation-scrim);
  --gt-component-dialog-sheet-breakpoint: 40rem;
  --gt-component-badge-radius: var(--gt-radius-pill);
  --gt-measure: 45rem;

  /* legacy */
  --gt-base-white: var(--gt-surface-canvas);
  --gt-base-ink: var(--gt-text-primary);
  --gt-base-ink-soft: var(--gt-text-secondary);
  --gt-base-ink-faint: var(--gt-text-muted);
  --gt-base-line: var(--gt-border-subtle);
  --gt-base-line-strong: var(--gt-border-strong);
  --gt-base-line-control: var(--gt-border-interactive);
  --gt-base-wash: var(--gt-surface-selected);
  --gt-base-blue: var(--gt-action-primary);
  --gt-base-blue-hover: var(--gt-action-hover);
  --gt-base-green: var(--gt-status-success-fg);
  --gt-base-amber: var(--gt-status-warning-fg);
  --gt-base-red: var(--gt-status-danger-fg);
  --gt-status-success: var(--gt-status-success-fg);
  --gt-status-warning: var(--gt-status-warning-fg);
  --gt-status-danger: var(--gt-status-danger-fg);
  --gt-status-info: var(--gt-status-info-fg);

  /* aura */
  --gt-aura-layer-1: #f2eee0;
  --gt-aura-layer-2: #ece7d6;
  --gt-aura-layer-3: #e6e0cb;
  --gt-aura-accent: #fbf2da;
  --gt-aura-drift: 20000ms;
  --gt-aura-z-index-ground: -1;

  /* siteAsk */
  --gt-site-ask-glass-fill: rgb(255 253 246 / 0.72);
  --gt-site-ask-glass-blur: 24px;
  --gt-site-ask-turn-reader-fill: #e6e0cb;
}

/* System: follow the OS unless Light was chosen explicitly. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --gt-surface-canvas: var(--gt-palette-slate-night-canvas);
    --gt-surface-panel: var(--gt-palette-slate-night-canvas);
    --gt-surface-raised: var(--gt-palette-slate-night-raised);
    --gt-surface-selected: var(--gt-palette-slate-night-selected);
    --gt-surface-overlay: var(--gt-palette-slate-night-canvas);
    --gt-text-primary: var(--gt-palette-paper-cream);
    --gt-text-secondary: var(--gt-palette-slate-night-chalk);
    --gt-text-muted: var(--gt-palette-slate-night-chalk-muted);
    --gt-text-link: var(--gt-palette-slate-night-link);
    --gt-text-link-hover: var(--gt-palette-slate-night-link-hover);
    --gt-border-subtle: var(--gt-palette-slate-night-rule);
    --gt-border-strong: var(--gt-palette-paper-cream);
    --gt-border-interactive: var(--gt-palette-paper-cream);
    --gt-action-hover: var(--gt-palette-slate-night-sun-hover);
    --gt-action-pressed: var(--gt-palette-slate-night-sun-pressed);
    --gt-action-disabled: var(--gt-palette-slate-night-disabled-fill);
    --gt-status-success-fg: var(--gt-palette-slate-night-success-fg);
    --gt-status-success-bg: var(--gt-palette-slate-night-success-bg);
    --gt-status-success-border: var(--gt-palette-slate-night-success-border);
    --gt-status-warning-fg: var(--gt-palette-slate-night-warning-fg);
    --gt-status-warning-bg: var(--gt-palette-slate-night-warning-bg);
    --gt-status-warning-border: var(--gt-palette-slate-night-warning-border);
    --gt-status-danger-fg: var(--gt-palette-slate-night-danger-fg);
    --gt-status-danger-bg: var(--gt-palette-slate-night-danger-bg);
    --gt-status-danger-border: var(--gt-palette-slate-night-danger-border);
    --gt-status-info-fg: var(--gt-palette-slate-night-info-fg);
    --gt-status-info-bg: var(--gt-palette-slate-night-info-bg);
    --gt-status-info-border: var(--gt-palette-slate-night-info-border);
    --gt-focus-ring: var(--gt-palette-slate-night-focus-ring);
    --gt-elevation-scrim: rgb(0 0 0 / 0.65);
    --gt-elevation-overlay: 0px 8px 24px 0px rgb(0 0 0 / 0.5);
    --gt-elevation-raised: 0px 12px 32px -8px rgb(0 0 0 / 0.55);
    --gt-aura-layer-1: #1b1913;
    --gt-aura-layer-2: #221f17;
    --gt-aura-layer-3: #2a261c;
    --gt-aura-accent: #1d1a12;
    --gt-site-ask-glass-fill: rgb(36 34 27 / 0.72);
    --gt-site-ask-turn-reader-fill: #3a3730;
  }
}

/* Explicit Dark wins over a light OS. Identical declarations to the block above. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --gt-surface-canvas: var(--gt-palette-slate-night-canvas);
  --gt-surface-panel: var(--gt-palette-slate-night-canvas);
  --gt-surface-raised: var(--gt-palette-slate-night-raised);
  --gt-surface-selected: var(--gt-palette-slate-night-selected);
  --gt-surface-overlay: var(--gt-palette-slate-night-canvas);
  --gt-text-primary: var(--gt-palette-paper-cream);
  --gt-text-secondary: var(--gt-palette-slate-night-chalk);
  --gt-text-muted: var(--gt-palette-slate-night-chalk-muted);
  --gt-text-link: var(--gt-palette-slate-night-link);
  --gt-text-link-hover: var(--gt-palette-slate-night-link-hover);
  --gt-border-subtle: var(--gt-palette-slate-night-rule);
  --gt-border-strong: var(--gt-palette-paper-cream);
  --gt-border-interactive: var(--gt-palette-paper-cream);
  --gt-action-hover: var(--gt-palette-slate-night-sun-hover);
  --gt-action-pressed: var(--gt-palette-slate-night-sun-pressed);
  --gt-action-disabled: var(--gt-palette-slate-night-disabled-fill);
  --gt-status-success-fg: var(--gt-palette-slate-night-success-fg);
  --gt-status-success-bg: var(--gt-palette-slate-night-success-bg);
  --gt-status-success-border: var(--gt-palette-slate-night-success-border);
  --gt-status-warning-fg: var(--gt-palette-slate-night-warning-fg);
  --gt-status-warning-bg: var(--gt-palette-slate-night-warning-bg);
  --gt-status-warning-border: var(--gt-palette-slate-night-warning-border);
  --gt-status-danger-fg: var(--gt-palette-slate-night-danger-fg);
  --gt-status-danger-bg: var(--gt-palette-slate-night-danger-bg);
  --gt-status-danger-border: var(--gt-palette-slate-night-danger-border);
  --gt-status-info-fg: var(--gt-palette-slate-night-info-fg);
  --gt-status-info-bg: var(--gt-palette-slate-night-info-bg);
  --gt-status-info-border: var(--gt-palette-slate-night-info-border);
  --gt-focus-ring: var(--gt-palette-slate-night-focus-ring);
  --gt-elevation-scrim: rgb(0 0 0 / 0.65);
  --gt-elevation-overlay: 0px 8px 24px 0px rgb(0 0 0 / 0.5);
  --gt-elevation-raised: 0px 12px 32px -8px rgb(0 0 0 / 0.55);
  --gt-aura-layer-1: #1b1913;
  --gt-aura-layer-2: #221f17;
  --gt-aura-layer-3: #2a261c;
  --gt-aura-accent: #1d1a12;
  --gt-site-ask-glass-fill: rgb(36 34 27 / 0.72);
  --gt-site-ask-turn-reader-fill: #3a3730;
}

/* Reduced motion: every transition token collapses to 0ms; nothing depends on the animation. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --gt-motion-fast: 0ms;
    --gt-motion-base: 0ms;
    --gt-aura-drift: 0ms;
  }
}
