/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Inter Variable", ui-sans-serif, system-ui, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, "PingFang SC", monospace;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--leading-loose:2;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface-950:var(--theme-surface-950);--color-surface-800:var(--theme-surface-800);--color-surface-700:var(--theme-surface-700);--color-ink-50:var(--theme-ink-50);--color-ink-100:var(--theme-ink-100);--color-ink-200:var(--theme-ink-200);--color-ink-300:var(--theme-ink-300);--color-ink-400:var(--theme-ink-400);--color-ink-500:var(--theme-ink-500);--color-ink-600:var(--theme-ink-600);--color-primary-300:#93c5fd;--color-primary-400:#60a5fa;--color-primary-500:#3b82f6;--color-primary-600:#2563eb;--color-accent-400:#22d3ee;--color-accent-500:#06b6d4;--color-accent-600:#0891b2;--color-accent-deletion:var(--theme-accent-deletion);--color-accent-insertion:var(--theme-accent-insertion)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}*{scrollbar-width:thin;scrollbar-color:var(--color-ink-400) transparent}@supports (color:color-mix(in lab,red,red)){*{scrollbar-color:color-mix(in srgb,var(--color-ink-400) 40%,transparent) transparent}}::-webkit-scrollbar{appearance:none;background:0 0;width:6px;height:6px}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-track{box-shadow:none;background:0 0;border:none}::-webkit-scrollbar-track-piece{box-shadow:none;background:0 0;border:none}::-webkit-scrollbar-corner{box-shadow:none;background:0 0;border:none}::-webkit-scrollbar-thumb{background-color:var(--color-ink-400)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--color-ink-400) 38%,transparent)}}::-webkit-scrollbar-thumb{box-shadow:none;background-clip:content-box;border:1px solid #0000;border-radius:0}::-webkit-scrollbar-thumb:hover{background-color:var(--color-ink-400)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--color-ink-400) 64%,transparent)}}body{background-color:var(--color-surface-950);font-family:var(--font-sans);color:var(--color-ink-300);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(min-width:768px){html.reading-split{height:100dvh;overflow:hidden}}::selection{background-color:#2563eb99}@supports (color:color-mix(in lab,red,red)){::selection{background-color:color-mix(in oklab,var(--color-primary-600) 60%,transparent)}}::selection{color:var(--color-ink-100)}:focus-visible{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:var(--color-ink-400)}.site-nav-veil{height:calc(5.5rem + env(safe-area-inset-top,0px));pointer-events:none;position:absolute;inset:0 0 auto;overflow:hidden}.site-nav-veil-blur,.site-nav-veil-tint{pointer-events:none;position:absolute;inset:0}.site-nav-veil-blur--1{-webkit-backdrop-filter:blur(1px);-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000,#0000)}.site-nav-veil-blur--2{-webkit-backdrop-filter:blur(3px);-webkit-mask-image:linear-gradient(#000 0% 25%,#0000 75%);mask-image:linear-gradient(#000 0% 25%,#0000 75%)}.site-nav-veil-blur--3{-webkit-backdrop-filter:blur(8px);-webkit-mask-image:linear-gradient(#000 0% 40%,#0000 70%);mask-image:linear-gradient(#000 0% 40%,#0000 70%)}.site-nav-veil-blur--4{-webkit-backdrop-filter:blur(16px);-webkit-mask-image:linear-gradient(#000 0% 30%,#0000 55%);mask-image:linear-gradient(#000 0% 30%,#0000 55%)}.site-nav-veil-tint{background:linear-gradient(to bottom,var(--theme-surface-950) 0%,var(--theme-surface-950) 40%,var(--theme-surface-950) 70%,transparent 100%)}@supports (color:color-mix(in lab,red,red)){.site-nav-veil-tint{background:linear-gradient(to bottom,color-mix(in srgb,var(--theme-surface-950) 70%,transparent) 0%,color-mix(in srgb,var(--theme-surface-950) 35%,transparent) 40%,color-mix(in srgb,var(--theme-surface-950) 8%,transparent) 70%,transparent 100%)}}@media(min-width:768px){.site-nav-veil{display:none}}@media(prefers-reduced-motion:reduce){.site-nav-veil-blur{-webkit-backdrop-filter:none}}}@layer components{.ui-section-label{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-ink-500)}.ui-badge{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-ink-500);flex-shrink:0}.ui-badge--active{color:var(--color-ink-300)}.ui-meta{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-ink-500)}.ui-tag-list{justify-content:flex-end;gap:calc(var(--spacing) * 2);flex-wrap:wrap;margin-left:auto;display:flex}.ui-tag-list--start{justify-content:flex-start;margin-left:0}.article-dek{border-bottom:1px solid var(--color-surface-700);margin:0 0 3rem;padding:0 0 1.25rem}.article-dek-text{color:var(--color-ink-400);margin:0;font-size:1.25rem;font-weight:400;line-height:1.8}.article-dek .ui-tag-list{margin-top:1.25rem}.article-dek .ui-tag-list a{color:var(--color-ink-500);font-size:.6875rem}.article-dek .ui-tag-list a:hover,.article-dek .ui-tag-list a:focus-visible{color:var(--color-primary-600)}[data-theme=dark] .article-dek .ui-tag-list a:hover,[data-theme=dark] .article-dek .ui-tag-list a:focus-visible{color:var(--color-primary-400)}.tag-index-domains{flex-wrap:wrap;gap:.4rem 1.5rem;display:flex}.tag-index-list{border-top:1px solid var(--color-surface-700);flex-wrap:wrap;align-items:baseline;gap:1rem 2.5rem;margin:1.25rem 0 0;padding:1.25rem 0 0;list-style:none;display:flex}.tag-index-list>li{align-items:baseline;gap:.625rem;display:inline-flex}.ui-tag{color:var(--color-ink-500);font-size:11px}.ui-tag:before,.ui-tag-list a:before{content:"#"}.ui-tag-link{color:var(--color-ink-400);text-underline-offset:.2em;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .15s,text-decoration-color .15s}.ui-tag-link:hover,.ui-tag-link:focus-visible{color:var(--color-primary-600);-webkit-text-decoration-color:var(--color-primary-300);text-decoration-color:var(--color-primary-300)}.ui-tag-link[aria-current=true]{color:var(--color-ink-100);-webkit-text-decoration-color:var(--color-ink-400);text-decoration-color:var(--color-ink-400)}[data-theme=dark] .ui-tag-link:hover,[data-theme=dark] .ui-tag-link:focus-visible{color:var(--color-primary-400);-webkit-text-decoration-color:var(--color-primary-600);text-decoration-color:var(--color-primary-600)}.tag-index-domains .ui-tag-link{text-underline-offset:.25rem}.tag-index-list .ui-tag-link{color:var(--color-ink-300)}.tag-index-list .ui-tag-link:hover,.tag-index-list .ui-tag-link:focus-visible,[data-theme=dark] .tag-index-list .ui-tag-link:hover,[data-theme=dark] .tag-index-list .ui-tag-link:focus-visible{color:var(--color-ink-100);-webkit-text-decoration-color:var(--color-ink-500);text-decoration-color:var(--color-ink-500)}@media(prefers-reduced-motion:reduce){.ui-tag-link{transition:none}}.ui-link{color:var(--color-ink-400);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.ui-link:hover{color:var(--color-ink-100)}}.ui-link-subtle{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-ink-500);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.ui-link-subtle:hover{color:var(--color-ink-200)}}.comment-form{flex-direction:column;gap:.85rem;margin-top:.75rem;display:flex;position:relative}.comment-compose-body{min-width:0}.comment-compose-foot{flex-wrap:wrap;align-items:baseline;gap:.75rem 1.25rem;display:flex}.comment-compose-name,.comment-compose-email{flex:8rem;min-width:0;max-width:14rem}@media(max-width:767.98px){.comment-compose-foot{flex-direction:column;align-items:stretch;gap:.85rem}.comment-compose-name,.comment-compose-email{flex:none;width:100%;max-width:none}.comment-field{min-height:2.75rem;padding-block:.65rem;font-size:1rem}.comment-send{align-self:flex-start;min-height:2.75rem;margin-left:0;padding-block:.65rem}}.comment-field{appearance:none;border:none;border-bottom:1px solid var(--color-ink-500);width:100%;color:var(--color-ink-200);font:inherit;box-shadow:none;background:0 0;border-radius:0;outline:none;padding:.2rem 0;font-size:.875rem;line-height:1.5;transition:border-color .15s;display:block}.comment-field::-webkit-search-decoration{appearance:none;display:none}.comment-field::-webkit-search-cancel-button{appearance:none;display:none}.comment-field::-webkit-search-results-button{appearance:none;display:none}.comment-field::-webkit-search-results-decoration{appearance:none;display:none}.comment-field::placeholder{color:var(--color-ink-500)}.comment-field:hover{border-bottom-color:var(--color-ink-400)}.comment-field:focus,.comment-field:focus-visible{outline-offset:0;box-shadow:none;border:none;border-bottom:1px solid var(--color-ink-100);background:0 0;border-radius:0;outline:none}.comment-field--body{resize:none;field-sizing:content;min-height:0;display:block;overflow:hidden}.comment-send{color:var(--color-ink-400);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;margin-left:auto;padding:0;font-size:.875rem;transition:color .15s}.comment-send:hover,.comment-send:focus-visible{color:var(--color-ink-100);text-underline-offset:.2em;outline:none;text-decoration:underline}.comment-send:disabled{opacity:.5;cursor:default;text-decoration:none}.comment-honeypot{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.i18n-zh{display:inline}.i18n-zh-block,.i18n-zh-only{display:contents}.prose-site{color:var(--tw-prose-body);max-width:65ch}.prose-site :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose-site :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose-site :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose-site :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose-site :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose-site :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose-site :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose-site :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose-site :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose-site :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose-site :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose-site :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose-site :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose-site :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose-site :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose-site :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose-site :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose-site :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose-site :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose-site :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose-site :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose-site :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose-site :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose-site :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose-site :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose-site :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose-site :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose-site :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose-site :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose-site :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose-site :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose-site :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-site :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose-site :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-site :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose-site :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose-site :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose-site :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose-site :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose-site :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose-site :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose-site :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose-site :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose-site :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose-site :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose-site :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose-site :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose-site :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose-site :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose-site :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose-site :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose-site :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose-site :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose-site :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose-site :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose-site :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-site :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose-site{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose-site :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-site :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose-site :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose-site :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-site :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-site :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-site :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-site :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-site :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-site :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose-site :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose-site :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-site :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-site :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-site :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-site :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose-site :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-site :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-site :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-site :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-site :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-site{max-width:none}.prose-site :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-ink-100)}.prose-site :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-leading:var(--leading-loose);line-height:var(--leading-loose);color:var(--color-ink-300)}.prose-site :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:underline}.prose-site :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-left-style:var(--tw-border-style);color:var(--color-ink-400);border-left-width:0;padding-left:0;font-style:italic}.prose-site :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-ink-100)}.prose-site :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose-site :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:var(--tw-content);--tw-content:none;content:none}.prose-site :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-leading:var(--leading-loose);line-height:var(--leading-loose)}.prose-site :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-style:var(--tw-border-style);border-width:0;border-top-style:var(--tw-border-style);border-top-width:0}.prose-site{--tw-prose-counters:var(--color-ink-100);--tw-prose-bullets:var(--color-ink-100);--tw-prose-invert-counters:var(--color-ink-100);--tw-prose-invert-bullets:var(--color-ink-100)}[data-theme=light] .prose-site :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-ink-200)}[data-theme=dark] .prose-site{--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}[data-theme=dark] .prose-site :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-ink-200)}.prose-site :is(ol,ul)>li::marker{color:var(--color-ink-100)}.prose-site a:not([data-tweet-embed] *){color:var(--color-primary-600);-webkit-text-decoration-color:var(--color-primary-300);text-decoration-color:var(--color-primary-300);text-underline-position:under;text-underline-offset:.2em;-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}.prose-site a:not([data-tweet-embed] *):hover{color:var(--color-primary-500);-webkit-text-decoration-color:var(--color-primary-500);text-decoration-color:var(--color-primary-500)}[data-theme=dark] .prose-site a:not([data-tweet-embed] *){color:var(--color-primary-400);-webkit-text-decoration-color:var(--color-primary-600);text-decoration-color:var(--color-primary-600)}[data-theme=dark] .prose-site a:not([data-tweet-embed] *):hover{color:var(--color-primary-300);-webkit-text-decoration-color:var(--color-primary-400);text-decoration-color:var(--color-primary-400)}.prose-site [data-tweet-embed] a,.prose-site [data-tweet-embed] a:hover,[data-theme=dark] .prose-site [data-tweet-embed] a,[data-theme=dark] .prose-site [data-tweet-embed] a:hover{text-decoration:none;-webkit-text-decoration-color:inherit;text-decoration-color:inherit}.prose-site [data-tweet-embed] .tweet-embed__handle,.prose-site [data-tweet-embed] .tweet-embed__handle:hover,[data-theme=dark] .prose-site [data-tweet-embed] .tweet-embed__handle,[data-theme=dark] .prose-site [data-tweet-embed] .tweet-embed__handle:hover{color:var(--color-ink-500)}.prose-site [data-tweet-embed] .tweet-embed__permalink,.prose-site [data-tweet-embed] .tweet-embed__permalink:hover,[data-theme=dark] .prose-site [data-tweet-embed] .tweet-embed__permalink,[data-theme=dark] .prose-site [data-tweet-embed] .tweet-embed__permalink:hover{color:var(--color-ink-100)}@media(prefers-reduced-motion:no-preference){.prose-site a{transition-property:color,text-decoration-color;transition-duration:.15s;transition-timing-function:ease}}.prose-site pre{max-width:100%;overflow-x:auto}.prose-site :is(img,video,iframe,svg,canvas){max-width:100%;height:auto}.prose-site table{max-width:100%;display:block;overflow-x:auto}.tweet-embed,[data-video-embed],.media-frame{min-width:0;max-width:100%}.astro-code{background-color:var(--color-surface-800)!important;color:var(--color-ink-200)!important}.astro-code code,.astro-code span{background-color:#0000;color:inherit!important}.media-frame{margin-block:calc(var(--spacing) * 8)}.media-caption{margin-top:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-ink-500)}.source-view{margin:0 0 2rem}.source-view summary{cursor:pointer;padding-block:calc(var(--spacing) * 2);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-ink-500);-webkit-user-select:none;user-select:none}@media(hover:hover){.source-view summary:hover{color:var(--color-ink-200)}}.source-view pre{max-width:100%;margin:0;overflow-x:auto}.sidenote{margin-block:calc(var(--spacing) * 6);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--color-ink-400)}.sidenote-label{margin-bottom:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-ink-500);display:block}@media(min-width:96rem){.sidenote{float:right;clear:right;width:17.5rem;margin:0 -21rem 1rem 1rem;padding:0}.reading-shell .sidenote{float:none;width:auto;margin:1.5rem 0}}.rule-target{text-underline-offset:4px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed;-webkit-text-decoration-color:var(--color-surface-700);text-decoration-color:var(--color-surface-700);transition:color .3s,background-color .3s,text-decoration-color .3s,outline-color .3s,transform .3s}.rg-highlight{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent-500);text-decoration-color:var(--color-accent-500);text-underline-offset:3px}.rg-tint-primary{color:var(--color-primary-400);-webkit-text-decoration-color:var(--color-primary-400);text-decoration-color:var(--color-primary-400)}.rg-tint-accent{color:var(--color-accent-400);-webkit-text-decoration-color:var(--color-accent-400);text-decoration-color:var(--color-accent-400)}div.rg-tint-primary,div.rg-tint-primary>*{color:var(--color-primary-400)}div.rg-tint-accent,div.rg-tint-accent>*{color:var(--color-accent-400)}.rg-nudge{transform:translate(6px)}.rg-hidden{visibility:hidden}@media(prefers-reduced-motion:reduce){.rule-target,.rg-nudge{transition:none}}[data-rg-count]:after{content:" ×" attr(data-rg-count);font-family:var(--font-mono);color:var(--color-accent-400);font-size:.75em}.rg-row{color:var(--color-ink-300);align-items:baseline;gap:.5rem;padding:.375rem 0;font-size:.875rem;line-height:1.9;transition:color .6s;display:flex}.rg-row input[type=checkbox]{accent-color:var(--color-accent-500);flex-shrink:0}.rg-row-fired{color:var(--color-ink-100);transition:color 50ms}.rg-chip{appearance:none;font-family:var(--font-mono);color:var(--color-ink-100);border:none;border-bottom:1px solid var(--color-ink-500);background:0 0;padding:.125rem .25rem;font-size:12px}.rg-chip-num{width:4rem}.reactive-var{font-family:var(--font-mono);color:var(--color-ink-100);text-underline-offset:4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--color-primary-400);text-decoration-color:var(--color-primary-400);cursor:ew-resize;-webkit-user-select:none;user-select:none;touch-action:none;white-space:nowrap;font-size:.9em}.reactive-calc{font-family:var(--font-mono);color:var(--color-accent-600);white-space:nowrap;font-size:.9em}[data-theme=dark] .reactive-calc{color:var(--color-accent-400)}.mention{text-underline-offset:4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--color-accent-500);text-decoration-color:var(--color-accent-500);cursor:pointer}.mention-active{-webkit-text-decoration-color:var(--color-primary-400);text-decoration-color:var(--color-primary-400);color:var(--color-ink-100)}.vt-scroll{overflow-x:auto}.vt-table{border-collapse:collapse;width:100%;font-size:.875rem}.vt-table th,.vt-table td{text-align:left;vertical-align:top;border:none;padding:.625rem .875rem .625rem 0}.vt-table thead th{color:var(--color-ink-400);font-size:.75rem;font-weight:500}.vt-table tbody th{color:var(--color-ink-200);white-space:nowrap;font-weight:500}.vt-yes{color:var(--color-accent-600);font-weight:600}[data-theme=dark] .vt-yes{color:var(--color-accent-400)}.vt-partial{color:var(--color-ink-400);font-weight:600}.vt-no{color:var(--color-ink-600);font-weight:600}.vt-note{color:var(--color-ink-500);margin-top:.25rem;font-size:.75rem;display:block}.vt-bar{display:none}@media(prefers-reduced-motion:reduce){.reactive-var,.mention,.mention-active,.comment-field,.comment-send{transition:none}}.prose-site :is(h2,h3,h4){scroll-margin-top:5rem}.reading-doc .prose-site :is(h2,h3,h4){scroll-margin-top:1.5rem}.reading-shell{--reading-index-width:24rem;--reading-side-min:24rem;--reading-measure:42rem;--reading-split-2:calc(var(--reading-index-width) + var(--reading-measure));--reading-split-3:calc(var(--reading-split-2) + var(--reading-side-min));--reading-rail-width:0px;--reading-inset-y:.75rem;flex-direction:column;flex:1 0 auto;width:100%;min-height:auto;display:flex;position:relative}.reading-index{overscroll-behavior:contain;overscroll-behavior-x:none;overflow-anchor:none;border-right:1px solid var(--color-surface-700);min-width:0;display:none;overflow:clip auto}[data-reading-shell=home]{flex-direction:column}[data-reading-shell=home] .reading-index{border-right:0;border-bottom:1px solid var(--color-surface-700);max-height:none;display:block}[data-reading-shell=index]{flex-direction:column}[data-reading-shell=index] .reading-index{border-right:0;flex:1;min-height:0;display:block}[data-reading-shell=index] .reading-doc,[data-reading-shell=index] .reading-rail{display:none}.reading-doc{overscroll-behavior:contain;overscroll-behavior-x:none;flex:1;min-width:0;overflow:clip auto}.reading-back{text-align:start;max-width:none;margin:0;padding:.25rem 1rem 0}.reading-back a{align-items:center;min-height:2.75rem;display:inline-flex}.reading-index-heading{justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding-top:2rem;display:flex}.reading-index .reading-index-heading{--reading-index-fade:1.25rem;z-index:1;padding-bottom:var(--reading-index-fade);background-color:#0000;background-image:linear-gradient(to bottom in srgb,var(--color-surface-950) 0%,var(--color-surface-950) calc(100% - var(--reading-index-fade)),rgb(from var(--color-surface-950) r g b / 0));position:sticky;top:0}.reading-index-switch{align-items:baseline;gap:.85rem;min-width:0;display:flex}.reading-index-switch-title{letter-spacing:-.025em;color:var(--color-ink-100);margin:0;font-size:1.875rem;font-weight:600;line-height:1.25}@media(min-width:640px){.reading-index-switch-title{font-size:2.25rem}}.reading-index-switch-alt{letter-spacing:0;color:var(--color-ink-400);flex-shrink:0;font-size:.875rem;font-weight:400;line-height:1.25;text-decoration:none;transition:color .16s}.reading-index-switch-alt:hover,.reading-index-switch-alt:focus-visible{color:var(--color-ink-100)}.reading-expand{min-width:2.75rem;min-height:2.75rem;color:var(--color-ink-500);flex-shrink:0;margin-left:auto;padding:.15rem;transition:color .16s,opacity .16s;display:none}.reading-expand:hover,.reading-expand:focus-visible{color:var(--color-ink-200)}@media(prefers-reduced-motion:reduce){.reading-expand{transition:none}}@media(min-width:640px){.reading-back{padding-inline:1.5rem}}.reading-rail{overscroll-behavior:contain;overscroll-behavior-x:none;min-width:0;padding:1.5rem 1rem 2.5rem;display:none;overflow:clip auto}nav.reading-series ol a{text-decoration-line:none}nav.reading-series ol a[aria-current=page]{text-decoration-line:underline;-webkit-text-decoration-color:var(--color-ink-500);text-decoration-color:var(--color-ink-500);text-underline-offset:.25rem}.reading-child-dismiss{cursor:pointer;margin:0;background:0 0;border:0;margin-inline-start:auto;padding:0;font-size:.75rem;line-height:1rem}.reading-child-doc{min-width:0;min-height:0}.reading-child-doc [data-series=parent]{display:none}.reading-chapters-inline{display:block}.reading-index a[aria-current=page] :is(h3,h4){-webkit-text-decoration-color:var(--color-ink-500);text-decoration-color:var(--color-ink-500)}@media(min-width:768px){.reading-shell{grid-template-columns:minmax(0,1fr) min(var(--reading-index-width),calc(100% * var(--reading-index-width) / var(--reading-split-2))) minmax(0,1fr) min(var(--reading-measure),calc(100% * var(--reading-measure) / var(--reading-split-2))) minmax(0,1fr);flex:1;min-height:0;display:grid}.reading-index{z-index:2;background-color:var(--color-surface-950);grid-area:1/2;width:100%;min-width:0;transition:width .32s,border-color .32s;display:block}.reading-doc{z-index:0;grid-area:1/1/auto/-1;grid-template-columns:subgrid;align-content:start;align-items:start;display:grid}.reading-doc>.article-shell,.reading-doc>[data-about-panel]{grid-column:4;width:100%;max-width:none;margin-inline:0}.reading-doc>:not(.article-shell,[data-about-panel]){pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.reading-rail{z-index:1;pointer-events:none;grid-area:1/6}.reading-rail .toc,.reading-rail .reading-series{pointer-events:auto;overscroll-behavior:contain;overscroll-behavior-x:none;max-height:100%;overflow:clip auto}.reading-doc,.reading-rail{transition:opacity .24s}.reading-back{display:none}.reading-index-heading .reading-expand[data-reading-collapse]{opacity:0;pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.reading-index-heading:hover .reading-expand[data-reading-collapse],.reading-index-heading:focus-within .reading-expand[data-reading-collapse]{opacity:1;pointer-events:auto}.reading-index .reading-expand[data-reading-collapse]{display:none}.reading-index .reading-expand[data-reading-expand]{opacity:0;pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.reading-index .reading-index-heading:hover .reading-expand[data-reading-expand],.reading-index .reading-index-heading:focus-within .reading-expand[data-reading-expand]{opacity:1;pointer-events:auto}[data-reading-shell=home]{flex-direction:row}[data-reading-shell=home] .reading-index{border-right:1px solid var(--color-surface-700);border-bottom:0;max-height:none}[data-reading-shell=index]{flex-direction:row}[data-reading-shell=index] .reading-index{border-right-color:#0000;grid-column:1/-1;width:100%}[data-reading-shell=index] .reading-doc{opacity:0;pointer-events:none;display:block;overflow:hidden}[data-reading-shell=index] .reading-index .reading-expand[data-reading-expand]{display:none}[data-reading-shell=index] .reading-index .reading-expand[data-reading-collapse]{opacity:0;pointer-events:auto;justify-content:center;align-items:center;display:inline-flex}[data-reading-shell=index] .reading-index .reading-index-heading:hover .reading-expand[data-reading-collapse],[data-reading-shell=index] .reading-index .reading-index-heading:focus-within .reading-expand[data-reading-collapse]{opacity:1;pointer-events:auto}.reading-index .reading-index-heading{padding-top:var(--reading-inset-y)}@media(prefers-reduced-motion:reduce){.reading-index,.reading-doc,.reading-rail{transition:none}}}@media(min-width:1024px){.reading-shell{--reading-rail-width:var(--reading-side-min);grid-template-columns:minmax(0,1fr) min(var(--reading-index-width),calc(100% * var(--reading-index-width) / var(--reading-split-3))) minmax(0,1fr) min(var(--reading-measure),calc(100% * var(--reading-measure) / var(--reading-split-3))) minmax(0,1fr) min(var(--reading-side-min),calc(100% * var(--reading-side-min) / var(--reading-split-3))) minmax(0,1fr)}.reading-rail{padding-top:var(--reading-inset-y);display:block}.reading-rail:not(:has(*)){padding:0}.reading-shell[data-reading-shell=index] .reading-rail{opacity:0;pointer-events:none;padding:0;overflow:hidden}.reading-chapters-inline{display:none}.reading-shell:has(>.reading-rail[data-reading-child-open]){grid-template-columns:min(var(--reading-index-width),calc(100% * var(--reading-index-width) / var(--reading-split-2))) minmax(0,1fr) minmax(0,1fr)}.reading-shell:has(>.reading-rail[data-reading-child-open]) .reading-index{grid-column:1}.reading-shell:has(>.reading-rail[data-reading-child-open]) .reading-doc{grid-column:2;display:block}.reading-shell:has(>.reading-rail[data-reading-child-open]) .reading-doc>:not(.article-shell,[data-about-panel]){pointer-events:auto;width:auto;height:auto;position:static;overflow:visible}.reading-shell:has(>.reading-rail[data-reading-child-open]) .reading-rail{grid-column:3}.reading-shell:has(>.reading-rail[data-reading-child-open]) .reading-doc .article-shell{width:auto;max-width:none}.reading-rail[data-reading-child-open]{pointer-events:auto;border-left:1px solid var(--color-surface-700);flex-direction:column;min-width:0;padding:0;display:flex;overflow:hidden}.reading-rail[data-reading-child-open] .reading-series,.reading-rail[data-reading-child-open] .toc{display:none}.reading-rail[data-reading-child-open] .reading-child-doc{overscroll-behavior:contain;overscroll-behavior-x:none;flex:auto;overflow:clip auto}}.toc ul{margin:0;padding:0;list-style:none}.toc a{color:var(--color-ink-400);text-align:left;text-overflow:ellipsis;text-underline-offset:.25rem;white-space:nowrap;padding-block:.4rem;font-size:.8125rem;line-height:1.7;text-decoration-line:underline;text-decoration-color:#0000;transition:color .16s,text-decoration-color .16s;display:block;overflow:hidden}.toc-label{text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}.toc a[data-depth="3"]{color:var(--color-ink-500);padding-inline-start:.875rem;font-size:.75rem}.toc li:not(:first-child) a[data-depth="2"]{margin-top:.55rem}.toc a:hover,.toc a:focus-visible,.toc a[aria-current=true],.toc a.is-active{color:var(--color-ink-200);-webkit-text-decoration-color:var(--color-ink-500);text-decoration-color:var(--color-ink-500)}.reading-series+.toc{margin-top:1.5rem}.reading-series ol a{text-decoration:none}.reading-series ol a[aria-current=page]{color:var(--color-ink-100);text-decoration:underline;-webkit-text-decoration-color:var(--color-ink-400);text-decoration-color:var(--color-ink-400);text-underline-offset:.25rem}@media(prefers-reduced-motion:reduce){.toc a{transition:none}}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-auto{margin-inline:auto}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.-ml-3{margin-left:calc(var(--spacing) * -3)}.-ml-px{margin-left:-1px}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-video{aspect-ratio:var(--aspect-video)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-\[18px\]{height:18px}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.h-screen{height:100vh}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[75vh\]{max-height:75vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[min\(90dvh\,40rem\)\]{max-height:min(90dvh,40rem)}.min-h-0{min-height:0}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-\[18px\]{width:18px}.w-full{width:100%}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-11{min-width:calc(var(--spacing) * 11)}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-surface-700{border-color:var(--color-surface-700)}.bg-ink-100\/85{background-color:var(--color-ink-100)}@supports (color:color-mix(in lab,red,red)){.bg-ink-100\/85{background-color:color-mix(in oklab,var(--color-ink-100) 85%,transparent)}}.bg-ink-500{background-color:var(--color-ink-500)}.bg-surface-800{background-color:var(--color-surface-800)}.bg-surface-950,.bg-surface-950\/80{background-color:var(--color-surface-950)}@supports (color:color-mix(in lab,red,red)){.bg-surface-950\/80{background-color:color-mix(in oklab,var(--color-surface-950) 80%,transparent)}}.bg-transparent{background-color:#0000}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-32{padding-block:calc(var(--spacing) * 32)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-14{padding-bottom:calc(var(--spacing) * 14)}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-\[4rem\]{--tw-leading:4rem;line-height:4rem}.leading-loose{--tw-leading:var(--leading-loose);line-height:var(--leading-loose)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-inherit{color:inherit}.text-ink-100{color:var(--color-ink-100)}.text-ink-200{color:var(--color-ink-200)}.text-ink-300{color:var(--color-ink-300)}.text-ink-400{color:var(--color-ink-400)}.text-ink-500{color:var(--color-ink-500)}.text-ink-600{color:var(--color-ink-600)}.text-primary-500{color:var(--color-primary-500)}.text-surface-700{color:var(--color-surface-700)}.text-surface-950{color:var(--color-surface-950)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-ink-500{-webkit-text-decoration-color:var(--color-ink-500);text-decoration-color:var(--color-ink-500)}.decoration-ink-600{-webkit-text-decoration-color:var(--color-ink-600);text-decoration-color:var(--color-ink-600)}.decoration-transparent{text-decoration-color:#0000}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:scale-\[1\.02\]:is(:where(.group):hover *){scale:1.02}.group-hover\:text-ink-100:is(:where(.group):hover *){color:var(--color-ink-100)}.group-hover\:text-ink-300:is(:where(.group):hover *){color:var(--color-ink-300)}.group-hover\:decoration-ink-500:is(:where(.group):hover *){-webkit-text-decoration-color:var(--color-ink-500);text-decoration-color:var(--color-ink-500)}}.group-focus-visible\:text-ink-100:is(:where(.group):focus-visible *){color:var(--color-ink-100)}.group-focus-visible\:decoration-ink-500:is(:where(.group):focus-visible *),.group-aria-\[current\=page\]\:decoration-ink-500:is(:where(.group)[aria-current=page] *){-webkit-text-decoration-color:var(--color-ink-500);text-decoration-color:var(--color-ink-500)}@media(hover:hover){.hover\:text-ink-50:hover{color:var(--color-ink-50)}.hover\:text-ink-100:hover{color:var(--color-ink-100)}.hover\:text-ink-200:hover{color:var(--color-ink-200)}.hover\:decoration-ink-300:hover{-webkit-text-decoration-color:var(--color-ink-300);text-decoration-color:var(--color-ink-300)}.hover\:decoration-ink-500:hover{-webkit-text-decoration-color:var(--color-ink-500);text-decoration-color:var(--color-ink-500)}.hover\:opacity-90:hover{opacity:.9}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:absolute:focus{position:absolute}.focus\:top-4:focus{top:calc(var(--spacing) * 4)}.focus\:left-4:focus{left:calc(var(--spacing) * 4)}.focus\:z-\[100\]:focus{z-index:100}.focus\:px-3:focus{padding-inline:calc(var(--spacing) * 3)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:text-ink-100:focus{color:var(--color-ink-100)}.focus-visible\:opacity-100:focus-visible{opacity:1}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media(prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}@media(hover:hover){.motion-reduce\:group-hover\:scale-100:is(:where(.group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}@media(min-width:40rem){.sm\:right-6{right:calc(var(--spacing) * 6)}.sm\:left-6{left:calc(var(--spacing) * 6)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:items-center{align-items:center}.sm\:gap-1{gap:var(--spacing)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:p-0{padding:0}.sm\:p-12{padding:calc(var(--spacing) * 12)}.sm\:px-2{padding-inline:calc(var(--spacing) * 2)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:pointer-events-auto{pointer-events:auto}.md\:relative{position:relative}.md\:inset-auto{inset:auto}.md\:z-auto{z-index:auto}.md\:flex{display:flex}.md\:h-14{height:calc(var(--spacing) * 14)}.md\:h-dvh{height:100dvh}.md\:min-h-0{min-height:0}.md\:min-w-0{min-width:0}.md\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:gap-3{gap:calc(var(--spacing) * 3)}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:gap-8{gap:calc(var(--spacing) * 8)}.md\:overflow-hidden{overflow:hidden}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:py-1\.5{padding-block:calc(var(--spacing) * 1.5)}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root,[data-theme=light]{color-scheme:light;--theme-surface-950:#fff;--theme-surface-900:#fff;--theme-surface-800:#f0f0f0;--theme-surface-700:#e0e0e0;--theme-ink-50:#fff;--theme-ink-100:#171717;--theme-ink-200:#262626;--theme-ink-300:#404040;--theme-ink-400:#737373;--theme-ink-500:#8c8c8c;--theme-ink-600:#a3a3a3;--theme-accent-deletion:#991b1b;--theme-accent-insertion:#166534}[data-theme=dark]{color-scheme:dark;--theme-surface-950:#191919;--theme-surface-900:#191919;--theme-surface-800:#262626;--theme-surface-700:#343434;--theme-ink-50:#f8fafc;--theme-ink-100:#f1f5f9;--theme-ink-200:#e2e8f0;--theme-ink-300:#cbd5e1;--theme-ink-400:#94a3b8;--theme-ink-500:#64748b;--theme-ink-600:#475569;--theme-accent-deletion:#fca5a5;--theme-accent-insertion:#86efac}@media(min-width:768px){.reading-doc .article-shell,.reading-doc [data-about-panel]{padding-top:var(--reading-inset-y);width:100%;max-width:none;margin-inline:0}}:root{--chrome-fade:1.25rem}.chrome-fade-bottom,.chrome-fade-top{background-color:#0000}.chrome-fade-bottom{padding-bottom:var(--chrome-fade);background-image:linear-gradient(to bottom in srgb,var(--color-surface-950) 0%,var(--color-surface-950) calc(100% - var(--chrome-fade)),rgb(from var(--color-surface-950) r g b / 0))}.chrome-fade-top{padding-top:var(--chrome-fade);background-image:linear-gradient(to top in srgb,var(--color-surface-950) 0%,var(--color-surface-950) calc(100% - var(--chrome-fade)),rgb(from var(--color-surface-950) r g b / 0))}@media(min-width:768px){.site-nav-bar.chrome-fade-bottom{background-image:none;padding-bottom:0}}.site-main{padding-bottom:calc(2.5rem + env(safe-area-inset-bottom,0px))}.footer-hit{min-width:1rem;min-height:1rem}.site-footer-inner{min-height:2.5rem}@media(max-width:767.98px){.site-nav-bar{min-height:calc(3.5rem + env(safe-area-inset-top,0px) + var(--chrome-fade,1.25rem));padding-top:env(safe-area-inset-top,0px);padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px))}.site-main{padding-top:calc(3.5rem + env(safe-area-inset-top,0px) + var(--chrome-fade,1.25rem));padding-bottom:calc(2.75rem + env(safe-area-inset-bottom,0px))}.site-footer-inner{min-height:2.75rem;padding-bottom:env(safe-area-inset-bottom,0px);padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px))}.footer-hit{min-width:2.75rem;min-height:2.75rem}.reading-index,.reading-doc,.reading-rail{overscroll-behavior:auto;flex:none;min-height:auto;max-height:none;overflow:visible}[data-reading-shell=home] .reading-doc,[data-reading-shell=home] .reading-rail,[data-reading-shell=article] .reading-rail,[data-reading-shell=project] .reading-rail{display:none}[data-reading-shell=home] .reading-index{border-bottom:0}.reading-back{padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px))}.reading-index-heading{padding-top:.75rem}.reading-index-switch-alt{align-items:center;min-height:2.75rem;display:inline-flex}.article-shell,[data-about-panel],[data-reading-index-body],[data-search-index],[data-tag-index]{padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px))}.article-shell,[data-about-panel],[data-search-index],[data-tag-index]{padding-top:1.25rem}.prose-site :is(h2,h3,h4),.reading-doc .prose-site :is(h2,h3,h4),#comments{scroll-margin-top:calc(4.5rem + env(safe-area-inset-top,0px))}#comments{scroll-margin-bottom:calc(3.5rem + env(safe-area-inset-bottom,0px))}.ui-tag-link,.tag-index-list .ui-tag-link,.article-dek .ui-tag-list a{align-items:center;min-height:2.75rem;display:inline-flex}.tag-index-list{gap:.25rem 1.25rem}.copy-url-btn{min-height:2.75rem}}@media(max-width:767.98px)and (max-height:500px){.site-nav-veil{height:calc(3.75rem + env(safe-area-inset-top,0px))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
