diff --git a/app/dist/_astro/index.1qV_xJTe.css.gz b/app/dist/_astro/index.1qV_xJTe.css.gz deleted file mode 100644 index c68775625e06f205a1207b6b5c7f171058432761..0000000000000000000000000000000000000000 --- a/app/dist/_astro/index.1qV_xJTe.css.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fc1d3c2d60992491a8ad5dbfe3ce3dae89336c6019db8fba085ebbfca36ad05b -size 18332 diff --git a/app/dist/_astro/index.1qV_xJTe.css b/app/dist/_astro/index.CnFuS3U1.css similarity index 99% rename from app/dist/_astro/index.1qV_xJTe.css rename to app/dist/_astro/index.CnFuS3U1.css index c3774a6957525712e194f9095fa6e131be547b82..b5df4a6892cc51d3674ae6fc633ac8efcde59c85 100644 --- a/app/dist/_astro/index.1qV_xJTe.css +++ b/app/dist/_astro/index.CnFuS3U1.css @@ -1 +1 @@ -@import"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200..900;1,200..900&display=swap";.html-embed{margin:0 0 var(--block-spacing-y);z-index:var(--z-elevated);position:relative}.html-embed__title{text-align:left;font-weight:600;font-size:.95rem;color:var(--text-color);margin:0;padding:0;padding-bottom:var(--spacing-1);position:relative;display:block;width:100%;background:var(--page-bg);z-index:var(--z-elevated)}.html-embed__card{background:var(--code-bg);border:1px solid var(--border-color);border-radius:10px;padding:24px;z-index:calc(var(--z-elevated) + 1);position:relative}.html-embed__card.is-frameless{background:transparent;border-color:transparent;padding:0}.html-embed__desc{text-align:left;font-size:.9rem;color:var(--muted-color);margin:0;padding:0;padding-top:var(--spacing-1);position:relative;z-index:var(--z-elevated);display:block;width:100%;background:var(--page-bg)}.html-embed__card svg text{fill:var(--text-color)}.html-embed__card label{color:var(--text-color)}.plotly-graph-div{width:100%;min-height:320px}@media (max-width: 768px){.plotly-graph-div{min-height:260px}}[id^=plot-]{display:flex;flex-direction:column;align-items:center;gap:15px}.plotly_caption{font-style:italic;margin-top:10px}.plotly_controls{display:flex;flex-wrap:wrap;justify-content:center;gap:30px}.plotly_input_container{display:flex;align-items:center;flex-direction:column;gap:10px}.plotly_input_container>select{padding:2px 4px;line-height:1.5em;text-align:center;border-radius:4px;font-size:12px;background-color:var(--neutral-200);outline:none;border:1px solid var(--neutral-300)}.plotly_slider{display:flex;align-items:center;gap:10px}.plotly_slider>input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:2px;background:var(--neutral-400);border-radius:5px;outline:none}.plotly_slider>input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:pointer}.plotly_slider>input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:pointer}.plotly_slider>span{font-size:14px;line-height:1.6em;min-width:16px}[data-theme=dark] .html-embed__card:not(.is-frameless){background:#12151b;border-color:#ffffff26}[data-theme=dark] .html-embed__card .xaxislayer-above text,[data-theme=dark] .html-embed__card .yaxislayer-above text,[data-theme=dark] .html-embed__card .infolayer text,[data-theme=dark] .html-embed__card .legend text,[data-theme=dark] .html-embed__card .annotation text,[data-theme=dark] .html-embed__card .colorbar text,[data-theme=dark] .html-embed__card .hoverlayer text{fill:#fff!important}[data-theme=dark] .html-embed__card .xaxislayer-above path,[data-theme=dark] .html-embed__card .yaxislayer-above path,[data-theme=dark] .html-embed__card .xlines-above,[data-theme=dark] .html-embed__card .ylines-above{stroke:#ffffff59!important}[data-theme=dark] .html-embed__card .gridlayer path{stroke:#ffffff26!important}[data-theme=dark] .html-embed__card .legend rect.bg{fill:#00000040!important;stroke:#fff3!important}[data-theme=dark] .html-embed__card .hoverlayer .bg{fill:#000c!important;stroke:#fff3!important}[data-theme=dark] .html-embed__card .colorbar .cbbg{fill:#00000040!important;stroke:#fff3!important}.force-light-mode{filter:invert(0);--csstools-color-scheme--light: initial;color-scheme:light;background:#fff;padding:20px;border-radius:10px}[data-theme=dark] .force-light-mode .html-embed__card{background:#fff!important;border-color:#ddd!important}[data-theme=dark] .force-light-mode *{color:#333!important}@media print{.html-embed,.html-embed__card{max-width:100%!important;width:100%!important;margin-left:0!important;margin-right:0!important}.html-embed__card{padding:6px}.html-embed__card.is-frameless{padding:0}.html-embed__card svg,.html-embed__card canvas,.html-embed__card img{max-width:100%!important;height:auto!important}.html-embed__card>div[id^=frag-]{width:100%!important}}@media print{.html-embed,.html-embed__card{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.html-embed,.html-embed__card{max-width:100%!important;width:100%!important}.html-embed__card{padding:6px}.html-embed__card.is-frameless{padding:0}.html-embed__card svg,.html-embed__card canvas,.html-embed__card img,.html-embed__card video,.html-embed__card iframe{max-width:100%!important;height:auto!important}.html-embed__card>div[id^=frag-]{width:100%!important;max-width:100%!important}.html-embed .d3-galaxy{width:100%!important;max-width:980px!important;margin-left:auto!important;margin-right:auto!important}}.hero[data-astro-cid-bbe6dxrz]{width:100%;padding:48px 16px 16px;text-align:center}.hero-title[data-astro-cid-bbe6dxrz]{font-size:max(28px,min(4vw,48px));font-weight:800;line-height:1.1;max-width:100%;margin:auto}.hero-banner[data-astro-cid-bbe6dxrz]{max-width:980px;margin:0 auto}.hero-desc[data-astro-cid-bbe6dxrz]{color:var(--muted-color);font-style:italic;margin:0 0 16px}.meta[data-astro-cid-bbe6dxrz]{border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:1rem 0;font-size:.9rem}.meta-container[data-astro-cid-bbe6dxrz]{max-width:760px;display:flex;flex-direction:row;justify-content:space-between;margin:0 auto;padding:0 var(--content-padding-x);gap:8px}.meta-container[data-astro-cid-bbe6dxrz] a[data-astro-cid-bbe6dxrz]:not(.button){color:var(--primary-color);-webkit-text-decoration:underline;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:.06em;text-decoration-color:var(--link-underline);transition:text-decoration-color .15s ease-in-out}.meta-container[data-astro-cid-bbe6dxrz] a[data-astro-cid-bbe6dxrz]:hover{text-decoration-color:var(--link-underline-hover)}.meta-container[data-astro-cid-bbe6dxrz] a[data-astro-cid-bbe6dxrz].button,.meta-container[data-astro-cid-bbe6dxrz] .button[data-astro-cid-bbe6dxrz]{-webkit-text-decoration:none;text-decoration:none}.meta-container-cell[data-astro-cid-bbe6dxrz]{display:flex;flex-direction:column;gap:8px;max-width:250px}.meta-container-cell[data-astro-cid-bbe6dxrz] h3[data-astro-cid-bbe6dxrz]{margin:0;font-size:12px;font-weight:400;color:var(--muted-color);text-transform:uppercase;letter-spacing:.02em}.meta-container-cell[data-astro-cid-bbe6dxrz] p[data-astro-cid-bbe6dxrz]{margin:0}.authors[data-astro-cid-bbe6dxrz]{margin:0;list-style-type:none;padding-left:0;display:flex;flex-wrap:wrap}.authors[data-astro-cid-bbe6dxrz] li[data-astro-cid-bbe6dxrz]{white-space:nowrap;margin-right:4px}.affiliations[data-astro-cid-bbe6dxrz]{margin:0;padding-left:1.25em}.affiliations[data-astro-cid-bbe6dxrz] li[data-astro-cid-bbe6dxrz]{margin:0}header[data-astro-cid-bbe6dxrz].meta .meta-container[data-astro-cid-bbe6dxrz]{flex-wrap:wrap;row-gap:12px}@media (max-width: 768px){.meta-container-cell--affiliations[data-astro-cid-bbe6dxrz],.meta-container-cell--pdf[data-astro-cid-bbe6dxrz]{text-align:right}}@media print{.meta-container-cell--pdf[data-astro-cid-bbe6dxrz]{display:none!important}}.footer{contain:layout style;font-size:.8em;line-height:1.7em;margin-top:60px;margin-bottom:0;border-top:1px solid rgba(0,0,0,.1);color:#00000080}.footer-inner{max-width:1280px;margin:0 auto;padding:60px 16px 48px;display:grid;grid-template-columns:220px minmax(0,680px) 260px;grid-gap:32px;gap:32px;align-items:start}.citation-block,.references-block,.reuse-block,.doi-block{display:contents}.citation-block>h3,.references-block>h3,.reuse-block>h3,.doi-block>h3{grid-column:1;font-size:15px;margin:0;text-align:right;padding-right:30px}.citation-block>:not(h3),.references-block>:not(h3),.reuse-block>:not(h3),.doi-block>:not(h3){grid-column:2}.citation-block h3{margin:0 0 8px}.citation-block h4{margin:16px 0 8px;font-size:14px;text-transform:uppercase;color:var(--muted-color)}.citation-block p,.reuse-block p,.doi-block p,.footnotes ol,.footnotes ol p,.references{margin-top:0}.citation{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;line-height:15px;border-left:1px solid rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.1);background:#00000005;padding:10px 18px;border-radius:3px;color:#969696;overflow:hidden;margin-top:-12px;white-space:pre-wrap;word-wrap:break-word}.citation a{color:#0009;-webkit-text-decoration:underline;text-decoration:underline}.citation.short{margin-top:-4px}.references-block h3{margin:0}.references-block ol{padding:0 0 0 15px}@media (min-width: 768px){.references-block ol{padding:0 0 0 30px;margin-left:-30px}}.references-block li{margin-bottom:1em}.references-block a{color:var(--text-color)}[data-theme=dark] .footer{border-top-color:#ffffff26;color:#c8c8c8cc}[data-theme=dark] .citation{background:#ffffff0a;border-color:#ffffff26;color:#c8c8c8}[data-theme=dark] .citation a{color:#ffffffbf}.footer a{color:var(--primary-color);border-bottom:1px solid var(--link-underline);-webkit-text-decoration:none;text-decoration:none}.footer a:hover{color:var(--primary-color-hover);border-bottom-color:var(--link-underline-hover)}[data-theme=dark] .footer a{color:var(--primary-color)}#theme-toggle[data-astro-cid-x3pjskd3]{display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;padding:6px 10px;border-radius:8px;cursor:pointer;color:var(--text-color)!important}#theme-toggle[data-astro-cid-x3pjskd3] .icon[data-astro-cid-x3pjskd3].dark,[data-astro-cid-x3pjskd3][data-theme=dark] #theme-toggle[data-astro-cid-x3pjskd3] .icon[data-astro-cid-x3pjskd3].light{display:none}[data-astro-cid-x3pjskd3][data-theme=dark] #theme-toggle[data-astro-cid-x3pjskd3] .icon[data-astro-cid-x3pjskd3].dark{display:inline}#theme-toggle[data-astro-cid-x3pjskd3] .icon[data-astro-cid-x3pjskd3]{filter:none!important}.table-of-contents{position:sticky;top:32px;margin-top:12px}.table-of-contents nav{border-left:1px solid var(--border-color);padding-left:16px;font-size:13px}.table-of-contents .title{font-weight:600;font-size:14px;margin-bottom:8px}.table-of-contents nav ul{margin:0 0 6px;padding-left:1em}.table-of-contents nav li{list-style:none;margin:.25em 0}.table-of-contents nav a,.table-of-contents nav a:link,.table-of-contents nav a:visited{color:var(--text-color);-webkit-text-decoration:none;text-decoration:none;border-bottom:none}.table-of-contents nav>ul>li>a{font-weight:700}.table-of-contents nav a:hover{-webkit-text-decoration:underline solid var(--muted-color);text-decoration:underline solid var(--muted-color)}.table-of-contents nav a.active{-webkit-text-decoration:underline;text-decoration:underline}.table-of-contents-mobile{display:none;margin:8px 0 16px}.table-of-contents-mobile>summary{cursor:pointer;list-style:none;padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);font-weight:600;position:relative}.table-of-contents-mobile[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}.table-of-contents-mobile>summary:after{content:"";position:absolute;right:var(--spacing-4);top:50%;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .15s ease;opacity:.7}.table-of-contents-mobile[open]>summary:after{transform:translateY(-30%) rotate(-135deg)}.table-of-contents-mobile nav{border-left:none;padding:10px 12px;font-size:14px;border:1px solid var(--border-color);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.table-of-contents-mobile nav ul{margin:0 0 6px;padding-left:1em}.table-of-contents-mobile nav li{list-style:none;margin:.25em 0}.table-of-contents-mobile nav a,.table-of-contents-mobile nav a:link,.table-of-contents-mobile nav a:visited{color:var(--text-color);-webkit-text-decoration:none;text-decoration:none;border-bottom:none}.table-of-contents-mobile nav>ul>li>a{font-weight:700}.table-of-contents-mobile nav a:hover{-webkit-text-decoration:underline solid var(--muted-color);text-decoration:underline solid var(--muted-color)}.table-of-contents-mobile nav a.active{-webkit-text-decoration:underline;text-decoration:underline}@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2) format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff) format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2) format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff) format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2) format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff) format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2) format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff) format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2) format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff) format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2) format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff) format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2) format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff) format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2) format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff) format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2) format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff) format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2) format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff) format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2) format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff) format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2) format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff) format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2) format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff) format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2) format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff) format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff) format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2) format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff) format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2) format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff) format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.22"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--neutral-600: rgb(107, 114, 128);--neutral-400: rgb(185, 185, 185);--neutral-300: rgb(228, 228, 228);--neutral-200: rgb(245, 245, 245);--default-font-family: Source Sans Pro, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--primary-base: rgb(222, 144, 202);--primary-color: var(--primary-base);--primary-color-hover: oklch(from var(--primary-color) calc(l - .05) c h);--primary-color-active: oklch(from var(--primary-color) calc(l - .1) c h);--on-primary: #ffffff;--page-bg: #ffffff;--text-color: rgba(0, 0, 0, .85);--transparent-page-contrast: rgba(255, 255, 255, .85);--muted-color: rgba(0, 0, 0, .6);--border-color: rgba(0, 0, 0, .1);--surface-bg: #fafafa;--code-bg: #f6f8fa;--link-underline: var(--primary-color);--link-underline-hover: var(--primary-color-hover);--spacing-1: 8px;--spacing-2: 12px;--spacing-3: 16px;--spacing-4: 24px;--spacing-5: 32px;--spacing-6: 40px;--spacing-7: 48px;--spacing-8: 56px;--spacing-9: 64px;--spacing-10: 72px;--content-padding-x: 16px;--block-spacing-y: var(--spacing-4);--palette-count: 8;--button-radius: 6px;--button-padding-x: 12px;--button-padding-y: 8px;--button-font-size: 14px;--button-icon-padding: 8px;--button-big-padding-x: 16px;--button-big-padding-y: 12px;--button-big-font-size: 16px;--button-big-icon-padding: 12px;--table-border-radius: 8px;--table-header-bg: oklch(from var(--surface-bg) calc(l - .02) c h);--table-row-odd-bg: oklch(from var(--surface-bg) calc(l - .01) c h);--z-base: 0;--z-content: 1;--z-elevated: 10;--z-overlay: 1000;--z-modal: 1100;--z-tooltip: 1200;--axis-color: var(--muted-color);--tick-color: var(--text-color);--grid-color: rgba(0, 0, 0, .08)}[data-theme=dark]{--page-bg: #0f1115;--text-color: rgba(255, 255, 255, .9);--muted-color: rgba(255, 255, 255, .7);--border-color: rgba(255, 255, 255, .15);--surface-bg: #12151b;--code-bg: #12151b;--transparent-page-contrast: rgba(0, 0, 0, .85);--axis-color: var(--muted-color);--tick-color: var(--muted-color);--grid-color: rgba(255, 255, 255, .1);--primary-color-hover: oklch(from var(--primary-color) calc(l - .05) c h);--primary-color-active: oklch(from var(--primary-color) calc(l - .1) c h);--on-primary: #0f1115;--csstools-color-scheme--light: ;color-scheme:dark;background:#0f1115;background:var(--page-bg)}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{margin:0;font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-family:var(--default-font-family);color:#000000d9;color:var(--text-color)}audio{display:block;width:100%}img,picture{max-width:100%;height:auto;display:block;position:relative;z-index:10;z-index:var(--z-elevated)}html{font-size:16px;line-height:1.6}.content-grid main{color:#000000d9;color:var(--text-color)}.content-grid main p{margin:0 0 16px;margin:0 0 var(--spacing-3)}.content-grid main h2{font-weight:600;font-size:max(22px,min(2.6vw,32px));line-height:1.2;margin:72px 0 32px;margin:var(--spacing-10) 0 var(--spacing-5);padding-bottom:12px;padding-bottom:var(--spacing-2);border-bottom:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--border-color)}.content-grid main h3{font-weight:700;font-size:max(18px,min(2.1vw,22px));line-height:1.25;margin:56px 0 24px;margin:var(--spacing-8) 0 var(--spacing-4)}.content-grid main h4{font-weight:600;text-transform:uppercase;font-size:14px;line-height:1.2;margin:56px 0 24px;margin:var(--spacing-8) 0 var(--spacing-4)}.content-grid main a{color:#de90ca;color:var(--primary-color);-webkit-text-decoration:none;text-decoration:none;background:var(--sufrace-bg);border-bottom:1px solid rgba(222,144,202,.4)}@supports (color: color-mix(in lch,red,blue)){.content-grid main a{border-bottom:1px solid color-mix(in srgb,var(--primary-color, #007AFF) 40%,transparent)}}.content-grid main a:hover{color:#ce80ba;color:var(--primary-color-hover);border-bottom:1px solid rgba(222,144,202,.4)}@supports (color: color-mix(in lch,red,blue)){.content-grid main a:hover{border-bottom:1px solid color-mix(in srgb,var(--primary-color, #007AFF) 40%,transparent)}}.content-grid main h2 a,.content-grid main h3 a,.content-grid main h4 a,.content-grid main h5 a,.content-grid main h6 a{color:inherit;border-bottom:none;-webkit-text-decoration:none;text-decoration:none}.content-grid main h2 a:hover,.content-grid main h3 a:hover,.content-grid main h4 a:hover,.content-grid main h5 a:hover,.content-grid main h6 a:hover{color:inherit;border-bottom:none;-webkit-text-decoration:none;text-decoration:none}.content-grid main ul,.content-grid main ol{padding-left:24px;margin:0 0 16px;margin:0 0 var(--spacing-3)}.content-grid main li{margin-bottom:12px;margin-bottom:var(--spacing-2)}.content-grid main li:last-child{margin-bottom:0}.content-grid main blockquote{border-left:2px solid rgba(0,0,0,.1);border-left:2px solid var(--border-color);padding-left:24px;padding-left:var(--spacing-4);font-style:italic;color:#0009;color:var(--muted-color);margin:24px 0;margin:var(--spacing-4) 0}.muted{color:#0009;color:var(--muted-color)}[data-footnote-ref]{margin-left:4px}.content-grid main mark{background-color:#de90ca1a;border:1px solid rgba(222,144,202,.18);color:inherit;padding:4px 6px;border-radius:4px;font-weight:500;box-decoration-break:clone;-webkit-box-decoration-break:clone}@supports (color: color-mix(in lch,red,blue)){.content-grid main mark{background-color:color-mix(in srgb,var(--primary-color, #007AFF) 10%,transparent);border:1px solid color-mix(in srgb,var(--primary-color) 18%,transparent)}}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px;margin:46px 0}.feature-card{display:flex;flex-direction:column;padding:16px;border:1px solid rgba(222,144,202,.4);background:#de90ca0d!important;border-radius:8px;-webkit-text-decoration:none;text-decoration:none;color:inherit;transition:all .2s ease}@supports (color: color-mix(in lch,red,blue)){.feature-card{border:1px solid color-mix(in srgb,var(--primary-color) 40%,transparent);background:color-mix(in srgb,var(--primary-color, #007AFF) 05%,transparent)!important}}.feature-card:hover{transform:translateY(-2px);box-shadow:0 2px 8px #00000014}.feature-card strong{font-size:14px;font-weight:600;color:#000000d9;color:var(--text-color);color:#de90ca!important;color:var(--primary-color)!important;margin-bottom:0!important}.feature-card span{font-size:12px;color:#0009;color:var(--muted-color);color:#de90ca!important;color:var(--primary-color)!important;margin-bottom:0!important;opacity:1}.katex .tag{background:none;border:none;opacity:.4}.content-grid{max-width:1280px;margin:40px auto 0;padding:0 16px;padding:0 var(--content-padding-x);display:grid;grid-template-columns:260px minmax(0,680px) 260px;grid-gap:32px;gap:32px;align-items:start}.content-grid>main{max-width:100%;margin:0;padding:0}.content-grid>main>*:first-child{margin-top:0}@media (max-width: 1100px){.content-grid{overflow:hidden;display:block;margin-top:12px;margin-top:var(--spacing-2)}.content-grid{grid-template-columns:1fr}.table-of-contents{position:static;display:none}.table-of-contents-mobile{display:block}.footer-inner{grid-template-columns:1fr;gap:16px}.footer-inner>h3{grid-column:auto;margin-top:16px}.footer-inner{display:block;padding:40px 16px}}.wide,.full-width{box-sizing:border-box;position:relative;z-index:10;z-index:var(--z-elevated);background-color:var(--background-color)}.wide{width:min(1100px,100vw - 16px * 2);width:min(1100px,100vw - var(--content-padding-x) * 2);margin-left:50%;transform:translate(-50%);padding:16px;padding:var(--content-padding-x);border-radius:6px;border-radius:var(--button-radius);background-color:#fff;background-color:var(--page-bg)}.full-width{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}@media (max-width: 1100px){.wide,.full-width{width:100%;margin-left:0;margin-right:0;padding:0;transform:none}}#theme-toggle{position:fixed;top:24px;top:calc(var(--spacing-4) + var(--hf-spaces-topbar, 0px));right:16px;right:var(--spacing-3);margin:0;z-index:1000;z-index:var(--z-overlay)}@media (max-width: 640px){header.meta .meta-container{display:flex;flex-wrap:wrap;row-gap:12px;-moz-column-gap:8px;column-gap:8px;max-width:100%;padding:0 24px;padding:0 var(--spacing-4)}header.meta .meta-container .meta-container-cell{flex:1 1 calc(50% - 8px);min-width:0}}@media (max-width: 320px){header.meta .meta-container .meta-container-cell{flex-basis:100%;text-align:center}header.meta .affiliations{list-style-position:inside;padding-left:0;margin-left:0}header.meta .affiliations li{text-align:center}}@media (max-width: 768px){.d3-neural .panel{flex-direction:column}.d3-neural .panel .left{flex:0 0 auto;width:100%}.d3-neural .panel .right{flex:0 0 auto;width:100%;min-width:0}}@media print{html,body{background:#fff}body{margin:0}#theme-toggle{display:none!important}.content-grid main a{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.2)}.content-grid main pre,.content-grid main blockquote,.content-grid main table,.content-grid main figure{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.content-grid main h2{page-break-before:auto;page-break-after:avoid;-moz-column-break-after:avoid;break-after:avoid-page}.code-lang-chip{display:none!important}:root{--border-color: rgba(0,0,0,.2);--link-underline: rgba(0,0,0,.3);--link-underline-hover: rgba(0,0,0,.4)}.content-grid{grid-template-columns:1fr!important}.table-of-contents,.right-aside,.table-of-contents-mobile{display:none!important}main>nav:first-of-type{display:none!important}.hero,.hero-banner,.d3-banner,.d3-banner svg,.html-embed__card,.js-plotly-plot,figure,pre,table,blockquote,.wide,.full-width{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.hero{page-break-after:avoid}}@media print{.meta-container-cell--pdf{display:none!important}}code{font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background-color:#f6f8fa;background-color:var(--code-bg);border-radius:.3em;border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);color:#000000d9;color:var(--text-color);font-weight:400;line-height:1.5}p code,.note code{white-space:nowrap;padding:calc(8px/3) 4px;padding:calc(var(--spacing-1)/3) calc(var(--spacing-1)/2)}.astro-code{position:relative;border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:6px;padding:0;font-size:14px;--code-gutter-width: 2.5em}.astro-code,section.content-grid pre{width:100%;max-width:100%;box-sizing:border-box;-webkit-overflow-scrolling:touch;padding:0;margin-bottom:24px!important;margin-bottom:var(--block-spacing-y)!important;overflow-x:auto}section.content-grid pre.astro-code{margin:0;padding:8px 0;padding:var(--spacing-1) 0}section.content-grid pre code{display:inline-block;min-width:100%}@media (max-width: 1100px){.astro-code,section.content-grid pre{white-space:pre-wrap;word-wrap:anywhere;word-break:break-word}section.content-grid pre code{white-space:pre-wrap;display:block;min-width:0}}[data-theme=light] .astro-code{background-color:#f6f8fa;background-color:var(--code-bg)}[data-theme=light] .astro-code span{color:var(--shiki-light)!important}[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}[data-theme=light] .astro-code{--shiki-foreground: #24292f;--shiki-background: #ffffff}.astro-code code{counter-reset:astro-code-line;display:block;background:none;border:none}.astro-code .line{display:inline-block;position:relative;padding-left:calc(var(--code-gutter-width) + 8px);padding-left:calc(var(--code-gutter-width) + var(--spacing-1));min-height:1.25em}.astro-code .line:before{counter-increment:astro-code-line;content:counter(astro-code-line);position:absolute;left:0;top:0;bottom:0;width:calc(var(--code-gutter-width));text-align:right;color:#0009;color:var(--muted-color);opacity:.3;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-right:12px;padding-right:var(--spacing-2);border-right:1px solid rgba(0,0,0,.1);border-right:1px solid var(--border-color)}.astro-code .line:empty:after{content:" "}.astro-code code>.line:last-child:empty{display:none}.code-card{position:relative}.code-card .code-copy{position:absolute;top:12px;top:var(--spacing-2);right:12px;right:var(--spacing-2);z-index:3;display:none}.code-card:hover .code-copy{display:block}.code-card .code-copy svg{width:16px;height:16px;display:block;fill:currentColor}.code-card pre{margin:0 0 8px;margin:0 0 var(--spacing-1)}.code-card.no-copy:after{top:8px;right:8px}.accordion .astro-code{padding:0;border:none}.accordion .astro-code{margin-bottom:0!important}.accordion .code-output{border:none;border-top:1px solid rgba(0,0,0,.1)!important;border-top:1px solid var(--border-color)!important}.accordion pre{margin-bottom:0!important}.accordion .code-card pre{margin:0!important}.accordion .astro-code:after{right:0;bottom:0}.code-output{position:relative;background:#f4f6f8;border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:6px;margin-top:0;margin-bottom:24px;margin-bottom:var(--block-spacing-y);padding:0!important}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){.code-output{background:oklch(from var(--code-bg) calc(l - .005) c h)}}.code-output pre{padding:22px 16px 16px!important;padding:calc(var(--spacing-3) + 6px) var(--spacing-3) var(--spacing-3) var(--spacing-3)!important}.code-card+.code-output,.astro-code+.code-output,section.content-grid pre+.code-output{margin-top:0;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:inset 0 8px 12px -12px #00000026}.astro-code:has(+.code-output){margin-bottom:0!important}.code-card:has(+.code-output) .astro-code{margin-bottom:0!important}section.content-grid pre:has(+.code-output){margin-bottom:0!important}.astro-code:has(+.code-output){border-bottom-left-radius:0;border-bottom-right-radius:0}.code-card:has(+.code-output) .astro-code{border-bottom-left-radius:0;border-bottom-right-radius:0}section.content-grid pre:has(+.code-output){border-bottom-left-radius:0;border-bottom-right-radius:0}.code-output:before{content:"Output";position:absolute;top:0;right:0;font-size:10px;line-height:1;color:#0009;color:var(--muted-color);text-transform:uppercase;letter-spacing:.04em;border-top:none;border-right:none;border-radius:0 0 0 6px;padding:10px}.code-output>:where(*):first-child{margin-top:0!important}.code-output>:where(*):last-child{margin-bottom:0!important}.code-filename{display:inline-block;font-size:12px;line-height:1;color:#0009;color:var(--muted-color);background:#fafafa;background:var(--surface-bg);border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-bottom:none;border-radius:6px 6px 0 0;padding:4px 8px;margin:0}.code-filename+.code-card .astro-code,.code-filename+.astro-code,.code-filename+section.content-grid pre{border-top-left-radius:0;border-top-right-radius:6px}button,.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(15deg,#de90ca,#ce80ba 35%);background:linear-gradient(15deg,var(--primary-color) 0%,var(--primary-color-hover) 35%);color:#fff;border:1px solid transparent;border-radius:6px;border-radius:var(--button-radius);padding:8px 12px;padding:var(--button-padding-y) var(--button-padding-x);font-size:14px;font-size:var(--button-font-size);line-height:1;cursor:pointer;display:inline-block;-webkit-text-decoration:none;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .02s ease}button:has(>svg:only-child),.button:has(>svg:only-child){padding:8px;padding:var(--button-icon-padding)}button:hover,.button:hover{filter:brightness(96%)}button:active,.button:active{transform:translateY(1px)}button:focus-visible,.button:focus-visible{outline:none}button:disabled,.button:disabled{opacity:.6;cursor:not-allowed}.button--ghost{background:transparent!important;color:#de90ca!important;color:var(--primary-color)!important;border-color:#de90ca!important;border-color:var(--primary-color)!important}.button--ghost:hover{color:#ce80ba!important;color:var(--primary-color-hover)!important;border-color:#ce80ba!important;border-color:var(--primary-color-hover)!important;filter:none}.button.button--big{padding:12px 16px;padding:var(--button-big-padding-y) var(--button-big-padding-x);font-size:16px;font-size:var(--button-big-font-size)}.button.button--big:has(>svg:only-child){padding:12px;padding:var(--button-big-icon-padding)}.button-group .button{margin:5px}.content-grid main table{border-collapse:collapse;table-layout:auto;margin:0}.content-grid main th,.content-grid main td{border-bottom:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--border-color);padding:6px 8px;font-size:15px;white-space:nowrap;word-break:auto-phrase;white-space:break-spaces;vertical-align:top}.content-grid main thead th{border-bottom:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--border-color)}.content-grid main thead th{background:#f3f3f3;background:var(--table-header-bg);padding-top:10px;padding-bottom:10px;font-weight:600}.content-grid main hr{border:none;border-bottom:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--border-color);margin:32px 0;margin:var(--spacing-5) 0}.content-grid main .table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:8px;border-radius:var(--table-border-radius);background:#fafafa;background:var(--surface-bg);margin:0 0 24px;margin:0 0 var(--block-spacing-y)}.content-grid main .table-scroll>table{width:-moz-fit-content;width:fit-content;min-width:100%;max-width:none}.content-grid main .table-scroll>table th,.content-grid main .table-scroll>table td{border-right:1px solid rgba(0,0,0,.1);border-right:1px solid var(--border-color)}.content-grid main .table-scroll>table th:last-child,.content-grid main .table-scroll>table td:last-child{border-right:none}.content-grid main .table-scroll>table thead th:first-child{border-top-left-radius:8px;border-top-left-radius:var(--table-border-radius)}.content-grid main .table-scroll>table thead th:last-child{border-top-right-radius:8px;border-top-right-radius:var(--table-border-radius)}.content-grid main .table-scroll>table tbody tr:last-child td:first-child{border-bottom-left-radius:8px;border-bottom-left-radius:var(--table-border-radius)}.content-grid main .table-scroll>table tbody tr:last-child td:last-child{border-bottom-right-radius:8px;border-bottom-right-radius:var(--table-border-radius)}.content-grid main .table-scroll>table tbody tr:nth-child(odd) td{background:#f7f7f7;background:var(--table-row-odd-bg)}.content-grid main .table-scroll>table tbody tr:last-child td{border-bottom:none}.accordion .accordion__content .table-scroll{border:none;border-radius:0;margin:0;margin-bottom:0!important}.accordion .accordion__content table{margin:0!important}.accordion .accordion__content .table-scroll>table thead th:first-child,.accordion .accordion__content .table-scroll>table thead th:last-child,.accordion .accordion__content .table-scroll>table tbody tr:last-child td:first-child,.accordion .accordion__content .table-scroll>table tbody tr:last-child td:last-child{border-radius:0}@supports not ((width: -moz-fit-content) or (width: fit-content)){.content-grid main .table-scroll>table{width:-moz-max-content;width:max-content;min-width:100%}}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.tag{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;line-height:1;border-radius:6px;border-radius:var(--button-radius);background:#fafafa;background:var(--surface-bg);border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);color:#000000d9;color:var(--text-color)}.card{background:#fafafa;background:var(--surface-bg);border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:10px;padding:12px;padding:var(--spacing-2);z-index:11;z-index:calc(var(--z-elevated) + 1);position:relative;margin-bottom:24px;margin-bottom:var(--block-spacing-y)}select{background-color:#fff;background-color:var(--page-bg);border:1px solid rgba(202,131,183,.55);border-radius:6px;border-radius:var(--button-radius);padding:8px 12px;padding:var(--button-padding-y) var(--button-padding-x) var(--button-padding-y) var(--button-padding-x);font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-family:var(--default-font-family);font-size:14px;font-size:var(--button-font-size);color:#000000d9;color:var(--text-color);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8.825L1.175 4 2.35 2.825 6 6.475 9.65 2.825 10.825 4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-position:right calc(var(--button-padding-x) + 2px) center;background-size:12px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports (color: color-mix(in lch,red,blue)){select{border:1px solid color-mix(in srgb,var(--primary-color) 50%,var(--border-color))}}select:hover,select:focus,select:active{border-color:#de90ca;border-color:var(--primary-color)}select:focus{outline:none;border-color:#de90ca;border-color:var(--primary-color);box-shadow:0 0 0 2px #de90ca1a}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){select:focus{box-shadow:0 0 0 2px rgba(from var(--primary-color) r g b / .1)}}select:disabled{opacity:.6;cursor:not-allowed;background-color:#fafafa;background-color:var(--surface-bg)}[data-theme=dark] select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23bbb' d='M6 8.825L1.175 4 2.35 2.825 6 6.475 9.65 2.825 10.825 4z'/%3E%3C/svg%3E")}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:2px solid rgba(0,0,0,.1);border:2px solid var(--border-color);border-radius:3px;background-color:#fff;background-color:var(--page-bg);cursor:pointer;position:relative;transition:all .2s ease;margin-right:12px;margin-right:var(--spacing-2)}input[type=checkbox]:hover{border-color:#de90ca;border-color:var(--primary-color)}input[type=checkbox]:focus{outline:none;border-color:#de90ca;border-color:var(--primary-color);box-shadow:0 0 0 2px #de90ca1a}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){input[type=checkbox]:focus{box-shadow:0 0 0 2px rgba(from var(--primary-color) r g b / .1)}}input[type=checkbox]:checked{background-color:#de90ca;background-color:var(--primary-color);border-color:#de90ca;border-color:var(--primary-color)}input[type=checkbox]:checked:before{content:"";position:absolute;top:1px;left:4px;width:4px;height:8px;border:solid #ffffff;border:solid var(--on-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:disabled{opacity:.6;cursor:not-allowed}input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:2px solid rgba(0,0,0,.1);border:2px solid var(--border-color);border-radius:50%;background-color:#fff;background-color:var(--page-bg);cursor:pointer;position:relative;transition:all .2s ease;margin-right:12px;margin-right:var(--spacing-2)}input[type=radio]:hover{border-color:#de90ca;border-color:var(--primary-color)}input[type=radio]:focus{outline:none;border-color:#de90ca;border-color:var(--primary-color);box-shadow:0 0 0 2px #de90ca1a}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){input[type=radio]:focus{box-shadow:0 0 0 2px rgba(from var(--primary-color) r g b / .1)}}input[type=radio]:checked{border-color:#de90ca;border-color:var(--primary-color)}input[type=radio]:checked:before{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background-color:#de90ca;background-color:var(--primary-color)}input[type=radio]:disabled{opacity:.6;cursor:not-allowed}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input[type=search],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-color:var(--page-bg);border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:6px;border-radius:var(--button-radius);padding:8px 12px;padding:var(--button-padding-y) var(--button-padding-x);font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-family:var(--default-font-family);font-size:14px;font-size:var(--button-font-size);color:#000000d9;color:var(--text-color);transition:border-color .2s ease,box-shadow .2s ease;width:100%}input[type=text]:hover,input[type=email]:hover,input[type=password]:hover,input[type=number]:hover,input[type=url]:hover,input[type=search]:hover,textarea:hover{border-color:#de90ca;border-color:var(--primary-color)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=url]:focus,input[type=search]:focus,textarea:focus{outline:none;border-color:#de90ca;border-color:var(--primary-color);box-shadow:0 0 0 2px #de90ca1a}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=url]:focus,input[type=search]:focus,textarea:focus{box-shadow:0 0 0 2px rgba(from var(--primary-color) r g b / .1)}}input[type=text]:disabled,input[type=email]:disabled,input[type=password]:disabled,input[type=number]:disabled,input[type=url]:disabled,input[type=search]:disabled,textarea:disabled{opacity:.6;cursor:not-allowed;background-color:#fafafa;background-color:var(--surface-bg)}label{display:flex;align-items:center;font-size:14px;font-size:var(--button-font-size);color:#000000d9;color:var(--text-color);cursor:pointer;margin-bottom:0;line-height:1.4;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-group{margin-bottom:24px;margin-bottom:var(--spacing-4);display:flex;align-items:center;gap:12px;gap:var(--spacing-2)}.form-group label{margin-bottom:0}.form-group.vertical{flex-direction:column;align-items:flex-start}.form-group.vertical label{margin-bottom:8px;margin-bottom:var(--spacing-1)}.form-inline{display:flex;align-items:center;gap:12px;gap:var(--spacing-2);margin-bottom:16px;margin-bottom:var(--spacing-3)}.form-inline label{margin-bottom:0}div[style*="display: flex"] label,div[class*=flex] label,.trackio-controls label,.scale-controls label,.theme-selector label{margin-bottom:0!important;align-self:center}.tenet-list{margin:3rem 0}.tenet-list ol{counter-reset:tenet-counter -1;list-style:none;padding-left:0;display:grid;grid-template-columns:1fr;grid-gap:2.5rem;gap:2.5rem;max-width:900px;margin:0 auto}.tenet-list li.tenet{counter-increment:tenet-counter;background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #e2e8f0;border-radius:16px;padding:2rem 2rem 2rem 4rem;margin:0;position:relative;box-shadow:0 12px 35px #0000001f;transition:all .3s ease;cursor:pointer}.tenet-list li.tenet:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 50px #00000040;border-color:#007bff80;background:linear-gradient(135deg,#fff,#f0f8ff)}.tenet-list li.tenet:nth-child(1):before{background:linear-gradient(135deg,#667eea,#764ba2)}.tenet-list li.tenet:nth-child(2):before{background:linear-gradient(135deg,#f093fb,#f5576c)}.tenet-list li.tenet:nth-child(3):before{background:linear-gradient(135deg,#4facfe,#00f2fe)}.tenet-list li.tenet:nth-child(4):before{background:linear-gradient(135deg,#43e97b,#38f9d7)}.tenet-list li.tenet:nth-child(5):before{background:linear-gradient(135deg,#fa709a,#fee140)}.tenet-list li.tenet:nth-child(6):before{background:linear-gradient(135deg,#a8edea,#fed6e3)}.tenet-list li.tenet:nth-child(7):before{background:linear-gradient(135deg,#ff9a9e,#fecfef)}.tenet-list li.tenet:nth-child(8):before{background:linear-gradient(135deg,#a18cd1,#fbc2eb)}.tenet-list li.tenet:nth-child(9):before{background:linear-gradient(135deg,#ffecd2,#fcb69f)}.tenet-list li.tenet:before{content:counter(tenet-counter);position:absolute;top:-12px;left:-12px;color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2em;font-weight:700;box-shadow:0 4px 12px #00000026;border:3px solid white}.tenet-list li.tenet strong{color:#1a202c;font-size:1.1em;display:block;margin-bottom:.5rem}.tenet-list li.tenet em{color:#4a5568;font-size:.95em;font-style:italic;display:block;margin-top:.75rem;padding:1rem;background:#00000008;border-radius:8px;border-left:3px solid #e2e8f0}.tenet-list li.tenet p{color:#2d3748;line-height:1.6;margin:.5rem 0}@keyframes pulse-glow{0%{box-shadow:0 4px 12px #00000026}50%{box-shadow:0 4px 20px #00000040}to{box-shadow:0 4px 12px #00000026}}.tenet-list li.tenet:hover:before{animation:pulse-glow 2s ease-in-out infinite}[data-theme=dark] .tenet-list li.tenet{background:linear-gradient(135deg,#1a202c,#2d3748);border-color:#4a5568}[data-theme=dark] .tenet-list li.tenet:hover{background:linear-gradient(135deg,#2d3748,#374151);border-color:#667eea80}[data-theme=dark] .tenet-list li.tenet strong{color:#e2e8f0}[data-theme=dark] .tenet-list li.tenet p{color:#cbd5e0}[data-theme=dark] .tenet-list li.tenet em{color:#a0aec0;background:#ffffff0d;border-left-color:#4a5568}@media (max-width: 768px){.tenet-list li.tenet{padding:1.5rem}}.crumbs{background:linear-gradient(135deg,#f0f4ff,#e6eeff);border-left:5px solid #667eea;padding:1.25rem 1.75rem;margin:2.5rem 0;border-radius:0 8px 8px 0;box-shadow:0 2px 8px #667eea1f;font-size:.95em;line-height:1.6;color:#4a5568}.crumbs strong{color:#667eea;font-weight:700}.crumbs code{background:#667eea1a;padding:.15em .4em;border-radius:3px;font-size:.9em;color:#4c51bf}.crumbs a{color:#667eea;font-weight:500}[data-theme=dark] .crumbs{background:linear-gradient(135deg,#1e293b,#334155);border-left-color:#818cf8;color:#cbd5e0}[data-theme=dark] .crumbs strong{color:#a5b4fc}[data-theme=dark] .crumbs code{background:#818cf833;color:#c7d2fe}[data-theme=dark] .crumbs a{color:#a5b4fc}main a[href^="http://"],main a[href^="https://"]{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1565c0;-webkit-text-decoration:none;text-decoration:none;padding:.15em .5em;border-radius:12px;border:1px solid #90caf9;display:inline-block;transition:all .3s ease;font-weight:500;box-shadow:0 1px 3px #1565c026}main a[href^="http://"]:hover,main a[href^="https://"]:hover{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border-color:#1565c0;transform:translateY(-1px);box-shadow:0 4px 12px #1565c04d}main a[href^="http://"]:active,main a[href^="https://"]:active{transform:translateY(0);box-shadow:0 1px 3px #1565c033}a[href^="#source-of-truth"],a[href^="#one-model-one-file"],a[href^="#code-is-product"],a[href^="#standardize-dont-abstract"],a[href^="#do-repeat-yourself"],a[href^="#minimal-user-api"],a[href^="#backwards-compatibility"],a[href^="#consistent-public-surface"],a[href^="#modular"]{position:relative;color:#667eea;font-weight:600;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:#667eea4d;transition:all .3s ease}a[href^="#source-of-truth"]:hover,a[href^="#one-model-one-file"]:hover,a[href^="#code-is-product"]:hover,a[href^="#standardize-dont-abstract"]:hover,a[href^="#do-repeat-yourself"]:hover,a[href^="#minimal-user-api"]:hover,a[href^="#backwards-compatibility"]:hover,a[href^="#consistent-public-surface"]:hover,a[href^="#modular"]:hover{color:#4c51bf;text-decoration-color:#4c51bf;background:#667eea1a;padding:2px 4px;border-radius:4px}a[href^="#source-of-truth"]:after{content:"Model implementations should be reliable, reproducible, and faithful to original performances."}a[href^="#one-model-one-file"]:after{content:"All inference and training core logic visible, top‑to‑bottom, in a single file."}a[href^="#code-is-product"]:after{content:"Optimize for reading, diffing, and tweaking. Code quality matters as much as functionality."}a[href^="#standardize-dont-abstract"]:after{content:"Model-specific logic belongs in the model file, not hidden behind abstractions."}a[href^="#do-repeat-yourself"]:after{content:"Strategic duplication can improve readability and maintainability when done thoughtfully."}a[href^="#minimal-user-api"]:after{content:"Config, model, preprocessing; from_pretrained, save_pretrained, push_to_hub. Least amount of codepaths."}a[href^="#backwards-compatibility"]:after{content:"Any artifact once on the hub must remain loadable. Breaking changes are unacceptable."}a[href^="#consistent-public-surface"]:after{content:"Uniform naming, signatures, and conventions across all models for predictability."}a[href^="#modular"]:after{content:"Architecture components shared via modular system, removing boilerplate while keeping expanded files visible."}a[href^="#source-of-truth"]:after,a[href^="#one-model-one-file"]:after,a[href^="#code-is-product"]:after,a[href^="#standardize-dont-abstract"]:after,a[href^="#do-repeat-yourself"]:after,a[href^="#minimal-user-api"]:after,a[href^="#backwards-compatibility"]:after,a[href^="#consistent-public-surface"]:after,a[href^="#modular"]:after{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1a202c;color:#fff;padding:.75rem 1rem;border-radius:8px;font-size:.85em;font-weight:400;white-space:normal;width:300px;line-height:1.4;z-index:1001;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;pointer-events:none;box-shadow:0 4px 12px #0003;margin-bottom:.5rem}a[href^="#source-of-truth"]:hover:after,a[href^="#one-model-one-file"]:hover:after,a[href^="#code-is-product"]:hover:after,a[href^="#standardize-dont-abstract"]:hover:after,a[href^="#do-repeat-yourself"]:hover:after,a[href^="#minimal-user-api"]:hover:after,a[href^="#backwards-compatibility"]:hover:after,a[href^="#consistent-public-surface"]:hover:after,a[href^="#modular"]:hover:after{opacity:1;visibility:visible}[data-theme=dark] main a[href^="http://"],[data-theme=dark] main a[href^="https://"]{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#bfdbfe;border-color:#3b82f6}[data-theme=dark] main a[href^="http://"]:hover,[data-theme=dark] main a[href^="https://"]:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:#60a5fa}[data-theme=dark] a[href^="#source-of-truth"]:after,[data-theme=dark] a[href^="#one-model-one-file"]:after,[data-theme=dark] a[href^="#code-is-product"]:after,[data-theme=dark] a[href^="#standardize-dont-abstract"]:after,[data-theme=dark] a[href^="#do-repeat-yourself"]:after,[data-theme=dark] a[href^="#minimal-user-api"]:after,[data-theme=dark] a[href^="#backwards-compatibility"]:after,[data-theme=dark] a[href^="#consistent-public-surface"]:after,[data-theme=dark] a[href^="#modular"]:after{background:#2d3748;color:#e2e8f0}[data-theme=dark] a[href^="#source-of-truth"],[data-theme=dark] a[href^="#one-model-one-file"],[data-theme=dark] a[href^="#code-is-product"],[data-theme=dark] a[href^="#standardize-dont-abstract"],[data-theme=dark] a[href^="#do-repeat-yourself"],[data-theme=dark] a[href^="#minimal-user-api"],[data-theme=dark] a[href^="#backwards-compatibility"],[data-theme=dark] a[href^="#consistent-public-surface"],[data-theme=dark] a[href^="#modular"]{color:#a5b4fc;text-decoration-color:#a5b4fc4d}[data-theme=dark] a[href^="#source-of-truth"]:hover,[data-theme=dark] a[href^="#one-model-one-file"]:hover,[data-theme=dark] a[href^="#code-is-product"]:hover,[data-theme=dark] a[href^="#standardize-dont-abstract"]:hover,[data-theme=dark] a[href^="#do-repeat-yourself"]:hover,[data-theme=dark] a[href^="#minimal-user-api"]:hover,[data-theme=dark] a[href^="#backwards-compatibility"]:hover,[data-theme=dark] a[href^="#consistent-public-surface"]:hover,[data-theme=dark] a[href^="#modular"]:hover{color:#c7d2fe;background:#a5b4fc26}.demo-wide,.demo-full-width{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:150px;color:#0009;color:var(--muted-color);font-size:12px;border:2px dashed rgba(0,0,0,.1);border:2px dashed var(--border-color);border-radius:8px;background:#fafafa;background:var(--surface-bg);margin-bottom:24px;margin-bottom:var(--block-spacing-y)}.mermaid{background:none!important;margin-bottom:24px!important;margin-bottom:var(--block-spacing-y)!important} +@import"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200..900;1,200..900&display=swap";.html-embed{margin:0 0 var(--block-spacing-y);z-index:var(--z-elevated);position:relative}.html-embed__title{text-align:left;font-weight:600;font-size:.95rem;color:var(--text-color);margin:0;padding:0;padding-bottom:var(--spacing-1);position:relative;display:block;width:100%;background:var(--page-bg);z-index:var(--z-elevated)}.html-embed__card{background:var(--code-bg);border:1px solid var(--border-color);border-radius:10px;padding:12px;z-index:calc(var(--z-elevated) + 1);position:relative}.html-embed__card.is-frameless{background:transparent;border-color:transparent;padding:0}.html-embed__desc{text-align:left;font-size:.9rem;color:var(--muted-color);margin:0;padding:0;padding-top:var(--spacing-1);position:relative;z-index:var(--z-elevated);display:block;width:100%;background:var(--page-bg)}.html-embed__card svg text{fill:var(--text-color)}.html-embed__card label{color:var(--text-color)}.plotly-graph-div{width:100%;min-height:320px}@media (max-width: 768px){.plotly-graph-div{min-height:260px}}[id^=plot-]{display:flex;flex-direction:column;align-items:center;gap:15px}.plotly_caption{font-style:italic;margin-top:10px}.plotly_controls{display:flex;flex-wrap:wrap;justify-content:center;gap:30px}.plotly_input_container{display:flex;align-items:center;flex-direction:column;gap:10px}.plotly_input_container>select{padding:2px 4px;line-height:1.5em;text-align:center;border-radius:4px;font-size:12px;background-color:var(--neutral-200);outline:none;border:1px solid var(--neutral-300)}.plotly_slider{display:flex;align-items:center;gap:10px}.plotly_slider>input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:2px;background:var(--neutral-400);border-radius:5px;outline:none}.plotly_slider>input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:pointer}.plotly_slider>input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:pointer}.plotly_slider>span{font-size:14px;line-height:1.6em;min-width:16px}[data-theme=dark] .html-embed__card:not(.is-frameless){background:#12151b;border-color:#ffffff26}[data-theme=dark] .html-embed__card .xaxislayer-above text,[data-theme=dark] .html-embed__card .yaxislayer-above text,[data-theme=dark] .html-embed__card .infolayer text,[data-theme=dark] .html-embed__card .legend text,[data-theme=dark] .html-embed__card .annotation text,[data-theme=dark] .html-embed__card .colorbar text,[data-theme=dark] .html-embed__card .hoverlayer text{fill:#fff!important}[data-theme=dark] .html-embed__card .xaxislayer-above path,[data-theme=dark] .html-embed__card .yaxislayer-above path,[data-theme=dark] .html-embed__card .xlines-above,[data-theme=dark] .html-embed__card .ylines-above{stroke:#ffffff59!important}[data-theme=dark] .html-embed__card .gridlayer path{stroke:#ffffff26!important}[data-theme=dark] .html-embed__card .legend rect.bg{fill:#00000040!important;stroke:#fff3!important}[data-theme=dark] .html-embed__card .hoverlayer .bg{fill:#000c!important;stroke:#fff3!important}[data-theme=dark] .html-embed__card .colorbar .cbbg{fill:#00000040!important;stroke:#fff3!important}.force-light-mode{filter:invert(0);--csstools-color-scheme--light: initial;color-scheme:light;background:#fff;padding:20px;border-radius:10px}[data-theme=dark] .force-light-mode .html-embed__card{background:#fff!important;border-color:#ddd!important}[data-theme=dark] .force-light-mode *{color:#333!important}@media print{.html-embed,.html-embed__card{max-width:100%!important;width:100%!important;margin-left:0!important;margin-right:0!important}.html-embed__card{padding:6px}.html-embed__card.is-frameless{padding:0}.html-embed__card svg,.html-embed__card canvas,.html-embed__card img{max-width:100%!important;height:auto!important}.html-embed__card>div[id^=frag-]{width:100%!important}}@media print{.html-embed,.html-embed__card{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.html-embed,.html-embed__card{max-width:100%!important;width:100%!important}.html-embed__card{padding:6px}.html-embed__card.is-frameless{padding:0}.html-embed__card svg,.html-embed__card canvas,.html-embed__card img,.html-embed__card video,.html-embed__card iframe{max-width:100%!important;height:auto!important}.html-embed__card>div[id^=frag-]{width:100%!important;max-width:100%!important}.html-embed .d3-galaxy{width:100%!important;max-width:980px!important;margin-left:auto!important;margin-right:auto!important}}.hero[data-astro-cid-bbe6dxrz]{width:100%;padding:48px 16px 16px;text-align:center}.hero-title[data-astro-cid-bbe6dxrz]{font-size:max(28px,min(4vw,48px));font-weight:800;line-height:1.1;max-width:100%;margin:auto}.hero-banner[data-astro-cid-bbe6dxrz]{max-width:980px;margin:0 auto}.hero-desc[data-astro-cid-bbe6dxrz]{color:var(--muted-color);font-style:italic;margin:0 0 16px}.meta[data-astro-cid-bbe6dxrz]{border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:1rem 0;font-size:.9rem}.meta-container[data-astro-cid-bbe6dxrz]{max-width:760px;display:flex;flex-direction:row;justify-content:space-between;margin:0 auto;padding:0 var(--content-padding-x);gap:8px}.meta-container[data-astro-cid-bbe6dxrz] a[data-astro-cid-bbe6dxrz]:not(.button){color:var(--primary-color);-webkit-text-decoration:underline;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:.06em;text-decoration-color:var(--link-underline);transition:text-decoration-color .15s ease-in-out}.meta-container[data-astro-cid-bbe6dxrz] a[data-astro-cid-bbe6dxrz]:hover{text-decoration-color:var(--link-underline-hover)}.meta-container[data-astro-cid-bbe6dxrz] a[data-astro-cid-bbe6dxrz].button,.meta-container[data-astro-cid-bbe6dxrz] .button[data-astro-cid-bbe6dxrz]{-webkit-text-decoration:none;text-decoration:none}.meta-container-cell[data-astro-cid-bbe6dxrz]{display:flex;flex-direction:column;gap:8px;max-width:250px}.meta-container-cell[data-astro-cid-bbe6dxrz] h3[data-astro-cid-bbe6dxrz]{margin:0;font-size:12px;font-weight:400;color:var(--muted-color);text-transform:uppercase;letter-spacing:.02em}.meta-container-cell[data-astro-cid-bbe6dxrz] p[data-astro-cid-bbe6dxrz]{margin:0}.authors[data-astro-cid-bbe6dxrz]{margin:0;list-style-type:none;padding-left:0;display:flex;flex-wrap:wrap}.authors[data-astro-cid-bbe6dxrz] li[data-astro-cid-bbe6dxrz]{white-space:nowrap;margin-right:4px}.affiliations[data-astro-cid-bbe6dxrz]{margin:0;padding-left:1.25em}.affiliations[data-astro-cid-bbe6dxrz] li[data-astro-cid-bbe6dxrz]{margin:0}header[data-astro-cid-bbe6dxrz].meta .meta-container[data-astro-cid-bbe6dxrz]{flex-wrap:wrap;row-gap:12px}@media (max-width: 768px){.meta-container-cell--affiliations[data-astro-cid-bbe6dxrz],.meta-container-cell--pdf[data-astro-cid-bbe6dxrz]{text-align:right}}@media print{.meta-container-cell--pdf[data-astro-cid-bbe6dxrz]{display:none!important}}.footer{contain:layout style;font-size:.8em;line-height:1.7em;margin-top:60px;margin-bottom:0;border-top:1px solid rgba(0,0,0,.1);color:#00000080}.footer-inner{max-width:1280px;margin:0 auto;padding:60px 16px 48px;display:grid;grid-template-columns:220px minmax(0,680px) 260px;grid-gap:32px;gap:32px;align-items:start}.citation-block,.references-block,.reuse-block,.doi-block{display:contents}.citation-block>h3,.references-block>h3,.reuse-block>h3,.doi-block>h3{grid-column:1;font-size:15px;margin:0;text-align:right;padding-right:30px}.citation-block>:not(h3),.references-block>:not(h3),.reuse-block>:not(h3),.doi-block>:not(h3){grid-column:2}.citation-block h3{margin:0 0 8px}.citation-block h4{margin:16px 0 8px;font-size:14px;text-transform:uppercase;color:var(--muted-color)}.citation-block p,.reuse-block p,.doi-block p,.footnotes ol,.footnotes ol p,.references{margin-top:0}.citation{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;line-height:15px;border-left:1px solid rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.1);background:#00000005;padding:10px 18px;border-radius:3px;color:#969696;overflow:hidden;margin-top:-12px;white-space:pre-wrap;word-wrap:break-word}.citation a{color:#0009;-webkit-text-decoration:underline;text-decoration:underline}.citation.short{margin-top:-4px}.references-block h3{margin:0}.references-block ol{padding:0 0 0 15px}@media (min-width: 768px){.references-block ol{padding:0 0 0 30px;margin-left:-30px}}.references-block li{margin-bottom:1em}.references-block a{color:var(--text-color)}[data-theme=dark] .footer{border-top-color:#ffffff26;color:#c8c8c8cc}[data-theme=dark] .citation{background:#ffffff0a;border-color:#ffffff26;color:#c8c8c8}[data-theme=dark] .citation a{color:#ffffffbf}.footer a{color:var(--primary-color);border-bottom:1px solid var(--link-underline);-webkit-text-decoration:none;text-decoration:none}.footer a:hover{color:var(--primary-color-hover);border-bottom-color:var(--link-underline-hover)}[data-theme=dark] .footer a{color:var(--primary-color)}#theme-toggle[data-astro-cid-x3pjskd3]{display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;padding:6px 10px;border-radius:8px;cursor:pointer;color:var(--text-color)!important}#theme-toggle[data-astro-cid-x3pjskd3] .icon[data-astro-cid-x3pjskd3].dark,[data-astro-cid-x3pjskd3][data-theme=dark] #theme-toggle[data-astro-cid-x3pjskd3] .icon[data-astro-cid-x3pjskd3].light{display:none}[data-astro-cid-x3pjskd3][data-theme=dark] #theme-toggle[data-astro-cid-x3pjskd3] .icon[data-astro-cid-x3pjskd3].dark{display:inline}#theme-toggle[data-astro-cid-x3pjskd3] .icon[data-astro-cid-x3pjskd3]{filter:none!important}.table-of-contents{position:sticky;top:32px;margin-top:12px}.table-of-contents nav{border-left:1px solid var(--border-color);padding-left:16px;font-size:13px}.table-of-contents .title{font-weight:600;font-size:14px;margin-bottom:8px}.table-of-contents nav ul{margin:0 0 6px;padding-left:1em}.table-of-contents nav li{list-style:none;margin:.25em 0}.table-of-contents nav a,.table-of-contents nav a:link,.table-of-contents nav a:visited{color:var(--text-color);-webkit-text-decoration:none;text-decoration:none;border-bottom:none}.table-of-contents nav>ul>li>a{font-weight:700}.table-of-contents nav a:hover{-webkit-text-decoration:underline solid var(--muted-color);text-decoration:underline solid var(--muted-color)}.table-of-contents nav a.active{-webkit-text-decoration:underline;text-decoration:underline}.table-of-contents-mobile{display:none;margin:8px 0 16px}.table-of-contents-mobile>summary{cursor:pointer;list-style:none;padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);font-weight:600;position:relative}.table-of-contents-mobile[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}.table-of-contents-mobile>summary:after{content:"";position:absolute;right:var(--spacing-4);top:50%;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .15s ease;opacity:.7}.table-of-contents-mobile[open]>summary:after{transform:translateY(-30%) rotate(-135deg)}.table-of-contents-mobile nav{border-left:none;padding:10px 12px;font-size:14px;border:1px solid var(--border-color);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.table-of-contents-mobile nav ul{margin:0 0 6px;padding-left:1em}.table-of-contents-mobile nav li{list-style:none;margin:.25em 0}.table-of-contents-mobile nav a,.table-of-contents-mobile nav a:link,.table-of-contents-mobile nav a:visited{color:var(--text-color);-webkit-text-decoration:none;text-decoration:none;border-bottom:none}.table-of-contents-mobile nav>ul>li>a{font-weight:700}.table-of-contents-mobile nav a:hover{-webkit-text-decoration:underline solid var(--muted-color);text-decoration:underline solid var(--muted-color)}.table-of-contents-mobile nav a.active{-webkit-text-decoration:underline;text-decoration:underline}@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2) format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff) format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2) format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff) format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2) format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff) format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2) format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff) format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2) format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff) format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2) format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff) format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2) format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff) format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2) format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff) format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2) format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff) format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2) format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff) format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2) format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff) format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2) format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff) format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2) format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff) format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2) format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff) format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff) format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2) format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff) format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2) format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff) format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.22"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--neutral-600: rgb(107, 114, 128);--neutral-400: rgb(185, 185, 185);--neutral-300: rgb(228, 228, 228);--neutral-200: rgb(245, 245, 245);--default-font-family: Source Sans Pro, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--primary-base: rgb(222, 144, 202);--primary-color: var(--primary-base);--primary-color-hover: oklch(from var(--primary-color) calc(l - .05) c h);--primary-color-active: oklch(from var(--primary-color) calc(l - .1) c h);--on-primary: #ffffff;--page-bg: #ffffff;--text-color: rgba(0, 0, 0, .85);--transparent-page-contrast: rgba(255, 255, 255, .85);--muted-color: rgba(0, 0, 0, .6);--border-color: rgba(0, 0, 0, .1);--surface-bg: #fafafa;--code-bg: #f6f8fa;--link-underline: var(--primary-color);--link-underline-hover: var(--primary-color-hover);--spacing-1: 8px;--spacing-2: 12px;--spacing-3: 16px;--spacing-4: 24px;--spacing-5: 32px;--spacing-6: 40px;--spacing-7: 48px;--spacing-8: 56px;--spacing-9: 64px;--spacing-10: 72px;--content-padding-x: 16px;--block-spacing-y: var(--spacing-4);--palette-count: 8;--button-radius: 6px;--button-padding-x: 12px;--button-padding-y: 8px;--button-font-size: 14px;--button-icon-padding: 8px;--button-big-padding-x: 16px;--button-big-padding-y: 12px;--button-big-font-size: 16px;--button-big-icon-padding: 12px;--table-border-radius: 8px;--table-header-bg: oklch(from var(--surface-bg) calc(l - .02) c h);--table-row-odd-bg: oklch(from var(--surface-bg) calc(l - .01) c h);--z-base: 0;--z-content: 1;--z-elevated: 10;--z-overlay: 1000;--z-modal: 1100;--z-tooltip: 1200;--axis-color: var(--muted-color);--tick-color: var(--text-color);--grid-color: rgba(0, 0, 0, .08)}[data-theme=dark]{--page-bg: #0f1115;--text-color: rgba(255, 255, 255, .9);--muted-color: rgba(255, 255, 255, .7);--border-color: rgba(255, 255, 255, .15);--surface-bg: #12151b;--code-bg: #12151b;--transparent-page-contrast: rgba(0, 0, 0, .85);--axis-color: var(--muted-color);--tick-color: var(--muted-color);--grid-color: rgba(255, 255, 255, .1);--primary-color-hover: oklch(from var(--primary-color) calc(l - .05) c h);--primary-color-active: oklch(from var(--primary-color) calc(l - .1) c h);--on-primary: #0f1115;--csstools-color-scheme--light: ;color-scheme:dark;background:#0f1115;background:var(--page-bg)}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{margin:0;font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-family:var(--default-font-family);color:#000000d9;color:var(--text-color)}audio{display:block;width:100%}img,picture{max-width:100%;height:auto;display:block;position:relative;z-index:10;z-index:var(--z-elevated)}html{font-size:16px;line-height:1.6}.content-grid main{color:#000000d9;color:var(--text-color)}.content-grid main p{margin:0 0 16px;margin:0 0 var(--spacing-3)}.content-grid main h2{font-weight:600;font-size:max(22px,min(2.6vw,32px));line-height:1.2;margin:72px 0 32px;margin:var(--spacing-10) 0 var(--spacing-5);padding-bottom:12px;padding-bottom:var(--spacing-2);border-bottom:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--border-color)}.content-grid main h3{font-weight:700;font-size:max(18px,min(2.1vw,22px));line-height:1.25;margin:56px 0 24px;margin:var(--spacing-8) 0 var(--spacing-4)}.content-grid main h4{font-weight:600;text-transform:uppercase;font-size:14px;line-height:1.2;margin:56px 0 24px;margin:var(--spacing-8) 0 var(--spacing-4)}.content-grid main a{color:#de90ca;color:var(--primary-color);-webkit-text-decoration:none;text-decoration:none;background:var(--sufrace-bg);border-bottom:1px solid rgba(222,144,202,.4)}@supports (color: color-mix(in lch,red,blue)){.content-grid main a{border-bottom:1px solid color-mix(in srgb,var(--primary-color, #007AFF) 40%,transparent)}}.content-grid main a:hover{color:#ce80ba;color:var(--primary-color-hover);border-bottom:1px solid rgba(222,144,202,.4)}@supports (color: color-mix(in lch,red,blue)){.content-grid main a:hover{border-bottom:1px solid color-mix(in srgb,var(--primary-color, #007AFF) 40%,transparent)}}.content-grid main h2 a,.content-grid main h3 a,.content-grid main h4 a,.content-grid main h5 a,.content-grid main h6 a{color:inherit;border-bottom:none;-webkit-text-decoration:none;text-decoration:none}.content-grid main h2 a:hover,.content-grid main h3 a:hover,.content-grid main h4 a:hover,.content-grid main h5 a:hover,.content-grid main h6 a:hover{color:inherit;border-bottom:none;-webkit-text-decoration:none;text-decoration:none}.content-grid main ul,.content-grid main ol{padding-left:24px;margin:0 0 16px;margin:0 0 var(--spacing-3)}.content-grid main li{margin-bottom:12px;margin-bottom:var(--spacing-2)}.content-grid main li:last-child{margin-bottom:0}.content-grid main blockquote{border-left:2px solid rgba(0,0,0,.1);border-left:2px solid var(--border-color);padding-left:24px;padding-left:var(--spacing-4);font-style:italic;color:#0009;color:var(--muted-color);margin:24px 0;margin:var(--spacing-4) 0}.muted{color:#0009;color:var(--muted-color)}[data-footnote-ref]{margin-left:4px}.content-grid main mark{background-color:#de90ca1a;border:1px solid rgba(222,144,202,.18);color:inherit;padding:4px 6px;border-radius:4px;font-weight:500;box-decoration-break:clone;-webkit-box-decoration-break:clone}@supports (color: color-mix(in lch,red,blue)){.content-grid main mark{background-color:color-mix(in srgb,var(--primary-color, #007AFF) 10%,transparent);border:1px solid color-mix(in srgb,var(--primary-color) 18%,transparent)}}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px;margin:46px 0}.feature-card{display:flex;flex-direction:column;padding:16px;border:1px solid rgba(222,144,202,.4);background:#de90ca0d!important;border-radius:8px;-webkit-text-decoration:none;text-decoration:none;color:inherit;transition:all .2s ease}@supports (color: color-mix(in lch,red,blue)){.feature-card{border:1px solid color-mix(in srgb,var(--primary-color) 40%,transparent);background:color-mix(in srgb,var(--primary-color, #007AFF) 05%,transparent)!important}}.feature-card:hover{transform:translateY(-2px);box-shadow:0 2px 8px #00000014}.feature-card strong{font-size:14px;font-weight:600;color:#000000d9;color:var(--text-color);color:#de90ca!important;color:var(--primary-color)!important;margin-bottom:0!important}.feature-card span{font-size:12px;color:#0009;color:var(--muted-color);color:#de90ca!important;color:var(--primary-color)!important;margin-bottom:0!important;opacity:1}.katex .tag{background:none;border:none;opacity:.4}.content-grid{max-width:1280px;margin:40px auto 0;padding:0 16px;padding:0 var(--content-padding-x);display:grid;grid-template-columns:260px minmax(0,680px) 260px;grid-gap:32px;gap:32px;align-items:start}.content-grid>main{max-width:100%;margin:0;padding:0}.content-grid>main>*:first-child{margin-top:0}@media (max-width: 1100px){.content-grid{overflow:hidden;display:block;margin-top:12px;margin-top:var(--spacing-2)}.content-grid{grid-template-columns:1fr}.table-of-contents{position:static;display:none}.table-of-contents-mobile{display:block}.footer-inner{grid-template-columns:1fr;gap:16px}.footer-inner>h3{grid-column:auto;margin-top:16px}.footer-inner{display:block;padding:40px 16px}}.wide,.full-width{box-sizing:border-box;position:relative;z-index:10;z-index:var(--z-elevated);background-color:var(--background-color)}.wide{width:min(1100px,100vw - 16px * 2);width:min(1100px,100vw - var(--content-padding-x) * 2);margin-left:50%;transform:translate(-50%);padding:16px;padding:var(--content-padding-x);border-radius:6px;border-radius:var(--button-radius);background-color:#fff;background-color:var(--page-bg)}.full-width{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}@media (max-width: 1100px){.wide,.full-width{width:100%;margin-left:0;margin-right:0;padding:0;transform:none}}#theme-toggle{position:fixed;top:24px;top:calc(var(--spacing-4) + var(--hf-spaces-topbar, 0px));right:16px;right:var(--spacing-3);margin:0;z-index:1000;z-index:var(--z-overlay)}@media (max-width: 640px){header.meta .meta-container{display:flex;flex-wrap:wrap;row-gap:12px;-moz-column-gap:8px;column-gap:8px;max-width:100%;padding:0 24px;padding:0 var(--spacing-4)}header.meta .meta-container .meta-container-cell{flex:1 1 calc(50% - 8px);min-width:0}}@media (max-width: 320px){header.meta .meta-container .meta-container-cell{flex-basis:100%;text-align:center}header.meta .affiliations{list-style-position:inside;padding-left:0;margin-left:0}header.meta .affiliations li{text-align:center}}@media (max-width: 768px){.d3-neural .panel{flex-direction:column}.d3-neural .panel .left{flex:0 0 auto;width:100%}.d3-neural .panel .right{flex:0 0 auto;width:100%;min-width:0}}@media print{html,body{background:#fff}body{margin:0}#theme-toggle{display:none!important}.content-grid main a{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.2)}.content-grid main pre,.content-grid main blockquote,.content-grid main table,.content-grid main figure{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.content-grid main h2{page-break-before:auto;page-break-after:avoid;-moz-column-break-after:avoid;break-after:avoid-page}.code-lang-chip{display:none!important}:root{--border-color: rgba(0,0,0,.2);--link-underline: rgba(0,0,0,.3);--link-underline-hover: rgba(0,0,0,.4)}.content-grid{grid-template-columns:1fr!important}.table-of-contents,.right-aside,.table-of-contents-mobile{display:none!important}main>nav:first-of-type{display:none!important}.hero,.hero-banner,.d3-banner,.d3-banner svg,.html-embed__card,.js-plotly-plot,figure,pre,table,blockquote,.wide,.full-width{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.hero{page-break-after:avoid}}@media print{.meta-container-cell--pdf{display:none!important}}code{font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background-color:#f6f8fa;background-color:var(--code-bg);border-radius:.3em;border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);color:#000000d9;color:var(--text-color);font-weight:400;line-height:1.5}p code,.note code{white-space:nowrap;padding:calc(8px/3) 4px;padding:calc(var(--spacing-1)/3) calc(var(--spacing-1)/2)}.astro-code{position:relative;border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:6px;padding:0;font-size:14px;--code-gutter-width: 2.5em}.astro-code,section.content-grid pre{width:100%;max-width:100%;box-sizing:border-box;-webkit-overflow-scrolling:touch;padding:0;margin-bottom:24px!important;margin-bottom:var(--block-spacing-y)!important;overflow-x:auto}section.content-grid pre.astro-code{margin:0;padding:8px 0;padding:var(--spacing-1) 0}section.content-grid pre code{display:inline-block;min-width:100%}@media (max-width: 1100px){.astro-code,section.content-grid pre{white-space:pre-wrap;word-wrap:anywhere;word-break:break-word}section.content-grid pre code{white-space:pre-wrap;display:block;min-width:0}}[data-theme=light] .astro-code{background-color:#f6f8fa;background-color:var(--code-bg)}[data-theme=light] .astro-code span{color:var(--shiki-light)!important}[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}[data-theme=light] .astro-code{--shiki-foreground: #24292f;--shiki-background: #ffffff}.astro-code code{counter-reset:astro-code-line;display:block;background:none;border:none}.astro-code .line{display:inline-block;position:relative;padding-left:calc(var(--code-gutter-width) + 8px);padding-left:calc(var(--code-gutter-width) + var(--spacing-1));min-height:1.25em}.astro-code .line:before{counter-increment:astro-code-line;content:counter(astro-code-line);position:absolute;left:0;top:0;bottom:0;width:calc(var(--code-gutter-width));text-align:right;color:#0009;color:var(--muted-color);opacity:.3;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-right:12px;padding-right:var(--spacing-2);border-right:1px solid rgba(0,0,0,.1);border-right:1px solid var(--border-color)}.astro-code .line:empty:after{content:" "}.astro-code code>.line:last-child:empty{display:none}.code-card{position:relative}.code-card .code-copy{position:absolute;top:12px;top:var(--spacing-2);right:12px;right:var(--spacing-2);z-index:3;display:none}.code-card:hover .code-copy{display:block}.code-card .code-copy svg{width:16px;height:16px;display:block;fill:currentColor}.code-card pre{margin:0 0 8px;margin:0 0 var(--spacing-1)}.code-card.no-copy:after{top:8px;right:8px}.accordion .astro-code{padding:0;border:none}.accordion .astro-code{margin-bottom:0!important}.accordion .code-output{border:none;border-top:1px solid rgba(0,0,0,.1)!important;border-top:1px solid var(--border-color)!important}.accordion pre{margin-bottom:0!important}.accordion .code-card pre{margin:0!important}.accordion .astro-code:after{right:0;bottom:0}.code-output{position:relative;background:#f4f6f8;border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:6px;margin-top:0;margin-bottom:24px;margin-bottom:var(--block-spacing-y);padding:0!important}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){.code-output{background:oklch(from var(--code-bg) calc(l - .005) c h)}}.code-output pre{padding:22px 16px 16px!important;padding:calc(var(--spacing-3) + 6px) var(--spacing-3) var(--spacing-3) var(--spacing-3)!important}.code-card+.code-output,.astro-code+.code-output,section.content-grid pre+.code-output{margin-top:0;border-top:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:inset 0 8px 12px -12px #00000026}.astro-code:has(+.code-output){margin-bottom:0!important}.code-card:has(+.code-output) .astro-code{margin-bottom:0!important}section.content-grid pre:has(+.code-output){margin-bottom:0!important}.astro-code:has(+.code-output){border-bottom-left-radius:0;border-bottom-right-radius:0}.code-card:has(+.code-output) .astro-code{border-bottom-left-radius:0;border-bottom-right-radius:0}section.content-grid pre:has(+.code-output){border-bottom-left-radius:0;border-bottom-right-radius:0}.code-output:before{content:"Output";position:absolute;top:0;right:0;font-size:10px;line-height:1;color:#0009;color:var(--muted-color);text-transform:uppercase;letter-spacing:.04em;border-top:none;border-right:none;border-radius:0 0 0 6px;padding:10px}.code-output>:where(*):first-child{margin-top:0!important}.code-output>:where(*):last-child{margin-bottom:0!important}.code-filename{display:inline-block;font-size:12px;line-height:1;color:#0009;color:var(--muted-color);background:#fafafa;background:var(--surface-bg);border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-bottom:none;border-radius:6px 6px 0 0;padding:4px 8px;margin:0}.code-filename+.code-card .astro-code,.code-filename+.astro-code,.code-filename+section.content-grid pre{border-top-left-radius:0;border-top-right-radius:6px}button,.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(15deg,#de90ca,#ce80ba 35%);background:linear-gradient(15deg,var(--primary-color) 0%,var(--primary-color-hover) 35%);color:#fff;border:1px solid transparent;border-radius:6px;border-radius:var(--button-radius);padding:8px 12px;padding:var(--button-padding-y) var(--button-padding-x);font-size:14px;font-size:var(--button-font-size);line-height:1;cursor:pointer;display:inline-block;-webkit-text-decoration:none;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .02s ease}button:has(>svg:only-child),.button:has(>svg:only-child){padding:8px;padding:var(--button-icon-padding)}button:hover,.button:hover{filter:brightness(96%)}button:active,.button:active{transform:translateY(1px)}button:focus-visible,.button:focus-visible{outline:none}button:disabled,.button:disabled{opacity:.6;cursor:not-allowed}.button--ghost{background:transparent!important;color:#de90ca!important;color:var(--primary-color)!important;border-color:#de90ca!important;border-color:var(--primary-color)!important}.button--ghost:hover{color:#ce80ba!important;color:var(--primary-color-hover)!important;border-color:#ce80ba!important;border-color:var(--primary-color-hover)!important;filter:none}.button.button--big{padding:12px 16px;padding:var(--button-big-padding-y) var(--button-big-padding-x);font-size:16px;font-size:var(--button-big-font-size)}.button.button--big:has(>svg:only-child){padding:12px;padding:var(--button-big-icon-padding)}.button-group .button{margin:5px}.content-grid main table{border-collapse:collapse;table-layout:auto;margin:0}.content-grid main th,.content-grid main td{border-bottom:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--border-color);padding:6px 8px;font-size:15px;white-space:nowrap;word-break:auto-phrase;white-space:break-spaces;vertical-align:top}.content-grid main thead th{border-bottom:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--border-color)}.content-grid main thead th{background:#f3f3f3;background:var(--table-header-bg);padding-top:10px;padding-bottom:10px;font-weight:600}.content-grid main hr{border:none;border-bottom:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--border-color);margin:32px 0;margin:var(--spacing-5) 0}.content-grid main .table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:8px;border-radius:var(--table-border-radius);background:#fafafa;background:var(--surface-bg);margin:0 0 24px;margin:0 0 var(--block-spacing-y)}.content-grid main .table-scroll>table{width:-moz-fit-content;width:fit-content;min-width:100%;max-width:none}.content-grid main .table-scroll>table th,.content-grid main .table-scroll>table td{border-right:1px solid rgba(0,0,0,.1);border-right:1px solid var(--border-color)}.content-grid main .table-scroll>table th:last-child,.content-grid main .table-scroll>table td:last-child{border-right:none}.content-grid main .table-scroll>table thead th:first-child{border-top-left-radius:8px;border-top-left-radius:var(--table-border-radius)}.content-grid main .table-scroll>table thead th:last-child{border-top-right-radius:8px;border-top-right-radius:var(--table-border-radius)}.content-grid main .table-scroll>table tbody tr:last-child td:first-child{border-bottom-left-radius:8px;border-bottom-left-radius:var(--table-border-radius)}.content-grid main .table-scroll>table tbody tr:last-child td:last-child{border-bottom-right-radius:8px;border-bottom-right-radius:var(--table-border-radius)}.content-grid main .table-scroll>table tbody tr:nth-child(odd) td{background:#f7f7f7;background:var(--table-row-odd-bg)}.content-grid main .table-scroll>table tbody tr:last-child td{border-bottom:none}.accordion .accordion__content .table-scroll{border:none;border-radius:0;margin:0;margin-bottom:0!important}.accordion .accordion__content table{margin:0!important}.accordion .accordion__content .table-scroll>table thead th:first-child,.accordion .accordion__content .table-scroll>table thead th:last-child,.accordion .accordion__content .table-scroll>table tbody tr:last-child td:first-child,.accordion .accordion__content .table-scroll>table tbody tr:last-child td:last-child{border-radius:0}@supports not ((width: -moz-fit-content) or (width: fit-content)){.content-grid main .table-scroll>table{width:-moz-max-content;width:max-content;min-width:100%}}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.tag{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;line-height:1;border-radius:6px;border-radius:var(--button-radius);background:#fafafa;background:var(--surface-bg);border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);color:#000000d9;color:var(--text-color)}.card{background:#fafafa;background:var(--surface-bg);border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:10px;padding:12px;padding:var(--spacing-2);z-index:11;z-index:calc(var(--z-elevated) + 1);position:relative;margin-bottom:24px;margin-bottom:var(--block-spacing-y)}select{background-color:#fff;background-color:var(--page-bg);border:1px solid rgba(202,131,183,.55);border-radius:6px;border-radius:var(--button-radius);padding:8px 12px;padding:var(--button-padding-y) var(--button-padding-x) var(--button-padding-y) var(--button-padding-x);font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-family:var(--default-font-family);font-size:14px;font-size:var(--button-font-size);color:#000000d9;color:var(--text-color);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8.825L1.175 4 2.35 2.825 6 6.475 9.65 2.825 10.825 4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-position:right calc(var(--button-padding-x) + 2px) center;background-size:12px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports (color: color-mix(in lch,red,blue)){select{border:1px solid color-mix(in srgb,var(--primary-color) 50%,var(--border-color))}}select:hover,select:focus,select:active{border-color:#de90ca;border-color:var(--primary-color)}select:focus{outline:none;border-color:#de90ca;border-color:var(--primary-color);box-shadow:0 0 0 2px #de90ca1a}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){select:focus{box-shadow:0 0 0 2px rgba(from var(--primary-color) r g b / .1)}}select:disabled{opacity:.6;cursor:not-allowed;background-color:#fafafa;background-color:var(--surface-bg)}[data-theme=dark] select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23bbb' d='M6 8.825L1.175 4 2.35 2.825 6 6.475 9.65 2.825 10.825 4z'/%3E%3C/svg%3E")}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:2px solid rgba(0,0,0,.1);border:2px solid var(--border-color);border-radius:3px;background-color:#fff;background-color:var(--page-bg);cursor:pointer;position:relative;transition:all .2s ease;margin-right:12px;margin-right:var(--spacing-2)}input[type=checkbox]:hover{border-color:#de90ca;border-color:var(--primary-color)}input[type=checkbox]:focus{outline:none;border-color:#de90ca;border-color:var(--primary-color);box-shadow:0 0 0 2px #de90ca1a}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){input[type=checkbox]:focus{box-shadow:0 0 0 2px rgba(from var(--primary-color) r g b / .1)}}input[type=checkbox]:checked{background-color:#de90ca;background-color:var(--primary-color);border-color:#de90ca;border-color:var(--primary-color)}input[type=checkbox]:checked:before{content:"";position:absolute;top:1px;left:4px;width:4px;height:8px;border:solid #ffffff;border:solid var(--on-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:disabled{opacity:.6;cursor:not-allowed}input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:2px solid rgba(0,0,0,.1);border:2px solid var(--border-color);border-radius:50%;background-color:#fff;background-color:var(--page-bg);cursor:pointer;position:relative;transition:all .2s ease;margin-right:12px;margin-right:var(--spacing-2)}input[type=radio]:hover{border-color:#de90ca;border-color:var(--primary-color)}input[type=radio]:focus{outline:none;border-color:#de90ca;border-color:var(--primary-color);box-shadow:0 0 0 2px #de90ca1a}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){input[type=radio]:focus{box-shadow:0 0 0 2px rgba(from var(--primary-color) r g b / .1)}}input[type=radio]:checked{border-color:#de90ca;border-color:var(--primary-color)}input[type=radio]:checked:before{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background-color:#de90ca;background-color:var(--primary-color)}input[type=radio]:disabled{opacity:.6;cursor:not-allowed}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input[type=search],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-color:var(--page-bg);border:1px solid rgba(0,0,0,.1);border:1px solid var(--border-color);border-radius:6px;border-radius:var(--button-radius);padding:8px 12px;padding:var(--button-padding-y) var(--button-padding-x);font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-family:var(--default-font-family);font-size:14px;font-size:var(--button-font-size);color:#000000d9;color:var(--text-color);transition:border-color .2s ease,box-shadow .2s ease;width:100%}input[type=text]:hover,input[type=email]:hover,input[type=password]:hover,input[type=number]:hover,input[type=url]:hover,input[type=search]:hover,textarea:hover{border-color:#de90ca;border-color:var(--primary-color)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=url]:focus,input[type=search]:focus,textarea:focus{outline:none;border-color:#de90ca;border-color:var(--primary-color);box-shadow:0 0 0 2px #de90ca1a}@supports (color: lab(from red l 1 1% / calc(alpha + .1))){input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=url]:focus,input[type=search]:focus,textarea:focus{box-shadow:0 0 0 2px rgba(from var(--primary-color) r g b / .1)}}input[type=text]:disabled,input[type=email]:disabled,input[type=password]:disabled,input[type=number]:disabled,input[type=url]:disabled,input[type=search]:disabled,textarea:disabled{opacity:.6;cursor:not-allowed;background-color:#fafafa;background-color:var(--surface-bg)}label{display:flex;align-items:center;font-size:14px;font-size:var(--button-font-size);color:#000000d9;color:var(--text-color);cursor:pointer;margin-bottom:0;line-height:1.4;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-group{margin-bottom:24px;margin-bottom:var(--spacing-4);display:flex;align-items:center;gap:12px;gap:var(--spacing-2)}.form-group label{margin-bottom:0}.form-group.vertical{flex-direction:column;align-items:flex-start}.form-group.vertical label{margin-bottom:8px;margin-bottom:var(--spacing-1)}.form-inline{display:flex;align-items:center;gap:12px;gap:var(--spacing-2);margin-bottom:16px;margin-bottom:var(--spacing-3)}.form-inline label{margin-bottom:0}div[style*="display: flex"] label,div[class*=flex] label,.trackio-controls label,.scale-controls label,.theme-selector label{margin-bottom:0!important;align-self:center}.tenet-list{margin:3rem 0}.tenet-list ol{counter-reset:tenet-counter -1;list-style:none;padding-left:0;display:grid;grid-template-columns:1fr;grid-gap:2.5rem;gap:2.5rem;max-width:900px;margin:0 auto}.tenet-list li.tenet{counter-increment:tenet-counter;background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #e2e8f0;border-radius:16px;padding:2rem 2rem 2rem 4rem;margin:0;position:relative;box-shadow:0 12px 35px #0000001f;transition:all .3s ease;cursor:pointer}.tenet-list li.tenet:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 50px #00000040;border-color:#007bff80;background:linear-gradient(135deg,#fff,#f0f8ff)}.tenet-list li.tenet:nth-child(1):before{background:linear-gradient(135deg,#667eea,#764ba2)}.tenet-list li.tenet:nth-child(2):before{background:linear-gradient(135deg,#f093fb,#f5576c)}.tenet-list li.tenet:nth-child(3):before{background:linear-gradient(135deg,#4facfe,#00f2fe)}.tenet-list li.tenet:nth-child(4):before{background:linear-gradient(135deg,#43e97b,#38f9d7)}.tenet-list li.tenet:nth-child(5):before{background:linear-gradient(135deg,#fa709a,#fee140)}.tenet-list li.tenet:nth-child(6):before{background:linear-gradient(135deg,#a8edea,#fed6e3)}.tenet-list li.tenet:nth-child(7):before{background:linear-gradient(135deg,#ff9a9e,#fecfef)}.tenet-list li.tenet:nth-child(8):before{background:linear-gradient(135deg,#a18cd1,#fbc2eb)}.tenet-list li.tenet:nth-child(9):before{background:linear-gradient(135deg,#ffecd2,#fcb69f)}.tenet-list li.tenet:before{content:counter(tenet-counter);position:absolute;top:-12px;left:-12px;color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2em;font-weight:700;box-shadow:0 4px 12px #00000026;border:3px solid white}.tenet-list li.tenet strong{color:#1a202c;font-size:1.1em;display:block;margin-bottom:.5rem}.tenet-list li.tenet em{color:#4a5568;font-size:.95em;font-style:italic;display:block;margin-top:.75rem;padding:1rem;background:#00000008;border-radius:8px;border-left:3px solid #e2e8f0}.tenet-list li.tenet p{color:#2d3748;line-height:1.6;margin:.5rem 0}@keyframes pulse-glow{0%{box-shadow:0 4px 12px #00000026}50%{box-shadow:0 4px 20px #00000040}to{box-shadow:0 4px 12px #00000026}}.tenet-list li.tenet:hover:before{animation:pulse-glow 2s ease-in-out infinite}[data-theme=dark] .tenet-list li.tenet{background:linear-gradient(135deg,#1a202c,#2d3748);border-color:#4a5568}[data-theme=dark] .tenet-list li.tenet:hover{background:linear-gradient(135deg,#2d3748,#374151);border-color:#667eea80}[data-theme=dark] .tenet-list li.tenet strong{color:#e2e8f0}[data-theme=dark] .tenet-list li.tenet p{color:#cbd5e0}[data-theme=dark] .tenet-list li.tenet em{color:#a0aec0;background:#ffffff0d;border-left-color:#4a5568}@media (max-width: 768px){.tenet-list li.tenet{padding:1.5rem}}.crumbs{background:linear-gradient(135deg,#f0f4ff,#e6eeff);border-left:5px solid #667eea;padding:1.25rem 1.75rem;margin:2.5rem 0;border-radius:0 8px 8px 0;box-shadow:0 2px 8px #667eea1f;font-size:.95em;line-height:1.6;color:#4a5568}.crumbs strong{color:#667eea;font-weight:700}.crumbs code{background:#667eea1a;padding:.15em .4em;border-radius:3px;font-size:.9em;color:#4c51bf}.crumbs a{color:#667eea;font-weight:500}[data-theme=dark] .crumbs{background:linear-gradient(135deg,#1e293b,#334155);border-left-color:#818cf8;color:#cbd5e0}[data-theme=dark] .crumbs strong{color:#a5b4fc}[data-theme=dark] .crumbs code{background:#818cf833;color:#c7d2fe}[data-theme=dark] .crumbs a{color:#a5b4fc}main a[href^="http://"],main a[href^="https://"]{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1565c0;-webkit-text-decoration:none;text-decoration:none;padding:.15em .5em;border-radius:12px;border:1px solid #90caf9;display:inline-block;transition:all .3s ease;font-weight:500;box-shadow:0 1px 3px #1565c026}main a[href^="http://"]:hover,main a[href^="https://"]:hover{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border-color:#1565c0;transform:translateY(-1px);box-shadow:0 4px 12px #1565c04d}main a[href^="http://"]:active,main a[href^="https://"]:active{transform:translateY(0);box-shadow:0 1px 3px #1565c033}a[href^="#source-of-truth"],a[href^="#one-model-one-file"],a[href^="#code-is-product"],a[href^="#standardize-dont-abstract"],a[href^="#do-repeat-yourself"],a[href^="#minimal-user-api"],a[href^="#backwards-compatibility"],a[href^="#consistent-public-surface"],a[href^="#modular"]{position:relative;color:#667eea;font-weight:600;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:#667eea4d;transition:all .3s ease}a[href^="#source-of-truth"]:hover,a[href^="#one-model-one-file"]:hover,a[href^="#code-is-product"]:hover,a[href^="#standardize-dont-abstract"]:hover,a[href^="#do-repeat-yourself"]:hover,a[href^="#minimal-user-api"]:hover,a[href^="#backwards-compatibility"]:hover,a[href^="#consistent-public-surface"]:hover,a[href^="#modular"]:hover{color:#4c51bf;text-decoration-color:#4c51bf;background:#667eea1a;padding:2px 4px;border-radius:4px}a[href^="#source-of-truth"]:after{content:"Model implementations should be reliable, reproducible, and faithful to original performances."}a[href^="#one-model-one-file"]:after{content:"All inference and training core logic visible, top‑to‑bottom, in a single file."}a[href^="#code-is-product"]:after{content:"Optimize for reading, diffing, and tweaking. Code quality matters as much as functionality."}a[href^="#standardize-dont-abstract"]:after{content:"Model-specific logic belongs in the model file, not hidden behind abstractions."}a[href^="#do-repeat-yourself"]:after{content:"Strategic duplication can improve readability and maintainability when done thoughtfully."}a[href^="#minimal-user-api"]:after{content:"Config, model, preprocessing; from_pretrained, save_pretrained, push_to_hub. Least amount of codepaths."}a[href^="#backwards-compatibility"]:after{content:"Any artifact once on the hub must remain loadable. Breaking changes are unacceptable."}a[href^="#consistent-public-surface"]:after{content:"Uniform naming, signatures, and conventions across all models for predictability."}a[href^="#modular"]:after{content:"Architecture components shared via modular system, removing boilerplate while keeping expanded files visible."}a[href^="#source-of-truth"]:after,a[href^="#one-model-one-file"]:after,a[href^="#code-is-product"]:after,a[href^="#standardize-dont-abstract"]:after,a[href^="#do-repeat-yourself"]:after,a[href^="#minimal-user-api"]:after,a[href^="#backwards-compatibility"]:after,a[href^="#consistent-public-surface"]:after,a[href^="#modular"]:after{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#1a202c;color:#fff;padding:.75rem 1rem;border-radius:8px;font-size:.85em;font-weight:400;white-space:normal;width:300px;line-height:1.4;z-index:1001;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;pointer-events:none;box-shadow:0 4px 12px #0003;margin-bottom:.5rem}a[href^="#source-of-truth"]:hover:after,a[href^="#one-model-one-file"]:hover:after,a[href^="#code-is-product"]:hover:after,a[href^="#standardize-dont-abstract"]:hover:after,a[href^="#do-repeat-yourself"]:hover:after,a[href^="#minimal-user-api"]:hover:after,a[href^="#backwards-compatibility"]:hover:after,a[href^="#consistent-public-surface"]:hover:after,a[href^="#modular"]:hover:after{opacity:1;visibility:visible}[data-theme=dark] main a[href^="http://"],[data-theme=dark] main a[href^="https://"]{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#bfdbfe;border-color:#3b82f6}[data-theme=dark] main a[href^="http://"]:hover,[data-theme=dark] main a[href^="https://"]:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:#60a5fa}[data-theme=dark] a[href^="#source-of-truth"]:after,[data-theme=dark] a[href^="#one-model-one-file"]:after,[data-theme=dark] a[href^="#code-is-product"]:after,[data-theme=dark] a[href^="#standardize-dont-abstract"]:after,[data-theme=dark] a[href^="#do-repeat-yourself"]:after,[data-theme=dark] a[href^="#minimal-user-api"]:after,[data-theme=dark] a[href^="#backwards-compatibility"]:after,[data-theme=dark] a[href^="#consistent-public-surface"]:after,[data-theme=dark] a[href^="#modular"]:after{background:#2d3748;color:#e2e8f0}[data-theme=dark] a[href^="#source-of-truth"],[data-theme=dark] a[href^="#one-model-one-file"],[data-theme=dark] a[href^="#code-is-product"],[data-theme=dark] a[href^="#standardize-dont-abstract"],[data-theme=dark] a[href^="#do-repeat-yourself"],[data-theme=dark] a[href^="#minimal-user-api"],[data-theme=dark] a[href^="#backwards-compatibility"],[data-theme=dark] a[href^="#consistent-public-surface"],[data-theme=dark] a[href^="#modular"]{color:#a5b4fc;text-decoration-color:#a5b4fc4d}[data-theme=dark] a[href^="#source-of-truth"]:hover,[data-theme=dark] a[href^="#one-model-one-file"]:hover,[data-theme=dark] a[href^="#code-is-product"]:hover,[data-theme=dark] a[href^="#standardize-dont-abstract"]:hover,[data-theme=dark] a[href^="#do-repeat-yourself"]:hover,[data-theme=dark] a[href^="#minimal-user-api"]:hover,[data-theme=dark] a[href^="#backwards-compatibility"]:hover,[data-theme=dark] a[href^="#consistent-public-surface"]:hover,[data-theme=dark] a[href^="#modular"]:hover{color:#c7d2fe;background:#a5b4fc26}.demo-wide,.demo-full-width{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:150px;color:#0009;color:var(--muted-color);font-size:12px;border:2px dashed rgba(0,0,0,.1);border:2px dashed var(--border-color);border-radius:8px;background:#fafafa;background:var(--surface-bg);margin-bottom:24px;margin-bottom:var(--block-spacing-y)}.mermaid{background:none!important;margin-bottom:24px!important;margin-bottom:var(--block-spacing-y)!important} diff --git a/app/dist/_astro/index.CnFuS3U1.css.gz b/app/dist/_astro/index.CnFuS3U1.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..ed44b04cac65b169f2900debee13332962deb2fe --- /dev/null +++ b/app/dist/_astro/index.CnFuS3U1.css.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61065d2e70dbdf047f73dea3d7a80b9389d2f80e2b798fc18544d445548d2191 +size 18332 diff --git a/app/dist/index.html b/app/dist/index.html index 1e45ae9d748acca4d9a57b16ebaa6fbd35ea519e..248b2e2df55cc4b11b5a834c0b3d3ba98acc10f0 100644 --- a/app/dist/index.html +++ b/app/dist/index.html @@ -12,8 +12,8 @@ document.documentElement.setAttribute("data-theme", theme); } catch {} })(); - -

Maintain the unmaintainable:
1M python loc, 400+ models

+ + + +
+

+
+ + + + + + +
+

+
+ + + + + +
+ + +
+
+ + +
+
+
0%
+
+
+
+
+
+ + + + + +
+

As you can see, the GenerationMixin node is already very heavy. It encompasses all of the utilities around .generate, it is second only to nn.Module. +That means every decision we make to abstract something else has to be extremely careful.

The following Pull request to standardize placeholder masking is a good example of what kind of changes are acceptable. In a VLM, we always need to insert embeddings from various encoders at various positions, so we can have a function to do it. For Qwen2 VL, for instance, it will look like this:

    def get_placeholder_mask(
         self,
@@ -780,7 +1221,7 @@ As you can see, there is a small DETR island, a little llava pocket, and so on,
 

But this is within the modeling file, not in the PreTrainedModel base class. It will not move away from it, because it’d break the self-contained logic of the model.

Keep VLM embedding mix in the modeling file (semantics), standardize safe helpers (e.g., placeholder masking), don’t migrate behavior to PreTrainedModel. Next: pipeline-level wins that came from PyTorch-first choices (fast processors).

On image processing and processors

-

Choosing to be a torch-first software meant relieving a tremendous amount of support from jax and TensorFlow , and it also meant that we could be more lenient into the amount of torch-dependent utilities that we were able to add. One of these is the fast processing of images. Where they were before assumed to be minimal ndarrays, making stronger assumptions and enforcing torch and torchvisionnative inputs allowed up to speed up massively the processing time for each model.

+

Choosing to be a torch-first software meant relieving a tremendous amount of support from jax and TensorFlow , and it also meant that we could be more lenient into the amount of torch-dependent utilities that we were able to add. One of these is the fast processing of images. Where they were before assumed to be minimal ndarrays, making stronger assumptions and enforcing torch and torchvision native inputs allowed up to speed up massively the processing time for each model.

The gains in performance are immense, up to 20x speed for most models when compiled torchvision ops. Further, it allows to have the whole pipeline solely on GPU.

Fast Image Processors Performance

Thanks Yoni Gozlan for the great work!

@@ -789,11 +1230,11 @@ As you can see, there is a small DETR island, a little llava pocket, and so on,

This is an overall objective: there’s no transformers without its community.

Having a framework means forcing users into it. It restrains flexibility and creativity, which are the fertile soil for new ideas to grow.

Among the most valuable contributions to transformers is of course the addition of new models. Very recently, OpenAI added GPT-OSS, which prompted the addition of many new features to the library in order to support their model.

-

A second one is the ability to fine-tune and pipeline these models into many other softwares. Check here on the hub how many finetunes are registered for gpt-oss 120b, despite its size!

+

A second one is the ability to fine-tune and pipeline these models into many other software. Check here on the hub how many finetunes are registered for gpt-oss 120b, despite its size!

The shape of a contribution: add a model (or variant) with a small modular shard; the community and serving stacks pick it up immediately. Popularity trends (encoders/embeddings) guide where we invest. Next: power tools enabled by a consistent API.

Models popularity

Talking about dependencies, we can take a look at the number of downloads for transformer models popularity. One thing we see is the prominence of encoders: This is because the usage of encoders lies in embeddings, just check out EmbeddingGemma for a modern recap. Hence, it is vital to keep the encoders part viable, usable, fine-tune-able.

-
+
@@ -4681,7 +5122,7 @@ return Plotly; }));
-

As the codebase grows, with our friend codebase Sentence Transformers, we need to maintain this one as well. Retrieval use-cases, smart dbs, like FAISS-based indexing rely on it, and thus indirectly on transformers.

+

As the codebase grows, with our friend codebase Sentence Transformers, we need to maintain this one as well. Retrieval use-cases, smart databases, like FAISS-based indexing rely on it, and thus indirectly on transformers.

In that regard, we DO want to be a modular toolbox, being minimal enough and well documented enough so any ML/AI developer can use transformers without having to think about it. We aim to reduce the cognitive load brought about by model development, not increase it.

So, how do these design choices, these “tenets” influence development of models and overall usage of transformers?

Encoders remain critical for embeddings and retrieval; maintaining them well benefits the broader ecosystem (e.g., Sentence Transformers, FAISS). Next: dev tools that leverage unified attention APIs and PyTorch-only internals.

@@ -4689,7 +5130,7 @@ return Plotly;

Attention visualisation

All models have the same API internally for attention computation, thanks to the externalisation of attention classes. it allows us to build cool tools to visualize the inner workings of the attention mechanism.

One particular piece of machinery is the attention mask. Here you see the famous bidirectional attention pattern for the whole prefix (text + image) in PaliGemma and all Gemma2+ models, contrasting with the usual “causal-only” models.

-
+
@@ -4742,7 +5183,7 @@ return Plotly;

Forward interception and nested JSON logging align ports to reference implementations, reinforcing “Source of Truth.” Next: CUDA warmup reduces load-time stalls without touching modeling semantics.

Cooking faster CUDA warmups

Having a clean external API allows us to work on the true inner workings of transformers. One of the few recent additions was the CUDA warmup via caching_allocator_warmup which improved massively the loading footprint by pre-allocating GPU memory to avoid malloc bottlenecks during model loading, achieving a 7x factor for an 8B model, 6x for a 32B, you can check out the source!

-
+ + + +
+

+
+ + + + + + +
+

+
+ + + + + +
+ + +
+
+ + +
+
+
0%
+
+
+
+
+
+ + + + + + \ No newline at end of file