:root{--ground:#fbeee4;--ground-glow:#fff6ee;--card:#fff;--ink-band:#1f2430;--panel-dark:#1e1f24;--band-sage:#e4ece1;--band-plum:#efe4ed;--band-oat:#f1e8da;--band-green:#e3f1e8;--band-mustard:#f8edcf;--ink:#1f2430;--ink-2:#3a3d47;--ink-muted:#5c5752;--ink-faint:#7d7268;--ink-past:#8c8178;--on-ink:#e4dad1;--on-ink-muted:#cfc6be;--on-ink-strong:#fbeee4;--text-brown:#7d5d51;--text-green-eyebrow:#3f6b4f;--text-green:#127a48;--text-plum:#7e2f82;--text-coral:#d1601f;--text-mustard:#866400;--rule:#e5cdbb;--rule-soft:#efe1d5;--rule-faint:#f1e4d9;--rule-menu:#eeeae2;--track:#eedccd;--brand-green:#5bb487;--brand-green-hover:#4ca477;--brand-green-edge:#3e9468;--brand-green-bright:#1faf6a;--brand-green-bright-edge:#168a52;--brand-coral:#f2734a;--brand-coral-edge:#c95a36;--brand-mustard:#e8b92e;--brand-mustard-edge:#b98f14;--brand-plum:#7e2f82;--brand-plum-edge:#5e2161;--brand-sage:#a9bfa5;--brand-oat:#c4b49a;--brand-apricot-deep:#e39a74;--brand-highlight:var(--rdr-unknown-fill);--rdr-punctuation:#a52014;--rdr-punctuation-weight:500;--rdr-keyword:#2b60c5;--rdr-keyword-weight:400;--rdr-library:#1c1d21;--rdr-library-weight:700;--rdr-name:#63635f;--rdr-name-weight:300;--rdr-type:var(--rdr-keyword);--rdr-type-weight:var(--rdr-keyword-weight);--rdr-string:var(--rdr-name);--rdr-string-weight:400;--rdr-comment:var(--rdr-name);--rdr-comment-weight:400;--rdr-unknown:#2b60c5;--rdr-unknown-fill:#dce6f8;--rdr-state-new:var(--rdr-unknown-fill);--rdr-span:#fadce4;--rdr-state-l1:#f9e3a4;--rdr-state-l2:#fae9b6;--rdr-state-l3:#fcefca;--rdr-state-l4:#fdf5e0;--rdr-state-known:transparent;--rdr-phrase:#fadce4;--rdr-dark-library:#eceae4;--rdr-dark-punctuation:#ffa378;--rdr-dark-keyword:#2b60c5;--rdr-dark-name:#a09f9b;--rdr-dark-fill-learning:#4f4017;--rdr-dark-fill-unknown:#2b60c521;--ed-keyword:#f92672;--ed-var:#c9c9c2;--ed-op:#b8b8b0;--ed-punct:#8f8f88;--ed-fn:#a6e22e;--ed-str:#e6db74;--blank-ink:#6b4e00;--blank-bg:#fff3c9;--blank-border:#b07a00;--r-pill:999px;--r-card:32px;--r-card-sm:28px;--r-panel:24px;--r-inset:20px;--r-input:16px;--r-chip:10px;--r-token:5px;--border:1.5px;--press:transform .12s ease-out, box-shadow .12s ease-out;--t-display:56px;--t-headline:40px;--t-h1:34px;--t-h2:28px;--t-h3:22px;--t-body:18px;--t-small:15px;--t-caption:13px;--t-code:18px;--t-lead:18px;--measure:680px;--measure-wide:1280px;--gutter:24px;--page:1280px;--page-pad:clamp(24px, 5vw, 80px);--demo-pad:18px;--reader-code:18px;--reader-code-lh:36px;--reader-phrase:17px;--reader-phrase-lh:25.5px;--reader-phrase-gap:44px;--reader-inner:90px;--card-pad:24px;--card-pad-sm:20px;--whynow-pad:24px;--band-pad:96px;--band-pad-sm:72px;--page-head-pad:64px;--t-price:56px;--card-pad-plan:24px;--t-faq-q:18px;--t-faq-a:17px;--t-footer:14px;--t-lead-sm:17px;--hero-pad-top:32px;--t-working-code:14px;--t-404:32px;--strip-pad-y:20px;--strip-pad-x:18px;--t-strip:16px;--legal-sec-top:40px;--legal-sec-pad:28px;--t-legal-h2:26px;--about-pad-top:40px;--about-sep-top:8px;--about-pull:32px;--about-stats-top:40px;--t-quote:30px;--punch-gap:40px;--steps-gap-top:40px;--steps-gap:32px;--t-h3-row:22px;--compare-pad:12px;--compare-inner-pad:20px;--compare-cl-pad-y:16px;--t-figure:64px;--hero-gap:24px;--reader-line-pad-top:10px;--reader-chip-pad:2px 1px;--reader-row-gap:8px;--t-pull:36px;--table-pad-y:8px;--table-pad-x:12px;--tile-pad-y:16px;--tile-pad-x:20px;--tile-radius:20px;--tile-gap-row:0px;--tiles-gap:10px;--tiles-top:-9999px;--t-tile-figure:44px;--t-tile-caption:16px;--tile-caption-basis:160px;--cite-pad:20px}@supports (color:lab(0% 0 0)){:root{--rdr-dark-punctuation:lab(75.963% 33.8766 38.8944)}}@media (min-width:640px){:root{--demo-pad:40px;--reader-code:30px;--reader-code-lh:56px;--reader-phrase:18px;--reader-phrase-lh:27px;--reader-phrase-gap:11px;--reader-inner:80px;--card-pad:40px;--card-pad-sm:32px;--whynow-pad:48px;--band-pad:160px;--band-pad-sm:120px;--page-head-pad:96px;--t-price:80px;--card-pad-plan:36px;--t-faq-q:20px;--t-faq-a:18px;--t-footer:15px;--t-lead-sm:18px;--hero-pad-top:72px;--t-working-code:20px;--t-404:44px;--strip-pad-y:28px;--strip-pad-x:32px;--t-strip:22px;--legal-sec-top:56px;--legal-sec-pad:36px;--t-legal-h2:36px;--about-pad-top:80px;--about-sep-top:16px;--about-pull:56px;--about-stats-top:64px;--t-quote:40px;--punch-gap:56px;--steps-gap-top:64px;--steps-gap:56px;--t-h3-row:28px;--compare-pad:20px;--compare-inner-pad:36px;--compare-cl-pad-y:28px;--t-figure:80px;--hero-gap:40px;--reader-line-pad-top:14px;--reader-chip-pad:3px 2px;--reader-row-gap:10px;--t-pull:56px;--table-pad-y:16px;--table-pad-x:28px;--tile-pad-y:32px;--tile-pad-x:32px;--tile-radius:28px;--tile-gap-row:12px;--tiles-gap:14px;--tiles-top:96px;--t-tile-figure:80px;--t-tile-caption:18px;--tile-caption-basis:100%;--cite-pad:28px;--t-display:96px;--t-headline:64px;--t-h1:48px;--t-h2:36px;--t-lead:20px}}@font-face{font-family:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/fraunces-vietnamese-600-italic.woff2)format("woff2");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:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/fraunces-latin-ext-600-italic.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/fraunces-latin-600-italic.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-vietnamese-600-normal.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-latin-ext-600-normal.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-latin-600-normal.woff2)format("woff2");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}:root{--font-display:"Fraunces";--paper:var(--ground);--paper-sunk:var(--band-oat);--paper-sunk-strong:var(--rule-soft);--ink-strong:var(--ink-2);--ink-mid:var(--ink-muted);--ink-soft:var(--ink-muted);--rule-strong:var(--rule);--rule-mid:var(--ink-faint);--blue-tint:var(--rdr-unknown-fill);--blue:var(--rdr-unknown);--unknown-fill:var(--rdr-unknown-fill);--green:var(--brand-green);--green-hover:var(--brand-green-hover);--green-edge:var(--brand-green-edge);--green-bright:var(--brand-green-bright);--coral:var(--brand-coral);--mustard:var(--brand-mustard);--plum:var(--brand-plum);--sage:var(--brand-sage);--oat:var(--brand-oat);--tok-punctuation:var(--rdr-punctuation);--tok-punctuation-weight:var(--rdr-punctuation-weight);--tok-keyword:var(--rdr-keyword);--tok-keyword-weight:var(--rdr-keyword-weight);--tok-library:var(--rdr-library);--tok-library-weight:var(--rdr-library-weight);--tok-name:var(--rdr-name);--tok-name-weight:var(--rdr-name-weight);--tok-type:var(--rdr-type);--tok-type-weight:var(--rdr-type-weight);--tok-string:var(--rdr-string);--tok-string-weight:var(--rdr-string-weight);--tok-comment:var(--rdr-comment);--tok-comment-weight:var(--rdr-comment-weight);--state-new:var(--rdr-state-new);--state-l1:var(--rdr-state-l1);--state-l2:var(--rdr-state-l2);--state-l3:var(--rdr-state-l3);--state-l4:var(--rdr-state-l4);--state-known:var(--rdr-state-known);--phrase:var(--rdr-phrase);--dark-library:var(--rdr-dark-library);--dark-punctuation:var(--rdr-dark-punctuation);--dark-keyword:var(--rdr-dark-keyword);--dark-name:var(--rdr-dark-name);--dark-fill-learning:var(--rdr-dark-fill-learning);--t-11:11px;--t-13:var(--t-caption);--t-15:var(--t-small);--t-17:var(--t-body);--t-20:20px;--t-24:var(--t-h3);--t-30:30px;--t-38:var(--t-h2);--t-48:var(--t-h1);--t-62:var(--t-headline);--t-80:var(--t-display);--t-hero:var(--t-display)}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--ground);color:var(--ink);font-family:var(--font-body), system-ui, sans-serif;font-feature-settings:"kern" 1, "liga" 1;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;min-height:100vh;margin:0;font-size:1rem;line-height:normal;display:flex}h1,h2,h3{font-family:var(--font-display), Georgia, serif;font-optical-sizing:auto;font-variation-settings:"SOFT" 50, "WONK" 0;letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:600}h1{line-height:1.12}h2{line-height:1.15}h3{line-height:1.25}p{margin:0 0 1.1em}code,kbd,pre,samp{font-family:var(--font-mono), ui-monospace, monospace;font-size:.92em}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1.5px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule)}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}hr{border:0;border-top:var(--border) solid var(--rule);margin:3rem 0}table{border-collapse:collapse;width:100%}.scroll-x{-webkit-overflow-scrolling:touch;overflow-x:auto}.skip-link{background:var(--card);color:var(--ink);border-radius:var(--r-input);z-index:10;padding:.75rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
