:root{--color-primary:#06f;--color-primary-muted:#e6f0ff;--color-secondary:#5dade2;--color-text-high:#0a2540;--color-text-medium:#334155;--color-text-low:#64748b;--color-text-inverted:#fff;--color-bg-base:#fff;--color-bg-subtle:#f8fafc;--radius-md:12px;--color-primary-hover:#0052cc;--color-secondary-hover:#4a9ead;--btn-padding-sm:6px 12px;--btn-padding-md:8px 16px;--btn-padding-lg:12px 24px;--font-sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,"Roboto Mono","Courier New",monospace;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:30px;--font-size-4xl:36px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.7;--space-x1:4px;--space-x2:8px;--space-x3:12px;--space-x4:16px;--space-x6:24px;--space-x8:32px;--space-x10:40px;--space-x12:48px;--space-x16:64px}body{font-family:var(--font-sans);color:var(--color-text-high)}.btn{display:inline-block;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:background-color .2s ease;cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-text-inverted);border:none}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-secondary);color:var(--color-text-inverted);border:none}.btn--secondary:hover:not(:disabled){background:var(--color-secondary-hover)}.btn--outline{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn--outline:hover:not(:disabled){background:var(--color-primary-muted)}.btn--sm{padding:var(--btn-padding-sm);font-size:var(--font-size-sm)}.btn--md{padding:var(--btn-padding-md);font-size:var(--font-size-md)}.btn--lg{padding:var(--btn-padding-lg);font-size:var(--font-size-lg)}.text-xs{font-size:var(--font-size-xs)}.text-sm,.text-xs{line-height:var(--line-height-normal)}.text-sm{font-size:var(--font-size-sm)}.text-md{font-size:var(--font-size-md)}.text-lg,.text-md{line-height:var(--line-height-normal)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl);line-height:var(--line-height-normal)}.text-2xl{font-size:var(--font-size-2xl)}.text-2xl,.text-3xl{line-height:var(--line-height-tight)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl);line-height:var(--line-height-tight)}.font-regular{font-weight:var(--font-weight-regular)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.leading-tight{line-height:var(--line-height-tight)}.leading-normal{line-height:var(--line-height-normal)}.leading-relaxed{line-height:var(--line-height-relaxed)}.heading-1{font-size:var(--font-size-4xl)}.heading-1,.heading-2{line-height:var(--line-height-tight);font-weight:var(--font-weight-bold)}.heading-2{font-size:var(--font-size-3xl)}.heading-3{font-size:var(--font-size-2xl)}.heading-3,.heading-4{line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold)}.heading-4{font-size:var(--font-size-xl)}.heading-5{font-size:var(--font-size-lg)}.heading-5,.heading-6{line-height:var(--line-height-normal);font-weight:var(--font-weight-medium)}.heading-6{font-size:var(--font-size-md)}.text-high{color:var(--color-text-high)}.text-medium{color:var(--color-text-medium)}.text-low{color:var(--color-text-low)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-inverted{color:var(--color-text-inverted)}.bg-primary{background:var(--color-primary)}.bg-secondary{background:var(--color-secondary)}.bg-primary-muted{background:var(--color-primary-muted)}.bg-base{background:var(--color-bg-base)}.bg-subtle{background:var(--color-bg-subtle)}.bg-text-high{background:var(--color-text-high)}.gap-x1{gap:var(--space-x1)}.gap-x2{gap:var(--space-x2)}.gap-x3{gap:var(--space-x3)}.gap-x4{gap:var(--space-x4)}.gap-x6{gap:var(--space-x6)}.gap-x8{gap:var(--space-x8)}.gap-x10{gap:var(--space-x10)}.gap-x12{gap:var(--space-x12)}.gap-x16{gap:var(--space-x16)}.m-x1{margin:var(--space-x1)}.m-x2{margin:var(--space-x2)}.m-x3{margin:var(--space-x3)}.m-x4{margin:var(--space-x4)}.m-x6{margin:var(--space-x6)}.m-x8{margin:var(--space-x8)}.m-x10{margin:var(--space-x10)}.m-x12{margin:var(--space-x12)}.m-x16{margin:var(--space-x16)}.mt-x1{margin-top:var(--space-x1)}.mt-x2{margin-top:var(--space-x2)}.mt-x3{margin-top:var(--space-x3)}.mt-x4{margin-top:var(--space-x4)}.mt-x6{margin-top:var(--space-x6)}.mt-x8{margin-top:var(--space-x8)}.mt-x10{margin-top:var(--space-x10)}.mt-x12{margin-top:var(--space-x12)}.mt-x16{margin-top:var(--space-x16)}.mb-x1{margin-bottom:var(--space-x1)}.mb-x2{margin-bottom:var(--space-x2)}.mb-x3{margin-bottom:var(--space-x3)}.mb-x4{margin-bottom:var(--space-x4)}.mb-x6{margin-bottom:var(--space-x6)}.mb-x8{margin-bottom:var(--space-x8)}.mb-x10{margin-bottom:var(--space-x10)}.mb-x12{margin-bottom:var(--space-x12)}.mb-x16{margin-bottom:var(--space-x16)}.ml-x1{margin-left:var(--space-x1)}.ml-x2{margin-left:var(--space-x2)}.ml-x3{margin-left:var(--space-x3)}.ml-x4{margin-left:var(--space-x4)}.ml-x6{margin-left:var(--space-x6)}.ml-x8{margin-left:var(--space-x8)}.ml-x10{margin-left:var(--space-x10)}.ml-x12{margin-left:var(--space-x12)}.ml-x16{margin-left:var(--space-x16)}.mr-x1{margin-right:var(--space-x1)}.mr-x2{margin-right:var(--space-x2)}.mr-x3{margin-right:var(--space-x3)}.mr-x4{margin-right:var(--space-x4)}.mr-x6{margin-right:var(--space-x6)}.mr-x8{margin-right:var(--space-x8)}.mr-x10{margin-right:var(--space-x10)}.mr-x12{margin-right:var(--space-x12)}.mr-x16{margin-right:var(--space-x16)}.mx-x1{margin-left:var(--space-x1);margin-right:var(--space-x1)}.mx-x2{margin-left:var(--space-x2);margin-right:var(--space-x2)}.mx-x3{margin-left:var(--space-x3);margin-right:var(--space-x3)}.mx-x4{margin-left:var(--space-x4);margin-right:var(--space-x4)}.mx-x6{margin-left:var(--space-x6);margin-right:var(--space-x6)}.mx-x8{margin-left:var(--space-x8);margin-right:var(--space-x8)}.mx-x10{margin-left:var(--space-x10);margin-right:var(--space-x10)}.mx-x12{margin-left:var(--space-x12);margin-right:var(--space-x12)}.mx-x16{margin-left:var(--space-x16);margin-right:var(--space-x16)}.my-x1{margin-top:var(--space-x1);margin-bottom:var(--space-x1)}.my-x2{margin-top:var(--space-x2);margin-bottom:var(--space-x2)}.my-x3{margin-top:var(--space-x3);margin-bottom:var(--space-x3)}.my-x4{margin-top:var(--space-x4);margin-bottom:var(--space-x4)}.my-x6{margin-top:var(--space-x6);margin-bottom:var(--space-x6)}.my-x8{margin-top:var(--space-x8);margin-bottom:var(--space-x8)}.my-x10{margin-top:var(--space-x10);margin-bottom:var(--space-x10)}.my-x12{margin-top:var(--space-x12);margin-bottom:var(--space-x12)}.my-x16{margin-top:var(--space-x16);margin-bottom:var(--space-x16)}.p-x1{padding:var(--space-x1)}.p-x2{padding:var(--space-x2)}.p-x3{padding:var(--space-x3)}.p-x4{padding:var(--space-x4)}.p-x6{padding:var(--space-x6)}.p-x8{padding:var(--space-x8)}.p-x10{padding:var(--space-x10)}.p-x12{padding:var(--space-x12)}.p-x16{padding:var(--space-x16)}.pt-x1{padding-top:var(--space-x1)}.pt-x2{padding-top:var(--space-x2)}.pt-x3{padding-top:var(--space-x3)}.pt-x4{padding-top:var(--space-x4)}.pt-x6{padding-top:var(--space-x6)}.pt-x8{padding-top:var(--space-x8)}.pt-x10{padding-top:var(--space-x10)}.pt-x12{padding-top:var(--space-x12)}.pt-x16{padding-top:var(--space-x16)}.pb-x1{padding-bottom:var(--space-x1)}.pb-x2{padding-bottom:var(--space-x2)}.pb-x3{padding-bottom:var(--space-x3)}.pb-x4{padding-bottom:var(--space-x4)}.pb-x6{padding-bottom:var(--space-x6)}.pb-x8{padding-bottom:var(--space-x8)}.pb-x10{padding-bottom:var(--space-x10)}.pb-x12{padding-bottom:var(--space-x12)}.pb-x16{padding-bottom:var(--space-x16)}.pl-x1{padding-left:var(--space-x1)}.pl-x2{padding-left:var(--space-x2)}.pl-x3{padding-left:var(--space-x3)}.pl-x4{padding-left:var(--space-x4)}.pl-x6{padding-left:var(--space-x6)}.pl-x8{padding-left:var(--space-x8)}.pl-x10{padding-left:var(--space-x10)}.pl-x12{padding-left:var(--space-x12)}.pl-x16{padding-left:var(--space-x16)}.pr-x1{padding-right:var(--space-x1)}.pr-x2{padding-right:var(--space-x2)}.pr-x3{padding-right:var(--space-x3)}.pr-x4{padding-right:var(--space-x4)}.pr-x6{padding-right:var(--space-x6)}.pr-x8{padding-right:var(--space-x8)}.pr-x10{padding-right:var(--space-x10)}.pr-x12{padding-right:var(--space-x12)}.pr-x16{padding-right:var(--space-x16)}.px-x1{padding-left:var(--space-x1);padding-right:var(--space-x1)}.px-x2{padding-left:var(--space-x2);padding-right:var(--space-x2)}.px-x3{padding-left:var(--space-x3);padding-right:var(--space-x3)}.px-x4{padding-left:var(--space-x4);padding-right:var(--space-x4)}.px-x6{padding-left:var(--space-x6);padding-right:var(--space-x6)}.px-x8{padding-left:var(--space-x8);padding-right:var(--space-x8)}.px-x10{padding-left:var(--space-x10);padding-right:var(--space-x10)}.px-x12{padding-left:var(--space-x12);padding-right:var(--space-x12)}.px-x16{padding-left:var(--space-x16);padding-right:var(--space-x16)}.py-x1{padding-top:var(--space-x1);padding-bottom:var(--space-x1)}.py-x2{padding-top:var(--space-x2);padding-bottom:var(--space-x2)}.py-x3{padding-top:var(--space-x3);padding-bottom:var(--space-x3)}.py-x4{padding-top:var(--space-x4);padding-bottom:var(--space-x4)}.py-x6{padding-top:var(--space-x6);padding-bottom:var(--space-x6)}.py-x8{padding-top:var(--space-x8);padding-bottom:var(--space-x8)}.py-x10{padding-top:var(--space-x10);padding-bottom:var(--space-x10)}.py-x12{padding-top:var(--space-x12);padding-bottom:var(--space-x12)}.py-x16{padding-top:var(--space-x16);padding-bottom:var(--space-x16)}