:root {
	/* Typography */
	--font-family-ui: "Vazirmatn", Tahoma, "Segoe UI", Arial, sans-serif;
	--font-family-editorial: "Vazirmatn", Tahoma, "Segoe UI", Arial, sans-serif;
	--font-weight-regular: 400;
	--font-weight-medium: 520;
	--font-weight-semibold: 650;
	--font-weight-bold: 760;
	--line-height-tight: 1.12;
	--line-height-heading: 1.28;
	--line-height-body: 1.85;
	--line-height-reading: 2;
	--type-display: clamp(2.4rem, 3.2vw, 3.45rem);
	--type-h1: clamp(2.05rem, 2.8vw, 3rem);
	--type-h2: clamp(1.55rem, 2.1vw, 2.25rem);
	--type-h3: clamp(1.15rem, 1.3vw, 1.5rem);
	--type-news-lead: clamp(1.55rem, 2vw, 2.15rem);
	--type-blog-title: clamp(1.2rem, 1.5vw, 1.65rem);
	--type-rate-code: clamp(1.5rem, 1.8vw, 2.1rem);
	--type-rate-number: clamp(1.35rem, 1.55vw, 1.85rem);
	--type-body-lg: clamp(1rem, 0.9vw, 1.125rem);
	--type-body: 1rem;
	--type-button: 0.9375rem;
	--type-meta: 0.8125rem;
	--type-utility: 0.75rem;

	/* Layout */
	--container-reading: 42rem;
	--container-editorial: 68rem;
	--container-content: 76rem;
	--container-wide: 90rem;
	--container-gutter: clamp(1.25rem, 4vw, 4rem);
	--grid-columns: 12;
	--grid-gap: clamp(1rem, 2vw, 2rem);

	/* Spacing: four-pixel base with larger editorial intervals */
	--space-0: 0;
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.25rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-10: 2.5rem;
	--space-12: 3rem;
	--space-16: 4rem;
	--space-20: 5rem;
	--space-24: 6rem;
	--space-32: 8rem;
	--section-space: clamp(3.25rem, 4vw, 4.5rem);

	/* Final hybrid palette */
	--color-bg-dark: oklch(17% 0.045 246);
	--color-bg-dark-deep: oklch(13% 0.035 246);
	--color-bg-light: oklch(97.5% 0.008 82);
	--color-bg-editorial: oklch(93.5% 0.014 82);
	--color-surface-dark: oklch(22% 0.05 246);
	--color-surface-dark-raised: oklch(25% 0.052 242);
	--color-surface-light: oklch(99% 0.004 82);
	--color-surface-warm: oklch(91.5% 0.026 76);
	--color-text-primary: oklch(20% 0.035 252);
	--color-text-secondary: oklch(46% 0.025 252);
	--color-text-inverse: oklch(96% 0.012 86);
	--color-text-inverse-muted: oklch(73% 0.028 220);
	--color-accent: oklch(68% 0.14 47);
	--color-accent-hover: oklch(74% 0.13 55);
	--color-data-route: oklch(72% 0.095 194);
	--color-link: oklch(43% 0.11 246);
	--color-border: oklch(82% 0.02 82);
	--color-border-strong: oklch(58% 0.025 246);
	--color-border-dark: oklch(37% 0.045 235);
	--color-focus: oklch(78% 0.14 77);
	--color-success: oklch(52% 0.105 154);
	--color-warning: oklch(70% 0.14 73);
	--color-danger: oklch(53% 0.17 28);
	--color-disabled: oklch(67% 0.018 245);
	--color-selection: oklch(85% 0.07 47);
	--color-selection-text: oklch(18% 0.03 246);

	/* Borders, radius, and elevation */
	--border-width: 1px;
	--border-width-emphasis: 3px;
	--radius-none: 0;
	--radius-sm: 0.125rem;
	--radius-md: 0.25rem;
	--radius-lg: 0.5rem;
	--shadow-subtle: 0 1rem 3rem oklch(13% 0.035 246 / 0.08);
	--shadow-raised: 0 1.5rem 4rem oklch(13% 0.035 246 / 0.14);
	--shadow-focus: 0 0 0 0.25rem oklch(78% 0.14 77 / 0.24);

	/* Interaction and motion */
	--target-min: 2.75rem;
	--duration-fast: 140ms;
	--duration-normal: 240ms;
	--duration-standard: var(--duration-normal);
	--duration-slow: 480ms;
	--duration-ambient: 16s;
	--ease-enter: cubic-bezier(0.23, 1, 0.32, 1);
	--ease-exit: cubic-bezier(0.4, 0, 1, 1);
	--ease-standard: cubic-bezier(0.2, 0, 0, 1);
}
