@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-greek-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-symbols2-wght-normal.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter Fallback;src:local(Arial),local(Helvetica),local(Liberation Sans),local(Roboto);size-adjust:108.19%;ascent-override:89.54%;descent-override:22.3%;line-gap-override:0%}@font-face{font-family:Geist Mono Fallback;src:local(Menlo),local(Courier New),local(Liberation Mono);size-adjust:100%;ascent-override:100.5%;descent-override:29.5%;line-gap-override:0%}@layer base{:root{--bg:#fff;--fg:#171717;--accent:#2251ff;--fg-body:#323232;--fg-muted:#6b6b6b;--fg-faint:#8a8a8a;--line:#e4e4e4;--wash:#f7f9ff;--font-sans:"Inter Variable", Inter, "Inter Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono Variable", "Geist Mono Fallback", "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--rail-width:240px;--column-max:720px;--column-gap:48px;--page-top:76px;--page-bottom:72px;--page-x:24px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{background:var(--bg);min-width:320px;color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11", "ss01";margin:0;font-size:17px;line-height:26px;overflow-x:hidden}a{color:inherit;text-decoration:none}h1,h2,h3,p,ul,ol,figure{margin:0}::selection{background:var(--fg);color:var(--bg)}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}}@layer components{.site{grid-template-columns:var(--rail-width) minmax(0, 1fr);width:100%;max-width:calc(var(--rail-width) + var(--column-gap) + var(--column-max) + 2 * var(--page-x));min-height:100svh;padding:var(--page-top) var(--page-x) var(--page-bottom);margin:0 auto;display:grid}.rail{top:var(--page-top);height:calc(100svh - var(--page-top) - var(--page-bottom));border-right:1px solid var(--line);flex-direction:column;align-self:start;align-items:flex-start;gap:44px;padding-right:24px;display:flex;position:sticky}.rail-brand{color:var(--fg);display:block}.lockup{font-size:calc(var(--mark-w) * 44.8 / 102 / .727);letter-spacing:-.03em;white-space:nowrap;font-weight:400;line-height:1;display:inline-block}.lockup-mark{width:var(--mark-w);height:auto;margin-right:calc(var(--mark-w) * 21 / 102);vertical-align:calc(var(--mark-w) * -4.6 / 102);shape-rendering:geometricprecision}.rail-nav{gap:28px;display:grid}.rail-group{justify-items:start;gap:12px;display:grid}.rail-link{view-transition-class:rail-link;color:var(--fg-muted);font-size:15px;line-height:1.4;transition:color .14s;position:relative}.rail-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;margin-top:-2.5px;display:none;position:absolute;top:50%;left:-14px}.rail-link[aria-current=page] .rail-dot{view-transition-name:rail-active;display:block}.rail-link:hover,.rail-link[aria-current=page]{color:var(--fg)}.rail-cta{color:var(--fg);margin-top:auto}.rail-extra{border-top:1px solid var(--line);gap:14px;width:100%;padding-top:28px;display:grid}.rail-extra-links{justify-items:start;gap:10px;display:grid}.rail-extra-links a{color:var(--fg-muted);font-size:13px;line-height:1.4;transition:color .14s}.rail-extra-links a:hover,.rail-extra-links a[aria-current=true]{color:var(--fg)}.page{min-width:0;padding-left:var(--column-gap);grid-template-rows:minmax(0,1fr) auto;display:grid}.column{width:100%;max-width:var(--column-max)}.site-footer{width:100%;max-width:var(--column-max);border-top:1px solid var(--line);color:var(--fg-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:nowrap;justify-content:space-between;align-items:flex-start;gap:8px 20px;margin-top:96px;padding-top:28px;font-size:12px;display:flex}.site-footer-nav{flex-wrap:wrap;flex:auto;gap:8px 14px;min-width:0;display:flex}.site-footer a{transition:color .14s}.site-footer a:hover,.site-footer a[aria-current=page]{color:var(--fg)}.site-footer-year{white-space:nowrap;flex:none}.display{letter-spacing:-.04em;color:var(--fg);font-size:72px;font-weight:500;line-height:80px}.h1{letter-spacing:-.03em;color:var(--fg);font-size:40px;font-weight:450;line-height:48px}.h2{letter-spacing:-.02em;color:var(--fg);font-size:26px;font-weight:450;line-height:34px}.h3{color:var(--fg);font-size:18px;font-weight:500;line-height:1.4}.prose{color:var(--fg-body);gap:18px;font-size:17px;line-height:26px;display:grid}.prose a,.hero-lede a{color:var(--accent);text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:1px}.prose a:hover,.hero-lede a:hover{color:var(--fg)}.prose strong{color:var(--fg);font-weight:500}.prose ul,.prose ol{gap:8px;padding-left:22px;display:grid}.prose blockquote{border-left:1px solid var(--fg);color:var(--fg-body);margin:0;padding-left:20px}.prose code{font-family:var(--font-mono);color:var(--fg);font-size:.88em}.prose pre{border:1px solid var(--line);background:var(--bg);margin:0;padding:16px 18px;font-size:14px;line-height:1.55;overflow-x:auto}.prose pre code{font-size:inherit}.prose table{border-collapse:collapse;font-size:15px;line-height:1.5;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 20px 10px 0}.prose th{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);border-bottom-color:var(--fg);white-space:nowrap;font-size:12px;font-weight:400}.prose td:first-child{color:var(--fg)}.prose hr{border:0;border-top:1px solid var(--line);margin:8px 0}.prose h2{scroll-margin-top:var(--page-top);letter-spacing:-.02em;color:var(--fg);padding-top:16px;font-size:26px;font-weight:450;line-height:34px}.prose h3{color:var(--fg);padding-top:6px;font-size:18px;font-weight:500;line-height:1.4}.prose img,.prose svg{max-width:100%;height:auto}.label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);font-size:12px}.caption{color:var(--fg-faint);font-family:var(--font-mono);font-size:12px;line-height:1.6}.small{color:var(--fg-muted);font-size:15px;line-height:1.55}.actions{flex-wrap:wrap;align-items:center;gap:26px;display:flex}.button{background:var(--fg);color:var(--bg);align-items:center;gap:6px;padding:12px 28px 13px;font-size:15px;font-weight:450;line-height:1.2;transition:background-color .14s,transform .1s;display:inline-flex}.button:hover{background:#000}.button:active{transform:scale(.98)}.text-link{color:var(--fg-muted);text-underline-offset:.2em;font-size:15px;text-decoration:underline;text-decoration-thickness:1px;transition:color .14s}.text-link:hover{color:var(--fg)}.arrow-link{color:var(--accent);text-underline-offset:.2em;font-size:15px;text-decoration:underline;text-decoration-thickness:1px;transition:color .14s}.arrow-link:hover{color:var(--fg)}.section{gap:22px;padding-top:72px;display:grid}.section-head{gap:18px;display:grid}.section-head>.label,.page-head>.label,.section>.label{border-bottom:1px solid var(--fg);color:var(--fg);padding-bottom:12px}.section-head>.label+.h2,.page-head>.label+.h1,.section>.label+.h2{margin-top:6px}.callout{border:1px solid var(--accent);background:var(--wash);gap:8px;padding:20px 22px;display:grid}.callout-label{color:var(--accent)}.rule{border:0;border-top:1px solid var(--line);margin:0}.rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none;display:grid}.row{border-bottom:1px solid var(--line);grid-template-columns:200px minmax(0,1fr);gap:24px;padding:20px 0 24px;display:grid}.row-num{grid-template-columns:36px minmax(0,1fr);align-items:baseline;gap:14px;display:grid}.row-index{font-family:var(--font-mono);color:var(--fg-muted);letter-spacing:.04em;font-size:12px}.row-title{color:var(--fg);font-size:18px;font-weight:500;line-height:1.5}.row-body{color:var(--fg-body);font-size:17px;line-height:26px}.figure{gap:14px;padding-top:6px;display:grid}.figure-scroll{min-width:0;container-type:inline-size}.figure svg{width:100%;min-width:0;height:auto;font-family:var(--font-sans);display:block}.figure .diagram-mobile{display:none}.mobile-flow{color:var(--fg-muted);font-size:13px;line-height:1.5}.mobile-flow-intro,.mobile-flow-footnote{color:var(--fg-muted);text-align:center;padding:0}.mobile-flow-footnote{padding:14px 0 0}.mobile-flow-steps.has-feedback{grid-template-columns:18px minmax(0,1fr);display:grid}.has-feedback>.mobile-flow-card,.has-feedback>.mobile-flow-connector,.has-feedback>.mobile-flow-feedback{grid-column:2}.mobile-flow-return{border:1px solid var(--fg);border-right:0;grid-column:1;margin:28px 0 10px;position:relative}.mobile-flow-return:before{content:"";border-top:3.5px solid #0000;border-bottom:3.5px solid #0000;border-left:7px solid var(--fg);position:absolute;top:-4px;right:-1px}.mobile-flow-card{border:1px solid var(--fg);background:var(--bg);padding:14px 16px}.mobile-flow-card.is-accent{border-color:var(--accent);background:var(--wash)}.mobile-flow-card.is-separate{margin-top:16px}.mobile-flow-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:5px;font-size:10px}.is-accent>.mobile-flow-label{color:var(--accent)}.mobile-flow-title{color:var(--fg);font-size:16px;font-weight:500}.mobile-flow-body,.mobile-flow-details{margin-top:5px}.mobile-flow-details{border-top:1px solid var(--line);gap:5px;margin-top:10px;padding-top:10px;display:grid}.mobile-flow-connector{min-height:30px;color:var(--fg);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;gap:8px;padding:8px 0;font-size:11px;display:flex}.figure .flow-arrow,.mobile-flow-connector>.flow-arrow{flex:none;width:12px;height:22px;display:block}.mobile-flow-feedback{color:var(--fg-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-top:12px;padding-left:12px;font-size:11px}@container (max-width:599px){.diagram-desktop{display:none!important}.figure .diagram-mobile{display:block}.figure .diagram-mobile.mobile-flow-connector{display:flex}}.field{gap:8px;display:grid}.field-label{color:var(--fg);font-size:14px;font-weight:500}.field-help{color:var(--fg-muted);font-size:13px}.input{border:1px solid var(--fg-faint);background:var(--bg);width:100%;color:var(--fg);font-family:var(--font-sans);border-radius:0;padding:11px 14px;font-size:15px;line-height:1.5}.input::placeholder{color:var(--fg-faint)}.input:focus{border-color:var(--fg);outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.glyph{transition:transform .16s cubic-bezier(.2,.8,.2,1);display:inline-block}@media (hover:hover){:is(a,button):hover .glyph-e{transform:translate(2px)}:is(a,button):hover .glyph-w{transform:translate(-2px)}:is(a,button):hover .glyph-s{transform:translateY(2px)}:is(a,button):hover .glyph-ne{transform:translate(1px,-1px)}}.rise-in{animation:.22s cubic-bezier(.2,.8,.2,1) both rise-in}.fade-in{animation:.2s ease-out both fade-in}img[loading=lazy]{transition:opacity .24s ease-out}img.img-pending{opacity:0}@media (prefers-reduced-motion:no-preference){.js .figure:not(.is-staged) .figure-scroll{animation:.3s 2s both fade-in}.reveal-part{transition:opacity .42s ease-out var(--reveal-delay,0s)}.figure:not(.is-revealed) .reveal-part{opacity:0}}}@media (max-width:860px){@layer base{:root{--page-top:28px;--page-x:20px;--page-bottom:48px}body{font-size:17px}}@layer components{.site{max-width:calc(var(--column-max) + 2 * var(--page-x));grid-template-columns:minmax(0,1fr);row-gap:36px;padding-top:0}.rail{z-index:20;height:auto;margin:0 calc(-1 * var(--page-x));padding:10px var(--page-x) 8px;border-right:0;border-bottom:1px solid var(--line);background:var(--bg);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand cta""nav nav";align-items:center;gap:6px 16px;display:grid;position:sticky;top:0}.rail-brand{grid-area:brand}.rail-lockup{--mark-w:36px!important}.rail-nav{grid-area:nav}.rail-nav,.rail-group{flex-wrap:wrap;gap:4px 18px;display:flex}.rail-nav .rail-link{padding:3px 0}.rail-cta,.rail-cta:hover,.rail-cta[aria-current=page]{background:var(--fg);color:var(--bg);grid-area:cta;margin-top:0;padding:8px 14px}html{scroll-padding-top:104px}.prose h2{scroll-margin-top:104px}.input{font-size:16px}.rail-extra{display:none}.rail-link{font-size:14px}.rail-dot{display:none!important}.page{padding-left:0}.display{font-size:44px;line-height:48px}.h1{font-size:32px;line-height:38px}.h2{font-size:23px;line-height:30px}.prose,.row-body{font-size:17px}.section{padding-top:56px}.row{grid-template-columns:minmax(0,1fr);gap:8px}.site-footer{margin-top:64px}}}:focus-visible{animation:.12s ease-out focus-in}@keyframes focus-in{0%{outline-offset:0}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(4px)}}@view-transition{navigation:auto}::view-transition-old(root){animation-duration:.18s}::view-transition-new(root){animation-duration:.18s}.rail{view-transition-name:rail}::view-transition-old(rail){animation:none}::view-transition-new(rail){animation:none}::view-transition-group(rail-active){animation-duration:.42s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-old(*.rail-link){animation-duration:.42s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-new(*.rail-link){animation-duration:.42s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-old(rail-active){animation:none}::view-transition-new(rail-active){animation:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}
