/* colors */
:root{
--blue-800:#0041B8;--blue-700:#004FDB;--blue-600:#0B63F6;--blue-400:#4D93FF;--blue-300:#8DB8FF;--blue-200:#C7DBFF;--blue-100:#E6EFFF;
--violet-600:#8C63F2;--violet-500:#A07CF6;--violet-300:#C9B8FB;--violet-200:#E0D8FC;--violet-100:#EFEBFE;
--sky-400:#5FB6FF;--lime-400:#D6F03A;--lime-300:#E4F66E;
--ink-900:#1C1C22;--ink-800:#2A2B32;--ink-700:#3C3D46;--ink-500:#6B6E7A;--ink-400:#9A9DAA;--ink-300:#C3C5CF;--ink-200:#DFE1E8;--ink-100:#ECEDF3;
--white:#FFFFFF;--gray-50:#F5F6FA;--gray-100:#EEF0F6;
--success-600:#1F9D6B;--success-100:#DDF5EA;--warning-600:#C07A00;--warning-100:#FFF1D6;--danger-600:#E0413A;--danger-100:#FDE3E1;
--bg-page:var(--gray-50);--surface-card:var(--white);--surface-muted:var(--gray-100);--surface-tint:var(--violet-100);--surface-inverse:var(--ink-900);
--text-primary:var(--ink-900);--text-secondary:var(--ink-700);--text-muted:var(--ink-500);--text-faint:var(--ink-400);--text-inverse:var(--white);--text-inverse-muted:var(--ink-300);--text-accent:var(--blue-600);
--accent:var(--blue-600);--accent-hover:var(--blue-700);--accent-press:var(--blue-800);--accent-soft:var(--blue-100);--accent-on-dark:var(--blue-300);
--highlight:var(--lime-400);--icon-tint:var(--violet-200);--icon-bg:var(--violet-100);
--border-subtle:var(--ink-100);--border-strong:var(--ink-200);--border-accent:var(--blue-600);--border-inverse:var(--ink-700);
--focus-ring:var(--blue-200);
--gradient-brand:linear-gradient(135deg,#5FB6FF 0%,#8C8CF8 55%,#B07CF3 100%);/* @kind color */
--gradient-icon:linear-gradient(160deg,#8DB8FF 0%,#C9B8FB 100%);/* @kind color */
--bg-glow:radial-gradient(40% 50% at 78% 30%,rgba(160,124,246,.14),transparent 70%),radial-gradient(35% 45% at 60% 80%,rgba(77,147,255,.10),transparent 70%);
}

/* typography */
:root{
--font-display:"Montserrat","Helvetica Neue",Arial,sans-serif;
--font-body:"Montserrat","Helvetica Neue",Arial,sans-serif;
--fw-regular:400;/* @kind font */--fw-medium:500;/* @kind font */--fw-semibold:600;/* @kind font */--fw-bold:700;/* @kind font */
--fs-display-xl:72px;--fs-display-l:60px;--fs-h1:46px;--fs-h2:34px;--fs-h3:24px;--fs-h4:19px;
--fs-body-l:19px;--fs-body:16px;--fs-small:14px;--fs-caption:12px;--fs-eyebrow:13px;
--lh-tight:1.12;/* @kind font */--lh-heading:1.2;/* @kind font */--lh-body:1.5;/* @kind font */--lh-snug:1.35;/* @kind font */
--ls-display:-0.01em;--ls-eyebrow:0.02em;--ls-button:0;/* @kind font */
--type-display:var(--fw-semibold) var(--fs-display-xl)/var(--lh-tight) var(--font-display);
--type-h1:var(--fw-semibold) var(--fs-h1)/var(--lh-heading) var(--font-display);
--type-h2:var(--fw-semibold) var(--fs-h2)/var(--lh-heading) var(--font-display);
--type-h3:var(--fw-semibold) var(--fs-h3)/var(--lh-snug) var(--font-display);
--type-h4:var(--fw-semibold) var(--fs-h4)/var(--lh-snug) var(--font-body);
--type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-body);
--type-body-l:var(--fw-medium) var(--fs-body-l)/1.4 var(--font-body);
--type-small:var(--fw-regular) var(--fs-small)/1.45 var(--font-body);
--type-eyebrow:var(--fw-semibold) var(--fs-eyebrow)/1.2 var(--font-body);
--type-stat:var(--fw-semibold) 48px/1 var(--font-display);
}

/* spacing */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;
--container-max:1240px;--measure:62ch;
}

/* effects */
:root{
--shadow-sm:0 2px 8px rgba(40,50,90,.05);
--shadow-md:0 8px 30px rgba(40,50,90,.07);
--shadow-lg:0 20px 60px rgba(40,50,90,.10);
--shadow-accent:0 8px 24px rgba(11,99,246,.25);
--halo-accent:0 0 0 6px rgba(77,147,255,.35);
--ease-out:cubic-bezier(.22,.61,.36,1);/* @kind other */
--dur-fast:150ms;/* @kind other */
--dur-base:250ms;/* @kind other */
--dur-slow:450ms;/* @kind other */
}

/* base */
body{margin:0;background:var(--bg-page);color:var(--text-primary);font:var(--type-body);-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover)}
::selection{background:var(--blue-200)}

