@font-face{font-family:Varela Round;src:url(/_astro/varela-round-latin-400.CsVGkSoP.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Varela Round Fallback;src:local(Arial),local(ArialMT),local(Helvetica);size-adjust:107.7%;ascent-override:85.25%;descent-override:26.56%;line-gap-override:0%}:root,[data-theme=light]{color-scheme:light;--canvas:#ebebf0;--surface:#fafaf9;--raised:#fff;--highlight:#efeef3;--track:#e6e4e0;--track-strong:#dad8d3;--divider:#e9e7e3;--outline:#85858e;--ink:#1d1d22;--ink-muted:#62626b;--inverse:#2a2a30;--on-inverse:#fff;--on-inverse-muted:#b4b4be;--brand:#5944d4;--brand-hover:#4b37c4;--on-brand:#fff;--on-brand-muted:#f8f6ff;--brand-veil:#ffffff24;--brand-tint:#ebe8fc;--brand-ink:#4a36c2;--link-hover:var(--brand-hover);--danger:#c4342c;--danger-ink:#b42f28;--danger-tint:#fcebea;--focus-ring:var(--brand-ink);--shadow-popover:0 0 0 1px #14141e0f, 0 8px 24px -4px #14141e24}[data-theme=dark]{color-scheme:dark;--canvas:#0f0f12;--surface:#1a1a1f;--raised:#222228;--highlight:#2c2c34;--track:#2e2e36;--track-strong:#3a3a43;--divider:#2a2a31;--outline:#75757f;--ink:#f2f2f5;--ink-muted:#a3a3ae;--inverse:#ebebf0;--on-inverse:#1d1d22;--on-inverse-muted:#5a5a63;--brand-hover:#6552e0;--brand-tint:#282346;--brand-ink:#b3a8f6;--brand-ink-hover:#d4cdfc;--link-hover:var(--brand-ink-hover);--danger-ink:#ff8f87;--danger-tint:#361b1a;--shadow-popover:0 0 0 1px #ffffff14, 0 8px 24px -4px #0009}:root{--font-sans:"Varela Round", "Varela Round Fallback", system-ui, sans-serif;--space-0\.5:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:6px;--radius-sm:8px;--radius-md:16px;--radius-lg:28px;--radius-pill:999px;--control-sm:32px;--control-md:40px;--control-lg:48px}@media (pointer:coarse){:root{--control-md:44px}}.display{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:72px;font-weight:400;line-height:80px}.metric-lg{letter-spacing:-.015em;font-variant-numeric:tabular-nums;font-size:48px;font-weight:400;line-height:56px}.metric{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:40px;font-weight:400;line-height:48px}.title{letter-spacing:-.015em;font-size:40px;font-weight:400;line-height:48px}.heading{letter-spacing:-.005em;font-size:20px;font-weight:400;line-height:26px}.label{font-size:16px;font-weight:400;line-height:22px}.body{font-size:16px;font-weight:400;line-height:24px}.caption{font-size:14px;font-weight:400;line-height:20px}.badge{font-size:13px;font-weight:400;line-height:16px}.micro{font-size:12px;font-weight:400;line-height:16px}.muted{color:var(--ink-muted)}*,:before,:after{box-sizing:border-box}html{font-synthesis:none}body{min-height:100vh;font-family:var(--font-sans);background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,p,dl,dd,figure{margin:0}img,svg{max-width:100%;display:block}:where(a){color:var(--brand-ink)}:where(a):hover{color:var(--link-hover)}:where(button,a,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}main:focus{outline:none}.wrap{max-width:1344px;margin:0 auto;padding:24px 48px 48px}.skip{z-index:10;border-radius:var(--radius-pill);background:var(--raised);height:40px;color:var(--ink);box-shadow:var(--shadow-popover);align-items:center;padding:0 20px;display:inline-flex;position:absolute;top:16px;left:-9999px}.skip:focus{left:16px}.tl-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tl-icon{vertical-align:middle;flex:none;display:inline-block}.ico{border-radius:var(--radius-pill);background:var(--brand-tint);width:40px;height:40px;color:var(--brand-ink);flex:none;justify-content:center;align-items:center;display:flex}.ico-veil{background:var(--brand-veil);color:var(--on-brand)}.tl-btn{font-family:var(--font-sans);height:var(--control-md);padding:0 var(--space-5);justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;color:inherit;background:0 0;border:0;font-size:15px;font-weight:400;line-height:20px;text-decoration:none;transition:background-color .15s ease-out,color .15s ease-out;display:inline-flex}.tl-btn--lg{height:var(--control-lg);padding:0 var(--space-6);font-size:16px}.tl-btn--icon{width:var(--control-md);padding:0}.tl-btn--default{background:var(--brand);color:var(--on-brand)}.tl-btn--default:hover{background:var(--brand-hover);color:var(--on-brand)}.tl-btn--secondary{background:var(--track);color:var(--ink)}.tl-btn--secondary:hover{background:var(--track-strong);color:var(--ink)}.tl-btn--outline{color:var(--ink);box-shadow:inset 0 0 0 1px var(--outline);background:0 0}.tl-btn--outline:hover{background:var(--highlight);color:var(--ink)}.tl-btn--ghost{color:var(--ink);background:0 0}.tl-btn--ghost:hover{background:var(--highlight);color:var(--ink)}.tl-btn[aria-current=page],.tl-btn[aria-current=page]:hover{background:var(--brand-tint);color:var(--brand-ink)}.tl-btn:disabled{cursor:not-allowed;opacity:.5}.tl-btn[aria-busy=true]{opacity:.8}.tl-card{gap:var(--space-6);min-width:0;padding:var(--space-7);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);flex-direction:column;display:flex}.tl-card--brand{background:var(--brand);color:var(--on-brand);--focus-ring:var(--on-brand)}.tl-card--inverse{background:var(--inverse);color:var(--on-inverse);--focus-ring:var(--on-inverse)}.tl-card--raised{background:var(--raised);box-shadow:inset 0 0 0 1px var(--divider);--focus-ring:var(--brand-ink)}.tl-badge{align-items:center;gap:var(--space-1);height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);white-space:nowrap;font-variant-numeric:tabular-nums;display:inline-flex}.tl-badge--tint{background:var(--brand-tint);color:var(--brand-ink)}.tl-badge--veil{background:var(--brand-veil);color:var(--on-brand)}.tl-badge--outline{color:var(--ink);box-shadow:inset 0 0 0 1px var(--divider);background:0 0}.tl-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);display:flex;position:relative}.tl-item__media{flex:none;display:inline-flex}.tl-item__media.is-icon{border-radius:var(--radius-pill);background:var(--track);width:40px;height:40px;color:var(--ink-muted);justify-content:center;align-items:center}.tl-item__text{gap:var(--space-0\.5);min-width:0;color:inherit;flex-direction:column;flex:1;display:flex}.tl-item__desc{color:var(--ink-muted)}.site-top{z-index:9;margin:-12px 0;padding:12px 0;position:sticky;top:0}html{scroll-padding-top:96px}.site-header{border-radius:var(--radius-pill);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 12px 0 24px;display:flex;position:relative}.page-home .site-header{padding-left:20px}html:not(.js) #theme-toggle{display:none}.lockup{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.lockup:hover{color:var(--ink)}.lockup__img{width:116px;height:32px}.lockup__img--dark,[data-theme=dark] .lockup__img--light{display:none}[data-theme=dark] .lockup__img--dark{display:block}.lockup__by{color:var(--ink-muted)}.nav-links{gap:4px;display:flex}.hdr-end{align-items:center;gap:8px;display:flex}.tg-sun,[data-theme=dark] .tg-moon{display:none}[data-theme=dark] .tg-sun{display:inline-block}.mnav-d{display:none}.mnav-d>summary{list-style:none}.mnav-d>summary::-webkit-details-marker{display:none}.mnav-d[open] .mnav-open,.mnav-d:not([open]) .mnav-close{display:none}.mnav{z-index:5;border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:4px;max-height:calc(100dvh - 96px);padding:12px;display:flex;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.mnav .tl-btn--ghost{justify-content:flex-start}.mnav__cta{border-top:1px solid var(--divider);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;padding-top:12px;display:grid}.site-footer{flex-direction:column;margin-top:96px;display:flex}.page-home .site-footer{margin-top:48px}.foot{flex-wrap:wrap;justify-content:space-between;gap:48px;padding:12px;display:flex}.foot__brand{flex-direction:column;flex:280px;align-items:flex-start;gap:12px;min-width:0;display:flex}.foot__tagline{color:var(--ink-muted)}.foot__mail{text-underline-offset:3px}.foot__col{flex-direction:column;flex:0 160px;gap:12px;display:flex}.foot__col--by{flex-basis:200px}.foot__head{color:var(--ink-muted)}.foot__link{color:var(--ink);text-decoration:none}.foot__link:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.foot__copy{border-top:1px solid var(--divider);color:var(--ink-muted);padding:20px 12px 0}@media (pointer:coarse){.foot__col{gap:0}.foot__link{padding-block:11px}}@media (width<=900px){.nav-links,.hide-sm{display:none}.mnav-d{display:block}.wrap:has(.mnav-d[open])>main{padding-top:309px}}@media (width<=720px){.wrap{padding:16px 32px 32px}.hero-title{letter-spacing:-.015em;font-size:40px;line-height:48px}}@media (width<=480px){.wrap{padding:16px 16px 32px}.hide-xs{display:none}}.page-head{flex-direction:column;gap:12px;max-width:760px;margin-top:72px;display:flex}.page-head__lead{color:var(--ink-muted);text-wrap:pretty}.prose{max-width:72ch;color:var(--ink);font-size:16px;line-height:25px}.page-head+.prose{margin-top:48px}.prose>*+*{margin-top:12px}.prose h2{letter-spacing:-.01em;margin-top:48px;font-size:24px;font-weight:400;line-height:30px}.prose h3{letter-spacing:-.005em;margin-top:28px;font-size:20px;font-weight:400;line-height:26px}.prose h2+*,.prose h3+*{margin-top:12px}.prose ul,.prose ol{padding-left:22px}.prose li+li{margin-top:6px}.prose li::marker{color:var(--ink-muted)}.prose a{text-underline-offset:3px;overflow-wrap:anywhere}.prose strong{color:var(--ink);text-shadow:0 0 .5px;font-weight:400}.prose .table-wrap{overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:14px;line-height:20px}.prose th,.prose td{text-align:left;vertical-align:top;border-top:1px solid var(--divider);padding:10px 12px 10px 0}.prose th{color:var(--ink-muted);white-space:nowrap;font-weight:400}
