@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-ext-opsz.woff2) format("woff2-variations");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-opsz.woff2) format("woff2-variations");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}:root{--color-highlighter:#e4f222;--color-ink:#0c0a08;--color-obsidian:#1a1919;--color-paper:#fff;--color-bone:#f4f2f0;--color-ash:#6d6c6b;--color-hairline:#e5e7eb;--color-smoke:#d3d3d3;--color-canvas:var(--color-bone);--color-card:var(--color-paper);--color-wash:var(--color-bone);--color-inverted:var(--color-obsidian);--color-action:var(--color-highlighter);--color-text-strong:var(--color-ink);--color-text-body:color-mix(in srgb,var(--color-ink) 82%,var(--color-bone));--color-text-muted:var(--color-ash);--color-text-on-action:var(--color-ink);--color-text-on-inverted:var(--color-paper);--color-text-on-inverted-muted:color-mix(in srgb,var(--color-paper) 62%,transparent);--color-border:var(--color-hairline);--color-border-strong:var(--color-smoke);--color-border-ink:var(--color-ink);--color-input-border:rgba(33,33,33,0.1);--color-scrim:color-mix(in srgb,var(--color-ink) 40%,transparent);--color-header:color-mix(in srgb,var(--color-paper) 88%,transparent);--color-code-surface:var(--color-obsidian);--color-code-title:#232121;--color-code-border:#2e2c2a;--color-code-text:#e8e6e3;--color-code-muted:#8f8d8b;--color-code-literal:#d9e46b;--color-code-punctuation:#a8a6a4;--color-code-highlight:color-mix(in srgb,var(--color-paper) 7%,transparent);--color-code-inserted:color-mix(in srgb,var(--color-highlighter) 16%,transparent);--color-code-deleted:color-mix(in srgb,var(--color-paper) 8%,transparent)}:root[data-theme=dark]{--color-canvas:var(--color-obsidian);--color-card:#211f1e;--color-wash:#262423;--color-inverted:var(--color-ink);--color-text-strong:var(--color-bone);--color-text-body:color-mix(in srgb,var(--color-bone) 84%,var(--color-obsidian));--color-text-muted:#a3a19f;--color-border:#2e2c2a;--color-border-strong:#45423f;--color-border-ink:var(--color-bone);--color-input-border:color-mix(in srgb,var(--color-paper) 12%,transparent);--color-scrim:color-mix(in srgb,var(--color-ink) 60%,transparent);--color-header:color-mix(in srgb,var(--color-obsidian) 88%,transparent);--color-code-surface:var(--color-ink);--color-code-title:#161413}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}:root{--font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--font-features:"ss01" on;--font-weight:400;--text-display:40px;--text-heading-xl:36px;--text-heading-lg:28px;--text-heading:24px;--text-heading-sm:20px;--text-subheading:18px;--text-lead:18px;--text-body:16px;--text-small:14px;--text-caption:13px;--text-label:10px;--leading-display:1;--leading-heading-xl:1.05;--leading-heading-lg:1.05;--leading-heading:1.14;--leading-heading-sm:1.17;--leading-subheading:1.3;--leading-body:1.5;--leading-caption:1.4;--leading-label:1.6;--tracking-display:-0.01em;--tracking-label:0.08em}@media (min-width:48rem){:root{--text-display:48px;--text-heading-xl:40px;--text-heading-lg:32px;--text-heading:28px;--text-heading-sm:24px;--text-subheading:20px}}@media (min-width:64rem){:root{--text-display:64px;--text-heading-xl:48px;--text-heading-lg:40px}}:root{--filter-wordmark:brightness(0)}:root[data-theme=dark]{--filter-wordmark:none}@media print{:root,:root[data-theme=dark]{--filter-wordmark:brightness(0)}}:root{--radius-button:6px;--radius-input:10px;--radius-wash:12px;--radius-card:16px;--motion-default:300ms ease-out;--motion-travel:400ms cubic-bezier(0.16,1,0.3,1);--shadow-header:hsla(0,0%,100%,0.6) 0 0 2px 0 inset}:root[data-theme=dark]{--shadow-header:none}:root{--route-page-padding:20px;--page-max-width:1200px}@media (min-width:48rem){:root{--route-page-padding:32px}}@media (min-width:64rem){:root{--route-page-padding:48px}}

/*
! tailwindcss v3.0.24 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid var(--color-border)}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans)}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-mono);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}body{background:var(--color-canvas);color:var(--color-text-body);font-family:var(--font-sans);font-weight:var(--font-weight);font-size:var(--text-body);line-height:var(--leading-body);font-feature-settings:var(--font-features);font-optical-sizing:auto}b,button,h1,h2,h3,h4,h5,h6,input,strong,th{font-weight:var(--font-weight)}:focus-visible{outline:2px solid var(--color-border-ink);outline-offset:2px}[id]{scroll-margin-top:5rem}::-moz-selection{background:var(--color-action);color:var(--color-text-on-action)}::selection{background:var(--color-action);color:var(--color-text-on-action)}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(147 197 253/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--color-text-body);max-width:70ch}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--color-text-strong);text-decoration:underline;font-weight:var(--font-weight);-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);text-decoration-thickness:1px;text-underline-offset:3px;transition:-webkit-text-decoration-color var(--motion-default);transition:text-decoration-color var(--motion-default);transition:text-decoration-color var(--motion-default),-webkit-text-decoration-color var(--motion-default)}.prose :where(a):not(:where([class~=not-prose] *)):hover{-webkit-text-decoration-color:var(--color-border-ink);text-decoration-color:var(--color-border-ink)}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--color-text-strong);font-weight:var(--font-weight)}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:var(--font-weight);color:var(--color-text-muted)}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--color-text-muted)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--color-border);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:var(--font-weight);font-style:normal;color:var(--color-text-strong);border-left-width:1px;border-left-color:var(--color-border-ink);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:none}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:none}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:var(--text-heading-sm);margin-top:2.4em;margin-bottom:.8em;line-height:var(--leading-heading-sm)}.prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:var(--text-subheading);margin-top:2em;margin-bottom:.6em;line-height:var(--leading-subheading)}.prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5;font-size:var(--text-body)}.prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--color-text-muted);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~=not-prose] *)){color:var(--color-text-strong);font-weight:var(--font-weight);font-size:.875em;background-color:var(--color-wash);border:1px solid var(--color-border);border-radius:var(--radius-button);padding:.1em .35em}.prose :where(code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(a code):not(:where([class~=not-prose] *)){color:var(--tw-prose-links)}.prose :where(pre):not(:where([class~=not-prose] *)){color:var(--color-code-text);background-color:var(--color-code-surface);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:var(--radius-card);padding:.8571429em 1.1428571em;border:1px solid var(--color-code-border)}.prose :where(pre code):not(:where([class~=not-prose] *)){background-color:transparent;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;border:0}.prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--color-border-strong)}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--color-text-muted);font-weight:var(--font-weight);vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em;font-size:var(--text-label);text-transform:uppercase;letter-spacing:var(--tracking-label)}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--color-border)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:baseline;padding:.5714286em}.prose{--tw-prose-body:var(--color-text-body);--tw-prose-headings:var(--color-text-strong);--tw-prose-lead:var(--color-text-muted);--tw-prose-links:var(--color-text-strong);--tw-prose-bold:var(--color-text-strong);--tw-prose-counters:var(--color-text-muted);--tw-prose-bullets:var(--color-text-muted);--tw-prose-hr:var(--color-border);--tw-prose-quotes:var(--color-text-strong);--tw-prose-quote-borders:var(--color-border-ink);--tw-prose-captions:var(--color-text-muted);--tw-prose-code:var(--color-text-strong);--tw-prose-pre-code:var(--color-code-text);--tw-prose-pre-bg:var(--color-code-surface);--tw-prose-th-borders:var(--color-border-strong);--tw-prose-td-borders:var(--color-border);--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0/50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:var(--text-body);line-height:var(--leading-body)}.prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(h2 code):not(:where([class~=not-prose] *)){font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){font-size:.9em}.prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose>:where(ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose>:where(ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose>:where(ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose>:where(ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose>:where(ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose>:where(:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose>:where(:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose :where(b):not(:where([class~=not-prose] *)){color:var(--color-text-strong);font-weight:var(--font-weight)}.prose :where(h1,h2,h3,h4):not(:where([class~=not-prose] *)){color:var(--color-text-strong);font-weight:var(--font-weight)}.prose :where(kbd):not(:where([class~=not-prose] *)){color:var(--color-text-strong)}.display{font-size:var(--text-display);line-height:var(--leading-display)}.display,.heading-xl{letter-spacing:var(--tracking-display)}.heading-xl{font-size:var(--text-heading-xl);line-height:var(--leading-heading-xl)}.heading-lg{font-size:var(--text-heading-lg);line-height:var(--leading-heading-lg)}.heading{font-size:var(--text-heading);line-height:var(--leading-heading)}.heading-sm{font-size:var(--text-heading-sm);line-height:var(--leading-heading-sm)}.subheading{font-size:var(--text-subheading);line-height:var(--leading-subheading)}.lead{font-size:var(--text-lead)}.lead,.small{line-height:var(--leading-body)}.small{font-size:var(--text-small)}.caption{font-size:var(--text-caption);line-height:var(--leading-caption)}.label{font-size:var(--text-label);line-height:var(--leading-label);letter-spacing:var(--tracking-label);text-transform:uppercase}.page-container,.route-page-shell{padding-inline:var(--route-page-padding)}.page-container{width:100%;max-width:calc(var(--page-max-width) + 2 * var(--route-page-padding));margin-inline:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:0 20px;border-radius:var(--radius-button);border:1px solid transparent;font-size:var(--text-body);line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--motion-default),border-color var(--motion-default),color var(--motion-default)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-action);color:var(--color-text-on-action)}.btn-primary:hover{background:color-mix(in srgb,var(--color-action) 88%,var(--color-ink))}.btn-ghost{padding:0 12px;background:transparent;color:var(--color-text-strong)}.btn-ghost:hover{background:var(--color-wash)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-button);color:var(--color-text-strong);transition:background-color var(--motion-default)}.btn-icon:hover{background:var(--color-wash)}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-card)}.card-interactive{transition:border-color var(--motion-default)}.card-interactive:hover{border-color:var(--color-border-ink)}.tag{display:inline-flex;align-items:center;white-space:nowrap;padding:0 6px;border:1px solid var(--color-border-strong);color:var(--color-text-muted);font-size:var(--text-label);line-height:18px;letter-spacing:var(--tracking-label);text-transform:uppercase}.nav-item,.tag{border-radius:var(--radius-button)}.nav-item{transition:background-color var(--motion-default),color var(--motion-default)}.nav-item:hover{background:var(--color-wash);color:var(--color-text-strong)}.is-highlighted,.nav-item[aria-current=page]{background:var(--color-action);color:var(--color-text-on-action)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.left-0{left:0}.right-3{right:.75rem}.top-3{top:.75rem}.top-16{top:4rem}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-10{z-index:10}.m-0{margin:0}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mt-4{margin-top:1rem}.mt-10{margin-top:2.5rem}.mt-6{margin-top:1.5rem}.mt-14{margin-top:3.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.mb-0{margin-bottom:0}.mt-24{margin-top:6rem}.ml-auto{margin-left:auto}.ml-0\.5{margin-left:.125rem}.ml-0{margin-left:0}.-ml-2{margin-left:-.5rem}.mb-6{margin-bottom:1.5rem}.mt-0\.5{margin-top:.125rem}.mt-0{margin-top:0}.ml-6{margin-left:1.5rem}.mt-px{margin-top:1px}.mb-3{margin-bottom:.75rem}.ml-\[0\.85rem\]{margin-left:.85rem}.mt-\[0\.2rem\]{margin-top:.2rem}.-ml-px{margin-left:-1px}.mb-10{margin-bottom:2.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-12{height:3rem}.h-6{height:1.5rem}.h-auto{height:auto}.h-16{height:4rem}.h-5{height:1.25rem}.h-\[0\.7em\]{height:.7em}.h-10{height:2.5rem}.h-4{height:1rem}.h-14{height:3.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-1{height:.25rem}.h-full{height:100%}.max-h-\[75vh\]{max-height:75vh}.max-h-\[calc\(100vh-4rem\)\]{max-height:calc(100vh - 4rem)}.min-h-screen{min-height:100vh}.min-h-\[36px\]{min-height:36px}.w-12{width:3rem}.w-5{width:1.25rem}.w-auto{width:auto}.w-full{width:100%}.w-\[0\.7em\]{width:.7em}.w-80{width:20rem}.w-4{width:1rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-6{width:1.5rem}.w-16{width:4rem}.min-w-0{min-width:0}.max-w-\[18ch\]{max-width:18ch}.max-w-\[52ch\]{max-width:52ch}.max-w-\[13em\]{max-width:13em}.max-w-xl{max-width:36rem}.max-w-full{max-width:100%}.max-w-\[85vw\]{max-width:85vw}.max-w-3xl{max-width:48rem}.max-w-\[70ch\]{max-width:70ch}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:0px}.-translate-x-full,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x:-100%}.rotate-90{--tw-rotate:90deg}.rotate-90,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.scroll-mt-20{scroll-margin-top:5rem}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-1{gap:.25rem}.gap-y-6{row-gap:1.5rem}.space-y-20>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(5rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded-wash{border-radius:var(--radius-wash)}.rounded-button{border-radius:var(--radius-button)}.rounded-input{border-radius:var(--radius-input)}.rounded-card{border-radius:var(--radius-card)}.border{border-width:1px}.border-0{border-width:0}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-line{border-color:var(--color-border)}.border-line-ink{border-color:var(--color-border-ink)}.border-line-strong{border-color:var(--color-border-strong)}.border-code-border{border-color:var(--color-code-border)}.border-line-input{border-color:var(--color-input-border)}.border-transparent{border-color:transparent}.bg-inverted{background-color:var(--color-inverted)}.bg-scrim{background-color:var(--color-scrim)}.bg-canvas{background-color:var(--color-canvas)}.bg-code-title{background-color:var(--color-code-title)}.bg-card{background-color:var(--color-card)}.bg-wash{background-color:var(--color-wash)}.bg-fg-strong{background-color:var(--color-text-strong)}.fill-fg-strong{fill:var(--color-text-strong)}.stroke-canvas{stroke:var(--color-canvas)}.stroke-line-strong{stroke:var(--color-border-strong)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-6{padding:1.5rem}.p-0{padding:0}.py-24{padding-top:6rem;padding-bottom:6rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-12{padding-top:3rem;padding-bottom:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-4{padding-left:1rem;padding-right:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.pt-20{padding-top:5rem}.pb-16{padding-bottom:4rem}.pr-4{padding-right:1rem}.pt-4{padding-top:1rem}.pb-5{padding-bottom:1.25rem}.pt-\[10vh\]{padding-top:10vh}.pt-2{padding-top:.5rem}.pb-2{padding-bottom:.5rem}.pt-6{padding-top:1.5rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-3{padding-left:.75rem}.pr-2{padding-right:.5rem}.pb-8{padding-bottom:2rem}.text-left{text-align:left}.align-baseline{vertical-align:baseline}.uppercase{text-transform:uppercase}.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)}.text-fg-muted{color:var(--color-text-muted)}.text-fg-strong{color:var(--color-text-strong)}.text-fg-on-inverted-muted{color:var(--color-text-on-inverted-muted)}.text-fg-on-inverted{color:var(--color-text-on-inverted)}.text-code-muted{color:var(--color-code-muted)}.text-fg{color:var(--color-text-body)}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.decoration-transparent{-webkit-text-decoration-color:transparent;text-decoration-color:transparent}.decoration-line-strong{-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong)}.underline-offset-4{text-underline-offset:4px}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder::-moz-placeholder{color:var(--color-text-muted)}.placeholder::placeholder{color:var(--color-text-muted)}.opacity-100{opacity:1}.opacity-0{opacity:0}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.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-colors{transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:ease-out;transition-duration:.3s}.transition-opacity{transition-property:opacity;transition-timing-function:ease-out;transition-duration:.3s}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color;transition-timing-function:ease-out;transition-duration:.3s}.transition-transform{transition-property:transform;transition-timing-function:ease-out;transition-duration:.3s}.site-header{box-shadow:var(--shadow-header)}.site-header:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--color-header);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.brand-wordmark{filter:var(--filter-wordmark)}.prose .heading-anchor{text-decoration:none;color:inherit!important}.prose .heading-anchor:hover:after{content:" #";color:var(--color-text-muted)}.callout-body>:first-child{margin-top:0}.callout-body>:last-child{margin-bottom:0}.callout-stuck>summary,.disclosure>summary{list-style:none}.callout-stuck>summary::-webkit-details-marker,.disclosure>summary::-webkit-details-marker{display:none}.callout-stuck>summary:after,.disclosure>summary:after{content:"+";margin-left:auto;color:var(--color-text-muted)}.callout-stuck[open]>summary:after,.disclosure[open]>summary:after{content:"−"}.task-list-item:before{display:none}.task-list-item{list-style:none;padding-left:0}.contains-task-list{padding-left:0}.task-list-item input[type=checkbox]{margin-right:.6rem;accent-color:var(--color-ink)}.footnotes{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-border)}.lesson-body table{display:block;overflow-x:auto}kbd{font-family:var(--font-sans);border:1px solid var(--color-border-strong);border-radius:var(--radius-button);padding:0 .35em;font-size:.85em}mark{background:var(--color-action);color:var(--color-text-on-action);border-radius:2px;padding:0 1px}.search-input{background:transparent;border:0;color:var(--color-text-strong)}.search-input::-moz-placeholder{color:var(--color-text-muted)}.search-input::placeholder{color:var(--color-text-muted)}.search-input:focus,.search-input:focus-visible{outline:none}.search-input::-webkit-search-cancel-button{-webkit-appearance:none}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{@page{margin:2cm}html{font-size:11pt}:root,:root[data-theme=dark]{--color-canvas:var(--color-paper);--color-card:var(--color-paper);--color-wash:var(--color-paper);--color-text-strong:var(--color-ink);--color-text-body:var(--color-ink);--color-text-muted:var(--color-ink);--color-border:var(--color-smoke);--color-border-ink:var(--color-ink);--color-code-surface:var(--color-paper);--color-code-title:var(--color-paper);--color-code-border:var(--color-smoke);--color-code-text:var(--color-ink)}.lesson-body a[href^=http]:after{content:" (" attr(href) ")";word-break:break-all}.external-link-icon{display:none}.code-block pre{white-space:pre-wrap;word-break:break-word}.code-block pre .token{color:var(--color-ink)!important}.callout,.code-block,.disclosure,img,tr{-moz-column-break-inside:avoid;break-inside:avoid}.remark-code-title,h2,h3{-moz-column-break-after:avoid;break-after:avoid}.callout-stuck,.disclosure-hint,.disclosure-solution{display:none}}.last\:border-0:last-child{border-width:0}.empty\:hidden:empty{display:none}.hover\:border-line-strong:hover{border-color:var(--color-border-strong)}.hover\:text-fg-strong:hover{color:var(--color-text-strong)}.hover\:text-code-text:hover{color:var(--color-code-text)}.hover\:decoration-line-ink:hover{-webkit-text-decoration-color:var(--color-border-ink);text-decoration-color:var(--color-border-ink)}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:fixed:focus{position:fixed}.focus\:left-4:focus{left:1rem}.focus\:top-3:focus{top:.75rem}.focus\:z-50:focus{z-index:50}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:opacity-100:focus-visible{opacity:1}.group:hover .group-hover\:decoration-line-ink{-webkit-text-decoration-color:var(--color-border-ink);text-decoration-color:var(--color-border-ink)}@media print{.print\:mt-8{margin-top:2rem}.print\:hidden{display:none}}@media (min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:w-52{width:13rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:ml-3{margin-left:.75rem}.md\:block{display:block}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:pt-28{padding-top:7rem}.md\:pb-24{padding-bottom:6rem}.md\:opacity-0{opacity:0}.group:hover .md\:group-hover\:opacity-100{opacity:1}}@media (min-width:1024px){.lg\:block{display:block}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:grid-cols-\[16rem_minmax\(0\2c 1fr\)\]{grid-template-columns:16rem minmax(0,1fr)}.lg\:grid-cols-\[15rem_minmax\(0\2c 1fr\)\]{grid-template-columns:15rem minmax(0,1fr)}.lg\:gap-12{gap:3rem}.lg\:py-14{padding-top:3.5rem;padding-bottom:3.5rem}}@media (min-width:1280px){.xl\:block{display:block}.xl\:max-w-5xl{max-width:64rem}.xl\:grid-cols-\[15rem_minmax\(0\2c 1fr\)_13rem\]{grid-template-columns:15rem minmax(0,1fr) 13rem}.xl\:px-0{padding-left:0;padding-right:0}}.remark-code-title{margin-top:1.5rem;padding:.6rem 1.25rem;font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-code-muted);background:var(--color-code-title);border:1px solid var(--color-code-border);border-bottom:0;border-radius:var(--radius-card) var(--radius-card) 0 0}.remark-code-title+.code-block pre{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.code-block pre{font-size:var(--text-caption);line-height:var(--leading-body);overflow-x:auto;max-width:100%}.code-highlight{float:left;min-width:100%}.code-line{display:block;padding-inline:1rem;margin-inline:-1rem;border-left:2px solid transparent}.code-line.inserted{background:var(--color-code-inserted)}.code-line.deleted{background:var(--color-code-deleted)}.highlight-line{background:var(--color-code-highlight);border-left-color:var(--color-highlighter)}.line-number:before{display:inline-block;width:1rem;margin-right:1rem;margin-left:-.5rem;text-align:right;color:var(--color-code-muted);content:attr(line)}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:var(--color-code-muted);font-style:italic}.token.operator,.token.punctuation{color:var(--color-code-punctuation)}.token.attr-value,.token.boolean,.token.char,.token.inserted,.token.number,.token.regex,.token.string,.token.url{color:var(--color-code-literal)}.namespace,.token.atrule,.token.attr-name,.token.builtin,.token.class-name,.token.constant,.token.function,.token.important,.token.keyword,.token.property,.token.selector,.token.symbol,.token.tag,.token.variable{color:var(--color-code-text)}.token.deleted{color:var(--color-code-muted);text-decoration:line-through}.token.italic{font-style:italic}