@layer reset,tokens,base,composition,content,components,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:106.25%;text-size-adjust:100%;scroll-behavior:smooth}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}img,picture,video,canvas,svg{display:block;max-inline-size:100%}button,input,textarea,select{font:inherit}}@layer tokens{:root{color-scheme:light;--frost: #f8f6ef;--surface: #fffdf7;--ink: #24231f;--graphite: #65625b;--violet: #236f86;--teal: #a64f2d;--violet-soft: #e8e8e3;--teal-soft: #f3e4da;--line: #e1ddd3;--line-strong: #c9c3b7;--code-surface: #ffffff;--shadow: 0 20px 64px rgb(44 39 29 / 8%);--overlay: rgb(24 27 39 / 44%);--danger: #a83d56;--focus-ring: 0 0 0 3px rgb(35 111 134 / 25%);--article-width: 760px;--rail-width: 288px;--page-gutter: clamp(1rem, 3vw, 2.5rem);--font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--font-article: var(--font-system);--font-ui: var(--font-system)}:root[data-color-scheme=dark]{color-scheme:dark;--frost: #111113;--surface: #1b1b1f;--ink: #ededf0;--graphite: #a7a7ae;--violet: #78b7ff;--teal: #e59a73;--violet-soft: #1d2a38;--teal-soft: #3b2922;--line: #303036;--line-strong: #46464d;--code-surface: #151518;--shadow: 0 20px 70px rgb(0 0 0 / 26%);--overlay: rgb(4 5 10 / 68%);--danger: #ff93a8;--focus-ring: 0 0 0 3px rgb(120 183 255 / 28%)}@media(prefers-color-scheme:dark){:root:not([data-color-scheme=light]){color-scheme:dark;--frost: #111113;--surface: #1b1b1f;--ink: #ededf0;--graphite: #a7a7ae;--violet: #78b7ff;--teal: #e59a73;--violet-soft: #1d2a38;--teal-soft: #3b2922;--line: #303036;--line-strong: #46464d;--code-surface: #151518;--shadow: 0 20px 70px rgb(0 0 0 / 26%);--overlay: rgb(4 5 10 / 68%);--danger: #ff93a8;--focus-ring: 0 0 0 3px rgb(120 183 255 / 28%)}}}@layer base{body{display:flex;flex-direction:column;min-block-size:100vh;background:var(--frost);color:var(--ink);font-family:var(--font-ui);line-height:1.55;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--violet) 28%,transparent);color:var(--ink)}a{color:inherit;text-underline-offset:.2em}button,a,input,summary,[tabindex]:not([tabindex="-1"]){outline:0}:focus-visible{border-radius:.2rem;box-shadow:var(--focus-ring)}button{border:0;color:inherit}code,kbd,pre{font-family:var(--font-mono)}}@layer composition{.skip-link{position:fixed;z-index:100;inset-block-start:.75rem;inset-inline-start:.75rem;translate:0 -180%;padding:.65rem .9rem;border:1px solid var(--violet);border-radius:.35rem;background:var(--surface);font-size:.82rem;font-weight:650}.skip-link:focus{translate:0}.site-header{position:relative;z-index:10;border-block-end:1px solid var(--line);background:color-mix(in srgb,var(--frost) 92%,transparent)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;inline-size:min(100%,calc(var(--article-width) + var(--rail-width) + 3.5rem));min-block-size:4.25rem;margin-inline:auto;padding-inline:var(--page-gutter);gap:1.2rem}.site-mark{display:inline-flex;align-items:baseline;gap:.6rem;text-decoration:none}.site-mark__glyph{color:var(--violet);font-family:var(--font-article);font-size:1.8rem;font-style:italic;font-weight:620;line-height:1}.site-mark__name{font-size:.86rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.site-actions,.site-navigation,.site-navigation__list{display:flex;align-items:center;gap:.35rem}.site-navigation{flex:1 1 auto;justify-content:center;min-inline-size:0}.site-navigation__list,.site-navigation__overflow{margin:0;padding:0;list-style:none}.site-navigation__list,.site-actions{flex:none}.site-navigation__more{position:relative;flex:none}.site-navigation__more>summary{list-style:none}.site-navigation__more>summary::-webkit-details-marker{display:none}.site-navigation a,.site-navigation__more>summary,.site-action{display:inline-flex;align-items:center;min-block-size:2.3rem;padding-inline:.72rem;border:1px solid transparent;border-radius:.35rem;background:transparent;color:var(--ink);cursor:pointer;font-size:.76rem;font-weight:620;letter-spacing:.04em;text-decoration:none;column-gap:.55rem}.site-navigation a:hover,.site-navigation__more>summary:hover,.site-action:hover{border-color:var(--line);background:var(--surface);color:var(--ink)}.site-navigation a[aria-current=page],.site-navigation__more[data-has-current=true]>summary{color:var(--ink);font-weight:720}.site-navigation__overflow{position:absolute;z-index:30;inset-block-start:calc(100% + .45rem);inset-inline-end:0;display:grid;min-inline-size:10.5rem;padding:.35rem;border:1px solid var(--line);border-radius:.42rem;background:var(--surface);box-shadow:var(--shadow)}.site-navigation__more:not([open])>.site-navigation__overflow{display:none}.site-navigation__overflow a{display:flex;inline-size:100%}.site-actions [data-search-open]{border-color:var(--line-strong);background:color-mix(in srgb,var(--surface) 72%,transparent)}.site-action__shortcut{color:var(--graphite);font-size:.72rem;font-weight:540;letter-spacing:.02em}.language-switcher{position:relative}.language-switcher>summary{list-style:none}.language-switcher>summary::-webkit-details-marker{display:none}.language-switcher__panel{position:absolute;z-index:30;inset-block-start:calc(100% + .45rem);inset-inline-end:0;min-inline-size:11rem;padding:.38rem;border:1px solid var(--line);border-radius:.42rem;background:var(--surface);box-shadow:var(--shadow)}.language-switcher__panel ul{display:grid;padding:0;margin:0;gap:.15rem;list-style:none}.language-switcher__panel a{display:block;padding:.58rem .65rem;border-radius:.3rem;color:var(--ink);font-size:.76rem;text-decoration:none}.language-switcher__panel a:hover,.language-switcher__panel a[aria-current=page]{background:var(--violet-soft);color:var(--ink)}.translation-fallback{position:fixed;z-index:40;inset-inline:1rem;inset-block-end:calc(1rem + env(safe-area-inset-bottom,0px));inline-size:fit-content;max-inline-size:min(32rem,calc(100% - 2rem));padding:.8rem 1rem;border-inline-start:3px solid var(--violet);border-radius:.25rem;margin-inline:auto;background:color-mix(in srgb,var(--violet) 8%,var(--surface));box-shadow:var(--shadow);color:var(--ink);font-family:var(--font-ui);font-size:.78rem;pointer-events:none;animation:translation-fallback-notice 5s ease-in forwards}@keyframes translation-fallback-notice{0%,90%{visibility:visible;opacity:1;transform:translateY(0)}to{visibility:hidden;opacity:0;transform:translateY(.4rem)}}.site-footer{margin-block-start:auto;border-block-start:1px solid var(--line);color:var(--graphite)}.site-footer__inner{display:flex;align-items:center;justify-content:center;inline-size:min(100%,calc(var(--article-width) + var(--rail-width) + 3.5rem));margin-inline:auto;padding:.85rem var(--page-gutter);gap:.35rem;font-size:.74rem;text-align:center}.site-footer__github{display:inline-flex;align-items:center;flex:none;gap:.3rem;color:inherit;text-decoration:none}.site-footer__github:hover{color:var(--ink)}.site-footer__github svg{inline-size:.95rem;block-size:.95rem;fill:currentColor}.mobile-toolbar{display:none}}@layer content{body.theme-minimal{--website-reading-margin-inline: 0 auto}body.theme-docs{--website-reading-margin-inline: auto}:is(.minimal-entry,.docs-article)>:where(.note-header,.source-actions,.tab-collection,.related-articles,.website-comments),:is(.minimal-entry,.docs-article)>.note-content>:where(h1,h2,h3,h4,p,ul,ol,dl,blockquote,pre,table,.highlighter-rouge,.code-block-copy,.callout,.mermaid-diagram,.footnotes){inline-size:min(100%,var(--reading-width));margin-inline:var(--website-reading-margin-inline)}.note-header{margin-block-end:2.5rem;padding-block-end:0;border-block-end:0}.note-meta{color:var(--graphite);font-family:var(--font-ui);font-size:.67rem;font-weight:670;letter-spacing:.11em;text-transform:uppercase}.note-title,.note-content h1,.note-content h2,.note-content h3,.note-content h4{color:var(--ink);font-family:var(--font-article);text-wrap:balance}.note-title{max-inline-size:20ch;font-size:clamp(2rem,4vw,3.1rem);font-weight:650;letter-spacing:-.025em;line-height:1.08}.note-description,.note-subtitle{inline-size:100%;max-inline-size:none;margin-block-start:0;color:var(--ink);font-family:var(--font-article);font-size:1.08rem;font-style:normal;line-height:1.6}.note-byline{max-inline-size:49ch;color:var(--graphite);font-family:var(--font-ui);font-size:.78rem;line-height:1.5}.note-title+.note-byline{margin-block-start:.8rem}.note-byline+.note-description,.note-byline+.note-subtitle{margin-block-start:1rem}.note-title+.note-description,.note-title+.note-subtitle{margin-block-start:1.25rem}.note-meta{display:flex;flex-wrap:wrap;margin-block-start:1.65rem;gap:.55rem 1rem}.note-meta__topics{display:flex;flex:1 1 18rem;flex-wrap:wrap;min-inline-size:0;max-inline-size:100%;gap:.4rem}.note-content{color:var(--ink);font-family:var(--font-article);font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.7;overflow-wrap:anywhere}.note-content>*+*{margin-block-start:1.35em}.note-content h1,.note-content h2,.note-content h3,.note-content h4{position:relative;scroll-margin-block-start:2rem}.note-content h1{font-size:clamp(2rem,4vw,2.8rem);font-weight:650;letter-spacing:-.025em;line-height:1.14}.note-content h2{margin-block-start:2.65em;padding-block-start:0;font-size:clamp(1.5rem,2.5vw,1.9rem);font-weight:650;letter-spacing:-.015em;line-height:1.18}.note-content h2:before{content:none}.note-content h3{margin-block-start:2.15em;font-size:1.32rem;font-weight:650;line-height:1.3}.note-content h4{font-size:1.08rem;font-weight:700;letter-spacing:.015em}.note-content strong{font-weight:720}.note-content em{font-style:italic}.note-content a:not(.tag-chip):not(.website-embed__source){color:color-mix(in srgb,var(--violet) 88%,var(--ink));text-decoration-color:color-mix(in srgb,var(--violet) 44%,transparent);text-decoration-thickness:.08em}.note-content a:hover{text-decoration-color:currentColor}.note-content ul,.note-content ol{padding-inline-start:1.35em}.note-content li+li{margin-block-start:.36em}.note-content li::marker{color:var(--teal);font-family:var(--font-ui);font-size:.8em;font-weight:750}.note-content blockquote{padding:.1rem 0 .1rem 1.25rem;border-inline-start:2px solid var(--teal);color:var(--ink);font-style:italic}.note-content hr{inline-size:38%;margin:3.5rem auto;border:0;border-block-start:1px solid var(--line-strong)}.note-content mark{margin-inline:-.08em;padding-inline:.08em;background:linear-gradient(transparent 40%,color-mix(in srgb,var(--teal) 25%,transparent) 40%,color-mix(in srgb,var(--teal) 25%,transparent) 92%,transparent 92%);color:inherit}.note-content code,.note-content kbd,.note-content pre{font-family:var(--font-mono)}.note-content :not(pre)>code{padding:.14em .32em;border:1px solid var(--line);border-radius:.25rem;background:var(--code-surface);font-size:.84em}.note-content pre{max-inline-size:100%;padding:1.25rem 1.35rem;border:1px solid var(--line);border-radius:.4rem;background:var(--code-surface);font-size:.82rem;line-height:1.65;overflow:auto}.note-content table{display:block;inline-size:max-content;max-inline-size:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:.82rem;overflow-x:auto}.note-content th,.note-content td{padding:.6rem .75rem;border-block-end:1px solid var(--line);text-align:start;vertical-align:top}.note-content th{color:var(--ink);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.note-content img,.note-content video,.note-content object,.note-content iframe{inline-size:auto;max-inline-size:100%;border-radius:.35rem}.note-content img[data-image-expand]{cursor:zoom-in}.note-content img[data-image-expand]:focus-visible{outline:2px solid var(--ink);outline-offset:.2rem}.note-content .website-external-video,.note-content .website-external-player{display:block;inline-size:100%}.note-content .website-external-player{min-block-size:200px;aspect-ratio:16 / 9;border:0}.note-content .website-external-frame,.note-content .website-tweet{inline-size:100%;margin-block:1.6rem}.note-content .website-external-frame__viewport{display:block;inline-size:100%;min-block-size:18rem;border:1px solid var(--line);background:var(--surface)}.note-content .website-external-frame__fallback,.note-content .website-tweet__fallback{color:var(--ink);font-family:var(--font-ui);font-size:.74rem}.note-content .website-tweet{max-inline-size:34rem}.website-tweet[data-website-tweet-state=loading] .website-tweet__mount{min-block-size:8rem}.website-tweet__mount{inline-size:100%}.note-content figure{display:grid;justify-items:start;gap:.65rem}.note-content figcaption{color:var(--graphite);font-family:var(--font-ui);font-size:.72rem;line-height:1.45}.note-content input[type=checkbox]{inline-size:1em;block-size:1em;margin:0 .42em 0 -1.22em;accent-color:var(--teal)}.footnotes{margin-block-start:4rem;padding-block-start:1.4rem;border-block-start:1px solid var(--line);color:var(--ink);font-size:.86em}}@layer components{:is(.minimal-reading-column,.docs-main)>.sequence-navigation{inline-size:min(100%,var(--reading-width));margin-inline:var(--website-reading-margin-inline)}.sequence-navigation>a[rel=next]:first-child{grid-column:2}.code-block-copy{position:relative;max-inline-size:100%}.code-block-copy>pre{inline-size:100%;margin:0;padding-inline-end:4rem}.source-copy__button{position:absolute;z-index:1;inset-block-start:.55rem;inset-inline-end:.55rem;display:grid;inline-size:2rem;block-size:2rem;padding:0;border:0;border-radius:.3rem;background:color-mix(in srgb,var(--code-surface) 94%,transparent);color:var(--ink);box-shadow:0 1px 4px #181b2712;cursor:pointer;place-items:center}.source-copy__button:hover,.source-copy__button:focus-visible{background:var(--surface);color:var(--ink)}.source-copy__button:focus-visible{box-shadow:var(--focus-ring)}.source-copy__button[data-copy-state=success]{background:var(--teal-soft);color:var(--teal)}.source-copy__button[data-copy-state=error]{color:var(--danger)}.source-copy__icon{inline-size:.9rem;block-size:.9rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45}.media-image__expand{position:static;display:inline-grid;margin-inline-start:.4rem;vertical-align:middle}.theme-docs :is(.related-articles,.tab-collection){margin-block-start:clamp(3rem,7vw,5rem)}.theme-docs :is(.related-articles,.tab-collection) .minimal-section-heading{padding-block-end:.8rem;border-block-end:1px solid var(--line-strong)}.theme-docs :is(.related-articles,.tab-collection) .minimal-section-heading h2{margin:0;font-family:var(--font-article);font-size:clamp(1.35rem,2.7vw,1.75rem)}.theme-docs :is(.related-articles,.tab-collection) .minimal-recent__grid{display:grid;grid-template-columns:minmax(0,1fr)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card{position:relative;min-inline-size:0;padding-block:clamp(1.5rem,3vw,2rem);border-block-end:1px solid var(--line)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card:has(:is(h2,h3) a:focus-visible){border-radius:.2rem;box-shadow:var(--focus-ring)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card--with-image{display:grid;grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);align-items:center;gap:clamp(1.25rem,3vw,2rem)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card__media{display:block;aspect-ratio:16 / 9;overflow:hidden;background:var(--surface)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card__media img{inline-size:100%;block-size:100%;object-fit:cover}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card :is(h2,h3){position:static;margin:0;font-family:var(--font-article);font-size:clamp(1.15rem,2.2vw,1.42rem);line-height:1.28;overflow-wrap:anywhere}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card :is(h2,h3) a{color:var(--ink);text-decoration:none}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card :is(h2,h3) a:after{position:absolute;inset:0;content:""}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card :is(h2,h3) a:focus-visible{box-shadow:none}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card__subtitle,.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card__excerpt{margin:.6rem 0 0;color:var(--ink);font-size:.9rem;line-height:1.62}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card footer{margin-block-start:.75rem;color:var(--graphite);font-size:.7rem;font-variant-numeric:tabular-nums}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card footer a{position:relative;z-index:1;color:inherit;text-underline-offset:.15em}.website-comments{margin-block-start:clamp(3.5rem,8vw,6rem);padding-block-start:1.4rem;border-block-start:2px solid var(--ink)}.website-comments__header{padding-block-end:.85rem;border-block-end:1px solid var(--line)}.website-comments__header h2{margin:0;font-family:var(--font-article);font-size:clamp(1.4rem,2.5vw,1.75rem);font-weight:650;letter-spacing:-.015em}.website-comments__status,.website-comments__fallback{color:var(--graphite);font-family:var(--font-ui)}.website-comments__status,.website-comments__fallback{margin-block:1rem 0;font-size:.8rem;line-height:1.6}.website-comments__embed{min-inline-size:0;margin-block-start:1rem}.website-comments__embed .giscus-frame{inline-size:100%}.relation-section{position:relative;padding:.85rem .2rem 0 1rem;border-block-start:1px solid var(--line-strong)}.relation-section__title{margin-block-end:.7rem;color:var(--ink);font-size:.65rem;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.relation-disclosure>summary{cursor:pointer}.relation-disclosure>summary .relation-section__title{display:inline;margin:0}.relation-disclosure>summary::marker{color:var(--graphite);font-size:.7em}.relation-disclosure>.relation-list{margin-block-start:.7rem}.context-tag-list,.tag-filter__list{display:flex;flex-wrap:wrap;margin:0;padding:0;gap:.42rem;list-style:none}.tag-filter__list li+li{margin-block-start:0}.context-tag-list a,.tag-filter__list a{display:inline-flex;align-items:center;min-block-size:1.75rem;padding:.22rem .28rem .22rem .58rem;border:1px solid var(--line-strong);border-radius:100vmax;gap:.38rem;background:transparent;color:var(--ink);font-size:.72rem;font-weight:640;line-height:1;text-decoration:none}.context-tag-list a:hover,.tag-filter__list a:hover{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));background:transparent;color:var(--ink)}.tag-filter__list a[aria-current=page]{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));background:color-mix(in srgb,var(--line-strong) 28%,transparent);color:var(--ink)}.context-tag__count{min-inline-size:1rem;padding-inline-start:.38rem;border-inline-start:1px solid var(--line);background:transparent;color:var(--graphite);font-size:.62rem;font-variant-numeric:tabular-nums}.tag-filter{margin-block-start:1.5rem}.tag-filter__list a{min-block-size:2rem;padding:.3rem .42rem .3rem .72rem;font-size:.74rem}.filter-empty{margin-block-start:1.5rem;color:var(--graphite);font-size:.86rem}.archive-timeline{display:grid;gap:1.25rem}.archive-timeline>.relation-section__title{margin:0}.archive-timeline__year{display:grid;gap:.5rem}.archive-timeline__year h3{margin:0;font-family:var(--font-article);font-size:1rem;font-weight:650;letter-spacing:-.01em}.archive-timeline__year ul{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;gap:.35rem .25rem;list-style:none}.archive-timeline__year li{position:relative;min-inline-size:0}.archive-timeline__year li:not(:nth-child(6n+1)):before{position:absolute;inset-block:.5rem;inset-inline-start:-.125rem;border-inline-start:1px solid var(--line-strong);content:"";pointer-events:none}.archive-timeline__year a{display:flex;align-items:center;justify-content:space-between;min-block-size:2rem;padding:.35rem .5rem;border-radius:.3rem;color:var(--ink);font-size:.75rem;font-variant-numeric:tabular-nums;text-decoration:none}.archive-timeline__year a:hover,.archive-timeline__year a[aria-current=page]{background:color-mix(in srgb,var(--line) 48%,transparent);color:var(--ink)}.archive-timeline__year h3 a{color:var(--ink);font-family:inherit;font-size:inherit;font-weight:inherit}.archive-timeline__year li a{min-inline-size:0;padding:.28rem .2rem;border:0;border-radius:0;font-size:.72rem}.archive-timeline__year li a>span:first-child{color:var(--ink);font-weight:640}.archive-timeline__year li .archive-timeline__count{min-inline-size:0;padding-inline-start:.1rem;border-inline-start:0;font-size:.62rem}.archive-timeline__count{min-inline-size:1.5rem;color:var(--graphite);text-align:end}[data-filter-item][hidden],[data-filter-group][hidden]{display:none}.website-index-list{margin-block-start:2.5rem;padding:0;border-block-start:1px solid var(--line);list-style:none}.website-index-list li,.website-index-list li+li{margin:0;border-block-end:1px solid var(--line)}.website-index-list a{display:block;padding:.72rem .2rem;color:var(--ink);font-weight:580;text-decoration:none}.website-index-list a:hover{color:var(--violet)}.docs-tree--dialog{margin-block-start:1.5rem;padding-block-start:1.25rem;border-block-start:1px solid var(--line)}.relation-list,.outline-list,.tag-list{display:grid;margin:0;padding:0;gap:.32rem;list-style:none}.relation-list a,.outline-list a{position:relative;display:block;padding:.24rem .35rem;border-radius:.25rem;color:var(--ink);font-size:.77rem;line-height:1.38;text-decoration:none}.relation-list a:hover,.outline-list a:hover,.outline-list a[aria-current=location]{background:var(--surface);color:var(--ink)}.outline-list a[aria-current=location]:before{position:absolute;inset-block:.42rem;inset-inline-start:-.7rem;inline-size:2px;background:var(--violet);content:""}.outline-list .outline-list{padding-inline-start:.65rem}.relation-empty{color:var(--graphite);font-family:var(--font-article);font-size:.78rem;font-style:italic}.tag-chip{display:inline-flex;align-items:center;min-block-size:1.7rem;padding-inline:.58rem;border:1px solid var(--line-strong);border-radius:100vmax;background:transparent;color:var(--ink);font-family:var(--font-ui);font-size:.72rem;font-weight:640;line-height:1;text-decoration:none;white-space:nowrap}.tab-collection__topics{display:flex;flex-wrap:wrap;margin:.8rem 0 0;padding:0;list-style:none;gap:.4rem}.tab-collection__topics li,.tab-collection__topics .tag-chip{position:relative;z-index:1}.tag-chip[href]:hover{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));color:var(--ink)}.callout{--callout-accent: var(--violet);margin-block:1.7rem;padding:0;border:1px solid color-mix(in srgb,var(--callout-accent) 30%,var(--line));border-inline-start:3px solid var(--callout-accent);border-radius:.35rem;background:color-mix(in srgb,var(--callout-accent) 7%,var(--surface));color:var(--ink);font-style:normal}.callout[data-callout=tip],.callout[data-callout=success]{--callout-accent: var(--teal)}.callout[data-callout=warning],.callout[data-callout=danger],.callout[data-callout=failure]{--callout-accent: var(--danger)}.callout__title,.callout>summary{padding:.72rem .9rem;color:color-mix(in srgb,var(--callout-accent) 84%,var(--ink));font-family:var(--font-ui);font-size:.74rem;font-weight:720;letter-spacing:.025em}.callout>summary{cursor:pointer}.callout__content{padding:0 .95rem .9rem}.website-embed{position:relative;margin-block:2rem;padding:1.2rem 1.25rem 1.35rem;border:1px solid var(--line);border-inline-start:3px double var(--violet);border-radius:.35rem;background:color-mix(in srgb,var(--frost) 55%,var(--surface))}.website-embed:before{position:absolute;inset-block-start:.7rem;inset-inline-end:.8rem;color:var(--violet);content:"\21b3";font-family:var(--font-ui);font-size:.9rem}.website-embed__source{display:inline-block;margin-block-end:.85rem;color:var(--graphite);font-family:var(--font-ui);font-size:.66rem;font-weight:670;letter-spacing:.07em;text-decoration:none;text-transform:uppercase}.website-embed__content>:first-child{margin-block-start:0}.website-embed__content>:last-child{margin-block-end:0}.website-unresolved{border-block-end:1px dashed var(--danger);color:var(--danger);cursor:help}.attachment-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:.85rem 1rem;border:1px solid var(--line);border-radius:.35rem;background:var(--frost);gap:.85rem;color:inherit;font-family:var(--font-ui);text-decoration:none}.attachment-card__type{color:var(--violet);font-size:.66rem;font-weight:760;letter-spacing:.08em}.note-preview{position:fixed;z-index:80;display:grid;grid-template-rows:auto minmax(0,1fr);inline-size:min(420px,calc(100vw - 24px));max-block-size:min(560px,calc(100vh - 24px));border:1px solid var(--line-strong);border-radius:.55rem;background:var(--surface);box-shadow:0 18px 54px #191c2c33;overflow:hidden;pointer-events:auto}.note-preview__header{padding:.9rem 1rem .85rem;border-block-end:1px solid var(--line)}.note-preview__eyebrow{margin-block-end:.35rem;color:var(--teal);font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.note-preview__title{display:block;margin:0;font-family:var(--font-article);font-size:1.05rem;line-height:1.3}.note-preview__title-link{color:inherit;text-decoration-color:transparent;text-decoration-thickness:.08em;text-underline-offset:.18em}.note-preview__title-link:hover{color:var(--violet);text-decoration-color:currentColor}.note-preview__description{margin-block-start:.45rem;color:var(--ink);font-family:var(--font-article);font-size:.76rem;line-height:1.55}.note-preview__body{min-block-size:4rem;max-block-size:min(240px,calc(100vh - 170px));padding:.85rem 1rem 1rem;color:var(--ink);font-family:var(--font-article);font-size:.78rem;line-height:1.58;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.note-preview__body:focus-visible{outline:2px solid var(--violet);outline-offset:-3px}.note-preview__body>:first-child{margin-block-start:0}.note-preview__body>:last-child{margin-block-end:0}.note-preview__body p,.note-preview__body ul,.note-preview__body ol,.note-preview__body blockquote,.note-preview__body pre,.note-preview__body table{margin-block:.7rem}.note-preview__body h1,.note-preview__body h2,.note-preview__body h3,.note-preview__body h4,.note-preview__body h5,.note-preview__body h6{margin-block:1rem .4rem;color:var(--ink);font-family:var(--font-article);font-size:.92rem;line-height:1.35}.note-preview__body pre,.note-preview__body table{max-inline-size:100%;overflow:auto}.note-preview__body pre{padding:.65rem;border-radius:.3rem;background:var(--code-surface);font-family:var(--font-ui);font-size:.68rem}.note-preview__body table{border-collapse:collapse;font-family:var(--font-ui)}.note-preview__body th,.note-preview__body td{padding:.35rem .45rem;border:1px solid var(--line);text-align:start}.website-dialog{inline-size:min(680px,calc(100vw - 2rem));max-block-size:min(760px,calc(100vh - 2rem));padding:0;border:1px solid var(--line-strong);border-radius:.55rem;background:var(--surface);color:var(--ink);box-shadow:0 28px 90px #0b0d1857}.website-dialog::backdrop{background:var(--overlay);backdrop-filter:blur(5px)}.website-dialog__sheet{display:grid;max-block-size:inherit;grid-template-rows:auto minmax(0,1fr)}.website-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-block-end:1px solid var(--line);gap:1rem}.website-dialog__title{font-size:.7rem;font-weight:720;letter-spacing:.09em;text-transform:uppercase}.website-dialog__close{display:grid;inline-size:2rem;block-size:2rem;border-radius:50%;background:var(--frost);color:var(--ink);cursor:pointer;place-items:center}.website-dialog__body{padding:1rem;overflow:auto}.website-dialog--graph{inline-size:min(1440px,calc(100vw - 3rem));max-block-size:calc(100vh - 3rem)}.website-dialog--graph .website-dialog__sheet{block-size:min(900px,calc(100vh - 3rem))}.website-dialog--graph .website-dialog__body{display:grid;min-block-size:0;padding:.75rem;overflow:hidden}.website-dialog--graph .graph-view{block-size:100%;min-block-size:0}.website-dialog--media{inline-size:min(1200px,calc(100vw - 3rem));max-block-size:calc(100vh - 3rem)}.website-dialog--media .website-dialog__sheet{block-size:min(900px,calc(100vh - 3rem))}.media-dialog__controls{display:flex;align-items:center;min-inline-size:0;gap:.3rem}.media-dialog__controls button{display:grid;flex:none;inline-size:2.5rem;block-size:2.5rem;border:1px solid transparent;border-radius:.3rem;background:var(--frost);color:var(--ink);cursor:pointer;font-family:var(--font-ui);font-size:1rem;place-items:center}.media-dialog__controls button:hover,.media-dialog__controls button:focus-visible{border-color:var(--line-strong);background:var(--surface)}.media-dialog__controls button:disabled{cursor:default;opacity:.45}.media-dialog__controls output{min-inline-size:6.5rem;color:var(--ink);font-family:var(--font-ui);font-size:.7rem;font-weight:650;text-align:center}.media-dialog__body{display:grid;min-block-size:0;padding:0;overflow:hidden}.media-dialog__viewport{min-inline-size:0;min-block-size:0;overflow:auto;overscroll-behavior:contain}.media-dialog__viewport[data-media-pannable]{cursor:grab}.media-dialog__viewport[data-media-panning],.media-dialog__viewport[data-media-panning] *{cursor:grabbing;user-select:none}.media-dialog__canvas{box-sizing:border-box;display:grid;min-block-size:100%;margin-inline:auto;padding:1rem;place-items:center}.media-dialog__canvas>:is(svg,img,picture),.media-dialog__canvas>picture>img{display:block;position:static!important;inset:auto!important;float:none!important;margin:0!important;transform:none!important;min-inline-size:0!important;inline-size:100%!important;max-inline-size:none!important;min-block-size:0!important;block-size:auto!important;max-block-size:none!important}.search-box{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:.15rem .8rem;border:1px solid var(--line-strong);border-radius:.38rem;background:var(--frost);gap:.65rem}.search-box input{min-inline-size:0;block-size:3rem;border:0;outline:0;background:transparent;color:var(--ink)}.search-box input:focus-visible{border-radius:0;box-shadow:none}.search-box kbd{color:var(--graphite);font-family:var(--font-mono);font-size:.65rem}.search-navigation{margin:.75rem .1rem 0}.search-navigation[hidden]{display:none}.search-navigation__list{display:flex;flex-wrap:wrap;margin:0;padding:0;column-gap:1rem;row-gap:.35rem;list-style:none}.search-navigation a{color:var(--ink);font-size:.72rem;text-decoration:none}.search-navigation a:hover,.search-navigation a:focus-visible,.search-navigation a[aria-current=page]{color:var(--ink);text-decoration:underline;text-underline-offset:.2em}.search-status{min-block-size:1.2rem;margin:.75rem .1rem .35rem;color:var(--graphite);font-size:.7rem}.search-results{display:grid;margin:0;padding:0;gap:.25rem;list-style:none}.search-result__link{display:grid;padding:.7rem .75rem;border:1px solid transparent;border-radius:.32rem;gap:.15rem;text-decoration:none}.search-result__link:hover,.search-result__link:focus-visible{border-color:var(--line);background:var(--frost)}.search-result__link strong{font-family:var(--font-article);font-size:.95rem}.search-result__meta{color:var(--graphite);font-size:.66rem}.mermaid-diagram{position:relative;padding:1rem;padding-inline-end:5.4rem;border:1px solid var(--line);border-radius:.4rem;background:var(--frost);overflow-x:auto}.mermaid-diagram>svg{cursor:zoom-in}.mermaid-diagram>.mermaid-diagram__expand{inset-inline-end:2.85rem}[data-math-rendered]{max-inline-size:100%;overflow-x:auto}[data-math-rendered][data-source-copy]{position:relative}:is([data-math-style=display],[data-math=display],.math-display)[data-source-copy]{display:block;padding-inline-end:2.6rem}:is([data-math-style=inline],[data-math=inline],.math-inline)[data-source-copy]{display:inline-flex;align-items:center;gap:.1rem;overflow:visible;vertical-align:middle}:is([data-math-style=inline],[data-math=inline],.math-inline)>.source-copy__button{position:static;flex:none;inline-size:1.5rem;block-size:1.5rem;background:transparent;box-shadow:none}:is([data-math-style=inline],[data-math=inline],.math-inline)>.source-copy__button:focus-visible{box-shadow:var(--focus-ring)}[data-math-rendered] mjx-container{color:var(--ink)}.local-graph{display:grid;min-inline-size:0;gap:.55rem}.local-graph__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.local-graph__actions{display:flex;gap:.15rem}.local-graph__actions button{display:grid;inline-size:1.75rem;block-size:1.75rem;padding:.28rem;border:1px solid transparent;border-radius:.3rem;background:transparent;color:var(--ink);cursor:pointer;place-items:center}.local-graph__actions button:hover,.local-graph__actions button:focus-visible{border-color:var(--line-strong);background:var(--frost);color:var(--ink)}.local-graph__actions svg{inline-size:1rem;block-size:1rem;fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}.local-graph__actions circle{fill:currentcolor;stroke:none}.graph-view{position:relative;min-inline-size:0}.graph-canvas{block-size:100%;min-block-size:0;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);overflow:hidden;touch-action:none}.graph-view--compact{display:grid;block-size:220px;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.graph-view--compact .graph-canvas{border:0;border-radius:0}.graph-view--expanded,.graph-view--global{block-size:100%;min-block-size:480px}.graph-canvas svg{inline-size:100%;block-size:100%;cursor:grab}.graph-canvas svg:active{cursor:grabbing}.graph-edge{stroke:color-mix(in srgb,var(--graphite) 52%,transparent)}.graph-edge--embed{stroke:var(--teal);stroke-dasharray:4 4}.graph-node{cursor:pointer;outline:none;transition:opacity .14s ease}.graph-node circle{fill:var(--violet-soft);stroke:none}.graph-node:hover circle,.graph-node:focus-visible circle{fill:var(--violet)}.graph-node:focus-visible circle{filter:drop-shadow(0 0 3px var(--violet))}.graph-node--current text{font-weight:720}.graph-node--dimmed,.graph-edge--dimmed{opacity:.14}.graph-node text{fill:var(--ink);font-family:var(--font-ui);font-size:10px;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.graph-status{position:absolute;z-index:1;inset-block-end:.35rem;inset-inline-end:.55rem;margin:0;color:var(--graphite);font-size:.58rem;pointer-events:none}.graph-view--compact .graph-status{position:static;min-inline-size:0;padding:.1rem .55rem .35rem;justify-self:end}.graph-view[data-graph-bounded-fallback=true]{display:grid;place-items:center}.graph-view[data-graph-bounded-fallback=true] .graph-status{position:static;max-inline-size:36rem;padding:1rem;font-size:.82rem;line-height:1.55;text-align:center}.local-graph__fallback{margin-block-start:.35rem;border-block-start:1px solid var(--line);padding-block-start:.65rem}.source-actions{display:flex;flex-wrap:wrap;margin-block-start:1.5rem;padding-block-start:.5rem;border-block-start:1px solid var(--line);gap:.45rem}.source-actions a{display:inline-flex;align-items:center;min-block-size:1.75rem;padding:.2rem 0;border:0;color:var(--ink);font-family:var(--font-ui);font-size:.68rem;font-weight:620;text-decoration:none;column-gap:.32rem}.source-actions a:hover{color:var(--ink);text-decoration:underline}.source-actions__icon{inline-size:.84rem;block-size:.84rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45}.source-actions .source-actions__repository{inline-size:44px;min-inline-size:44px;block-size:44px;min-block-size:44px;justify-content:center;margin-block:-.35rem;margin-inline-start:auto;padding:0}.source-actions__github-icon{inline-size:.95rem;block-size:.95rem;fill:currentColor}.page-actions{position:relative;z-index:4;float:inline-end;margin-block-end:1rem;margin-inline-start:1rem;color:var(--ink);font-family:var(--font-ui)}.page-actions__split{display:flex;border:1px solid var(--line-strong);border-radius:.55rem;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 8px 24px #1817130f}.page-actions button,.page-actions summary,.page-actions a{color:inherit}.page-actions__primary,.page-actions__menu>summary{display:inline-flex;align-items:center;min-block-size:2.55rem;background:transparent;cursor:pointer}.page-actions__primary{padding-inline:.78rem;gap:.48rem;font-size:.78rem;font-weight:650}.page-actions__primary:disabled,.page-actions__item:disabled{cursor:wait;opacity:.62}.page-actions__icon,.page-actions svg{inline-size:1rem;block-size:1rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35}.page-actions__menu{position:relative;border-inline-start:1px solid var(--line)}.page-actions__menu>summary{justify-content:center;inline-size:2.15rem;border-radius:0 .5rem .5rem 0;list-style:none}.page-actions__menu>summary::-webkit-details-marker{display:none}.page-actions__menu>summary svg{inline-size:.85rem;transition:rotate .14s ease}.page-actions__menu[open]>summary svg{rotate:180deg}.page-actions__primary:hover,.page-actions__menu>summary:hover{background:var(--frost)}.page-actions__panel{position:absolute;z-index:20;inset-block-start:calc(100% + .48rem);inset-inline-end:-1px;display:grid;inline-size:min(19rem,calc(100vw - 2rem));padding:.4rem;border:1px solid var(--line-strong);border-radius:.65rem;background:var(--surface);box-shadow:var(--shadow);gap:.15rem}.page-actions__menu:not([open])>.page-actions__panel{display:none}.page-actions__item{display:grid;grid-template-columns:2rem minmax(0,1fr);align-items:center;inline-size:100%;padding:.58rem;border-radius:.42rem;background:transparent;cursor:pointer;text-align:start;text-decoration:none;gap:.65rem}.page-actions__item:hover{background:var(--frost)}.page-actions__item-icon{display:grid;inline-size:2rem;block-size:2rem;border:1px solid var(--line);border-radius:.42rem;color:var(--ink);place-items:center}.page-actions__item strong,.page-actions__item small{display:block}.page-actions__item strong{color:var(--ink);font-size:.84rem;font-weight:650}.page-actions__item small{margin-block-start:.08rem;color:var(--ink);font-size:.72rem;line-height:1.35}.page-actions__error{margin:.25rem .58rem .4rem;padding-block-start:.55rem;border-block-start:1px solid var(--line);color:var(--danger);font-size:.72rem;line-height:1.4}}@layer utilities{.visually-hidden{position:absolute!important;inline-size:1px!important;block-size:1px!important;padding:0!important;border:0!important;margin:-1px!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important}.no-js [data-search-open],.no-js [data-color-scheme-toggle],.no-js .mobile-toolbar{display:none!important}.no-js .local-graph__actions,.no-js .graph-view,.no-js [data-copy-page],.only-no-js{display:none}.no-js .only-no-js{display:revert}.no-js .site-navigation__list{flex:1 1 auto;flex-wrap:wrap;justify-content:center}}@media(max-width:880px){.translation-fallback{inset-block-end:calc(max(.7rem,env(safe-area-inset-bottom)) + 4rem)}.site-header__inner{min-block-size:3.6rem}.site-navigation,.site-actions [data-dialog-open=browse],.site-actions [data-dialog-open=context]{display:none}.language-switcher>summary span:nth-child(2){display:none}.no-js .site-navigation{display:flex;max-inline-size:58vw;overflow-x:auto}.mobile-toolbar{position:fixed;z-index:40;inset-block-end:max(.7rem,env(safe-area-inset-bottom));inset-inline-start:50%;translate:-50% 0;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;inline-size:min(360px,calc(100vw - 1.5rem));padding:.35rem;border:1px solid var(--line-strong);border-radius:.65rem;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 16px 50px #10121f3d;backdrop-filter:blur(14px)}.mobile-toolbar button{display:grid;min-block-size:2.8rem;border-radius:.35rem;background:transparent;color:var(--ink);cursor:pointer;font-size:.66rem;font-weight:650;place-items:center}.mobile-toolbar button:hover{background:var(--frost);color:var(--ink)}.website-dialog{inline-size:100%;max-inline-size:none;max-block-size:min(82vh,760px);margin:auto 0 0;border-width:1px 0 0;border-radius:.8rem .8rem 0 0}.website-dialog--graph,.website-dialog--media{inline-size:calc(100% - 1rem);max-block-size:calc(100vh - 1rem);margin:auto;border:1px solid var(--line-strong);border-radius:.7rem}.website-dialog--graph .website-dialog__sheet,.website-dialog--media .website-dialog__sheet{block-size:calc(100vh - 1rem);grid-template-rows:auto minmax(0,1fr)}.website-dialog--graph .website-dialog__sheet:before,.website-dialog--media .website-dialog__sheet:before{display:none}.website-dialog--media .website-dialog__header{padding-inline:.65rem;gap:.5rem}.website-dialog--media .website-dialog__title{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.media-dialog__controls{gap:.15rem}.media-dialog__controls output{min-inline-size:4.75rem}.graph-view--expanded,.graph-view--global{min-block-size:0}.website-dialog__sheet:before{justify-self:center;inline-size:2.8rem;block-size:.22rem;margin-block:.55rem .1rem;border-radius:100vmax;background:var(--line-strong);content:""}.website-dialog__sheet{grid-template-rows:auto auto minmax(0,1fr)}.js .website-dialog [data-dialog-movable]{position:static;display:block;max-block-size:none;margin:0;padding:0;border:0;overflow:visible}.site-footer{margin-block-end:5.5rem}}@media(max-width:520px){.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card--with-image{grid-template-columns:minmax(0,1fr)}.site-mark__name{max-inline-size:14ch;overflow-wrap:anywhere;white-space:normal}.site-action__label,.site-action kbd,.site-actions [data-search-open]{display:none}.note-title{font-size:clamp(2.2rem,13vw,3.25rem)}.note-content{font-size:1rem;line-height:1.72}.page-actions{float:none;display:flex;justify-content:flex-end;margin-block-end:1.5rem;margin-inline-start:0}.page-actions__primary{justify-content:center;inline-size:2.55rem;padding-inline:0}.page-actions__primary-label{position:absolute;inline-size:1px;block-size:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.graph-node,.page-actions__menu>summary svg,.mermaid-diagram *,.mermaid-diagram *:before,.mermaid-diagram *:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.translation-fallback{animation-timing-function:steps(1,end)}}@media(forced-colors:active){.note-content img[data-image-expand]:focus-visible{outline-color:ButtonText}.source-copy__button:focus-visible{outline:2px solid ButtonText;outline-offset:2px;box-shadow:none}[data-month-filter-option][aria-current=page]{outline:2px solid Highlight;outline-offset:-2px}}@media print{:root{color-scheme:light;--frost: #ffffff;--surface: #ffffff;--ink: #111111;--graphite: #4a4a4a;--line: #d0d0d0}.site-header,.minimal-docs-sidebar,.minimal-context,.mobile-toolbar,.site-footer,.source-actions,.page-actions,.source-copy__button,.website-comments,.website-dialog,.website-external-frame__viewport,.website-tweet__mount{display:none!important}.translation-fallback{position:static;max-inline-size:none;margin-block-end:1.5rem;box-shadow:none;animation:none}.minimal-shell,.minimal-shell--docs,.minimal-shell--docs:has(>.minimal-context){display:block;inline-size:auto;padding:0}.note-content a{color:inherit}.code-block-copy>pre{padding-inline-end:1.35rem}.mermaid-diagram{padding-inline-end:1rem}:is([data-math-style=display],[data-math=display],.math-display)[data-source-copy]{padding-inline-end:0}:is([data-math-style=inline],[data-math=inline],.math-inline)[data-source-copy]{display:inline;vertical-align:baseline}}@layer tokens{.theme-minimal{--violet: #345f78;--teal: #9a4358;--violet-soft: #e4e8e8;--teal-soft: #f3e4e4;--shadow: none;--focus-ring: 0 0 0 3px rgb(52 95 120 / 25%);--article-width: 780px;--reading-width: 780px;--rail-width: 0px}:root[data-color-scheme=dark] .theme-minimal{--violet: #8bb8cf;--teal: #e08aa0;--violet-soft: #202b32;--teal-soft: #38262d}@media(prefers-color-scheme:dark){:root:not([data-color-scheme=light]) .theme-minimal{--violet: #8bb8cf;--teal: #e08aa0;--violet-soft: #202b32;--teal-soft: #38262d}}}@layer composition{.theme-minimal .site-header__inner,.theme-minimal .site-footer__inner{inline-size:min(100%,1380px)}.minimal-shell{display:grid;grid-template-columns:minmax(0,1fr);justify-content:center;inline-size:min(100%,1380px);min-block-size:68vh;margin-inline:auto;padding:1rem var(--page-gutter) 7rem;gap:clamp(1.5rem,3vw,2.5rem)}.minimal-shell--system{padding-block-start:1rem}.minimal-shell:has(>.minimal-context){grid-template-columns:minmax(0,1fr) 220px}.minimal-shell--authored-home:has(>.minimal-home-context),.minimal-shell:not(.minimal-shell--system):not(.minimal-shell--docs):has(>.minimal-context){--reading-width: 100%}.minimal-home-modules,.minimal-reading-column,.minimal-entry{min-inline-size:0}.minimal-entry{position:relative;--page-actions-clearance: 10.25rem}.minimal-shell--docs{grid-template-columns:220px minmax(0,1fr);inline-size:min(100%,1380px)}.minimal-shell--docs:has(>.minimal-context){grid-template-columns:220px minmax(0,1fr) 220px}.minimal-docs-sidebar,.minimal-context{position:sticky;inset-block-start:1.5rem;align-self:start;max-block-size:calc(100vh - 3rem);overflow:auto;scrollbar-width:thin}.minimal-docs-sidebar{padding-block:.25rem 1.5rem}.minimal-context{display:grid;padding-block-start:.25rem;gap:1.4rem}html.js[data-auto-hide-root-scrollbar],.js [data-auto-hide-scrollbar]{scrollbar-color:transparent transparent;scrollbar-width:thin}html.js[data-auto-hide-root-scrollbar] body{scrollbar-color:auto}html.js[data-auto-hide-root-scrollbar][data-scrollbar-active=true],.js [data-auto-hide-scrollbar][data-scrollbar-active=true]{scrollbar-color:color-mix(in srgb,var(--graphite) 68%,transparent) transparent}html.js[data-auto-hide-root-scrollbar]::-webkit-scrollbar-thumb,.js [data-auto-hide-scrollbar]::-webkit-scrollbar-thumb{background-color:transparent}html.js[data-auto-hide-root-scrollbar][data-scrollbar-active=true]::-webkit-scrollbar-thumb,.js [data-auto-hide-scrollbar][data-scrollbar-active=true]::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--graphite) 68%,transparent)}@media(min-width:1081px){.minimal-shell--blog{grid-template-rows:max-content max-content;align-content:start;row-gap:clamp(1.5rem,3vw,2.25rem)}.minimal-shell--blog>.minimal-reading-column{display:contents}.minimal-shell--blog>.minimal-reading-column>.minimal-entry{grid-column:1;grid-row:1}.minimal-shell--blog>.minimal-reading-column>.archive-ledger{grid-column:1;grid-row:2}.minimal-shell--blog>.archive-context{grid-column:2;grid-row:2;padding-block-start:0}}.theme-minimal .site-mark__glyph{color:var(--teal);font-style:normal}}@media(forced-colors:active){html.js[data-auto-hide-root-scrollbar],.js [data-auto-hide-scrollbar]{scrollbar-color:auto;scrollbar-width:auto}html.js[data-auto-hide-root-scrollbar]::-webkit-scrollbar-thumb,.js [data-auto-hide-scrollbar]::-webkit-scrollbar-thumb{background-color:ButtonText}}@layer content{.theme-minimal .note-header{margin-block-end:2.5rem}.theme-minimal .note-title{max-inline-size:20ch}.theme-minimal .note-content{line-height:1.72}@media(min-width:521px){.minimal-entry:has(>.page-actions)>.note-header>.note-title:first-child{inline-size:calc(100% - var(--page-actions-clearance))}.minimal-entry:not(:has(>.note-header))>.page-actions+.note-content>h1:first-child{text-wrap:wrap}.minimal-entry:has(>.page-actions)>.note-header>:first-child:not(.note-title){box-sizing:border-box;inline-size:100%}:root[dir=ltr] .minimal-entry:has(>.page-actions)>.note-header>.note-title:first-child{margin-right:var(--page-actions-clearance);margin-left:0}:root[dir=rtl] .minimal-entry:has(>.page-actions)>.note-header>.note-title:first-child{margin-right:0;margin-left:var(--page-actions-clearance)}:root[dir=ltr] .minimal-entry:has(>.page-actions)>.note-header>:first-child:not(.note-title){padding-right:var(--page-actions-clearance);padding-left:0}:root[dir=rtl] .minimal-entry:has(>.page-actions)>.note-header>:first-child:not(.note-title){padding-right:0;padding-left:var(--page-actions-clearance)}}}@layer components{.minimal-entry>.page-actions{position:absolute;inset-block-start:0;inset-inline-end:max(0px,calc(100% - var(--reading-width)));float:none;margin:0}@media(min-width:521px){.minimal-entry:not(:has(>.note-header))>.page-actions{position:relative;inset:auto;float:inline-end;margin:0;margin-block-end:1rem;margin-inline-start:1rem}}.minimal-recent{margin-block-start:clamp(3rem,7vw,5rem)}.note-content>.minimal-recent:first-child{margin-block-start:0}.minimal-shell--blog .note-content>.tag-filter{margin-block-start:0}.minimal-section-heading{display:flex;align-items:baseline;justify-content:space-between;padding-block-end:.8rem;border-block-end:1px solid var(--line-strong);gap:1rem}.minimal-section-heading h2{margin:0;padding:0;border:0;font-size:clamp(1.35rem,2.7vw,1.75rem)}.minimal-section-heading>a{flex:none;color:var(--ink);font-size:.7rem;font-weight:680;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}.minimal-section-heading>a:hover{color:var(--violet)}.minimal-recent__grid{display:grid;grid-template-columns:minmax(0,1fr)}.minimal-post-card{position:relative;min-inline-size:0;padding-block:clamp(1.5rem,3vw,2rem);border-block-end:1px solid var(--line)}.minimal-post-card:has(:is(h2,h3) a:focus-visible){border-radius:.2rem;box-shadow:var(--focus-ring)}.minimal-post-card--with-image{display:grid;grid-template-columns:minmax(12rem,17rem) minmax(0,1fr);align-items:center;gap:clamp(1.25rem,3vw,2.25rem)}.minimal-post-card__media{display:block;aspect-ratio:16 / 9;overflow:hidden;background:var(--surface)}.minimal-post-card__media img{inline-size:100%;block-size:100%;object-fit:cover}.minimal-post-card :is(h2,h3){position:static;margin:0;font-size:clamp(1.15rem,2.2vw,1.42rem);line-height:1.28}.minimal-post-card :is(h2,h3) a{color:var(--ink);text-decoration:none}.minimal-post-card :is(h2,h3) a:hover{color:var(--violet)}.minimal-post-card :is(h2,h3) a:after{position:absolute;inset:0;content:""}.minimal-post-card :is(h2,h3) a:focus-visible{box-shadow:none}.minimal-post-card__subtitle{margin:.4rem 0 0;color:var(--ink);font-size:.9rem}.minimal-post-card__excerpt{display:-webkit-box;margin:.8rem 0 0;color:var(--ink);font-size:.9rem;line-height:1.62;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.minimal-post-card footer{margin-block-start:.75rem;color:var(--graphite);font-size:.7rem;font-variant-numeric:tabular-nums}.minimal-post-card footer a{position:relative;z-index:1;color:inherit;text-underline-offset:.15em}.minimal-contacts{display:flex;flex-wrap:wrap;justify-content:center;margin-block-start:3rem;gap:.55rem}.minimal-contact{display:inline-flex;align-items:center;border:1px solid var(--line-strong);color:var(--ink);text-decoration:none}.minimal-contact--icon{justify-content:center;inline-size:2.5rem;min-block-size:2.5rem;padding:0;border:0}.minimal-contact--text{min-block-size:2.25rem;padding-inline:.8rem;border-radius:100vmax;font-size:.72rem;font-weight:620}.minimal-contact__icon{inline-size:1.35rem;block-size:1.35rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.minimal-contact__icon--brand{fill:currentColor;stroke:none}.minimal-contact:hover{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));color:var(--ink)}.minimal-portfolio{inline-size:100%;margin-block-start:clamp(3rem,6vw,5rem)}.minimal-portfolio--index{margin-block-start:0}.minimal-portfolio__heading{margin:0 0 1.25rem;font-family:var(--font-article);font-size:clamp(1.55rem,3vw,2rem);font-weight:650;letter-spacing:-.015em}.minimal-portfolio>.tag-filter{margin-block:0 1.5rem}.minimal-portfolio__grid{display:grid;grid-template-columns:minmax(0,1fr);margin:0;padding:0;gap:clamp(1rem,2.5vw,1.75rem);list-style:none}.minimal-portfolio__grid>li{min-inline-size:0}.minimal-portfolio-card{position:relative;display:grid;block-size:100%;overflow:hidden;border:1px solid var(--line-strong);border-radius:.45rem;background:var(--surface);color:var(--ink);text-decoration:none}.minimal-portfolio-card:hover{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line))}.minimal-portfolio-card:has(.minimal-portfolio-card__main:focus-visible){border-color:var(--violet);box-shadow:var(--focus-ring)}.minimal-portfolio-card--with-image{grid-template-columns:minmax(13rem,30%) minmax(0,1fr)}.minimal-portfolio-card__media{display:block;aspect-ratio:16 / 10;overflow:hidden;background:var(--frost)}.minimal-portfolio-card__media img{display:block;inline-size:100%;block-size:100%;object-fit:cover}.minimal-portfolio-card__body{display:grid;align-content:start;padding:clamp(1rem,2.5vw,1.4rem);gap:.65rem}.minimal-portfolio-card--with-repository .minimal-portfolio-card__body{padding-inline-end:clamp(4rem,7vw,5rem)}.minimal-portfolio-card__title{position:static;margin:0;font-family:var(--font-article);font-size:clamp(1.12rem,2vw,1.35rem);font-weight:650;line-height:1.25}.minimal-portfolio-card__main{color:inherit;text-decoration:none}.minimal-portfolio-card__main:after{position:absolute;inset:0;content:""}.minimal-portfolio-card__main:focus-visible{box-shadow:none}.minimal-portfolio-card__summary{margin:0;color:var(--ink);font-size:.88rem;line-height:1.6}.minimal-portfolio-card__topics{display:flex;flex-wrap:wrap;margin:.15rem 0 0;padding:0;gap:.4rem;list-style:none}.minimal-portfolio-card__topics li{display:flex;min-inline-size:0;margin:0}.minimal-portfolio-card__repository{position:absolute;z-index:2;inset-block-start:.65rem;inset-inline-end:.65rem;display:grid;inline-size:44px;block-size:44px;place-items:center;border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--ink)}.minimal-portfolio-card__repository:hover{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));color:var(--ink)}.minimal-portfolio-card__repository svg{inline-size:1rem;block-size:1rem;fill:currentColor}.blog-ledger,.archive-ledger{inline-size:min(100%,920px);margin:clamp(4rem,8vw,6rem) auto 0}.archive-ledger{inline-size:100%;margin-block-start:clamp(2rem,4vw,2.75rem)}.section-heading{display:grid;grid-template-columns:minmax(8rem,9.5rem) minmax(0,1fr);align-items:baseline;padding-block-end:.85rem;border-block-end:1px solid var(--line);gap:.75rem}.blog-ledger time,.ledger-archive-link,.archive-ledger>section>h2{color:var(--graphite);font-size:.68rem;font-weight:680;letter-spacing:.09em;text-transform:uppercase}.section-heading h2,.archive-ledger>section>h2{grid-column:2;font-family:var(--font-article);font-size:clamp(1.5rem,2.5vw,1.9rem);font-weight:650;letter-spacing:-.015em;text-transform:none}.blog-ledger>ol{margin:0;padding:0;list-style:none}.blog-ledger>ol>li{display:grid;grid-template-columns:minmax(8rem,9.5rem) minmax(0,1fr);min-block-size:5.25rem;border-block-end:1px solid var(--line);gap:.75rem}.blog-ledger__meta{display:flex;align-items:center;align-self:stretch;padding-block:1.15rem}.blog-ledger time{color:var(--ink);font-size:.8rem;font-variant-numeric:tabular-nums}.blog-ledger__content{display:grid;align-content:center;padding-block:1.15rem;gap:.65rem;min-inline-size:0}.blog-ledger__main{display:grid;gap:.25rem;text-decoration:none}.blog-ledger__main strong{font-family:var(--font-article);font-size:clamp(1.08rem,1.8vw,1.3rem);font-weight:650;line-height:1.22}.blog-ledger__description{color:var(--ink);font-size:.82rem;line-height:1.5}.blog-ledger__topics{display:flex;flex-wrap:wrap;margin:0;padding:0;gap:.38rem;list-style:none}.blog-ledger__topics a{display:inline-flex;align-items:center;min-block-size:1.8rem;padding:.3rem .58rem;border:1px solid var(--line-strong);border-radius:.4rem;color:var(--ink);font-family:var(--font-ui);font-size:.74rem;font-weight:640;line-height:1;overflow-wrap:anywhere;text-decoration:none}.blog-ledger__topics a:hover,.blog-ledger__topics a[aria-current=page]{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));background:color-mix(in srgb,var(--line-strong) 28%,transparent)}.blog-ledger__main:hover strong{color:var(--violet)}.ledger-archive-link{display:inline-flex;margin-block-start:1.2rem;gap:.65rem;color:var(--ink);text-decoration:none}.archive-ledger>section{margin-block-start:2.5rem}.archive-ledger>section>h2{margin:0;padding-block-end:.7rem;border-block-end:1px solid var(--line);color:var(--ink)}.archive-ledger .blog-ledger{inline-size:100%;margin-block-start:0}@media(min-width:1081px){.minimal-shell--blog>.minimal-reading-column>.archive-ledger,.minimal-shell--blog>.minimal-reading-column>.archive-ledger>section:first-child{margin-block-start:0}}.sequence-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-block:5rem 0;gap:1rem}.sequence-navigation a{display:grid;align-content:center;min-block-size:5.25rem;padding:1rem 1.2rem;border:1px solid var(--line-strong);gap:.35rem;text-align:center;text-decoration:none}.sequence-navigation a:hover{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line))}.sequence-navigation span{color:var(--ink);font-size:.68rem;font-weight:720;letter-spacing:.09em;text-transform:uppercase}.sequence-navigation strong{color:var(--ink);font-family:var(--font-article);font-size:.88rem;font-weight:520;line-height:1.35}.sequence-navigation a:hover strong{color:var(--ink)}.theme-minimal .docs-tree__list{display:grid;margin:0;padding:0;gap:.2rem;list-style:none}.theme-minimal .docs-tree__list .docs-tree__list{margin:.2rem 0 .45rem .72rem;padding-inline-start:.65rem;border-inline-start:1px solid var(--line)}.theme-minimal .docs-tree__item>a,.theme-minimal .docs-tree__item>span{display:block;padding:.38rem .55rem;border-radius:.22rem;color:var(--ink);font-size:.76rem;line-height:1.35;text-decoration:none}.theme-minimal .docs-tree__item>a:hover,.theme-minimal .docs-tree__item>a[aria-current=page]{background:var(--violet-soft);color:var(--ink)}.theme-minimal .docs-tree__item>a[aria-current=page]{font-weight:700}}@media(max-width:620px){.minimal-shell{padding-inline:max(1.25rem,5vw)}.minimal-recent__grid{grid-template-columns:1fr}.section-heading,.blog-ledger>ol>li{grid-template-columns:1fr;gap:0}.blog-ledger__meta{padding-block:1rem 0}.blog-ledger__content{padding-block:.75rem 1.15rem}.section-heading h2{grid-column:1}.sequence-navigation{gap:.65rem}.sequence-navigation a{min-block-size:4.8rem;padding-inline:.75rem}}@media(max-width:720px){.minimal-portfolio-card--with-image{grid-template-columns:minmax(0,1fr)}.minimal-post-card--with-image{grid-template-columns:minmax(0,1fr);gap:0}.minimal-post-card__media{margin-block-end:1rem}}@media(max-width:1180px){.minimal-shell--docs:has(>.minimal-context){grid-template-columns:210px minmax(0,var(--article-width))}.minimal-shell--docs>.minimal-context{position:static;grid-column:2;max-block-size:none;padding-block-start:1.5rem;border-block-start:1px solid var(--line);overflow:visible}}@media(max-width:1080px){.minimal-shell:not(.minimal-shell--docs):has(>.minimal-context){display:block;inline-size:min(100%,calc(var(--article-width) + (2 * var(--page-gutter))))}.minimal-shell:not(.minimal-shell--docs)>.minimal-context{position:static;max-block-size:none;margin-block-start:3rem;padding-block-start:1.5rem;border-block-start:1px solid var(--line);overflow:visible}}@media(max-width:880px){.minimal-shell,.minimal-shell--docs,.minimal-shell--docs:has(>.minimal-context){display:block;padding-block:1rem 6rem}.js .minimal-docs-sidebar,.js .minimal-context{display:none}.no-js .minimal-docs-sidebar,.no-js .minimal-context{position:static;display:grid;max-block-size:none;margin-block-start:2rem;padding-block-start:1.5rem;border-block-start:1px solid var(--line);overflow:visible}}@media(max-width:520px){.minimal-entry>.page-actions{position:static;inset:auto}}
