/*
 * Tangcheng Global visual-system tokens
 * Source of truth: primitive -> semantic -> component.
 * Keep raw values in the primitive layer only.
 */

:root {
    /* Primitive: color */
    --ds-color-white: #ffffff;
    --ds-color-black: #000000;
    --ds-color-brand-50: #eef5ff;
    --ds-color-brand-100: #dbe9fd;
    --ds-color-brand-200: #cfdcff;
    --ds-color-brand-300: #8bb9fb;
    --ds-color-brand-400: #6f97ff;
    --ds-color-brand-500: #2878e8;
    --ds-color-brand-600: #2450ff;
    --ds-color-brand-700: #193ed4;
    --ds-color-brand-900: #113178;
    --ds-color-ink-900: #111827;
    --ds-color-ink-800: #17181a;
    --ds-color-ink-700: #344054;
    --ds-color-ink-600: #333333;
    --ds-color-ink-500: #667085;
    --ds-color-ink-400: #8a96a8;
    --ds-color-ink-300: #9da1aa;
    --ds-color-neutral-25: #f8faff;
    --ds-color-neutral-50: #f7f8fa;
    --ds-color-neutral-75: #f5f7f8;
    --ds-color-neutral-100: #edf1f3;
    --ds-color-neutral-150: #e8ecef;
    --ds-color-neutral-200: #e9eaed;
    --ds-color-neutral-250: #e1e3e7;
    --ds-color-neutral-300: #d6dde2;
    --ds-color-neutral-350: #dfe2e7;
    --ds-color-neutral-400: #cccccc;
    --ds-color-neutral-500: #999999;
    --ds-color-danger-500: #ec4c3d;
    --ds-color-danger-600: #cc392c;
    --ds-color-hot: #ff4d49;
    --ds-color-footer-800: #17242d;
    --ds-color-banner-overlay: rgba(9, 28, 42, 0.72);

    /* Primitive: typography */
    --ds-font-family-system:
        system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB',
        'Microsoft YaHei', Arial, sans-serif;
    --ds-font-size-2xs: 11px;
    --ds-font-size-xs: 12px;
    --ds-font-size-sm: 13px;
    --ds-font-size-md: 14px;
    --ds-font-size-lg: 15px;
    --ds-font-size-xl: 16px;
    --ds-font-size-2xl: 18px;
    --ds-font-size-3xl: 20px;
    --ds-font-size-4xl: 24px;
    --ds-font-size-5xl: 28px;
    --ds-font-size-6xl: 36px;
    --ds-font-size-hero-md: 38px;
    --ds-font-size-7xl: 44px;
    --ds-font-weight-regular: 400;
    --ds-font-weight-medium: 500;
    --ds-font-weight-semibold: 600;
    --ds-font-weight-bold: 700;
    --ds-line-height-tight: 1.2;
    --ds-line-height-heading: 1.35;
    --ds-line-height-title: 1.45;
    --ds-line-height-body: 1.6;
    --ds-line-height-relaxed: 1.75;
    --ds-line-height-article: 1.9;

    /* Primitive: spacing, shape, elevation, motion */
    --ds-space-0: 0;
    --ds-space-1: 2px;
    --ds-space-2: 4px;
    --ds-space-3: 6px;
    --ds-space-4: 8px;
    --ds-space-5: 10px;
    --ds-space-6: 12px;
    --ds-space-7: 14px;
    --ds-space-8: 16px;
    --ds-space-9: 18px;
    --ds-space-10: 20px;
    --ds-space-11: 22px;
    --ds-space-12: 24px;
    --ds-space-14: 28px;
    --ds-space-16: 32px;
    --ds-space-18: 36px;
    --ds-space-20: 40px;
    --ds-space-24: 48px;
    --ds-space-32: 64px;
    --ds-radius-none: 0;
    --ds-radius-xs: 2px;
    --ds-radius-sm: 4px;
    --ds-radius-md: 6px;
    --ds-radius-lg: 8px;
    --ds-radius-full: 999px;
    --ds-border-width-default: 1px;
    --ds-border-width-strong: 2px;
    --ds-border-width-selected: 3px;
    --ds-shadow-none: none;
    --ds-shadow-card: 0 1px 2px rgba(23, 41, 75, 0.05), 0 7px 20px rgba(23, 41, 75, 0.07);
    --ds-shadow-menu: 0 8px 20px rgba(23, 41, 75, 0.11);
    --ds-shadow-raised: 0 14px 32px rgba(23, 41, 75, 0.13), 0 3px 8px rgba(23, 41, 75, 0.06);
    --ds-shadow-overlay: 0 20px 52px rgba(23, 41, 75, 0.2), 0 6px 18px rgba(23, 41, 75, 0.1);
    --ds-duration-fast: 180ms;
    --ds-duration-normal: 200ms;
    --ds-duration-slow: 300ms;
    --ds-duration-image: 350ms;
    --ds-ease-standard: ease;
    --ds-ease-emphasized: ease-out;
    --ds-z-content: 1;
    --ds-z-sticky: 100;
    --ds-z-dropdown: 200;
    --ds-z-overlay: 1000;

    /* Semantic */
    --color-surface-page: var(--ds-color-white);
    --color-surface-subtle: var(--ds-color-neutral-75);
    --color-surface-muted: var(--ds-color-neutral-100);
    --color-surface-raised: var(--ds-color-white);
    --color-surface-footer: var(--ds-color-footer-800);
    --color-surface-overlay: rgba(0, 0, 0, 0.5);
    --color-surface-banner-overlay: var(--ds-color-banner-overlay);
    --color-content-strong: var(--ds-color-ink-900);
    --color-content-default: var(--ds-color-ink-700);
    --color-content-muted: var(--ds-color-ink-500);
    --color-content-subtle: var(--ds-color-ink-500);
    --color-content-inverse: var(--ds-color-white);
    --color-action-primary: var(--ds-color-brand-600);
    --color-action-primary-hover: var(--ds-color-brand-700);
    --color-action-primary-soft: var(--ds-color-brand-50);
    --color-action-primary-soft-hover: var(--ds-color-brand-100);
    --color-action-danger: var(--ds-color-danger-500);
    --color-action-danger-hover: var(--ds-color-danger-600);
    --color-border-subtle: var(--ds-color-neutral-150);
    --color-border-default: var(--ds-color-neutral-300);
    --color-border-control: var(--ds-color-neutral-250);
    --color-border-focus: var(--ds-color-brand-600);
    --font-family-body: var(--ds-font-family-system);
    --font-size-body: var(--ds-font-size-md);
    --font-size-caption: var(--ds-font-size-xs);
    --font-size-label: var(--ds-font-size-sm);
    --font-size-title-card: var(--ds-font-size-2xl);
    --font-size-title-section: var(--ds-font-size-5xl);
    --font-size-title-page: var(--ds-font-size-5xl);
    --space-page-inline: 15px;
    --space-page-inline-mobile: var(--ds-space-6);
    --space-component-gap: var(--ds-space-8);
    --space-section-gap: var(--ds-space-18);
    --layout-content-max: 1160px;
    --layout-content-desktop: 1120px;
    --layout-content-compact: 960px;
    --layout-content-tablet: 720px;
    --layout-content-mobile: 540px;
    --layout-reading-max: 760px;
    --layout-sidebar-width: 337px;
    --layout-sidebar-topic-width: 300px;
    --radius-tag: var(--ds-radius-sm);
    --radius-control: var(--ds-radius-md);
    --radius-card: var(--ds-radius-lg);
    --radius-pill: var(--ds-radius-full);
    --shadow-card: var(--ds-shadow-card);
    --shadow-menu: var(--ds-shadow-menu);
    --shadow-raised: var(--ds-shadow-raised);
    --focus-ring-width: 2px;
    --focus-ring-offset: 2px;
    --focus-ring-color: rgba(40, 120, 232, 0.45);
    --opacity-disabled: 0.4;
    --transition-interactive:
        color var(--ds-duration-normal) var(--ds-ease-standard),
        background-color var(--ds-duration-normal) var(--ds-ease-standard),
        border-color var(--ds-duration-normal) var(--ds-ease-standard),
        box-shadow var(--ds-duration-normal) var(--ds-ease-standard);

    /* Component */
    --button-height-sm: 32px;
    --button-height-md: 40px;
    --button-height-lg: 44px;
    --button-bg: var(--color-action-primary);
    --button-bg-hover: var(--color-action-primary-hover);
    --button-fg: var(--color-content-inverse);
    --button-radius: var(--radius-control);
    --button-font-size: var(--font-size-body);
    --button-font-weight: var(--ds-font-weight-semibold);
    --input-height: 42px;
    --input-bg: var(--color-surface-raised);
    --input-fg: var(--color-content-default);
    --input-placeholder: var(--color-content-muted);
    --input-border: var(--color-border-control);
    --input-border-focus: var(--color-border-focus);
    --input-radius: var(--radius-control);
    --input-padding-inline: var(--ds-space-6);
    --card-bg: var(--color-surface-raised);
    --card-fg: var(--color-content-default);
    --card-border: var(--color-border-subtle);
    --card-border-hover: var(--color-border-default);
    --card-radius: var(--radius-card);
    --card-shadow: var(--shadow-card);
    --card-shadow-hover: var(--shadow-raised);
    --landing-feature-card-bg: var(--ds-color-brand-100);
    --landing-feature-card-title: var(--ds-color-brand-900);
    --chip-bg: var(--color-surface-subtle);
    --chip-fg: var(--color-content-default);
    --chip-bg-hover: var(--color-action-primary);
    --chip-fg-hover: var(--color-content-inverse);
    --chip-radius: var(--radius-tag);
    --topic-directory-page-padding-block: var(--ds-space-24);
    --topic-directory-content-gap: var(--ds-space-12);
    --topic-directory-search-gap: var(--ds-space-6);
    --topic-directory-letter-gap: var(--ds-space-2);
    --topic-directory-letter-size: calc(var(--button-height-md) - var(--ds-space-2));
    --topic-directory-page-title-size: var(--ds-font-size-6xl);
    --topic-directory-section-title-size: var(--ds-font-size-4xl);
    --topic-directory-group-padding: var(--ds-space-12);
    --topic-directory-group-gap: var(--ds-space-12);
    --topic-directory-grid-gap: var(--ds-space-6);
    --topic-directory-grid-columns: 6;
    --topic-directory-grid-columns-tablet: 3;
    --topic-directory-grid-columns-mobile: 2;
    --topic-directory-link-min-height: calc(var(--button-height-md) + var(--ds-space-8));
    --topic-directory-link-padding: var(--ds-space-6) var(--ds-space-8);
    --topic-directory-link-bg: var(--color-surface-subtle);
    --topic-directory-link-bg-hover: var(--color-action-primary-soft);
    --topic-directory-link-radius: var(--radius-control);
    --topic-directory-link-shadow: var(--ds-shadow-none);
    --pagination-size: 32px;
    --pagination-bg: var(--color-surface-raised);
    --pagination-fg: var(--ds-color-ink-600);
    --pagination-border: var(--color-border-control);
    --pagination-active-bg: var(--color-action-primary);
    --pagination-active-fg: var(--color-content-inverse);
    --header-height: 64px;
    --header-bg: rgba(255, 255, 255, 0.97);
    --header-border: var(--color-border-default);
    --header-z-index: var(--ds-z-sticky);
    --drawer-width: 280px;
    --drawer-overlay: var(--color-surface-overlay);
    --section-marker-width: 5px;
    --section-marker-height: 18px;
    --section-marker-color: var(--color-action-primary);
    --banner-height-default: 224px;
    --banner-height-mobile: 156px;
    --layout-banner-min-height: var(--banner-height-default);
    --layout-banner-min-height-mobile: var(--banner-height-mobile);
    --layout-card-media-width: 240px;
    --layout-card-media-tablet: 160px;
    --layout-card-media-mobile: 110px;
    --layout-category-card-content-min-height: 228px;
    --layout-category-card-media-mobile: 128px;
    --layout-category-card-media-small: 112px;
    --layout-header-logo-width: 112px;
    --layout-header-logo-compact: 104px;
    --layout-header-logo-mobile: 96px;
    --font-size-title-hero: var(--ds-font-size-7xl);
    --font-size-title-banner: var(--ds-font-size-6xl);
    --font-size-title-page-mobile: 22px;
    --font-size-body-mobile: var(--ds-font-size-lg);
    --control-touch-target: var(--button-height-lg);
    --font-size-title-banner-mobile: 26px;
    --header-logo-width: 136px;
    --header-logo-compact-width: 126px;
    --header-logo-small-width: 112px;
    --header-search-height: 36px;
    --header-search-mobile-height: 44px;
    --header-search-button-width: 44px;
    --header-search-width: 210px;
    --header-nav-font-size: var(--ds-font-size-xl);
    --header-nav-font-size-compact: var(--ds-font-size-md);
    --header-nav-layout-gap: var(--ds-space-12);
    --header-nav-gap: var(--ds-space-4);
    --header-nav-gap-compact: var(--ds-space-1);
    --header-nav-item-padding-inline: var(--ds-space-6);
    --header-nav-item-padding-inline-compact: var(--ds-space-2);
    --header-mobile-action-space: calc(var(--button-height-lg) + var(--ds-space-8));
    --home-business-icon-size: var(--button-height-md);
    --home-business-icon-glyph-size: var(--ds-space-10);
    --home-business-icon-bg: var(--color-action-primary);
    --home-business-icon-bg-hover: var(--color-action-primary-hover);
    --home-business-icon-fg: var(--color-content-inverse);
    --home-business-icon-radius: var(--radius-pill);
    --home-hero-height: 576px;
    --home-hero-height-mobile: 540px;
    --home-hero-image: url('/assets/home-hero-city.jpg');
    --home-hero-background-position: center;
    --home-hero-background-position-mobile: center;
    --home-hero-copy-max-width: 920px;
    --home-hero-summary-max-width: 660px;
    --home-hero-summary-size: var(--ds-font-size-lg);
    --home-hero-summary-size-mobile: var(--ds-font-size-lg);
    --home-hero-copy-top-offset: var(--ds-space-32);
    --home-hero-copy-top-offset-mobile: var(--ds-space-16);
    --home-hero-overlay: rgba(7, 25, 48, 0.52);
    --home-hero-workflow-bg: rgba(9, 28, 42, 0.78);
    --home-hero-workflow-border: rgba(255, 255, 255, 0.2);
    --home-hero-support-fg: var(--ds-color-brand-100);
    --home-hero-nav-min-height: calc(var(--ds-space-32) + var(--ds-space-4));
    --home-hero-nav-mobile-height: 50px;
    --home-hero-nav-width: var(--drawer-width);
    --home-hero-nav-stack-height: calc(var(--home-hero-nav-mobile-height) * 6);
    --home-hero-content-start: calc(var(--home-hero-nav-width) + var(--ds-space-32));
    --home-hero-nav-bottom-offset: var(--ds-space-8);
    --home-hero-nav-bg: var(--color-surface-banner-overlay);
    --home-hero-nav-border: var(--ds-color-ink-500);
    --home-hero-nav-active-bg: var(--ds-color-ink-700);
    --home-hero-nav-radius: var(--radius-control);
    --home-hero-title-size: 44px;
    --home-hero-title-size-tablet: var(--ds-font-size-hero-md);
    --home-hero-title-size-mobile: 32px;
    --home-hero-menu-title-bg: var(--ds-color-ink-700);
    --home-hero-menu-title-fg: var(--color-content-inverse);
    --country-hero-height: calc(var(--ds-space-32) * 6 + var(--ds-space-18));
    --country-hero-height-mobile: calc(var(--ds-space-32) * 5 + var(--ds-space-20));
    --country-hero-image: url('/assets/article-7.webp');
    --country-hero-content-max: var(--layout-reading-max);
    --country-hero-title-size: var(--ds-font-size-7xl);
    --country-hero-title-size-mobile: var(--ds-font-size-5xl);
    --country-hero-summary-size: var(--ds-font-size-2xl);
    --country-hero-proof-size: var(--font-size-label);
    --country-hero-cta-min-width: calc(var(--ds-space-32) * 3);
    --country-hero-cta-icon-size: var(--ds-space-10);
    --industry-hero-height: var(--country-hero-height);
    --industry-hero-height-mobile: var(--country-hero-height-mobile);
    --industry-hero-image: url('/assets/building-p1-04.webp');
    --industry-hero-content-max: var(--layout-reading-max);
    --industry-hero-title-size: var(--country-hero-title-size);
    --industry-hero-title-size-mobile: var(--country-hero-title-size-mobile);
    --industry-hero-summary-size: var(--country-hero-summary-size);
    --industry-section-padding-block: var(--ds-space-24);
    --industry-section-padding-block-mobile: var(--ds-space-16);
    --industry-section-grid-gap: var(--ds-space-8);
    --industry-section-card-padding: var(--ds-space-10);
    --industry-section-card-min-height: calc(var(--ds-space-32) * 3);
    --industry-section-card-min-height-mobile: calc(var(--ds-space-32) * 2);
    --industry-section-icon-size: var(--button-height-lg);
    --industry-section-icon-glyph-size: var(--ds-space-10);
    --industry-section-icon-bg: var(--color-action-primary-soft);
    --industry-section-icon-fg: var(--color-action-primary);
    --industry-process-card-min-height: calc(var(--ds-space-32) * 4 + var(--ds-space-8));
    --home-service-grid-gap: var(--ds-space-8);
    --home-service-grid-gap-compact: var(--ds-space-6);
    --home-service-section-title-size: var(--ds-font-size-6xl);
    --home-service-section-title-size-mobile: var(--ds-font-size-4xl);
    --home-content-section-title-size: var(--home-service-section-title-size);
    --home-content-section-title-size-mobile: var(--home-service-section-title-size-mobile);
    --home-service-card-min-height: calc(var(--ds-space-32) * 2 + var(--ds-space-16));
    --home-service-header-width: calc(var(--ds-space-32) * 2 + var(--ds-space-24));
    --home-service-header-min-height: calc(var(--ds-space-32) + var(--ds-space-20));
    --home-service-header-padding: var(--ds-space-10);
    --home-service-header-overlay: linear-gradient(
        var(--color-surface-banner-overlay),
        var(--color-surface-banner-overlay)
    );
    --home-service-header-icon-size: var(--button-height-lg);
    --home-service-header-icon-glyph-size: var(--ds-space-12);
    --home-service-header-icon-bg: var(--color-surface-banner-overlay);
    --home-service-header-icon-fg: var(--color-content-inverse);
    --home-service-header-icon-border: var(--ds-color-brand-200);
    --home-service-header-icon-radius: var(--radius-pill);
    --home-service-header-image-construction: url('/assets/building-p1-04.webp');
    --home-service-header-image-finance: url('/assets/article-7.webp');
    --home-service-header-image-trade: url('/assets/editor-12.webp');
    --home-service-header-image-food: url('/assets/article-5.webp');
    --home-service-header-image-registration: url('/assets/pic_zc.webp');
    --home-service-header-image-tax: url('/assets/article-7.webp');
    --home-service-header-image-trademark: url('/assets/article-3.webp');
    --home-service-header-image-patent: url('/assets/article-9.webp');
    --home-service-header-title: var(--color-content-inverse);
    --home-service-option-min-height: calc(var(--ds-space-32) + var(--ds-space-8) * 2);
    --home-service-option-padding: var(--ds-space-6);
    --home-service-icon-size: var(--button-height-lg);
    --home-service-glyph-size: var(--ds-space-10);
    --home-service-icon-bg: var(--color-action-primary-soft);
    --home-service-icon-bg-hover: var(--color-action-primary);
    --home-service-icon-fg: var(--color-action-primary);
    --home-service-icon-fg-hover: var(--color-content-inverse);
    --home-service-icon-border: var(--ds-color-brand-200);
    --home-service-icon-border-hover: var(--color-action-primary);
    --home-service-option-bg-hover: var(--color-action-primary-soft);
    --home-topics-section-padding-block: var(--ds-space-24);
    --home-topics-heading-gap: var(--ds-space-12);
    --home-topics-grid-gap: var(--ds-space-6);
    --home-topics-grid-column-count: 6;
    --home-topics-grid-column-count-compact: var(--home-topics-grid-column-count);
    --home-topics-card-min-height: calc(var(--ds-space-24) + var(--ds-space-10));
    --home-topics-card-padding: var(--ds-space-4);
    --home-topics-card-bg: var(--color-surface-raised);
    --home-topics-card-bg-hover: var(--color-action-primary-soft);
    --home-topics-card-border: var(--color-border-subtle);
    --home-topics-card-border-hover: var(--color-action-primary);
    --home-topics-card-radius: var(--radius-card);
    --home-topics-card-shadow: var(--card-shadow);
    --home-topics-card-shadow-hover: var(--card-shadow-hover);
    --home-topics-index-size: var(--ds-space-12);
    --home-topics-icon-size: var(--button-height-sm);
    --home-topics-icon-glyph-size: var(--ds-space-8);
    --home-news-grid-gap: var(--ds-space-8);
    --home-news-grid-column-count: 3;
    --home-news-category-min-height: var(--ds-space-24);
    --home-news-category-padding: var(--ds-space-8);
    --home-news-category-bg: var(--color-action-primary-soft);
    --home-news-content-padding: var(--ds-space-8);
    --home-news-content-min-height: calc(var(--ds-space-32) + var(--ds-space-24));
    --home-news-lead-min-height: calc(var(--ds-space-32) * 3 + var(--ds-space-16));
    --home-news-media-width: calc(var(--ds-space-32) * 3 + var(--ds-space-12));
    --home-news-related-column-count: 2;
    --home-news-related-row-min-height: var(--ds-space-24);
    --home-news-related-padding: var(--ds-space-6);
    --home-news-related-bg: var(--color-surface-subtle);
    --home-news-media-ratio: 16 / 9;
    --home-news-card-radius: var(--radius-card);
    --home-news-card-bg: var(--color-surface-raised);
    --home-news-card-border: var(--color-border-subtle);
    --home-news-card-border-hover: var(--color-border-default);
    --home-news-card-shadow: var(--card-shadow);
    --home-news-card-shadow-hover: var(--card-shadow-hover);
    --home-news-category-icon-size: var(--button-height-sm);
    --home-news-category-glyph-size: var(--ds-space-8);
    --home-recommend-grid-gap: var(--ds-space-8);
    --home-recommend-card-padding: var(--ds-space-8);
    --home-recommend-card-radius: var(--radius-card);
    --home-recommend-media-ratio: 16 / 9;
    --home-hotspot-tab-gap: var(--ds-space-2);
    --home-hotspot-section-padding-block: var(--ds-space-24);
    --home-hotspot-tab-min-height: var(--button-height-md);
    --home-hotspot-group-gap: var(--ds-space-4);
    --home-hotspot-group-heading-min-height: var(--button-height-lg);
    --home-hotspot-group-padding: var(--ds-space-8);
    --home-hotspot-group-icon-size: var(--button-height-sm);
    --home-hotspot-group-icon-glyph-size: var(--ds-space-12);
    --home-hotspot-group-icon-fg: var(--color-action-primary);
    --home-hotspot-link-min-height: var(--button-height-lg);
    --home-hotspot-link-padding: var(--ds-space-8);
    --home-hotspot-link-index-width: var(--ds-space-12);
    --home-hotspot-link-icon-size: var(--ds-space-10);
    --home-hotspot-directory-radius: var(--radius-card);
    --home-hotspot-directory-border: var(--color-border-subtle);
    --home-hotspot-directory-bg: var(--color-surface-raised);
    --home-hotspot-link-bg-hover: var(--color-action-primary-soft);
    --home-hotspot-category-width: calc(var(--ds-space-32) * 2 + var(--ds-space-24));
    --home-country-directory-heading-width: var(--home-hotspot-category-width);
    --home-country-directory-section-padding-block: var(--ds-space-24);
    --home-country-directory-group-gap: var(--ds-space-6);
    --home-country-directory-padding: var(--ds-space-8);
    --home-country-directory-link-min-height: var(--button-height-md);
    --banner-height-site-map: 288px;
    --banner-height-site-map-mobile: 214px;
    --article-thumbnail-width: 240px;
    --article-thumbnail-height: 150px;
    --article-thumbnail-mobile-width: 160px;
    --article-thumbnail-mobile-height: 105px;
    --article-thumbnail-small-width: 110px;
    --article-thumbnail-small-height: 80px;
    --article-card-content-min-height: 228px;
    --article-content-image-max: 529px;
    --listing-article-excerpt-lines: 2;
    --topic-detail-sidebar-gap: var(--ds-space-8);
    --topic-detail-sidebar-card-padding: var(--ds-space-8);
    --topic-detail-sidebar-link-height: var(--button-height-sm);
    --topic-detail-related-column-count: 2;
    --topic-detail-related-excerpt-lines: 3;
    --update-card-min-height: 190px;
    --update-card-min-height-mobile: 174px;
    --sidebar-consult-input-height: 42px;
    --sidebar-consult-textarea-min-height: 104px;
    --floating-tool-width: calc(var(--ds-space-24) + var(--ds-space-2));
    --floating-tool-width-compact: var(--button-height-lg);
    --floating-tool-item-height: calc(var(--ds-space-32) + var(--ds-space-7));
    --floating-tool-icon-size: var(--ds-space-10);
    --floating-tool-position-block: 64%;
    --floating-tool-offset-inline: var(--ds-space-12);
    --floating-tool-offset-inline-compact: var(--ds-space-4);
    --floating-tool-radius: var(--radius-card);
    --floating-tool-bg: var(--color-surface-raised);
    --floating-tool-border: var(--color-border-subtle);
    --floating-tool-shadow: var(--ds-shadow-menu);
    --floating-consult-trigger-width: var(--floating-tool-width);
    --floating-consult-trigger-min-height: var(--floating-tool-item-height);
    --floating-consult-panel-width: calc(var(--ds-space-32) * 5 + var(--ds-space-20));
    --floating-consult-panel-padding: var(--ds-space-11);
    --floating-consult-panel-gap: var(--ds-space-6);
    --floating-consult-panel-bg: var(--header-bg);
    --floating-consult-backdrop-blur: var(--ds-space-6);
    --floating-consult-motion-distance: var(--ds-space-4);
    --floating-consult-offset-inline: var(--floating-tool-offset-inline);
    --floating-consult-input-height: calc(var(--ds-space-18) + var(--ds-space-1));
    --floating-consult-submit-height: calc(var(--ds-space-20) + var(--ds-space-1));
    --floating-consult-close-size: var(--button-height-sm);
    --floating-consult-shadow: var(--ds-shadow-overlay);
    --floating-consult-z-index: var(--ds-z-overlay);
    --floating-tool-gap: var(--ds-space-4);
    --floating-topic-trigger-height: var(--floating-tool-item-height);
    --floating-topic-panel-width: var(--floating-consult-panel-width);
    --floating-topic-panel-padding: var(--floating-consult-panel-padding);
    --floating-topic-link-min-height: var(--button-height-md);

    /* Compatibility aliases used by existing components. */
    --cloud-blue-600: var(--ds-color-brand-600);
    --cloud-blue-700: var(--ds-color-brand-700);
    --cloud-ink-900: var(--ds-color-ink-900);
    --cloud-ink-700: var(--ds-color-ink-700);
    --cloud-ink-500: var(--ds-color-ink-500);
    --cloud-ink-400: var(--ds-color-ink-400);
    --cloud-line-100: var(--ds-color-neutral-150);
    --cloud-line-200: var(--ds-color-neutral-300);
    --cloud-fill-50: var(--ds-color-neutral-75);
    --cloud-fill-100: var(--ds-color-neutral-100);
    --cloud-white: var(--ds-color-white);
    --surface-page: var(--color-surface-page);
    --surface-subtle: var(--color-surface-subtle);
    --surface-raised: var(--color-surface-raised);
    --text-strong: var(--color-content-strong);
    --text-default: var(--color-content-default);
    --text-muted: var(--color-content-muted);
    --line-default: var(--color-border-default);
    --accent: var(--color-action-primary);
    --accent-hover: var(--color-action-primary-hover);
    --content-width: var(--layout-content-max);
    --section-gap: var(--space-section-gap);
    --font-family-sans: var(--font-family-body);

    --color-primary: var(--ds-color-brand-500);
    --color-primary-light: var(--ds-color-brand-400);
    --color-danger: var(--ds-color-danger-500);
    --color-danger-dark: var(--ds-color-danger-600);
    --color-footer-bg: var(--color-surface-footer);
    --color-text: var(--ds-color-ink-900);
    --color-text-secondary: var(--ds-color-ink-500);
    --color-text-muted: var(--ds-color-ink-300);
    --color-border: var(--ds-color-neutral-200);
    --color-bg-light: var(--ds-color-neutral-50);
    --color-bg-page: var(--color-surface-page);
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --ds-duration-fast: 0ms;
        --ds-duration-normal: 0ms;
        --ds-duration-slow: 0ms;
        --ds-duration-image: 0ms;
    }
}
