/**
 * LAM Thinking — Layer 1: Design tokens.
 *
 * Single source of truth: colour, typography, spacing, radius, shadow,
 * motion, container, grid, layering. Nothing else in the theme defines a
 * raw value — components compose these tokens only.
 */

:root {
	color-scheme: dark;

	/* =========================================================
	   1. Colour — brand logic is fixed by the specification:
	   blue = system, orange = loss/problem, green = result.
	   ========================================================= */
	--lam-bg: #121c2d;
	--lam-bg-deep: #0b1220;
	--lam-bg-sunk: #080d18;
	--lam-surface: #18243a;
	--lam-surface-2: #1d2b45;
	--lam-surface-3: #24334f;

	--lam-fg: #eaf0fa;
	--lam-fg-soft: rgba(234, 240, 250, 0.86);
	--lam-muted: #9fb0c8;
	--lam-faint: rgba(234, 240, 250, 0.5);

	--lam-border: rgba(234, 240, 250, 0.12);
	--lam-border-strong: rgba(234, 240, 250, 0.22);
	--lam-hairline: rgba(234, 240, 250, 0.06);

	--lam-primary: #3478ff;
	--lam-primary-hover: #5a92ff;
	--lam-primary-bright: #7fa9ff;
	--lam-primary-soft: rgba(52, 120, 255, 0.14);
	--lam-primary-glow: rgba(52, 120, 255, 0.45);

	--lam-accent: #ff8c00;
	--lam-accent-hover: #ffa333;
	--lam-accent-soft: rgba(255, 140, 0, 0.14);

	--lam-success: #22c55e;
	--lam-success-soft: rgba(34, 197, 94, 0.16);
	--lam-focus: #ffb43c;

	/* Chromatic surfaces composed from the brand palette. */
	--lam-panel:
		linear-gradient(180deg, rgba(234, 240, 250, 0.045), rgba(234, 240, 250, 0.012)),
		color-mix(in oklab, var(--lam-surface) 72%, transparent);
	--lam-glass: linear-gradient(180deg, rgba(234, 240, 250, 0.06), rgba(234, 240, 250, 0.015));
	--lam-rule: linear-gradient(90deg, var(--lam-border-strong), transparent 62%);
	--lam-sheen: linear-gradient(115deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0) 42%);
	--lam-gradient-primary: linear-gradient(180deg, var(--lam-primary-bright), var(--lam-primary));
	--lam-gradient-accent: linear-gradient(180deg, var(--lam-accent-hover), var(--lam-accent));
	--lam-gradient-text: linear-gradient(180deg, #ffffff 4%, rgba(234, 240, 250, 0.72) 96%);

	/* =========================================================
	   2. Typography
	   ========================================================= */
	--lam-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
	--lam-body: "Manrope", ui-sans-serif, system-ui, sans-serif;
	--lam-mono: ui-monospace, SFMono-Regular, Menlo, "JetBrains Mono", monospace;

	/* Fluid modular scale, 1.22 ratio at the base, tightening at display sizes. */
	--lam-text-2xs: 0.6875rem;
	--lam-text-xs: 0.8125rem;
	--lam-text-sm: 0.9375rem;
	--lam-text-base: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
	--lam-text-lg: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
	--lam-text-xl: clamp(1.25rem, 1.15rem + 0.4vw, 1.375rem);
	--lam-text-2xl: clamp(1.5rem, 1.3rem + 1vw, 2rem);
	--lam-text-3xl: clamp(1.75rem, 1.4rem + 2vw, 2.5rem);
	--lam-text-4xl: clamp(2rem, 1.5rem + 3.2vw, 3.625rem);
	--lam-text-5xl: clamp(2.5rem, 1.6rem + 4.6vw, 4.75rem);

	--lam-weight-regular: 400;
	--lam-weight-medium: 500;
	--lam-weight-semi: 550;
	--lam-weight-bold: 600;

	--lam-leading-none: 1;
	--lam-leading-tight: 1.12;
	--lam-leading-snug: 1.3;
	--lam-leading-body: 1.7;
	--lam-leading-loose: 1.85;

	--lam-tracking-display: -0.038em;
	--lam-tracking-tight: -0.03em;
	--lam-tracking-snug: -0.012em;
	--lam-tracking-normal: 0;
	--lam-tracking-wide: 0.14em;
	--lam-tracking-wider: 0.2em;

	/* =========================================================
	   3. Spacing — 4px base, geometric growth above 2rem.
	   ========================================================= */
	--lam-space-0: 0;
	--lam-space-px: 1px;
	--lam-space-1: 0.25rem;
	--lam-space-2: 0.5rem;
	--lam-space-3: 0.75rem;
	--lam-space-4: 1rem;
	--lam-space-5: 1.5rem;
	--lam-space-6: 2rem;
	--lam-space-7: 2.5rem;
	--lam-space-8: 3rem;
	--lam-space-9: 4rem;
	--lam-space-10: 5rem;
	--lam-space-11: 6.5rem;
	--lam-space-12: 8rem;

	/* Fluid rhythm used by sections and stacks. */
	--lam-gap-xs: clamp(0.5rem, 0.4rem + 0.3vw, 0.75rem);
	--lam-gap-sm: clamp(0.75rem, 0.6rem + 0.5vw, 1rem);
	--lam-gap: clamp(1rem, 0.8rem + 0.8vw, 1.5rem);
	--lam-gap-lg: clamp(1.5rem, 1.1rem + 1.4vw, 2.5rem);
	--lam-gap-xl: clamp(2rem, 1.4rem + 2.4vw, 4rem);
	--lam-section: clamp(4.5rem, 8vw, 7.5rem);
	--lam-section-sm: clamp(2.5rem, 5vw, 4rem);

	/* =========================================================
	   4. Container & grid
	   ========================================================= */
	--lam-container-sm: 720px;
	--lam-container-md: 980px;
	--lam-container: 1320px;
	--lam-container-wide: 1560px;
	--lam-container-pad: clamp(1rem, 3vw, 1.5rem);
	--lam-measure: 68ch;
	--lam-measure-tight: 54ch;

	--lam-grid-cols: 12;
	--lam-grid-gap: var(--lam-gap-lg);
	--lam-grid-min: 280px;
	--lam-header-h: 64px;

	/* =========================================================
	   5. Radius
	   ========================================================= */
	--lam-radius-xs: 6px;
	--lam-radius-sm: 10px;
	--lam-radius: 16px;
	--lam-radius-lg: 20px;
	--lam-radius-xl: 26px;
	--lam-radius-pill: 999px;
	--lam-radius-circle: 50%;

	/* =========================================================
	   6. Shadow & elevation — contact + ambient + inner light.
	   ========================================================= */
	--lam-shadow-inset: 0 1px 0 0 rgba(234, 240, 250, 0.05) inset;
	--lam-shadow-xs: 0 1px 2px -1px rgba(4, 9, 18, 0.6);
	--lam-shadow-sm:
		0 1px 0 0 rgba(234, 240, 250, 0.05) inset,
		0 2px 6px -2px rgba(4, 9, 18, 0.6);
	--lam-shadow:
		0 1px 0 0 rgba(234, 240, 250, 0.06) inset,
		0 2px 6px -2px rgba(4, 9, 18, 0.6),
		0 24px 60px -28px rgba(4, 9, 18, 0.9);
	--lam-shadow-lg:
		0 1px 0 0 rgba(234, 240, 250, 0.08) inset,
		0 4px 10px -4px rgba(4, 9, 18, 0.65),
		0 40px 90px -34px rgba(4, 9, 18, 0.95);
	--lam-shadow-xl: 0 60px 140px -60px rgba(2, 6, 14, 1);
	--lam-shadow-primary: 0 12px 32px -12px var(--lam-primary-glow);
	--lam-shadow-accent: 0 12px 32px -12px rgba(255, 140, 0, 0.55);
	--lam-shadow-ring: 0 0 0 4px color-mix(in oklab, var(--lam-primary) 22%, transparent);

	/* Legacy aliases kept so existing components stay stable. */
	--lam-shadow-lift: var(--lam-shadow);
	--lam-shadow-hover: var(--lam-shadow-lg);

	/* =========================================================
	   7. Motion
	   ========================================================= */
	--lam-dur-instant: 90ms;
	--lam-dur-fast: 140ms;
	--lam-dur: 240ms;
	--lam-dur-slow: 520ms;
	--lam-dur-slower: 900ms;
	--lam-dur-flow: 6s;

	--lam-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--lam-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--lam-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	--lam-ease-spring: cubic-bezier(0.34, 1.42, 0.5, 1);
	--lam-ease-linear: linear;

	/* =========================================================
	   8. Layering
	   ========================================================= */
	--lam-z-base: 1;
	--lam-z-raised: 10;
	--lam-z-sticky: 50;
	--lam-z-overlay: 90;
	--lam-z-header: 100;
	--lam-z-modal: 200;
	--lam-z-toast: 300;
}

/* Contrast and motion adaptations belong with the tokens they override. */
@media (prefers-contrast: more) {
	:root {
		--lam-muted: #cbd7e8;
		--lam-border: rgba(234, 240, 250, 0.34);
		--lam-border-strong: rgba(234, 240, 250, 0.5);
	}
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--lam-dur-instant: 1ms;
		--lam-dur-fast: 1ms;
		--lam-dur: 1ms;
		--lam-dur-slow: 1ms;
		--lam-dur-slower: 1ms;
	}
}
