@font-face{font-family:Familjen Grotesk;font-style:normal;font-weight:400 700;font-display:optional;src:url(/fonts/familjen-grotesk.woff2)format("woff2")}@font-face{font-family:Avenir Next;font-style:normal;font-weight:400;font-display:optional;src:local(AvenirNext-Regular),url(/fonts/avenir-next-regular.woff2)format("woff2")}@font-face{font-family:Avenir Next;font-style:normal;font-weight:600;font-display:optional;src:local(AvenirNext-DemiBold),url(/fonts/avenir-next-demi.woff2)format("woff2")}@font-face{font-family:Avenir Next;font-style:normal;font-weight:700;font-display:optional;src:local(AvenirNext-Bold),url(/fonts/avenir-next-bold.woff2)format("woff2")}@font-face{font-family:Excalifont;font-display:swap;src:url(/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2)format("woff2");unicode-range:U+20-7E,U+A0-A3,U+A5-A6,U+A8-AB,U+AD-B1,U+B4,U+B6-B8,U+BA-FF,U+131,U+152-153,U+2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+2013-2014,U+2018-201A,U+201C-201E,U+2020,U+2022,U+2024-2026,U+2030,U+2039-203A,U+20AC,U+2122,U+2212}@font-face{font-family:Excalifont;font-display:swap;src:url(/excalidraw/fonts/Excalifont/Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2)format("woff2");unicode-range:U+100-130,U+132-137,U+139-149,U+14C-151,U+154-17E,U+192,U+1FC-1FF,U+218-21B,U+237,U+1E80-1E85,U+1EF2-1EF3,U+2113}@font-face{font-family:Excalifont;font-display:swap;src:url(/excalidraw/fonts/Excalifont/Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2)format("woff2");unicode-range:U+400-45F,U+490-491,U+2116}@font-face{font-family:Excalifont;font-display:swap;src:url(/excalidraw/fonts/Excalifont/Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2)format("woff2");unicode-range:U+37E,U+384-38A,U+38C,U+38E-393,U+395-3A1,U+3A3-3A8,U+3AA-3CF,U+3D7}@font-face{font-family:Excalifont;font-display:swap;src:url(/excalidraw/fonts/Excalifont/Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2)format("woff2");unicode-range:U+2C7,U+2D8-2D9,U+2DB,U+2DD,U+302,U+306-307,U+30A-30C,U+326-328,U+212E,U+2211,U+FB01-FB02}@font-face{font-family:Excalifont;font-display:swap;src:url(/excalidraw/fonts/Excalifont/Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2)format("woff2");unicode-range:U+462-463,U+472-475,U+4D8-4D9,U+4E2-4E3,U+4E6-4E9,U+4EE-4EF}@font-face{font-family:Excalifont;font-display:swap;src:url(/excalidraw/fonts/Excalifont/Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2)format("woff2");unicode-range:U+300-301,U+303}:root{color-scheme:light;--paper:#fafafa;--ink:#222;--muted:#606060;--accent:#ff9a68;--sans:"Familjen Grotesk", Helvetica, Arial, sans-serif;--mono:ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;--display:var(--sans);--copy:"Avenir Next", var(--sans);--copy-mono:var(--mono)}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;margin:0}html{scroll-padding-top:110px}::selection{background:var(--accent);color:var(--ink)}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:2px}button,input{font:inherit}button,summary{cursor:pointer}button{color:var(--ink);border:2px solid var(--ink);background:#fff;border-radius:0}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #685477}[hidden]{display:none!important}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--ink);color:#fff;padding:10px 20px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.docs-header{z-index:5;background:var(--paper);align-items:center;gap:30px;height:84px;padding:0 40px;display:flex;position:sticky;top:0}.brand{font:600 25px var(--sans);letter-spacing:-1px;text-decoration:none}.brand span{color:var(--accent);margin-left:2px}.manual-label{font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--accent);padding:7px 10px;text-decoration:none}.search-trigger{text-align:left;width:245px;font:12px var(--mono);color:var(--muted);justify-content:space-between;align-items:center;margin-left:auto;padding:10px 12px;display:flex}kbd{font:10px var(--mono)}.github-link{font:11px var(--mono);border:2px solid var(--ink);padding:9px 13px;text-decoration:none}.agent-selector{flex-shrink:0;position:relative}.agent-menu>summary{border:2px solid var(--ink);background:#fff;align-items:center;gap:10px;min-width:172px;padding:6px 10px;font-size:14px;line-height:1.3;list-style:none;display:flex}.agent-menu>summary::-webkit-details-marker{display:none}.agent-menu>summary small{color:var(--muted);font:9px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.04em;display:block}.agent-selector img{object-fit:contain;flex-shrink:0;width:22px;height:22px;display:block}.agent-chevron{margin-left:auto}.agent-menu[open]>summary,.agent-menu>summary:hover{background:#f0ecf5}.agent-menu fieldset{overscroll-behavior:contain;border:2px solid var(--ink);background:var(--paper);width:280px;max-height:calc(100dvh - 200px);margin:0;padding:8px;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:5px 5px #2222221f}.agent-menu p{font:11px/1.5 var(--sans);color:var(--muted);margin:6px 8px 10px}.agent-menu p:last-child{margin:12px 8px 6px}.agent-menu label{cursor:pointer;align-items:center;gap:12px;padding:10px 8px;font-size:15px;line-height:1.3;display:flex}.agent-menu label:hover,.agent-menu label:focus-within{background:#f0ecf5}.agent-menu label:has(:checked){background:#f2e3d9}.agent-menu code{color:var(--muted);font:10px var(--mono);margin-top:3px;display:block}.agent-menu input{accent-color:#685477;width:16px;height:16px;margin-left:auto}.agent-help{background:var(--ink);color:#fff;width:280px;font:12px/1.6 var(--sans);padding:12px 14px;display:none;position:absolute;top:calc(100% + 8px);right:0}.agent-selector:has(summary:hover,summary:focus-visible) .agent-menu:not([open])+.agent-help,.agent-help:hover{display:block}.docs-layout{grid-template-columns:220px minmax(0,760px) 190px;gap:48px;max-width:1510px;margin:0 auto;padding:30px 40px 80px;display:grid}.docs-sidebar,.docs-toc{scrollbar-width:thin;align-self:start;max-height:calc(100dvh - 140px);position:sticky;top:114px;overflow-y:auto}.docs-sidebar>summary{display:none}.docs-sidebar:not([open])>nav{display:block}.nav-group{margin:0 0 25px}.nav-group h2,.docs-toc h2{font:10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 10px;padding:0 12px}.nav-group a{border:2px solid #0000;margin:2px 0;padding:6px 10px;font-size:14px;line-height:1.5;text-decoration:none;display:block}.nav-group a:hover{background:#efefef}.nav-group a[aria-current]{border-color:var(--accent);font-weight:600}.nav-group small{font:9px var(--mono);color:#685477;text-transform:uppercase;margin-left:3px}.nav-subgroup{margin:2px 0}.nav-subgroup summary{color:inherit;user-select:none;border:2px solid #0000;justify-content:space-between;align-items:center;margin:2px 0;padding:6px 10px;font-size:14px;line-height:1.5;display:flex}.nav-subgroup summary::-webkit-details-marker{display:none}.nav-subgroup summary:after{content:"◂";color:var(--muted);font-size:11px;line-height:1.5;transition:transform .15s}.nav-subgroup[open] summary:after{transform:rotate(-90deg)}.nav-subgroup summary:hover{background:#efefef}.nav-subgroup a{padding-left:22px}.sidebar-footer{font:10px/2 var(--mono);color:var(--muted);padding:8px 12px}.doc-main{min-width:0}.docs-version{font:11px var(--mono);color:var(--muted);white-space:nowrap;margin-left:auto}.doc-kicker{font:10px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:20px;margin:0 0 24px;display:flex}.doc-kicker span:first-child:before{content:"";background:var(--accent);width:7px;height:7px;margin-right:9px;display:inline-block}h1{font:600 48px/1.1 var(--display);letter-spacing:-.035em;overflow-wrap:anywhere;margin:0 0 28px}html[data-fonts=nichrome] h1{letter-spacing:0}.article{overflow-wrap:anywhere;font-family:var(--copy)}.article :is(h2,h3,h4){font-family:var(--sans)}.article>p:first-of-type{margin-top:0;font-size:21px;line-height:1.55}.article p{margin:18px 0}.article h2{letter-spacing:-.02em;margin:52px 0 20px;font-size:29px;font-weight:600;line-height:1.2}.article h3{margin:32px 0 16px;font-size:21px;line-height:1.3}.article h4{margin:25px 0 12px}.article li{margin:8px 0;padding-left:4px}.article ul,.article ol{padding-left:24px}.article a:hover{color:#685477}.article blockquote{border-left:4px solid var(--accent);background:#f2efed;margin:26px 0;padding:3px 20px;font-size:15px}.article code{font:.8em/1.6 var(--copy-mono);background:#efefef;padding:2px 4px}.article pre{border:2px solid var(--ink);font:12px/1.9 var(--copy-mono);tab-size:4;background:#f0f0f0;margin:25px 0;padding:20px;overflow:auto}.article pre code{font:inherit;background:0 0;padding:0}.code-frame{border:2px solid var(--ink);background:#f0f0f0;margin:26px 0}.code-frame pre{border:0;margin:0}.code-toolbar{border-bottom:2px solid var(--ink);font:10px var(--mono);text-transform:uppercase;letter-spacing:.06em;background:#e5e5e5;justify-content:space-between;align-items:center;gap:12px;padding:8px 13px;display:flex}.code-toolbar button{font:10px var(--mono);text-transform:none;letter-spacing:0;justify-content:center;align-items:center;width:36px;height:36px;padding:4px;display:inline-flex}.code-frame:has(.language-diagram){border-color:#685477}.code-frame:has(.language-diagram) .code-toolbar{border-bottom-color:#685477}.code-frame:has(.language-diagram) pre{line-height:1.2}.article pre:has(>.language-prompt){white-space:pre-wrap;overflow-wrap:anywhere}.tabs{border:2px solid var(--ink);background:#f0f0f0;margin:26px 0}.tabs>input{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tab-labels{border-bottom:2px solid var(--ink);font:10px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em;background:#e5e5e5;flex-wrap:wrap;gap:4px;margin:0;padding:6px 6px 0;list-style:none;display:flex}.tab-labels li{margin:0;padding:0}.tab-labels label{cursor:pointer;user-select:none;border:2px solid #0000;margin-bottom:6px;padding:7px 12px 5px;display:block}.tab-labels label:hover{border-color:var(--ink)}.tab-panel{display:none}.tab-panel pre,.tab-panel .code-frame{border:0;margin:0}.tabs:has(>input:first-of-type:checked)>.tab-panel:first-of-type,.tabs:has(>input:nth-of-type(2):checked)>.tab-panel:nth-of-type(2),.tabs:has(>input:nth-of-type(3):checked)>.tab-panel:nth-of-type(3),.tabs:has(>input:nth-of-type(4):checked)>.tab-panel:nth-of-type(4),.tabs:has(>input:nth-of-type(5):checked)>.tab-panel:nth-of-type(5){display:block}.tabs:has(>input:first-of-type:checked)>.tab-labels>li:first-child>label,.tabs:has(>input:nth-of-type(2):checked)>.tab-labels>li:nth-child(2)>label,.tabs:has(>input:nth-of-type(3):checked)>.tab-labels>li:nth-child(3)>label,.tabs:has(>input:nth-of-type(4):checked)>.tab-labels>li:nth-child(4)>label,.tabs:has(>input:nth-of-type(5):checked)>.tab-labels>li:nth-child(5)>label{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tabs:has(>input:first-of-type:focus-visible)>.tab-labels>li:first-child>label,.tabs:has(>input:nth-of-type(2):focus-visible)>.tab-labels>li:nth-child(2)>label,.tabs:has(>input:nth-of-type(3):focus-visible)>.tab-labels>li:nth-child(3)>label,.tabs:has(>input:nth-of-type(4):focus-visible)>.tab-labels>li:nth-child(4)>label,.tabs:has(>input:nth-of-type(5):focus-visible)>.tab-labels>li:nth-child(5)>label{outline-offset:2px;outline:3px solid #685477}.diagram{margin:26px 0}.diagram svg{width:100%;height:auto;display:block}.diagram-source{margin-top:8px}.diagram-source summary{font:10px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.diagram-source .code-frame{margin:10px 0 0}.article table{border-collapse:collapse;max-width:100%;margin:26px 0;font-size:14px;display:block;overflow-x:auto}.article th{text-align:left;white-space:nowrap;background:#efefef;font-weight:600}.article th,.article td{vertical-align:top;border:2px solid #dedede;padding:11px 14px}.article hr{background:var(--ink);border:0;height:3px;margin:35px 0}.article img{max-width:100%;height:auto}.heading-link{color:var(--muted);opacity:0;margin-left:10px;font-size:.7em;text-decoration:none}:is(h2,h3):hover .heading-link,.heading-link:focus{opacity:1}.docs-toc,.mobile-toc{background:#f0ecf5;border-left:4px solid #685477;padding:16px}.docs-toc h2{color:#4f3c60;padding:0;font-weight:600}.docs-toc a,.mobile-toc a{color:var(--muted);padding:6px 0;font-size:12px;line-height:1.5;text-decoration:none;display:block}.docs-toc a:hover,.mobile-toc a:hover{color:#4f3c60;text-decoration:underline}.docs-toc a[aria-current]{color:#4f3c60;font-weight:600}.docs-toc a[aria-current]:before{content:"■ ";color:#685477}.docs-toc .level-3,.mobile-toc .level-3{padding-left:12px;font-size:11px}.mobile-toc{display:none}.mobile-toc summary{color:#4f3c60;font-weight:600}.article-source{font:10px/1.6 var(--mono);color:var(--muted);overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:52px 0 24px;display:flex}.page-turn{grid-template-columns:1fr 1fr;gap:20px;display:grid}.page-turn a{border:2px solid var(--ink);padding:18px;font-size:15px;text-decoration:none}.page-turn a:last-child{text-align:right}.page-turn a:hover{border-color:#685477}.page-turn small{font:10px var(--mono);color:var(--muted);margin-bottom:10px;display:block}.search-dialog{border:3px solid var(--ink);background:var(--paper);width:min(680px,100% - 32px);max-height:80dvh;color:var(--ink);padding:24px}.search-dialog::backdrop{background:#22222259}.search-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.search-heading h2{margin:0;font-size:23px;font-weight:600}.search-close{font:11px var(--mono);padding:5px 10px}.search-dialog input{border:2px solid var(--ink);width:100%;color:var(--ink);background:#fff;border-radius:0;padding:12px}.search-status{font:11px/1.6 var(--mono);color:var(--muted);margin:18px 0}.search-results{margin:0;padding:0;list-style:none}.search-results li+li{margin-top:12px}.search-results a{border:2px solid var(--ink);padding:14px;text-decoration:none;display:block}.search-results a:hover,.search-results a:focus{border-color:#685477}.search-results small{font:10px/1.5 var(--mono);color:#685477;text-transform:uppercase;margin-bottom:6px;display:block}.search-results strong{font-size:18px;display:block}.search-results p{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.6}@media (width<=1200px){.docs-layout{grid-template-columns:205px minmax(0,1fr);gap:36px;padding:25px 28px 60px}.docs-header{gap:16px;padding:0 28px}.docs-toc{display:none}.mobile-toc{font:12px var(--mono);margin:0 0 28px;padding:13px 15px;display:block}.mobile-toc nav{padding-top:10px}}@media (width>=761px) and (width<=1000px){.search-trigger{white-space:nowrap}.search-trigger kbd{display:none}}@media (width<=760px){html{scroll-padding-top:190px}.docs-header{flex-wrap:wrap;gap:12px 16px;height:auto;min-height:100px;padding:16px 20px}.brand{font-size:23px}.manual-label{margin-left:auto;padding:6px 8px;font-size:9px}.docs-version{margin-left:0}.search-trigger{flex:1;order:2;width:auto;margin:0;padding:8px 10px;font-size:11px}.github-link{order:4;padding:8px 10px}.agent-selector{order:3;margin-left:auto}.agent-menu>summary{min-width:155px}.docs-layout{padding:8px 20px 45px;display:block}.docs-sidebar{border:2px solid var(--ink);max-height:none;margin-bottom:32px;position:static;overflow:visible}.docs-sidebar>summary{font:12px var(--mono);padding:12px 14px;display:list-item}.docs-sidebar:not([open])>nav{display:none}.docs-sidebar>nav{padding:16px 10px}.nav-group{margin-bottom:20px}h1{font-size:38px}.doc-kicker{margin-bottom:18px;font-size:9px}.doc-kicker span:last-child{display:none}.article>p:first-of-type{font-size:19px}.article{font-size:16px}.article h2{margin-top:38px;font-size:26px}.article pre{padding:16px;font-size:11px}.page-turn{gap:12px}.page-turn a{padding:12px;font-size:13px}.article-source span{display:none}.search-dialog{padding:18px}}
