:root {
	--color-bg: #FFFFFF;
	--color-bg-tint: #F8FAFC;
	--color-slate-100: #F1F5F9;
	--color-border: #E2E8F0;
	--color-border-strong: #CBD5E1;
	--color-text-strong: #0F172A;
	--color-text: #475569;
	--color-text-muted: #64748B;
	--color-placeholder: #94A3B8;
	--color-primary: #4F46E5;
	--color-primary-hover: #4338CA;
	--color-violet: #7C3AED;
	--color-primary-50: #EEF2FF;
	--color-primary-200: #C7D2FE;
	--color-focus-ring: #E0E7FF;
	--color-emerald: #10B981;
	--color-emerald-50: #ECFDF5;
	--color-emerald-200: #A7F3D0;
	--color-emerald-700: #047857;
	--color-amber-bg: #FFFBEB;
	--color-amber-fg: #B45309;
	--color-rose-bg: #FFF1F2;
	--color-rose-fg: #BE123C;
	--color-rose-solid: #F43F5E;
	--gradient-brand: linear-gradient(135deg, #4F46E5, #7C3AED);
	--gradient-cta-band: linear-gradient(135deg, #4338CA 0%, #4F46E5 45%, #7C3AED 100%);

	--font-sans: 'Inter', system-ui, -apple-system, sans-serif;
	--font-mono: 'JetBrains Mono', monospace;

	--radius-chip: 6px;
	--radius-button: 8px;
	--radius-input: 9px;
	--radius-card: 12px;
	--radius-card-lg: 16px;
	--radius-form-card: 18px;
	--radius-pill: 999px;

	--container-max: 1200px;
	--container-pad: 24px;
	--section-pad: clamp(64px, 9vw, 112px);

	--shadow-card: 0 1px 2px rgba(15, 23, 42, .04), 0 24px 48px -20px rgba(15, 23, 42, .18);
	--shadow-button-primary: 0 8px 24px -8px rgba(79, 70, 229, .55);
	--shadow-hover-card: 0 20px 40px -20px rgba(79, 70, 229, .35);
}

*, *::before, *::after { box-sizing: border-box; }

[hidden] { display: none !important; }

html { scroll-behavior: smooth; scroll-padding-top: 80px; }

body {
	margin: 0;
	font-family: var(--font-sans);
	color: var(--color-text-strong);
	background: var(--color-bg);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

img, svg { max-width: 100%; display: block; }

a { color: var(--color-primary); text-decoration: none; }
a:hover { color: var(--color-violet); }

input::placeholder, textarea::placeholder { color: var(--color-placeholder); }

h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 0.5em; }
p { margin: 0 0 1em; }

@keyframes asPulse {
	0%   { box-shadow: 0 0 0 0 rgba(16, 185, 129, .5); }
	70%  { box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); }
	100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}

.skip-link {
	position: absolute; left: -9999px; top: 0;
	background: var(--color-primary); color: #fff;
	padding: 12px 20px; z-index: 1000; border-radius: 0 0 8px 0;
}
.skip-link:focus { left: 0; }

:focus-visible {
	outline: 3px solid var(--color-focus-ring);
	outline-offset: 2px;
}

.icon { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }
.section { padding: var(--section-pad) 0; }

.h1 {
	font-size: clamp(38px, 6vw, 68px);
	line-height: 1.03;
	letter-spacing: -0.035em;
	font-weight: 800;
	text-wrap: balance;
}
.h2 {
	font-size: clamp(30px, 3.8vw, 44px);
	line-height: 1.1;
	letter-spacing: -0.03em;
	font-weight: 800;
	text-wrap: balance;
}
.h3 {
	font-size: 26px;
	line-height: 1.2;
	letter-spacing: -0.02em;
	font-weight: 700;
}
.lead { font-size: clamp(16px, 1.6vw, 19px); line-height: 1.6; color: var(--color-text); }
.eyebrow { font-size: 13px; font-weight: 600; color: var(--color-primary); }
.gradient-text {
	background: var(--gradient-brand);
	-webkit-background-clip: text; background-clip: text; color: transparent;
}
