@font-face{font-family:berkeleyMono;src:url(/_next/static/media/c54e660f3df8b583-s.p.woff2) format("woff2");font-display:swap}@font-face{font-family:berkeleyMono Fallback;src:local("Arial");ascent-override:72.70%;descent-override:18.56%;line-gap-override:0.00%;size-adjust:131.49%}.__className_9331ce{font-family:berkeleyMono,berkeleyMono Fallback,SF Mono,Monaco,Inconsolata,Fira Mono,monospace}.__variable_9331ce{--font-berkeley-mono:"berkeleyMono","berkeleyMono Fallback",SF Mono,Monaco,Inconsolata,Fira Mono,monospace}:root{--bg:#000;--fg:#fff;--muted:rgba(255,255,255,0.65);--subtle:rgba(255,255,255,0.58);--border:rgba(255,255,255,0.15);--border2:rgba(255,255,255,0.08);--rule-width:1px;--surface:rgba(255,255,255,0.04);--surface2:rgba(255,255,255,0.07);--overlay-strong:rgba(0,0,0,0.95);--overlay-soft:rgba(0,0,0,0.82);--overlay-muted:rgba(0,0,0,0.72);--overlay-tooltip:rgba(0,0,0,0.92);--fg-40:rgba(255,255,255,0.4);--fg-quiet:rgba(255,255,255,0.62);--line:rgba(255,255,255,0.06);--radius-control:2px;--radius-panel:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--text-2xs:10px;--text-xs:11px;--text-sm:12px;--text-ui:13px;--text-md:14px;--text-lg:16px;--text-subhead:18px;--text-heading:20px;--text-title:24px;--text-display:28px;--text-display-small:22px;--text-heading-mobile:15px;--track-0:0;--track-1:0.04em;--track-2:0.08em;--track-3:0.12em;--leading-tight:1.2;--leading-ui:1.4;--leading-body:1.6;--control-min:44px;--reading-measure:72ch;--page-max:1400px;--page-gutter-mobile:20px;--page-gutter:var(--page-gutter-mobile);--header-height:69px;--ok:#21e57d;--info:#4c7dff;--warn:var(--info);--danger:#ff4d4d;--brand:#fff;--info-bg:transparent;--warn-bg:var(--info-bg);--danger-bg:transparent;--ok-border:rgba(33,229,125,0.45);--info-border:rgba(76,125,255,0.55);--warn-border:var(--info-border);--danger-border:rgba(255,77,77,0.45);--font-mono:var(--font-berkeley-mono),"SF Mono","Monaco","Inconsolata","Fira Mono",monospace;--font-body:var(--font-mono);--font-head:var(--font-mono);--z-map-ui:5;--z-ticker:19;--z-header:20;--z-dropdown:50;--z-tooltip:100;--z-modal:200;--z-skiplink:300;--focus-ring-width:2px;--focus-offset:2px}[data-theme=light]{--bg:#fff;--fg:#000;--muted:#595959;--subtle:#666;--border:#ddd;--border2:#eee;--surface:#f9f9f9;--surface2:rgba(0,0,0,0.05);--overlay-strong:rgba(255,255,255,0.95);--overlay-soft:rgba(255,255,255,0.92);--overlay-muted:rgba(255,255,255,0.88);--overlay-tooltip:rgba(255,255,255,0.95);--fg-40:rgba(0,0,0,0.4);--fg-quiet:rgba(0,0,0,0.6);--line:rgba(0,0,0,0.04);--ok:#087f3f;--info:#1d4ed8;--warn:var(--info);--danger:#dc2626;--brand:#000;--ok-border:rgba(8,127,63,0.58);--info-border:rgba(29,78,216,0.65);--warn-border:var(--info-border);--danger-border:rgba(220,38,38,0.5)}*,:after,:before{box-sizing:border-box;margin:0;padding:0;accent-color:var(--fg)}html{scroll-behavior:smooth;font-synthesis:weight style}body,html{min-height:100%}button,input,optgroup,option,select,textarea{font-family:var(--font-mono);font-size:inherit}input[type=email],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{font-size:var(--text-lg)}body{background:var(--bg);color:var(--fg);font:var(--text-md)/var(--leading-body) var(--font-mono);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-feature-settings:"calt" 0}::selection,[data-theme=light] ::selection{background:var(--fg);color:var(--bg)}a{color:inherit;text-decoration:none}a:hover{opacity:1}.btn:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focus-ring-width) solid var(--fg);outline-offset:var(--focus-offset)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only:focus{position:fixed;top:var(--space-2,8px);left:var(--space-2,8px);width:auto;height:auto;margin:0;padding:var(--space-2,8px) var(--space-3,12px);overflow:visible;clip:auto;white-space:normal;background:var(--bg);color:var(--fg);border:1px solid var(--fg);z-index:var(--z-skiplink)}.wrap{max-width:var(--page-max);margin:0 auto;padding:var(--space-5) var(--page-gutter)}@media (min-width:640px){:root{--page-gutter:var(--space-6)}}@media (min-width:1024px){:root{--page-gutter:var(--space-7)}}[id]{scroll-margin-top:96px}h1{font:700 var(--text-display)/1.15 var(--font-mono)}h1,h2{letter-spacing:var(--track-0);text-wrap:balance}h2{font:700 var(--text-heading)/var(--leading-tight) var(--font-mono)}h3{font:700 var(--text-lg)/1.3 var(--font-mono);text-wrap:balance}.small{color:var(--muted);text-transform:uppercase;letter-spacing:var(--track-2)}.small,.small.muted{font-size:var(--text-xs)}.small.muted{text-transform:none;letter-spacing:var(--track-0)}.muted{color:var(--muted)}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"calt" 0,"tnum" 1}@keyframes fadeInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}@keyframes slideIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slideUpBar{0%{transform:translate(-50%,60px);opacity:0}to{transform:translate(-50%);opacity:1}}html.theme-transitioning,html.theme-transitioning *,html.theme-transitioning :after,html.theme-transitioning :before{transition:none!important;animation:none!important}::view-transition-new(root),::view-transition-old(root){animation-duration:.15s;animation-timing-function:ease-out}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}::view-transition-new(root),::view-transition-old(root){animation-duration:0s!important}}::-webkit-scrollbar{width:6px;height:6px;background:var(--bg)}::-webkit-scrollbar-track{background:var(--bg);border-left:1px solid var(--border2)}::-webkit-scrollbar-thumb{background:var(--border);border:1px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.article-layout-meta{display:flex;gap:16px;align-items:center;color:var(--muted);font-size:var(--text-xs);letter-spacing:var(--track-2);margin-bottom:0;padding:8px 0 16px;border-bottom:1px solid var(--border)}.article{max-width:var(--reading-measure);font-family:var(--font-mono)}.article-prose{--article-section-gap:var(--space-7);--article-section-inset:var(--space-6);--article-heading-follow:var(--space-4);--article-paragraph-gap:var(--space-5);--article-subheading-gap:var(--space-5);--article-list-gap:var(--space-4);--article-anchor-offset:calc(var(--space-8) + var(--space-6))}.article-body{max-width:var(--reading-measure);min-width:0}.article-body>*{max-width:100%;min-width:0}.article-meta{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:var(--text-xs);margin:8px 0 28px;flex-wrap:wrap}.article-meta .tag{border:1px solid var(--border);padding:2px 7px;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--track-2)}.article-prose :where(h1):not(:where([data-article-component] *,figure *,table *)){margin-bottom:var(--space-2);font-family:var(--font-mono)}.article-prose :where(h2):not(:where([data-article-component] *,figure *,table *)){font-size:var(--text-title);line-height:var(--leading-tight);letter-spacing:var(--track-1);margin:var(--article-section-gap) 0 var(--article-heading-follow);padding-top:var(--article-section-inset);border-top:1px solid var(--border2);font-family:var(--font-mono);scroll-margin-top:var(--article-anchor-offset)}.article-prose :where(h3):not(:where([data-article-component] *,figure *,table *)){margin:var(--article-subheading-gap) 0 var(--space-2);color:var(--fg);font-family:var(--font-mono);line-height:var(--leading-tight);scroll-margin-top:var(--article-anchor-offset)}.article-prose :where(p):not(:where([data-article-component] *,figure *,table *)){color:var(--muted);line-height:1.8;font-size:var(--text-lg);margin-bottom:var(--article-paragraph-gap);font-family:var(--font-mono);text-wrap:pretty;overflow-wrap:break-word}@media (max-width:900px){.article-prose :where(p,ul,ol):not(:where([data-article-component] *,figure *,table *)){font-size:var(--text-lg);line-height:1.75}.article-row{min-height:64px;padding:16px 12px}}.article-prose>.article>p:first-of-type:first-line,.article-prose>p:first-of-type:first-line{color:var(--fg);letter-spacing:var(--track-0)}.article-prose :where(ul,ol):not(:where([data-article-component] *,figure *,table *)){color:var(--muted);line-height:1.7;font-size:var(--text-lg);padding-left:var(--space-5);margin-bottom:var(--article-list-gap)}.article-prose :where(ol):not(:where([data-article-component] *,figure *,table *)){padding-left:calc(var(--space-6) + var(--space-1))}.article-prose :where(li):not(:where([data-article-component] *,figure *,table *)){margin-bottom:var(--space-2)}.article-prose :where(li):not(:where([data-article-component] *,figure *,table *))::marker{color:var(--subtle)}.article-prose a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-skip-ink:auto;transition:text-decoration-color .15s ease-out,text-decoration-thickness .15s ease-out}.article-prose a:hover{opacity:1;text-decoration-color:var(--fg);text-decoration-thickness:2px}.article-prose strong{color:var(--fg)}.article-prose code{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--surface);border:1px solid var(--border2);padding:1px 5px}.article-prose :where(blockquote):not(:where([data-article-component] *,figure *,table *)){border-left:2px solid var(--border);padding:var(--space-2) 0 var(--space-2) var(--space-4);margin:var(--space-4) 0}.article-prose :where(blockquote):not(:where([data-article-component] *,figure *,table *)) p{margin:0;font-style:italic}.article-prose :where(hr):not(:where([data-article-component] *,figure *,table *)){border:none;border-top:1px solid var(--border2);margin:var(--space-6) 0}.article-prose figure{margin:var(--space-7) 0;max-width:100%;container-type:inline-size}@media (min-width:1024px){.article-prose figure[data-visualization=compare-table],.article-prose figure[data-visualization=data-table]{width:min(calc(var(--page-max) - (2 * var(--page-gutter)) - var(--article-sidebar-track)),calc(100vw - (2 * var(--page-gutter)) - var(--article-sidebar-track)));max-width:none;margin-left:0}}.article-prose figure figcaption{font-size:var(--text-2xs);color:var(--muted);text-transform:uppercase;letter-spacing:var(--track-2);margin-bottom:var(--space-2)}.article-prose figure figcaption .fig-num{letter-spacing:var(--track-3);margin-right:6px;font-variant-numeric:tabular-nums}.article-table tr[data-highlight=true] td,.article-table tr[data-highlight=true] th{background:var(--surface2)}.article-table tr[data-highlight=true] th{font-weight:700}.articleTableScroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0 24px}.articleTableScroll:focus-visible{outline:1px solid var(--fg);outline-offset:2px}.article-table{width:100%;border-collapse:collapse;margin:0;font-size:var(--text-ui);table-layout:fixed;white-space:normal}.articleTableScroll:not([data-stacked=true])>.article-table[data-cols="3"]{min-width:max(100%,720px)}.articleTableScroll:not([data-stacked=true])>.article-table[data-cols="4"]{min-width:max(100%,780px)}.articleTableScroll:not([data-stacked=true])>.article-table[data-cols="5"]{min-width:max(100%,920px)}.articleTableScroll:not([data-stacked=true])>.article-table[data-cols="6"]{min-width:max(100%,1040px)}.articleTableScroll:not([data-stacked=true])>.article-table[data-cols="7"]{min-width:max(100%,1160px)}.articleTableScroll:not([data-stacked=true])>.article-table[data-cols="8"]{min-width:max(100%,1280px)}.articleTableScroll:not([data-stacked=true])>.article-table[data-cols="9"]{min-width:max(100%,1400px)}.articleTableScroll:not([data-stacked=true])>.article-table[data-cols="10"]{min-width:max(100%,1520px)}.article-table col[data-width=lead]{width:30%}.article-table col[data-width=compact]{width:18%}.article-table tbody,.article-table thead{width:100%}.article-table thead th{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);color:var(--muted);text-transform:uppercase;font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--track-2)}.article-table tbody th,.article-table td{padding:7px 10px;border-bottom:1px solid var(--border2);color:var(--muted);line-height:1.55;vertical-align:top;overflow-wrap:anywhere;word-break:normal}.article-table td{font-weight:400}.article-table tbody th{color:var(--fg);font-weight:600;text-align:left;overflow-wrap:break-word}.article-table tr:hover td,.article-table tr:hover th{background:var(--surface)}@container (max-width: 760px){.article-prose figure figcaption,.article-table thead th{font-size:var(--text-xs)}}.articleTableScroll[data-stacked=true]{overflow-x:visible}.articleTableScroll[data-stacked=true]>.article-table.article-table--compare,.articleTableScroll[data-stacked=true]>.article-table.article-table--data{width:100%;min-width:0;display:block}.articleTableScroll[data-stacked=true] .article-table--compare thead,.articleTableScroll[data-stacked=true] .article-table--data thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.articleTableScroll[data-stacked=true] .article-table--compare tbody,.articleTableScroll[data-stacked=true] .article-table--compare tbody th,.articleTableScroll[data-stacked=true] .article-table--compare td,.articleTableScroll[data-stacked=true] .article-table--compare tr,.articleTableScroll[data-stacked=true] .article-table--data tbody,.articleTableScroll[data-stacked=true] .article-table--data tbody th,.articleTableScroll[data-stacked=true] .article-table--data td,.articleTableScroll[data-stacked=true] .article-table--data tr{display:block;width:100%}.articleTableScroll[data-stacked=true] .article-table--compare tr,.articleTableScroll[data-stacked=true] .article-table--data tr{border-top:1px solid var(--border);padding:12px 0}.articleTableScroll[data-stacked=true] .article-table--compare tr:last-child,.articleTableScroll[data-stacked=true] .article-table--data tr:last-child{border-bottom:1px solid var(--border)}.articleTableScroll[data-stacked=true] .article-table--compare tbody th,.articleTableScroll[data-stacked=true] .article-table--compare td,.articleTableScroll[data-stacked=true] .article-table--data tbody th,.articleTableScroll[data-stacked=true] .article-table--data td{border-bottom:0;padding:7px 0;font-size:var(--text-md);line-height:1.6}.articleTableScroll[data-stacked=true] .article-table--compare tbody th:before,.articleTableScroll[data-stacked=true] .article-table--compare td:before,.articleTableScroll[data-stacked=true] .article-table--data tbody th:before,.articleTableScroll[data-stacked=true] .article-table--data td:before{content:attr(data-label);display:block;color:var(--subtle);font-size:var(--text-xs);letter-spacing:var(--track-2);line-height:1.2;margin:0 0 3px;text-transform:uppercase}.articleTableScroll[data-stacked=true] .article-table--compare tbody th,.articleTableScroll[data-stacked=true] .article-table--data tbody th{color:var(--fg);font-weight:600;padding-bottom:10px}.articleTableScroll[data-stacked=true] .article-table--compare tbody th:before,.articleTableScroll[data-stacked=true] .article-table--data tbody th:before{display:none}.articleTableScroll[data-stacked=true] .article-table--compare tr[data-highlight=true]{background:var(--surface2);padding-left:10px;padding-right:10px}.articleTableScroll[data-stacked=true] .article-table--compare tr[data-highlight=true] td,.articleTableScroll[data-stacked=true] .article-table--compare tr[data-highlight=true] th{background:transparent}.cell-ok{color:var(--ok)}.cell-warn{color:var(--info)}.cell-danger{color:var(--danger)}.cell-boolean{font-size:var(--text-xs);font-weight:700;letter-spacing:var(--track-1);white-space:nowrap}.cell-no{color:var(--muted)}.article-diagram{width:100%;margin:32px 0;border:1px solid var(--border);display:block;background:var(--bg)}.article-callout{border:1px solid var(--border);padding:var(--space-3) var(--space-4);margin:var(--space-5) 0}.article-callout.info,.article-callout.warn{border-color:var(--info)}.article-callout.ok{border-color:var(--ok)}.article-callout p{margin:0;color:var(--muted);font:var(--text-md)/1.8 var(--font-mono);text-wrap:pretty;overflow-wrap:break-word}.article-callout ul{margin:var(--space-2) 0 0;padding-left:var(--space-4);color:var(--muted);font-size:var(--text-md);line-height:1.7}.article-callout li{margin-bottom:var(--space-1);line-height:1.5}.article-index-cols{display:grid;grid-template-columns:32px 1fr 160px 72px;gap:0 16px;padding:6px 12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:0}.article-index-col-label{font:var(--text-2xs)/1 var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:var(--track-2)}.article-index-col-time{text-align:right}@media (max-width:900px){.article-index-cols{display:none}}.article-index{list-style:none;padding:0}.article-index li{border-bottom:1px solid var(--border2)}.article-row{display:grid;grid-template-columns:32px 1fr 160px 72px;gap:0 16px;padding:14px 12px;text-decoration:none;align-items:start;border-left:2px solid transparent;transition:none;background:var(--surface);opacity:1}.article-row:hover{border-left-color:var(--fg);background:var(--surface2)}.article-row__num{font:var(--text-xs)/1.3 var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;padding-top:2px}.article-row__body{display:flex;flex-direction:column;gap:5px}.article-row__title{font:700 var(--text-ui)/1.3 var(--font-mono);color:var(--fg)}.article-row__desc{font:var(--text-xs)/1.5 var(--font-mono);color:var(--muted)}.article-row__tags{display:flex;gap:5px;flex-wrap:wrap;padding-top:2px}.article-tag{border:1px solid var(--border);padding:2px 5px;text-transform:uppercase;letter-spacing:var(--track-2)}.article-row__time,.article-tag{font:var(--text-2xs)/1 var(--font-mono);color:var(--muted);white-space:nowrap}.article-row__time{text-align:right;padding-top:2px}@media (max-width:900px){.article-row{grid-template-columns:28px 1fr;padding:13px 10px}.article-row__title{font-size:var(--text-ui);line-height:1.38}.article-row__desc,.article-row__tags,.article-row__time{display:none}}.article-index-cols--news,.article-row--news{grid-template-columns:32px 1fr 200px}@media (max-width:900px){.article-row--news{grid-template-columns:28px 1fr}}.article--narrow{max-width:640px}@media (max-width:900px){.article-prose :where(h1,h2,h3):not(:where([data-article-component] *,figure *,table *)){overflow-wrap:break-word;word-break:break-word}.article-meta{row-gap:6px;font-size:var(--text-md)}.article-layout-meta{flex-wrap:wrap;font-size:var(--text-md);line-height:1.45}.article-prose :where(h2):not(:where([data-article-component] *,figure *,table *))+ul a{display:inline-flex;align-items:center;min-height:var(--control-min);font-size:var(--text-md)}.article-callout{padding:var(--space-3)}.article-row{min-height:64px;align-items:center}}