/* GRANDTHAI Design System 2.0 — generated production token export.
 * Generated by tools/export-design-tokens.py from theme design-tokens.json.
 * Registry SHA256: 29cbdfb2446b119c509ee0d08691d9a5d72f23ba25686cef1738a366d1bc0c2c
 * Edit the registry, never this file. No :root, reset, font request or outer admin style.
 */
body.gt-design-system-v2, .editor-styles-wrapper {
  /* primitive */
  --ds2-green: #284E37;
  --ds2-green-accent: #427730;
  --ds2-burgundy: #7F2A21;
  --ds2-gold: #F3DCAC;
  --ds2-cream: #F8E9C4;
  --ds2-green-dark: #1E3D2C;
  --ds2-green-soft: #355E45;
  --ds2-ink: #294A36;
  --ds2-muted: #536257;
  --ds2-p-border: rgba(40,78,55,.16);
  --ds2-space-0: 0px;
  --ds2-space-2: 2px;
  --ds2-space-4: 4px;
  --ds2-space-8: 8px;
  --ds2-space-12: 12px;
  --ds2-space-16: 16px;
  --ds2-space-18: 18px;
  --ds2-space-20: 20px;
  --ds2-space-24: 24px;
  --ds2-space-28: 28px;
  --ds2-space-32: 32px;
  --ds2-space-36: 36px;
  --ds2-space-40: 40px;
  --ds2-space-44: 44px;
  --ds2-space-46: 46px;
  --ds2-space-48: 48px;
  --ds2-space-56: 56px;
  --ds2-space-64: 64px;
  --ds2-p-content-max: 1220px;
  --ds2-p-wide-max: 1320px;
  --ds2-p-prose-measure: 68ch;
  --ds2-p-font-family: "Nunito Sans", sans-serif;
  --ds2-p-weight-regular: 400;
  --ds2-p-weight-medium: 600;
  --ds2-p-weight-bold: 700;
  --ds2-p-weight-extra-bold: 800;
  --ds2-p-weight-heading: 850;
  --ds2-p-weight-action: 900;
  --ds2-size-10: 10px;
  --ds2-size-11: 11px;
  --ds2-size-12: 12px;
  --ds2-size-13: 13px;
  --ds2-size-14: 14px;
  --ds2-size-15: 15px;
  --ds2-size-16: 16px;
  --ds2-size-18: 18px;
  --ds2-size-19: 19px;
  --ds2-size-21: 21px;
  --ds2-size-22: 22px;
  --ds2-size-26: 26px;
  --ds2-size-27: 27px;
  --ds2-size-32: 32px;
  --ds2-size-17: 17px;
  --ds2-p-h1-desktop: clamp(34px, 3.45vw, 49px);
  --ds2-p-h1-tablet: clamp(34px, 5vw, 42px);
  --ds2-p-h1-mobile: clamp(28px, 7.1vw, 32px);
  --ds2-p-h2-desktop: clamp(30px, 2.7vw, 36px);
  --ds2-p-lead-desktop: clamp(16px, 1.45vw, 19px);
  --ds2-p-line-h1: 1.07;
  --ds2-p-line-h1-mobile: 1.08;
  --ds2-p-line-heading: 1.15;
  --ds2-p-line-heading-mobile: 1.1;
  --ds2-p-line-compact: 1.2;
  --ds2-p-line-body: 1.55;
  --ds2-p-line-small: 1.5;
  --ds2-p-line-caption: 1.35;
  --ds2-p-track-heading: -.035em;
  --ds2-p-track-eyebrow: .08em;
  --ds2-radius-16: 16px;
  --ds2-radius-20: 20px;
  --ds2-radius-24: 24px;
  --ds2-radius-32: 32px;
  --ds2-radius-999: 999px;
  --ds2-p-shadow-card: 0 16px 48px rgba(38,66,48,.11);
  --ds2-p-shadow-strong: 0 24px 70px rgba(10,30,20,.22);
  --ds2-p-duration-feedback: 120ms;
  --ds2-p-duration-state: 180ms;
  --ds2-p-duration-media: 280ms;
  --ds2-p-duration-reveal: 380ms;
  --ds2-p-duration-none: 0ms;
  --ds2-p-ease: cubic-bezier(.22,1,.36,1);
  --ds2-p-hover-lift: -1px;
  --ds2-p-hover-scale: 1.015;
  --ds2-p-static-scale: 1;
  /* semantic */
  --ds2-surface-page: var(--ds2-gold);
  --ds2-surface-raised: var(--ds2-cream);
  --ds2-surface-inverse: var(--ds2-green);
  --ds2-surface-inverse-deep: var(--ds2-green-dark);
  --ds2-text-primary: var(--ds2-ink);
  --ds2-text-secondary: var(--ds2-muted);
  --ds2-text-on-inverse: var(--ds2-gold);
  --ds2-text-accent: var(--ds2-burgundy);
  --ds2-action-primary-bg: var(--ds2-green);
  --ds2-action-primary-fg: var(--ds2-gold);
  --ds2-action-primary-hover: var(--ds2-green-dark);
  --ds2-action-secondary-fg: var(--ds2-green);
  --ds2-action-secondary-bg: var(--ds2-cream);
  --ds2-focus-color: var(--ds2-burgundy);
  --ds2-border: var(--ds2-p-border);
  --ds2-border-selected: var(--ds2-green);
  --ds2-font-family: var(--ds2-p-font-family);
  --ds2-text-h1: var(--ds2-p-h1-desktop);
  --ds2-text-h2: var(--ds2-p-h2-desktop);
  --ds2-text-h3: var(--ds2-size-22);
  --ds2-text-h4: var(--ds2-size-18);
  --ds2-text-body: var(--ds2-size-16);
  --ds2-text-lead: var(--ds2-p-lead-desktop);
  --ds2-text-hero-lead: var(--ds2-size-16);
  --ds2-text-small: var(--ds2-size-14);
  --ds2-text-note: var(--ds2-size-13);
  --ds2-text-caption: var(--ds2-size-11);
  --ds2-text-eyebrow: var(--ds2-size-12);
  --ds2-text-button: var(--ds2-size-14);
  --ds2-text-field: var(--ds2-size-16);
  --ds2-text-label: var(--ds2-size-12);
  --ds2-text-card-title: var(--ds2-size-21);
  --ds2-text-card-description: var(--ds2-size-14);
  --ds2-text-card-price: var(--ds2-size-22);
  --ds2-text-card-meta: var(--ds2-size-13);
  --ds2-text-nav: var(--ds2-size-13);
  --ds2-line-h1: var(--ds2-p-line-h1);
  --ds2-line-h2: var(--ds2-p-line-heading);
  --ds2-line-h3: var(--ds2-p-line-heading);
  --ds2-line-h4: var(--ds2-p-line-compact);
  --ds2-line-body: var(--ds2-p-line-body);
  --ds2-line-small: var(--ds2-p-line-small);
  --ds2-line-button: var(--ds2-p-line-compact);
  --ds2-line-caption: var(--ds2-p-line-caption);
  --ds2-weight-body: var(--ds2-p-weight-regular);
  --ds2-weight-h1: var(--ds2-p-weight-heading);
  --ds2-weight-h2: var(--ds2-p-weight-heading);
  --ds2-weight-h3: var(--ds2-p-weight-bold);
  --ds2-weight-h4: var(--ds2-p-weight-extra-bold);
  --ds2-weight-button: var(--ds2-p-weight-action);
  --ds2-weight-label: var(--ds2-p-weight-action);
  --ds2-weight-field: var(--ds2-p-weight-medium);
  --ds2-track-heading: var(--ds2-p-track-heading);
  --ds2-track-eyebrow: var(--ds2-p-track-eyebrow);
  --ds2-content-max: var(--ds2-p-content-max);
  --ds2-wide-max: var(--ds2-p-wide-max);
  --ds2-prose-measure: var(--ds2-p-prose-measure);
  --ds2-gutter: var(--ds2-space-20);
  --ds2-section-space: var(--ds2-space-56);
  --ds2-section-compact-space: var(--ds2-space-28);
  --ds2-section-feature-space: var(--ds2-space-64);
  --ds2-heading-gap: var(--ds2-space-28);
  --ds2-gap: var(--ds2-space-16);
  --ds2-layout-card-padding: var(--ds2-space-20);
  --ds2-layout-panel-padding: var(--ds2-space-32);
  --ds2-layout-control-padding-x: var(--ds2-space-18);
  --ds2-layout-control-padding-y: var(--ds2-space-8);
  --ds2-control-normal-height: var(--ds2-space-46);
  --ds2-control-compact-height: var(--ds2-space-44);
  --ds2-control-touch-height: var(--ds2-space-48);
  --ds2-control-field-height: var(--ds2-space-48);
  --ds2-control-icon-size: var(--ds2-space-44);
  --ds2-shape-card-radius: var(--ds2-radius-24);
  --ds2-shape-panel-radius: var(--ds2-radius-32);
  --ds2-shape-media-radius: var(--ds2-radius-16);
  --ds2-shape-pill-radius: var(--ds2-radius-999);
  --ds2-shape-textarea-radius: var(--ds2-radius-24);
  --ds2-shadow-card: var(--ds2-p-shadow-card);
  --ds2-shadow-strong: var(--ds2-p-shadow-strong);
  --ds2-motion-state: var(--ds2-p-duration-state);
  --ds2-motion-feedback: var(--ds2-p-duration-feedback);
  --ds2-motion-media: var(--ds2-p-duration-media);
  --ds2-motion-reveal: var(--ds2-p-duration-reveal);
  --ds2-ease: var(--ds2-p-ease);
  --ds2-hover-lift: var(--ds2-p-hover-lift);
  --ds2-hover-scale: var(--ds2-p-hover-scale);
  --ds2-reveal-offset: var(--ds2-space-8);
  /* component */
  --ds2-button-height: var(--ds2-control-normal-height);
  --ds2-button-compact-height: var(--ds2-control-compact-height);
  --ds2-button-touch-height: var(--ds2-control-touch-height);
  --ds2-button-padding-x: var(--ds2-layout-control-padding-x);
  --ds2-button-padding-y: var(--ds2-layout-control-padding-y);
  --ds2-button-radius: var(--ds2-shape-pill-radius);
  --ds2-button-font-size: var(--ds2-text-button);
  --ds2-button-font-weight: var(--ds2-weight-button);
  --ds2-button-primary-bg: var(--ds2-action-primary-bg);
  --ds2-button-primary-fg: var(--ds2-action-primary-fg);
  --ds2-button-primary-hover: var(--ds2-action-primary-hover);
  --ds2-field-height: var(--ds2-control-field-height);
  --ds2-field-radius: var(--ds2-shape-pill-radius);
  --ds2-textarea-radius: var(--ds2-shape-textarea-radius);
  --ds2-field-bg: var(--ds2-surface-raised);
  --ds2-field-color: var(--ds2-text-primary);
  --ds2-field-border: var(--ds2-border);
  --ds2-field-font-size: var(--ds2-text-field);
  --ds2-icon-control-size: var(--ds2-control-icon-size);
  --ds2-card-radius: var(--ds2-shape-card-radius);
  --ds2-card-padding: var(--ds2-layout-card-padding);
  --ds2-card-bg: var(--ds2-surface-raised);
  --ds2-card-border: var(--ds2-border);
  --ds2-card-title-size: var(--ds2-text-card-title);
  --ds2-card-price-size: var(--ds2-text-card-price);
  --ds2-panel-radius: var(--ds2-shape-panel-radius);
  --ds2-panel-padding: var(--ds2-layout-panel-padding);
  --ds2-media-radius: var(--ds2-shape-media-radius);
  --ds2-pill-radius: var(--ds2-shape-pill-radius);
  --ds2-choice-bg: var(--ds2-surface-raised);
  --ds2-choice-selected-bg: var(--ds2-surface-page);
  --ds2-choice-selected-fg: var(--ds2-text-primary);
  --ds2-choice-selected-border: var(--ds2-border-selected);
}

@media (max-width: 1024px) {
  body.gt-design-system-v2, .editor-styles-wrapper {
    --ds2-text-h1: var(--ds2-p-h1-tablet);
    --ds2-text-h2: var(--ds2-size-32);
    --ds2-text-lead: var(--ds2-size-17);
    --ds2-gutter: var(--ds2-space-16);
    --ds2-section-space: var(--ds2-space-48);
    --ds2-section-feature-space: var(--ds2-space-48);
    --ds2-section-compact-space: var(--ds2-space-24);
    --ds2-heading-gap: var(--ds2-space-24);
    --ds2-layout-panel-padding: var(--ds2-space-24);
  }
}

@media (max-width: 820px) {
  body.gt-design-system-v2, .editor-styles-wrapper {
    --ds2-text-h1: var(--ds2-p-h1-mobile);
    --ds2-text-h2: var(--ds2-size-27);
    --ds2-text-h3: var(--ds2-size-19);
    --ds2-text-h4: var(--ds2-size-16);
    --ds2-text-lead: var(--ds2-size-15);
    --ds2-text-hero-lead: var(--ds2-size-15);
    --ds2-text-small: var(--ds2-size-13);
    --ds2-text-note: var(--ds2-size-12);
    --ds2-text-eyebrow: var(--ds2-size-10);
    --ds2-text-button: var(--ds2-size-13);
    --ds2-text-card-title: var(--ds2-size-18);
    --ds2-text-card-price: var(--ds2-size-19);
    --ds2-text-card-meta: var(--ds2-size-12);
    --ds2-text-nav: var(--ds2-size-14);
    --ds2-line-h1: var(--ds2-p-line-h1-mobile);
    --ds2-line-h2: var(--ds2-p-line-heading-mobile);
  }
}

@media (max-width: 600px) {
  body.gt-design-system-v2, .editor-styles-wrapper {
    --ds2-section-space: var(--ds2-space-36);
    --ds2-section-feature-space: var(--ds2-space-36);
    --ds2-heading-gap: var(--ds2-space-20);
    --ds2-gap: var(--ds2-space-12);
    --ds2-layout-card-padding: var(--ds2-space-16);
    --ds2-layout-panel-padding: var(--ds2-space-20);
    --ds2-shape-card-radius: var(--ds2-radius-20);
    --ds2-shape-panel-radius: var(--ds2-radius-24);
  }
}

@media (max-width: 520px) {
  body.gt-design-system-v2, .editor-styles-wrapper {
    --ds2-text-h2: var(--ds2-size-26);
    --ds2-text-card-description: var(--ds2-size-13);
  }
}

@media (max-width: 360px) {
  body.gt-design-system-v2, .editor-styles-wrapper {
    --ds2-gutter: var(--ds2-space-12);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.gt-design-system-v2, .editor-styles-wrapper {
    --ds2-motion-state: var(--ds2-p-duration-none);
    --ds2-motion-feedback: var(--ds2-p-duration-none);
    --ds2-motion-media: var(--ds2-p-duration-none);
    --ds2-motion-reveal: var(--ds2-p-duration-none);
    --ds2-hover-lift: var(--ds2-space-0);
    --ds2-hover-scale: var(--ds2-p-static-scale);
    --ds2-reveal-offset: var(--ds2-space-0);
  }
}
