:root {
	/* ==============================================================
	   Primitive colors
	   ============================================================== */

	/* Blues */
	--color-blue-950: #1d1d3b;
	--color-blue-900: var(--wp--preset--color--dark-blue);
	--color-blue-800: #34345e;
	--color-blue-700: var(--wp--preset--color--deep-blue);
	--color-blue-600: #4f5488;
	--color-blue-500: var(--wp--preset--color--bright-blue);
	--color-blue-300: #91b3e8;
	--color-blue-100: var(--wp--preset--color--mist-blue);
	--color-blue-050: #f5f8fd;

	/* Pinks */
	--color-pink-500: var(--wp--preset--color--pink);
	--color-pink-300: var(--wp--preset--color--soft-pink);
	--color-pink-100: var(--wp--preset--color--pale-pink);
	--color-pink-050: #fff8fa;

	/* Outdoor neutrals */
	--color-brown-700: #69533d;
	--color-brown-500: var(--wp--preset--color--outdoor-neutral);
	--color-brown-300: #b49a7b;
	--color-brown-100: #eee7df;

	/* Neutrals */
	--color-neutral-950: #171a20;
	--color-neutral-900: var(--wp--preset--color--charcoal);
	--color-neutral-700: #484d56;
	--color-neutral-600: var(--wp--preset--color--muted);
	--color-neutral-400: #9a9da5;
	--color-neutral-200: #e7e8eb;
	--color-neutral-100: #f2f3f5;
	--color-neutral-050: var(--wp--preset--color--off-white);
	--color-white: var(--wp--preset--color--white);

	/* ==============================================================
	   Semantic colors
	   ============================================================== */

	/* Brand */
	--color-brand-ink: var(--color-blue-900);
	--color-interactive: var(--color-blue-500);
	--color-interactive-hover: var(--color-brand-ink);
	--color-interactive-active: var(--color-blue-900);

	--color-primary: var(--color-interactive);
	--color-primary-hover: var(--color-accent);
	--color-primary-active: var(--color-interactive-active);
	--color-primary-strong: var(--color-blue-900);
	--color-primary-soft: var(--color-blue-100);
	--color-primary-subtle: var(--color-blue-050);

	--color-secondary: var(--color-blue-700);
	--color-secondary-hover: var(--color-blue-800);

	--color-accent: var(--color-pink-500);
	--color-accent-soft: var(--color-pink-300);
	--color-accent-subtle: var(--color-pink-100);
	--color-atmosphere-pink: color-mix(
		in srgb,
		var(--color-accent-soft) 30%,
		transparent
	);
	--color-atmosphere-blue: color-mix(
		in srgb,
		var(--color-interactive) 14%,
		transparent
	);

	--color-outdoor: var(--color-brown-500);
	--color-outdoor-strong: var(--color-brown-700);
	--color-outdoor-soft: var(--color-brown-100);

	/* Surfaces */
	--color-background: var(--color-neutral-050);
	--color-surface: var(--color-white);
	--color-surface-muted: var(--color-neutral-100);
	--color-surface-dark: var(--color-brand-ink);

	/* Typography */
	--color-heading: var(--color-brand-ink);
	--color-text: var(--color-neutral-900);
	--color-text-muted: var(--color-neutral-600);
	--color-text-inverse: var(--color-white);

	/* UI */
	--color-link: var(--color-interactive);
	--color-link-hover: var(--color-brand-ink);
	--color-link-inverse: var(--color-white);
	--color-link-inverse-hover: var(--color-blue-300);
	--color-border: var(--color-neutral-200);
	--color-border-strong: var(--color-neutral-400);

	/* Typography */
	--font-family-body: var(--wp--preset--font-family--body);
	--font-family-heading: var(--wp--preset--font-family--heading);
	--font-family-accent: "Shadows Into Light", "Segoe Print", cursive;

	--font-size-xs: var(--wp--preset--font-size--x-small);
	--font-size-sm: var(--wp--preset--font-size--small);
	--font-size-base: var(--wp--preset--font-size--medium);
	--font-size-lg: var(--wp--preset--font-size--large);
	--font-size-heading: var(--wp--preset--font-size--x-large);
	--font-size-display: var(--wp--preset--font-size--display);

	--line-height-tight: 1.15;
	--line-height-heading: 1.25;
	--line-height-body: 1.65;

	/* Spacing and layout. */
	--space-1: var(--wp--preset--spacing--10);
	--space-2: var(--wp--preset--spacing--20);
	--space-3: var(--wp--preset--spacing--30);
	--space-4: var(--wp--preset--spacing--40);
	--space-5: var(--wp--preset--spacing--50);
	--space-6: var(--wp--preset--spacing--60);
	--space-7: var(--wp--preset--spacing--70);
	--space-8: var(--wp--preset--spacing--80);
	--space-9: var(--wp--preset--spacing--90);

	--page-gutter: clamp(var(--space-4), 2.5vw, var(--space-6));
	--section-spacing: var(--space-8);

	--content-width: var(--wp--style--global--wide-size);
	--content-narrow-width: var(--wp--style--global--content-size);
	--background-atmosphere:
		radial-gradient(
			circle at 12% 8%,
			var(--color-atmosphere-pink),
			transparent clamp(18rem, 30vw, 28rem)
		),
		radial-gradient(
			circle at 88% 92%,
			var(--color-atmosphere-blue),
			transparent clamp(20rem, 34vw, 30rem)
		);

	/* Shape and depth. */
	--radius-sm: 0.375rem;
	--radius-md: 0.75rem;
	--radius-lg: 1.25rem;
	--radius-xl: 2rem;
	--radius-pill: 999px;
	--shadow-sm: 0 0.25rem 1rem rgb(39 39 79 / 8%);
	--shadow-md: 0 0.75rem 2.5rem rgb(39 39 79 / 14%);
	--shadow-lg: 0 1.5rem 4rem rgb(39 39 79 / 18%);
	--focus-ring: 0 0 0 0.2rem var(--color-surface),
		0 0 0 0.4rem var(--color-primary);
	--transition-fast: 160ms ease;
}

/* Only theme-authored transitions consume this token; leave Core/plugin motion alone. */
@media (prefers-reduced-motion: reduce) {
	:root {
		--transition-fast: 0s;
	}
}
