@font-face{font-family:Geist Pixel Square;src:url(/home/fonts/GeistPixel-Square.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/geist-latin.woff2)format("woff2");font-weight:400 600;font-style:normal;font-display:swap;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;src:url(/fonts/geist-latin-ext.woff2)format("woff2");font-weight:400 600;font-style:normal;font-display:swap;unicode-range:U+100-130,U+132-151,U+154-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Fallback;src:local(Arial),local(ArialMT);size-adjust:102.4%;ascent-override:98.14%;descent-override:28.81%;line-gap-override:0%}@font-face{font-family:Geist Fallback;src:local(Arial Bold),local(Arial-BoldMT);font-weight:600 700;size-adjust:99.62%;ascent-override:100.88%;descent-override:29.61%;line-gap-override:0%}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono-latin.woff2)format("woff2");font-weight:400 600;font-style:normal;font-display:swap;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;src:url(/fonts/geist-mono-latin-ext.woff2)format("woff2");font-weight:400 600;font-style:normal;font-display:swap;unicode-range:U+100-130,U+132-151,U+154-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Fallback;src:local(Courier New),local(CourierNewPSMT);size-adjust:99.98%;ascent-override:100.52%;descent-override:29.51%;line-gap-override:0%}@font-face{font-family:Geist Pixel Fallback;src:local(Courier New),local(CourierNewPSMT);size-adjust:83.73%;ascent-override:120.63%;descent-override:34.64%;line-gap-override:0%}body:has(.home-root){--home-font-pixel:"Geist Pixel Square", "Geist Pixel Fallback", monospace;--home-hairline:#303030;--home-teal:#00cdff;--home-muted:#ffffff8c;background-color:#010101}html:not([data-download=macos]) [data-for=macos],html:not([data-download=windows]) [data-for=windows],html:not([data-download=linux]) [data-for=linux],html:not([data-download=handheld]) [data-for=handheld],html:is([data-download=macos],[data-download=windows],[data-download=linux],[data-download=handheld]) [data-cta-label]:not([data-for]){display:none}.home-root{color:#fff;background-color:#010101;font-family:Geist,Geist Fallback,Figtree,sans-serif}.home-serif{font-family:PT Serif,PT Serif Fallback,serif}.home-skip{z-index:60;color:#000;background:#fff;border-radius:6px;padding:10px 14px;font-size:14px;font-weight:500;position:absolute;top:-80px;left:16px}.home-skip:focus{top:12px}.home-root main:focus{outline:none}.home-pixel{font-family:Geist Pixel Square,Geist Pixel Fallback,monospace}.home-mono{font-family:Geist Mono,Geist Mono Fallback,monospace}.home-demo-scroll{scrollbar-width:thin;scrollbar-color:#2f2f2f transparent}.home-demo-scroll::-webkit-scrollbar{width:8px}.home-demo-scroll::-webkit-scrollbar-thumb{background:#2f2f2f;border-radius:4px}.home-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.home-marquee-track{width:max-content;animation:36s linear infinite home-marquee;display:flex}@keyframes home-marquee{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.home-marquee-track{animation:none}}.home-testimonial-viewport{max-height:720px;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#0000,#000 10% 90%,#0000)}.home-testimonial-column{animation:42s linear infinite home-testimonial-scroll}.home-testimonial-column-slow{animation-duration:58s}@keyframes home-testimonial-scroll{to{transform:translateY(-50%)}}@media (prefers-reduced-motion:reduce){.home-testimonial-column{animation:none}}.home-hatch{background-image:repeating-linear-gradient(-45deg,#303030 0 1px,#0000 1px 12px)}body:has(.home-root){--home-ground:#010101;--home-sunk:#050505;--home-raised:#0a0a0a;--home-raised-2:#0d0d0d;--home-chip:#161616;--home-control:#262626;--home-control-hover:#333;--home-green-deep:#111717;--home-green-line:#304444;--home-teal-tint:#071313;--home-teal-surface:#0a1a1c;--home-text:#fff;--home-text-secondary:#d6d6d6;--home-text-prose:#c9c9c9;--home-teal-text:#7fd6cf;--home-teal-icon:#5cc9c0;--home-teal-display:linear-gradient(#a5ece3, #3fb9cc);--home-teal-line:#2a6f75;--home-teal-line-hover:#65dfe8;--home-teal-glow:#00cdff40;--home-teal-glow-hover:#00cdff66;--home-teal-glow-border:#7fd6cf99;--home-border-subtle:#ffffff1a;--home-border-strong:#fff3;--home-link-underline:#7fd6cf80;--home-focus:#a5ece3;--home-stipple-light:#a5ece3;--home-stipple-dark:#3fb9cc;--home-stipple-pitch:6px;--nav-h:73px}@media (width>=64rem){body:has(.home-root){--nav-h:77px}}.home-editorial{font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:has(.home-editorial) :focus-visible{outline:2px solid var(--home-focus);outline-offset:2px}body:has(.home-editorial) main:focus-visible{outline:none}.home-editorial em{color:var(--home-text);font-style:normal}.home-grad{background-image:var(--home-teal-display);color:#0000;-webkit-background-clip:text;background-clip:text}.home-kick{letter-spacing:.2em;text-transform:uppercase;color:var(--home-muted);align-items:center;gap:10px;font-family:Geist Mono,ui-monospace,monospace;font-size:.75rem;font-weight:400;line-height:1.33;display:flex}.home-kick-sq{background:var(--home-teal);flex:none;width:8px;height:8px}.home-crumb ol{flex-wrap:wrap;align-items:center;margin:0;padding:0;list-style:none;display:flex}.home-crumb li{align-items:center;display:flex}.home-crumb li+li:before{content:"/";color:var(--home-muted);margin:0 10px}.home-crumb a{min-height:24px;color:var(--home-text);align-items:center;display:inline-flex}.home-crumb a:hover{color:var(--home-teal-text)}.home-meta{color:var(--home-muted);font-size:.875rem;line-height:1.45}.home-meta b{color:var(--home-text);font-weight:500}.home-link{color:var(--home-text);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--home-link-underline);text-decoration-color:var(--home-link-underline);text-underline-offset:.2em}.home-link:hover{color:var(--home-teal-text);-webkit-text-decoration-color:var(--home-teal-text);text-decoration-color:var(--home-teal-text)}.home-ibtn{border:1px solid var(--home-border-strong);width:32px;height:32px;color:var(--home-text-secondary);border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.home-ibtn:hover{background:var(--home-chip);color:var(--home-text)}.home-dek{max-width:38rem;color:var(--home-muted);text-wrap:pretty;font-size:1.125rem;line-height:1.5}@media (width>=48rem){.home-dek{font-size:1.25rem}}@media (width<40rem){.home-editorial .home-gutter{display:none}.home-editorial .home-column{border-inline-width:0}}@media (40rem<=width<64rem){.home-editorial header.home-column{padding-inline:32px}}.home-pad{padding-inline:16px}@media (width>=40rem){.home-pad{padding-inline:32px}}@media (width>=64rem){.home-pad{padding-inline:40px}}@media (width>=80rem){.home-pad{padding-inline:48px}}.home-hub-hd{padding-top:48px;padding-bottom:48px;position:relative;overflow:hidden}.home-hub-star{aspect-ratio:709/907;pointer-events:none;background:url(/home/hero-star.webp) 50%/contain no-repeat;width:36%;max-width:480px;display:none;position:absolute;top:0;right:0}@media (width>=64rem){.home-hub-hd{padding-top:96px}.home-hub-star{display:block}}.home-hub-h1{letter-spacing:-.01em;color:var(--home-text);text-wrap:balance;overflow-wrap:anywhere;margin-top:0;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:clamp(2.25rem,1.6rem + 2.6vw,3.5rem);font-weight:400;line-height:1.12;position:relative}.home-hub-h1 .home-pixel{letter-spacing:-.015em;white-space:nowrap}.home-rss{align-items:center;gap:6px;margin-top:16px;font-size:.875rem;line-height:1.45;text-decoration:none;display:inline-flex}.home-cover{aspect-ratio:16/9;border:1px solid var(--home-hairline);background:var(--home-ground);position:relative;overflow:hidden;container-type:inline-size}.home-cv-st{background-image:radial-gradient(circle, var(--home-stipple-light) 0, var(--home-stipple-light) 1px, transparent 1.5px), radial-gradient(circle, var(--home-stipple-dark) 0, var(--home-stipple-dark) 1px, transparent 1.5px);background-size:var(--home-stipple-pitch) var(--home-stipple-pitch), var(--home-stipple-pitch) var(--home-stipple-pitch);background-position:0 0, calc(var(--home-stipple-pitch) / 2) calc(var(--home-stipple-pitch) / 2);position:absolute;inset:0}.home-cv-st[data-shape=bloom]{-webkit-mask-image:radial-gradient(62% 82% at 100% 100%,#000 0%,#000c 34%,#0000 100%);mask-image:radial-gradient(62% 82% at 100% 100%,#000 0%,#000c 34%,#0000 100%)}.home-cv-st[data-shape=arch]{-webkit-mask-image:radial-gradient(74% 66% at 50% 122%,#000 0% 52%,#0000 100%);mask-image:radial-gradient(74% 66% at 50% 122%,#000 0% 52%,#0000 100%)}.home-cv-st[data-shape=horizon]{-webkit-mask-image:linear-gradient(#0000 58%,#000000d9 86%,#000 100%);mask-image:linear-gradient(#0000 58%,#000000d9 86%,#000 100%)}.home-cv-st[data-shape=drift]{-webkit-mask-image:linear-gradient(152deg,#0000 52%,#000 67% 77%,#0000 93%);mask-image:linear-gradient(152deg,#0000 52%,#000 67% 77%,#0000 93%)}.home-cv-rail{background-color:var(--home-ground);background-image:repeating-linear-gradient(-45deg, var(--home-hairline) 0, var(--home-hairline) 1px, transparent 1px, transparent max(4px, .75cqw));width:4%;position:absolute;top:0;bottom:0}.home-cv-rail[data-side=left]{border-right:1px solid var(--home-hairline);left:0}.home-cv-rail[data-side=right]{border-left:1px solid var(--home-hairline);right:0}.home-cv-t{letter-spacing:-.01em;width:60%;color:var(--home-text);text-wrap:balance;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-weight:400;line-height:1.1;position:absolute;top:16%;left:9%}.home-cv-t:before{content:attr(data-title)}.home-cv-m{justify-content:center;align-items:center;gap:3.4cqw;padding-bottom:6%;display:flex;position:absolute;inset:0}.home-cv-p{letter-spacing:-.01em;color:var(--home-text);white-space:nowrap;align-items:center;gap:1.5cqw;font-size:4.2cqw;font-weight:600;line-height:1;display:flex}.home-cv-p:after{content:attr(data-name)}.home-cv-mk{flex:none;width:5.06cqw;height:5.06cqw;display:block}.home-cv-vs{font-family:var(--home-font-pixel);font-size:4.6cqw;line-height:1}.home-cv-vs:before{content:"vs"}.home-tile{background:var(--home-sunk);flex-direction:column;gap:16px;min-width:0;padding:20px;display:flex;position:relative}@media (width>=64rem){.home-tile{padding:24px}}.home-tile:hover{background:var(--home-raised)}.home-tile:focus-within{z-index:1;outline:2px solid var(--home-focus);outline-offset:2px}.home-tile-tx{flex-direction:column;gap:8px;display:flex}.home-tile-tt{color:var(--home-text);text-wrap:balance;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:1.25rem;font-weight:400;line-height:1.3}@media (width>=40rem){.home-tile-tt{font-size:1.375rem}}.home-tile-tt a:after{content:"";position:absolute;inset:0}.home-tile-tt a:focus-visible{outline:none}.home-tile:hover .home-tile-tt a{text-underline-offset:.2em;-webkit-text-decoration:underline #7fd6cf99;text-decoration:underline #7fd6cf99;text-decoration-thickness:1px}.home-tile-sum{-webkit-line-clamp:2;color:var(--home-muted);-webkit-box-orient:vertical;font-size:.9375rem;line-height:1.55;display:-webkit-box;overflow:hidden}.home-bq{border-left:2px solid var(--home-teal-icon);color:var(--home-text);margin:2rem 0;padding-left:1.25rem;font-family:PT Serif,PT Serif Fallback,serif;font-size:1.25rem;line-height:1.5}.home-bq-attr{color:var(--home-muted);margin-top:12px;font-family:Geist,Geist Fallback,sans-serif;font-size:.875rem;line-height:1.45;display:block}.home-callout{border:1px solid var(--home-teal-line);background:var(--home-teal-surface);color:var(--home-text-secondary);border-radius:8px;margin:2rem 0;padding:16px 20px;font-size:1rem;line-height:1.6}.home-callout .home-kick{color:var(--home-teal-text);margin-bottom:6px}.home-callout p:not(.home-kick)+p{margin-top:.75em}.home-code{border:1px solid var(--home-border-subtle);background:var(--home-raised);border-radius:8px;margin:2rem 0;position:relative}.home-code-hd{justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 0 20px;display:flex}.home-code-hd .home-kick{overflow-wrap:anywhere;min-width:0}.home-code-hd .home-copyb{margin-left:auto}.home-code pre{color:var(--home-text-secondary);white-space:pre;margin:0;padding:10px 20px 16px;font-family:Geist Mono,ui-monospace,monospace;font-size:.875rem;line-height:1.6;overflow-x:auto}.home-code pre code{font-size:inherit;color:inherit;background:0 0;border:0;padding:0}.home-code-fade{background:linear-gradient(to right, transparent, var(--home-raised));pointer-events:none;border-radius:0 8px 8px 0;width:48px;position:absolute;top:44px;bottom:0;right:0}.home-copyb{border:1px solid var(--home-border-strong);height:32px;color:var(--home-text-secondary);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:13px;line-height:1;display:inline-flex}.home-copyb:hover{background:var(--home-chip);color:var(--home-text)}.home-bq:first-child,.home-callout:first-child,.home-code:first-child{margin-top:0}.home-ctab-block{--ctab-sticky-top:calc(var(--nav-h) + 44px)}@media (width>=80rem){.home-ctab-block{--ctab-sticky-top:var(--nav-h)}}.home-ctab{border-collapse:collapse;table-layout:fixed;width:100%;color:var(--home-text-prose);font-variant-numeric:tabular-nums;font-size:.9375rem;line-height:1.5}.home-ctab caption{caption-side:top;text-align:left;padding-bottom:12px}.home-ctab tr,.home-ctab-cite a{scroll-margin-top:calc(var(--ctab-sticky-top) + 64px)}.home-ctab thead th{top:var(--ctab-sticky-top);z-index:3;background:var(--home-raised);color:var(--home-text);text-align:left;vertical-align:middle;border-bottom:1px solid var(--home-hairline);padding:14px 16px;font-weight:600;line-height:1.4;position:sticky}.home-ctab thead th.home-ctab-ty{background:var(--home-teal-surface);box-shadow:inset 0 2px 0 var(--home-teal-icon)}.home-ctab[data-pinned] thead th{box-shadow:0 8px 16px #00000080}.home-ctab[data-pinned] thead th.home-ctab-ty{box-shadow:inset 0 2px 0 var(--home-teal-icon), 0 8px 16px #00000080}.home-ctab-ph{align-items:center;gap:10px;display:flex}.home-ctab-mk{flex:none;width:20px;height:20px;display:block}.home-ctab tbody th{color:var(--home-text);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:14px 16px;font-weight:500;line-height:1.4}.home-ctab td{vertical-align:top;overflow-wrap:anywhere;padding:14px 16px}.home-ctab tbody tr{border-bottom:1px solid var(--home-hairline)}.home-ctab td.home-ctab-ty{background:var(--home-teal-tint)}.home-ctab tr.home-ctab-grp th{background:var(--home-raised-2);letter-spacing:.2em;text-transform:uppercase;color:var(--home-muted);padding:10px 16px;font-family:Geist Mono,ui-monospace,monospace;font-size:.75rem;font-weight:400;line-height:1.33}.home-ctab-plab{display:none}.home-ctab-verdict{letter-spacing:.01em;align-items:center;gap:6px;margin-bottom:6px;font-size:.8125rem;font-weight:600;line-height:1.2;display:flex}.home-ctab-verdict[data-verdict=yes]{color:var(--home-teal-icon)}.home-ctab-verdict[data-verdict=partial]{color:var(--home-text-secondary)}.home-ctab-verdict[data-verdict=no],.home-ctab-verdict[data-verdict=not-documented]{color:var(--home-muted)}.home-ctab-cite{vertical-align:super;white-space:nowrap;margin-left:2px;font-family:Geist Mono,ui-monospace,monospace;font-size:.6875rem;font-weight:500;line-height:1;position:static;top:auto}.home-ctab-block .home-ctab-cite a{color:var(--home-teal-text);padding:0 1px;text-decoration:none}.home-ctab-block .home-ctab-cite a:hover{text-decoration:underline}.home-ctab-wrap[data-overflows]{overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000)}.home-ctab-wrap[data-overflows] .home-ctab :is(th,td):first-child{z-index:2;background:var(--home-ground);position:sticky;left:0}.home-ctab-wrap[data-overflows] .home-ctab thead th{top:0}.home-ctab-wrap[data-overflows] .home-ctab thead th:first-child{z-index:4;background:var(--home-raised)}.home-ctab-wrap[data-overflows] .home-ctab tr.home-ctab-grp th{background:var(--home-raised-2)}.home-ctab-sources{margin-top:24px}.home-ctab-block .home-ctab-sources h3{letter-spacing:.2em;text-transform:uppercase;color:var(--home-text);margin:2rem 0 .75rem;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:1.25rem;font-weight:400;line-height:1.3;display:flex}@media (width>=48rem){.home-ctab-block .home-ctab-sources h3{font-size:1.375rem}}.home-ctab-block .home-ctab-sources ol{color:var(--home-muted);column-gap:32px;margin:12px 0 0;padding-left:1.6em;font-size:.8125rem;line-height:1.45;list-style:decimal}@media (width>=80rem){.home-ctab-block .home-ctab-sources ol{columns:2}}.home-ctab-block .home-ctab-sources li{break-inside:avoid;scroll-margin-top:calc(var(--ctab-sticky-top) + 16px);margin:0 0 6px;padding-left:2px}.home-ctab-block .home-ctab-sources li::marker{color:var(--home-muted);font-variant-numeric:tabular-nums;font-family:Geist Mono,ui-monospace,monospace}.home-ctab-block .home-ctab-src{color:var(--home-text);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--home-link-underline);text-decoration-color:var(--home-link-underline);text-underline-offset:.2em}.home-ctab-block .home-ctab-src:hover{color:var(--home-teal-text);-webkit-text-decoration-color:var(--home-teal-text);text-decoration-color:var(--home-teal-text)}.home-ctab-block .home-ctab-back{color:var(--home-muted);text-underline-offset:.2em;-webkit-text-decoration:underline #ffffff40;text-decoration:underline #ffffff40}.home-ctab-ext{vertical-align:-.04em;width:.8em;height:.8em;margin-left:.15em;display:inline-block}@media (width<48rem){.home-ctab:not([data-cards=never]),.home-ctab:not([data-cards=never]) :is(caption,tbody,tr,th,td){display:block}.home-ctab:not([data-cards=never]) colgroup{display:none}.home-ctab:not([data-cards=never]) thead{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.home-ctab:not([data-cards=never]) caption{padding-bottom:4px}.home-ctab:not([data-cards=never]) tbody tr{padding:16px 0}.home-ctab:not([data-cards=never]) tbody th{padding:0 0 10px;font-size:1rem;font-weight:600}.home-ctab:not([data-cards=never]) td{border-radius:8px;padding:12px}.home-ctab:not([data-cards=never]) td+td{margin-top:4px}.home-ctab:not([data-cards=never]) tr.home-ctab-grp{border-bottom:0;padding:32px 0 0}.home-ctab:not([data-cards=never]) tr.home-ctab-grp th{background:0 0;padding:0}.home-ctab:not([data-cards=never]) .home-ctab-plab{letter-spacing:.15em;text-transform:uppercase;color:var(--home-muted);align-items:center;gap:8px;margin-bottom:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:.6875rem;display:flex}.home-ctab:not([data-cards=never]) .home-ctab-plab .home-ctab-mk{width:16px;height:16px}}@media (48rem<=width<64rem){.home-ctab[data-cards=wide],.home-ctab[data-cards=wide] :is(caption,tbody,tr,th,td){display:block}.home-ctab[data-cards=wide] colgroup{display:none}.home-ctab[data-cards=wide] thead{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.home-ctab[data-cards=wide] caption{padding-bottom:4px}.home-ctab[data-cards=wide] tbody tr{padding:16px 0}.home-ctab[data-cards=wide] tbody th{padding:0 0 10px;font-size:1rem;font-weight:600}.home-ctab[data-cards=wide] td{border-radius:8px;padding:12px}.home-ctab[data-cards=wide] td+td{margin-top:4px}.home-ctab[data-cards=wide] tr.home-ctab-grp{border-bottom:0;padding:32px 0 0}.home-ctab[data-cards=wide] tr.home-ctab-grp th{background:0 0;padding:0}.home-ctab[data-cards=wide] .home-ctab-plab{letter-spacing:.15em;text-transform:uppercase;color:var(--home-muted);align-items:center;gap:8px;margin-bottom:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:.6875rem;display:flex}.home-ctab[data-cards=wide] .home-ctab-plab .home-ctab-mk{width:16px;height:16px}}.home-hub-hd>:not(.home-hub-star){position:relative}.home-hub-hd .home-dek{margin-top:16px}.home-hub-body{border-top:1px solid var(--home-hairline);padding-top:40px;padding-bottom:64px}@media (width>=40rem){.home-hub-body{padding-bottom:96px}}.home-hub-jump{flex-wrap:wrap;gap:8px 24px;margin-top:24px;font-size:.9375rem;display:flex}.home-hub-sec{margin-top:48px}@media (width>=64rem){.home-hub-sec{margin-top:64px}}.home-hub-sec[id]{scroll-margin-top:calc(var(--nav-h) + 24px)}.home-hub-sec-h{color:var(--home-text);margin-bottom:24px;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:1.5rem;font-weight:400;line-height:1.25}@media (width>=64rem){.home-hub-sec-h{font-size:1.875rem}}.home-hub-body>.home-hub-sec:first-child{margin-top:0}.home-hub-sec>.home-kick{margin-bottom:24px}.home-feat{grid-template-columns:minmax(0,1fr);align-items:center;gap:20px;display:grid;position:relative}@media (width>=64rem){.home-feat{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px}}.home-feat:focus-within{outline:2px solid var(--home-focus);outline-offset:2px}.home-ft{letter-spacing:-.005em;color:var(--home-text);text-wrap:balance;margin:0;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:1.75rem;font-weight:400;line-height:1.2}@media (width>=48rem){.home-ft{font-size:2.1875rem}}@media (width>=80rem){.home-ft{font-size:2.5rem}}.home-ft a:after{content:"";position:absolute;inset:0}.home-ft a:focus-visible{outline:none}.home-feat:hover .home-ft a{text-underline-offset:.2em;-webkit-text-decoration:underline #7fd6cf99;text-decoration:underline #7fd6cf99;text-decoration-thickness:1px}.home-au{color:var(--home-text);align-items:center;gap:10px;margin-top:20px;font-size:.875rem;font-weight:500;display:flex}.home-tile .home-au{margin-top:4px}.home-hub-grid{grid-template-columns:minmax(0,1fr);gap:1px;padding:1px;display:grid}.home-hub-grid>.home-tile{box-shadow:0 0 0 1px var(--home-hairline)}@media (width>=40rem){.home-hub-grid[data-hub=blog]{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hub-grid[data-hub=blog][data-n="1"]{grid-template-columns:minmax(0,1fr);max-width:50%}}@media (width>=48rem){.home-hub-grid[data-hub=compare]{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hub-grid[data-hub=compare][data-n="1"]{grid-template-columns:minmax(0,1fr);max-width:50%}}@media (width>=80rem){.home-hub-grid[data-hub][data-n="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}}.home-art-row{padding-bottom:64px}.home-art{max-width:72rem;margin-inline:auto;padding-top:32px}.home-art-body{margin-top:32px}@media (width>=48rem){.home-art{padding-top:48px}.home-art-hd{max-width:38rem;margin-inline:auto}}@media (width>=64rem){.home-art-row{padding-bottom:96px}}@media (width>=80rem){.home-art{grid-template-columns:minmax(0,1fr) 15rem;column-gap:4rem;padding-top:80px;display:grid}.home-art-hd{grid-area:1/1;max-width:none;margin-inline:0}.home-art-flow{grid-area:2/1;min-width:0}.home-art-body{margin-top:40px}.home-art-end{grid-area:3/1}}.home-art-h1{letter-spacing:-.01em;max-width:48rem;color:var(--home-text);text-wrap:balance;overflow-wrap:anywhere;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:clamp(2rem,1.4rem + 2.2vw,3rem);font-weight:400;line-height:1.15}.home-art-hd .home-dek{margin-top:16px}.home-byline{align-items:center;gap:12px;max-width:38rem;margin-top:24px;display:flex}.home-av{background:var(--home-control);flex:none;width:24px;height:24px}.home-av-40{width:40px;height:40px}.home-byline-m{clip-path:inset(-8px -8px -8px 14px);flex-wrap:wrap;align-items:center;row-gap:2px;min-width:0;margin-left:-20px;display:flex}.home-byline-m>*{white-space:nowrap}.home-byline-d{flex-wrap:wrap;display:flex}.home-byline-m>:not(:first-child):before,.home-byline-d>:not(:first-child):before{content:"·" / "";text-align:center;width:20px;display:inline-block}.home-byline-name{color:var(--home-text);margin-left:20px;font-weight:500}@media (width<40rem){.home-byline{align-items:flex-start}.home-byline .home-av{margin-top:2px}.home-byline-name{margin-right:100%}}.home-copy{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.home-copy :where(.home-ibtn){color:inherit;border-width:0}.home-ibtn[data-copied]{color:var(--home-teal-text)}.home-copied{letter-spacing:0;color:var(--home-teal-text);vertical-align:middle;align-items:center;font-family:Geist,Geist Fallback,sans-serif;font-size:13px;font-weight:400;line-height:1;display:inline-flex}.home-rail ol,.home-otp-l ol{margin:0;padding:0;list-style:none}.home-rail{display:none}@media (width>=80rem){.home-rail{top:calc(var(--nav-h) + 32px);max-height:calc(100dvh - var(--nav-h) - 64px);flex-direction:column;grid-area:1/2/span 2;align-self:start;display:flex;position:sticky}}.home-rail-box{min-height:0;margin-top:12px;display:flex;position:relative}.home-rail-box:before,.home-rail-box:after{content:"";z-index:1;opacity:0;pointer-events:none;height:40px;position:absolute;inset-inline:0}.home-rail-box:before{background:linear-gradient(var(--home-ground), #01010100);top:0}.home-rail-box:after{background:linear-gradient(#01010100, var(--home-ground));bottom:0}.home-rail-box[data-fade-top]:before,.home-rail-box[data-fade-bottom]:after{opacity:1}.home-rail-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#2f2f2f transparent;flex:1;min-height:0;margin:-4px;padding:4px;overflow-y:auto}.home-rail li a{border-left:1px solid var(--home-hairline);min-height:32px;color:var(--home-muted);align-items:center;padding:6px 0 6px 14px;font-size:.875rem;line-height:1.45;display:flex}.home-rail li a:hover{color:#ffffffd9}.home-rail li a[aria-current]{border-left:2px solid var(--home-teal);color:var(--home-text);padding-left:13px}.home-rail li[data-level="3"] a{padding-left:28px;font-size:.8125rem}.home-rail li[data-level="3"] a[aria-current]{padding-left:27px}.home-rail-top{min-height:24px;color:var(--home-muted);align-self:flex-start;align-items:center;gap:6px;margin-top:14px;font-size:.875rem;line-height:1.45;display:inline-flex}.home-rail-top:hover{color:var(--home-text)}.home-otp{z-index:30;margin-top:24px;position:relative}.home-otp[data-ready]{top:var(--nav-h);position:sticky}@media (width<40rem){.home-otp{margin-inline:-16px}}@media (width>=80rem){.home-otp{display:none}}.home-otp-b{width:100%;height:44px;color:var(--home-text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:1rem;line-height:1.5;display:flex}@media (width<40rem){.home-otp-b{padding-inline:16px}}.home-otp[data-pinned] .home-otp-b{background:var(--home-raised)}.home-otp-n{color:var(--home-muted);flex:none;font-family:Geist Mono,ui-monospace,monospace;font-size:.8125rem}.home-otp-t{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.home-otp-ch{color:var(--home-muted);flex:none;margin-left:auto;display:flex}.home-otp-l{top:100%;overscroll-behavior:contain;border:1px solid var(--home-border-subtle);background:var(--home-raised);max-height:min(60dvh,480px);padding:6px 0;position:absolute;inset-inline:0;overflow-y:auto}@media (width<40rem){.home-otp-l{border-inline-width:0}}@media (width>=40rem){.home-otp-l{border-radius:12px;width:min(400px,100%);margin-top:8px;right:auto;box-shadow:0 16px 40px #0009}}.home-otp-l a{min-height:40px;color:var(--home-muted);align-items:center;padding:8px 16px 8px 18px;font-size:.875rem;line-height:1.45;display:flex}.home-otp-l a:hover{color:#ffffffd9}.home-otp-l a[aria-current]{color:var(--home-text);box-shadow:inset 2px 0 0 var(--home-teal)}.home-otp-l li[data-level="3"] a{padding-left:32px;font-size:.8125rem}.home-otp-l a:focus-visible{outline-offset:-2px}.home-otp-d summary{list-style:none}.home-otp-d summary::-webkit-details-marker{display:none}.home-otp-d .home-otp-l{position:static}.home-prose{color:var(--home-text-prose);text-wrap:pretty;overflow-wrap:anywhere;font-size:1.0625rem;line-height:1.65}.home-prose>*{max-width:38rem}@media (width>=48rem){.home-prose{font-size:1.125rem}}@media (width>=48rem) and (width<80rem){.home-art-body .home-prose>*{margin-inline:auto}.home-prose>.home-wide{max-width:none}}@media (width>=80rem){.home-prose>.home-wide{max-width:52rem}}@media (width<48rem){.home-prose>*{max-width:none}}.home-prose>p{margin-block:0 1.25em}.home-prose h2{color:var(--home-text);text-wrap:balance;margin-block:2.5rem 1rem;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:clamp(1.5rem,1.25rem + .8vw,1.875rem);font-weight:400;line-height:1.25}@media (width>=48rem){.home-prose h2{margin-top:3rem}}.home-prose>h2:first-child,.home-prose>[role=note]:first-child+h2{margin-top:0}.home-prose h3{color:var(--home-text);text-wrap:balance;margin-block:2rem .75rem;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:1.25rem;font-weight:400;line-height:1.3}@media (width>=48rem){.home-prose h3{font-size:1.375rem}}.home-prose :is(h2,h3)[id]{scroll-margin-top:calc(var(--nav-h) + 60px)}@media (width>=80rem){.home-prose :is(h2,h3)[id]{scroll-margin-top:calc(var(--nav-h) + 24px)}}.home-perm{color:var(--home-muted);opacity:0;margin-inline:calc(.35em - 8px) -8px;padding:4px 8px;font-family:Geist,Geist Fallback,sans-serif;font-weight:400;text-decoration:none}:is(h2,h3):hover>.home-perm,.home-perm:focus-visible,.home-perm[data-copied]{opacity:1}@media (pointer:coarse){.home-perm{opacity:.4}}.home-prose .home-copied:not(:empty){margin-left:20px}.home-prose ul,.home-prose ol{margin-block:0 1.25em;padding-left:1.5em}.home-prose ul{list-style:outside}.home-prose ol{list-style:decimal}.home-prose li{margin-block:0 .5em;padding-left:.15em}.home-prose li::marker{color:var(--home-muted)}.home-prose ol>li::marker{font-variant-numeric:tabular-nums}.home-prose li>:is(ul,ol){margin-block:.5em 0}.home-strong{color:var(--home-text);font-weight:600}.home-em{color:var(--home-text);font-style:normal}.home-icode{border:1px solid var(--home-border-subtle);background:var(--home-chip);color:var(--home-text-secondary);overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;padding:.1em .35em;font-family:Geist Mono,ui-monospace,monospace;font-size:.875em}.home-ext{vertical-align:-.04em;width:.8em;height:.8em;margin-left:.15em;display:inline-block}.home-fig{margin-block:2rem}.home-fig-im{border:1px solid var(--home-border-subtle);background:var(--home-sunk);border-radius:8px;position:relative;overflow:hidden}.home-fig-im>img{width:100%;height:auto;display:block}.home-fig figcaption{color:var(--home-muted);margin-top:8px;font-size:.875rem;line-height:1.45}.home-zoomb{cursor:zoom-in;position:absolute;inset:0}.home-zoomb:focus-visible{outline-offset:-2px}.home-zoomb-i{border:1px solid var(--home-border-strong);width:32px;height:32px;color:var(--home-text);opacity:0;background:#010101b3;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}.home-zoomb:hover .home-zoomb-i,.home-zoomb:focus-visible .home-zoomb-i{opacity:1}@media (pointer:coarse){.home-zoomb-i{opacity:1}}.home-zoom{background:0 0;border:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:44px 0 0;overflow:visible}.home-zoom::backdrop{background:#000000db}.home-zoom-x{background:var(--home-chip);position:absolute;top:0;right:0}.home-zoom>img{border:1px solid var(--home-border-subtle);background:var(--home-sunk);border-radius:8px;width:auto;max-width:calc(100vw - 32px);height:auto;max-height:calc(100dvh - 76px);display:block}.home-faq{margin-block:0 1.25em}.home-faq-i{border-top:1px solid var(--home-hairline);padding-block:24px}.home-faq-i:last-child{border-bottom:1px solid var(--home-hairline)}.home-prose .home-faq-i h3{margin:0 0 8px;font-family:Geist,Geist Fallback,sans-serif;font-size:1.125rem;font-weight:500;line-height:1.4}.home-prose .home-faq-i p{margin:0}.home-prose .home-faq-i p+p{margin-top:1.25em}.home-author{border-top:1px solid var(--home-hairline);align-items:center;gap:16px;max-width:38rem;margin-top:32px;padding-top:32px;display:flex}.home-author-tx{flex-direction:column;gap:2px;min-width:0;display:flex}.home-author-name{color:var(--home-text);font-size:1rem}.home-author-name>span:first-child{color:var(--home-muted);font-size:.875rem}.home-author-who{font-weight:500}.home-ctap{border:1px solid var(--home-green-line);background:var(--home-green-deep);border-radius:12px;max-width:52rem;margin-top:48px;padding:24px;position:relative}@media (width>=40rem){.home-ctap{padding:32px 40px}}@media (width>=48rem) and (width<80rem){.home-author{margin-inline:auto}.home-ctap{max-width:none}}.home-ctap-bg{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.home-ctap-nz{object-fit:cover;object-position:right center;width:100%;max-width:none;height:96px;position:absolute;inset:auto 0 0;-webkit-mask-image:linear-gradient(#0000 0%,#000 100%);mask-image:linear-gradient(#0000 0%,#000 100%)}.home-ctap-ci{padding-bottom:56px;position:relative}@media (width>=40rem){.home-ctap-nz{width:56%;height:100%;inset:0 0 0 auto;-webkit-mask-image:linear-gradient(270deg,#000 0%,#0009 40%,#0000 100%);mask-image:linear-gradient(270deg,#000 0%,#0009 40%,#0000 100%)}.home-ctap-ci{max-width:62%;padding-bottom:0}}.home-ctap h2{color:var(--home-text);text-wrap:balance;margin-top:16px;font-family:PT Serif,PT Serif Fallback,Georgia,serif;font-size:clamp(1.75rem,1.4rem + 1vw,2.25rem);font-weight:400;line-height:1.2}.home-ctap-ci>p{color:var(--home-muted);margin-top:12px;font-size:1rem;line-height:1.6}.home-ctap-act{flex-wrap:wrap;align-items:center;gap:24px;margin-top:24px;display:flex}.home-ctap-docs{font-size:.9375rem}.home-ctap-docs,.home-allk{margin-block:-4px;padding-block:4px;text-decoration:none}.home-next{border-top:1px solid var(--home-hairline);padding-block:64px}@media (width>=64rem){.home-next{padding-block:96px}}.home-next-grid{grid-template-columns:minmax(0,1fr);gap:1px;margin-top:24px;padding:1px;display:grid}.home-next-grid>.home-tile{box-shadow:0 0 0 1px var(--home-hairline)}@media (width>=40rem){.home-next-grid[data-columns=blog]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=48rem){.home-next-grid[data-columns=compare]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=80rem){.home-next-grid[data-columns=blog]{grid-template-columns:repeat(3,minmax(0,1fr))}}.home-allk{align-items:center;gap:8px;margin-top:20px;font-size:.9375rem;display:inline-flex}.animated-background{background:linear-gradient(315deg,#000 20%,#212121 35%,#4273e6 68%,#080808 95%) 0 0/400% 400% fixed;animation:15s infinite gradient}@keyframes gradient{0%{background-position:0 0}50%{background-position:100% 100%}to{background-position:0 0}}.wave{width:200%;height:12em;animation:wave 10slinear -3s infinite;opacity:.8;background:#ffffff0d;border-radius:1000% 1000% 0 0;position:absolute;bottom:0;left:0;transform:translateZ(0)}.wave:nth-of-type(2){opacity:.8;animation:18s linear infinite reverse wave;bottom:-1.25em}.wave:nth-of-type(3){opacity:.9;animation:20s -1s infinite reverse wave;bottom:-2.5em}@keyframes wave{2%{transform:translate(1px)}25%{transform:translate(-25%)}50%{transform:translate(-50%)}75%{transform:translate(-25%)}to{transform:translate(1px)}}
