/*
 * Gombeke design tokens -- the single source of visual truth.
 * Copied verbatim from docs/design.md. No component invents its own values.
 * OKLCH color, warm-black chassis, amber signal (Committed strategy).
 */

:root {
	/* -- Color: chassis -- */
	--gmb-ground:        oklch(0.15 0.012 74);
	--gmb-ground-deep:   oklch(0.12 0.010 74);
	--gmb-panel:         oklch(0.185 0.014 74);
	--gmb-panel-hi:      oklch(0.225 0.015 74);
	--gmb-panel-inset:   oklch(0.135 0.010 74);

	/* -- Color: ink -- */
	--gmb-ink:           oklch(0.95 0.008 85);
	--gmb-ink-soft:      oklch(0.77 0.012 85);
	--gmb-ink-mute:      oklch(0.62 0.014 85);

	/* -- Color: signal (amber, the brand lamp) -- */
	--gmb-signal:        oklch(0.80 0.148 68);
	--gmb-signal-hi:     oklch(0.87 0.13 74);
	--gmb-signal-deep:   oklch(0.66 0.15 52);

	/* -- Color: live status (instrument green, status only) -- */
	--gmb-live:          oklch(0.82 0.13 158);
	--gmb-live-deep:     oklch(0.70 0.12 158);

	/* -- Color: danger -- */
	--gmb-danger:        oklch(0.64 0.17 27);

	/* -- Color: engraved lines -- */
	--gmb-line:          oklch(0.30 0.008 74);
	--gmb-line-hi:       oklch(0.42 0.010 74);
	--gmb-line-deep:     oklch(0.10 0.008 74);

	/* -- Alpha helpers (glows, scrims) -- */
	--gmb-signal-a12:    color-mix(in oklab, var(--gmb-signal) 12%, transparent);
	--gmb-signal-a24:    color-mix(in oklab, var(--gmb-signal) 24%, transparent);
	--gmb-signal-a40:    color-mix(in oklab, var(--gmb-signal) 40%, transparent);
	--gmb-live-a50:      color-mix(in oklab, var(--gmb-live) 50%, transparent);
	--gmb-scrim:         color-mix(in oklab, var(--gmb-ground-deep) 82%, transparent);
	--gmb-ink-a08:       color-mix(in oklab, var(--gmb-ink) 8%, transparent);

	/* -- Typography: families -- */
	--gmb-font-sans: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--gmb-font-mono: "Martian Mono", ui-monospace, "SF Mono", "Cascadia Code", Menlo, monospace;

	/* -- Typography: fluid scale (ratio ~1.28) -- */
	--gmb-text-2xs:  0.6875rem;
	--gmb-text-xs:   0.75rem;
	--gmb-text-sm:   0.875rem;
	--gmb-text-base: clamp(1rem, 0.96rem + 0.18vw, 1.0625rem);
	--gmb-text-lg:   clamp(1.15rem, 1.05rem + 0.5vw, 1.375rem);
	--gmb-text-xl:   clamp(1.5rem, 1.3rem + 1vw, 2rem);
	--gmb-text-2xl:  clamp(2rem, 1.6rem + 2vw, 3rem);
	--gmb-text-3xl:  clamp(2.75rem, 2rem + 3.5vw, 4.5rem);
	--gmb-text-hero: clamp(3.25rem, 1.5rem + 8vw, 9.5rem);

	/* -- Spacing (4px base) -- */
	--gmb-space-1:  0.25rem;
	--gmb-space-2:  0.5rem;
	--gmb-space-3:  0.75rem;
	--gmb-space-4:  1rem;
	--gmb-space-5:  1.5rem;
	--gmb-space-6:  2rem;
	--gmb-space-7:  3rem;
	--gmb-space-8:  4rem;
	--gmb-space-9:  6rem;
	--gmb-space-10: 8rem;
	--gmb-section:  clamp(4.5rem, 8vw, 9rem);

	/* -- Layout widths -- */
	--gmb-maxw:      76rem;
	--gmb-maxw-wide: 88rem;
	--gmb-measure:   68ch;
	--gmb-gutter:    clamp(1.25rem, 5vw, 3.5rem);

	/* -- Radius -- */
	--gmb-r-sm:   6px;
	--gmb-r:      10px;
	--gmb-r-lg:   16px;
	--gmb-r-pill: 999px;

	/* -- Elevation: machined panels -- */
	--gmb-bevel: inset 0 1px 0 var(--gmb-line-hi), inset 0 -1px 0 var(--gmb-line-deep);
	--gmb-shadow-panel: 0 24px 48px -32px oklch(0 0 0 / 0.75);
	--gmb-glow-signal: 0 0 0 1px var(--gmb-signal-a40), 0 0 44px -10px var(--gmb-signal-a40);
	--gmb-glow-live: 0 0 12px -2px var(--gmb-live-a50);

	/* -- Motion: easings (no bounce, no elastic) -- */
	--gmb-ease-out-expo:  cubic-bezier(0.16, 1, 0.3, 1);
	--gmb-ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
	--gmb-ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);

	/* -- Motion: durations -- */
	--gmb-dur-feedback: 120ms;
	--gmb-dur-state:    220ms;
	--gmb-dur-layout:   360ms;
	--gmb-dur-entrance: 720ms;

	/* -- Focus ring -- */
	--gmb-focus: 0 0 0 2px var(--gmb-ground), 0 0 0 4px var(--gmb-signal);

	/* -- Fixed chrome -- */
	--gmb-nav-h: 4.5rem;
}
