:root {
    --wp-color-canvas: var(--bs-body-bg);
    --wp-color-surface: rgba(var(--bs-body-bg-rgb), 0.98);
    --wp-color-surface-subtle: var(--bs-tertiary-bg);
    --wp-color-surface-muted: var(--bs-secondary-bg);
    --wp-color-text: var(--bs-body-color);
    --wp-color-text-muted: var(--bs-secondary-color);
    --wp-color-border: rgba(var(--bs-emphasis-color-rgb), 0.12);
    --wp-color-border-strong: rgba(var(--bs-emphasis-color-rgb), 0.22);
    --wp-color-primary: var(--bs-primary);
    --wp-color-primary-emphasis: var(--bs-primary-text-emphasis);
    --wp-color-primary-subtle: var(--bs-primary-bg-subtle);
    --wp-color-danger: var(--bs-danger);
    --wp-color-danger-emphasis: var(--bs-danger-text-emphasis);
    --wp-color-danger-subtle: var(--bs-danger-bg-subtle);
    --wp-color-success: var(--bs-success);
    --wp-color-success-emphasis: var(--bs-success-text-emphasis);
    --wp-color-success-subtle: var(--bs-success-bg-subtle);
    --wp-color-warning: var(--bs-warning);
    --wp-color-warning-emphasis: var(--bs-warning-text-emphasis);
    --wp-color-warning-subtle: var(--bs-warning-bg-subtle);
    --wp-color-on-primary: var(--bs-white, #fff);
    --wp-color-focus: var(--bs-primary);
    --wp-image-outline: oklch(0 0 0 / 0.1);

    --wp-space-1: 0.25rem;
    --wp-space-2: 0.5rem;
    --wp-space-3: 0.75rem;
    --wp-space-4: 1rem;
    --wp-space-6: 1.5rem;
    --wp-space-8: 2rem;
    --wp-space-12: 3rem;

    --wp-radius-sm: 0.5rem;
    --wp-radius-md: 0.75rem;
    --wp-radius-lg: 1rem;
    --wp-radius-pill: 999rem;

    --wp-shadow-sm:
        0 0 0 1px oklch(0 0 0 / 0.06),
        0 1px 2px -1px oklch(0 0 0 / 0.06),
        0 2px 4px oklch(0 0 0 / 0.04);
    --wp-shadow-sm-hover:
        0 0 0 1px oklch(0 0 0 / 0.08),
        0 1px 2px -1px oklch(0 0 0 / 0.08),
        0 2px 4px oklch(0 0 0 / 0.06);
    --wp-shadow-md:
        0 0 0 1px oklch(0 0 0 / 0.07),
        0 8px 24px -12px oklch(0 0 0 / 0.2);
    --wp-shadow-lg:
        0 0 0 1px oklch(0 0 0 / 0.08),
        0 20px 48px -24px oklch(0 0 0 / 0.28);

    --wp-control-sm: 2.25rem;
    --wp-control-md: 2.5rem;
    --wp-control-touch: 2.75rem;
    --wp-control-lg: 3rem;

    --wp-text-caption: 0.8125rem;
    --wp-text-secondary: 0.875rem;
    --wp-text-body: 1rem;
    --wp-text-section: 1.25rem;
    --wp-text-page: clamp(1.5rem, 1.25rem + 0.8vw, 1.75rem);
    --wp-text-hero: clamp(2rem, 1.5rem + 1.7vw, 2.5rem);

    --wp-leading-tight: 1.15;
    --wp-leading-heading: 1.25;
    --wp-leading-body: 1.55;
    --wp-measure: 68ch;
    --wp-measure-wide: 75ch;
    --wp-page-max: 120rem;

    --wp-duration-fast: 120ms;
    --wp-duration-standard: 150ms;
    --wp-ease-standard: cubic-bezier(0.2, 0, 0, 1);

    --writer-content-measure: var(--wp-measure-wide);
    --writer-radius-sm: var(--wp-radius-sm);
    --writer-radius-md: var(--wp-radius-md);
    --writer-radius-lg: var(--wp-radius-lg);
    --writer-tap-target: var(--wp-control-touch);
    --writer-surface: var(--wp-color-surface);
    --writer-surface-soft: var(--wp-color-surface-subtle);
    --writer-surface-muted: var(--wp-color-surface-muted);
    --writer-border: var(--wp-color-border);
    --writer-border-strong: var(--wp-color-border-strong);
    --writer-shadow-sm: var(--wp-shadow-sm);
    --writer-shadow-lg: var(--wp-shadow-lg);
}

[data-bs-theme="dark"] {
    --wp-image-outline: oklch(1 0 0 / 0.1);
    --wp-shadow-sm: 0 0 0 1px oklch(1 0 0 / 0.08);
    --wp-shadow-sm-hover: 0 0 0 1px oklch(1 0 0 / 0.13);
    --wp-shadow-md:
        0 0 0 1px oklch(1 0 0 / 0.1),
        0 8px 24px -12px oklch(0 0 0 / 0.5);
    --wp-shadow-lg:
        0 0 0 1px oklch(1 0 0 / 0.12),
        0 20px 48px -24px oklch(0 0 0 / 0.65);
}
