/* CityChat bridge to the verified LDS 0.9.7 machine contract.
   Shared colours and fonts are delivered by vendor/landometer/v0.9.7/build-kit/lds-0.9.7.css.
   Non-colour values below are exact retained roles from tokens.v0.9.7.json;
   the remaining elevation and overlay roles are inherited, unchanged primitives. */
:root {
  color-scheme: light;
  --z-tooltip: 700;
  --opacity-soft: .56;
  --opacity-subtle: .40;
  --opacity-ghost: .24;
  --type-caption: .75rem;
  --type-label: .8125rem;
  --type-body-sm: .875rem;
  --type-body: 1rem;
  --type-body-lg: 1.125rem;
  --type-h3: clamp(1.35rem, 2vw, 1.75rem);
  --type-h2: clamp(2rem, 4vw, 3.25rem);
  --type-h1-en: clamp(3.25rem, 7vw, 6.5rem);
  --type-h1-th: clamp(2.5rem, 6vw, 5rem);
  --space-0: 0; --space-1: 4px; --space-2: 8px; --space-3: 12px;
  --space-4: 16px; --space-5: 24px; --space-6: 32px;
  --space-7: 48px; --space-8: 64px; --space-9: 96px; --space-10: 128px;
  --radius-xs: 6px; --radius-sm: 10px; --radius-md: 16px;
  --radius-lg: 24px; --radius-xl: 32px; --radius-pill: 999px;
  --container-reading: 760px; --container-default: 1120px; --container-wide: 1280px;
  --gutter-mobile: 16px; --gutter-tablet: 24px; --gutter-desktop: 32px;
  --elevation-xs: 0 1px 2px rgba(30,34,48,.08);
  --elevation-sm: 0 4px 12px rgba(30,34,48,.10);
  --motion-duration-feedback: 120ms;
  --motion-duration-state: 200ms;
  --motion-duration-reveal: 640ms;
  --motion-duration-emphasis: 560ms;
  --motion-delay-stagger: 120ms;
  --motion-delay-stagger-cap: 600ms;
  --motion-distance-feedback: 2px;
  --motion-distance-reveal: 20px;
  --motion-distance-approach: 32px;
  --motion-distance-approach-inline: 36px;
  --motion-duration-approach-opacity: 760ms;
  --motion-duration-approach-transform: 920ms;
  --motion-ease-state: cubic-bezier(.2,0,0,1);
  --motion-ease-enter: cubic-bezier(.16,1,.3,1);
  --motion-ease-settle: cubic-bezier(.2,.9,.25,1.08);
  --motion-ease-press: cubic-bezier(.3,0,.6,1);
  --leading-display-en: 1.02;
  --leading-display-th: 1.25;
  --leading-ui-heading-en: 1.22;
  --leading-ui-heading-th: 1.32;
  --leading-body: 1.60;
  --leading-label: 1.35;
  --font-display-en: "Arvo", Georgia, Cambria, "Times New Roman", serif;
  --font-display-th: "IBM Plex Sans Thai Looped", "Noto Sans Thai Looped", "Leelawadee UI", Tahoma, sans-serif;
  --font-ui-heading-en: var(--font-display-en);
  --font-ui-heading-th: var(--font-display-th);
  --font-body: "Bai Jamjuree", "Noto Sans Thai", "Leelawadee UI", Tahoma, sans-serif;
  --font-technical-latin: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --font-technical-th: "IBM Plex Sans Thai", "Noto Sans Thai", "Leelawadee UI", Tahoma, sans-serif;
  --font-technical: "JetBrains Mono", "IBM Plex Sans Thai", "SFMono-Regular", Consolas, monospace;
  --target-min: 44px;
  --fg-on-deep-primary: #FFFFFF;
  --fg-on-deep-secondary: #F1F4EF;
  --fg-on-light-primary: #182327;
  --fg-on-light-secondary: #293337;
  --fg-interactive-surface: #FFFFFF;
  --fg-interactive-ink: #182327;
  --overlay-glass: rgba(17,25,29,.88);
  --overlay-glass-ink: #FFFFFF;
  --overlay-glass-ink2: #F1F4EF;
  --overlay-glass-border: rgba(241,244,239,.24);
  --status-source-candidate: var(--semantic-warning-ink);
  --status-source-derived: var(--semantic-assisted-ink);
  --status-source-other: var(--interaction-accent);
  --status-source-verified-bar: var(--brand-blue);
  --surface-atmosphere-measure: var(--ldm-atmosphere-gradient-measure-deep);
  --on-atmosphere-measure: var(--fg-on-deep-primary);
  --on-atmosphere-measure-2: var(--fg-on-deep-secondary);
  --surface-atmosphere-ground: var(--ldm-atmosphere-gradient-ground-mist);
  --on-atmosphere-ground: var(--fg-on-light-primary);
  --on-atmosphere-ground-2: var(--fg-on-light-secondary);
  --surface-atmosphere-cultivate: var(--ldm-atmosphere-gradient-cultivate-glow);
  --on-atmosphere-cultivate: var(--fg-on-light-primary);
  --on-atmosphere-cultivate-2: var(--fg-on-light-secondary);
  --surface-atmosphere-diversity: var(--ldm-atmosphere-gradient-diversity-spectrum);
  --on-atmosphere-diversity: var(--fg-on-light-primary);
  --on-atmosphere-diversity-2: var(--fg-on-light-secondary);
  --product-citychat-gradient: linear-gradient(135deg, var(--ldm-product-citychat-light-primary) 0%, var(--ldm-product-citychat-light-accent) 100%);
  font-synthesis: none;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --surface-atmosphere-measure: var(--ldm-atmosphere-gradient-measure-luminous);
  --on-atmosphere-measure: var(--fg-on-light-primary);
  --on-atmosphere-measure-2: var(--fg-on-light-secondary);
  --surface-atmosphere-ground: var(--ldm-atmosphere-gradient-ground-current);
  --on-atmosphere-ground: var(--fg-on-deep-primary);
  --on-atmosphere-ground-2: var(--fg-on-deep-secondary);
  --surface-atmosphere-cultivate: var(--ldm-atmosphere-gradient-cultivate-mist);
  --product-citychat-gradient: linear-gradient(135deg, var(--ldm-product-citychat-dark-primary) 0%, var(--ldm-product-citychat-dark-accent) 100%);
}
