:root {
    /* Color tokens: balanced warm studio palette */
    --color-bg-page: #f5f0e7;
    --color-bg-section: #efe8dd;
    --color-surface-primary: #fbf8f2;
    --color-surface-secondary: #f2ebe2;
    --color-surface-feature: #e2d9cf;
    --color-border-default: #d8cec0;
    --color-text-primary: #2e2a27;
    --color-text-secondary: #5b544c;
    --color-text-muted: #7a7168;
    --color-accent-primary: #b36c52;
    --color-accent-primary-hover: #965740;
    --color-accent-support: #6e785e;
    --color-accent-support-strong: #59624c;
    --color-accent-support-wash: #e3e8dd;
    --color-state-locked-text: #a49583;
    --color-state-locked-bg: #eee6dc;
    --color-state-error-text: #8f4a3c;
    --color-state-error-bg: #f1e2dc;
    --color-state-warning-text: #7b633f;
    --color-state-warning-bg: #efe4cf;
    --color-white: #fff8f2;

    /* Semantic role aliases */
    --color-background: var(--color-bg-page);
    --color-surface: var(--color-surface-primary);
    --color-surface-strong: var(--color-surface-secondary);
    --color-surface-locked: var(--color-state-locked-bg);
    --color-surface-callout: var(--color-surface-secondary);
    --color-text: var(--color-text-primary);
    --color-border: var(--color-border-default);
    --color-border-strong: var(--color-accent-support);
    --color-action-primary: var(--color-accent-primary);
    --color-action-primary-hover: var(--color-accent-primary-hover);
    --color-action-secondary: var(--color-state-error-text);
    --color-highlight: var(--color-surface-feature);
    --color-focus: var(--color-accent-primary);
    --color-link-default: var(--color-text-primary);
    --color-link-muted: var(--color-text-secondary);
    --color-button-primary-bg: var(--color-accent-primary);
    --color-button-primary-text: var(--color-white);
    --color-button-primary-bg-hover: var(--color-accent-primary-hover);
    --color-button-secondary-bg: var(--color-surface-primary);
    --color-button-secondary-text: var(--color-text-primary);
    --color-button-secondary-border: var(--color-border-default);
    --color-badge-guidance-bg: var(--color-surface-feature);
    --color-badge-guidance-text: var(--color-accent-primary-hover);
    --color-badge-support-bg: var(--color-accent-support-wash);
    --color-badge-support-text: var(--color-accent-support-strong);
    --color-badge-neutral-bg: var(--color-surface-secondary);
    --color-badge-neutral-text: var(--color-text-secondary);
    --color-badge-locked-bg: var(--color-state-locked-bg);
    --color-badge-locked-text: var(--color-state-locked-text);
    --color-focus-ring: rgb(179 108 82 / 18%);
    --color-shadow: rgb(46 42 39 / 7%);
    --color-paper-grain: rgb(46 42 39 / 3%);

    /* Typography tokens */
    --font-family-display: "Source Serif 4", Georgia, "Times New Roman", serif;
    --font-family-ui: "Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont,
        "Segoe UI", sans-serif;
    --font-size-eyebrow: 0.78rem;
    --font-size-caption: 0.82rem;
    --font-size-body-sm: 0.92rem;
    --font-size-body-md: 1rem;
    --font-size-body-lg: 1.08rem;
    --font-size-heading-sm: 1.2rem;
    --font-size-heading-md: clamp(1.45rem, 2vw, 1.75rem);
    --font-size-heading-lg: clamp(1.85rem, 3vw, 2.35rem);
    --font-size-display: clamp(2.2rem, 4vw, 3.35rem);
    --line-height-tight: 1.12;
    --line-height-heading: 1.18;
    --line-height-body: 1.6;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --letter-spacing-eyebrow: 0.08em;
    --letter-spacing-tight: -0.025em;

    /* Spacing tokens */
    --space-2xs: 0.25rem;
    --space-xs: 0.5rem;
    --space-sm: 0.75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    --space-4xl: 5rem;

    /* Shape, border, and layout tokens */
    --radius-sm: 0.875rem;
    --radius-md: 1.125rem;
    --radius-lg: 1.375rem;
    --radius-xl: 1.75rem;
    --radius-pill: 999px;
    --border-width-thin: 1px;
    --border-default: var(--border-width-thin) solid var(--color-border-default);
    --shadow-soft: 0 1px 0 var(--color-shadow);
    --shadow-none: none;
    --site-max-width: 1240px;
    --site-readable-width: 780px;
    --site-narrow-width: 860px;
    --site-gutter: 24px;
    --panel-padding: var(--space-xl);
    --panel-padding-compact: var(--space-lg);
    --section-gap: var(--space-2xl);
    --page-gap: var(--space-3xl);
    --button-height: 42px;
    --input-height: 46px;
    --transition-soft: 140ms ease;
}
