/*!modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize*/*,::before,::after{box-sizing:border-box}html{font-family:system-ui,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji;line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,liberation mono,Menlo,monospace;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{border-color:initial}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}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}:root{--font-size:100%;--font-size-smaller:0.875rem;--font-size-smallest:0.75rem;--body-font-weight:400;--border-radius:0.25rem;--space-1:1px;--space-4:0.25rem;--space-8:0.5rem;--space-16:1rem;--body-min-width:20rem;--container-max-width:90rem;--menu-width:16rem;--toc-width:16rem}.flex{display:flex;&.gap{gap:var(--space-16)}}.flex-auto{flex:auto}.flex-even{flex:1 1}.flex-wrap{flex-wrap:wrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.align-center{align-items:center}.mx-auto{margin:0 auto}.text-center{text-align:center}.text-small{font-size:.875em}.hidden{display:none}input.toggle{height:0;width:0;overflow:hidden;opacity:0;position:absolute}@keyframes spin{100%{transform:rotate(360deg)}}html{font-size:var(--font-size);scroll-behavior:smooth;touch-action:manipulation;scrollbar-gutter:stable}body{min-width:var(--body-min-width);color:var(--body-font-color);background:var(--body-background)var(--body-background-tint);font-weight:var(--body-font-weight);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:inherit}a{flex:auto;align-items:center;gap:.5em;text-decoration:none;cursor:default;&[href], &[role=button]{color:var(--color-link);cursor:pointer}}small{font-size:.875em}:focus-visible,input.toggle:focus-visible+label{outline-style:auto;outline-color:var(--color-link)}nav ul{padding:0;margin:0;list-style:none;li{position:relative}a{padding:.5em 0;display:flex;transition:opacity .1s ease-in-out}a[href]:hover, a[role=button]:hover{opacity:.5}ul{padding-inline-start:1.5em}}nav>ul{margin-bottom:var(--space-16)}ul.pagination{display:flex;justify-content:center;list-style-type:none;padding-inline-start:0;.page-item a{padding:var(--space-16)}}.container{max-width:var(--container-max-width);margin:0 auto}.book-icon{filter:var(--icon-filter)}a .book-icon{height:1em;width:1em}.book-brand{margin-top:0;margin-bottom:var(--space-16);img{height:1.5em;width:1.5em}}.book-menu{flex:0 0 var(--menu-width);font-size:var(--font-size-smaller);.book-menu-content{width:var(--menu-width);padding:var(--space-16)}a, label{color:inherit;word-wrap:break-word;display:flex}a.active{color:var(--color-link)}label > img:last-child{height:1em;width:1em;cursor:pointer;align-self:center;transition:transform .1s ease-in-out}input.toggle + label + ul{display:none}input.toggle:checked + label{> img:last-child{transform:rotate(90deg)}+ ul{display:block}}}body[dir=rtl] .book-menu{input.toggle + label > img:last-child{transform:rotate(180deg)}input.toggle:checked + label > img:last-child{transform:rotate(90deg)}}.book-section-flat{margin:var(--space-16)0;> a, > label a{font-weight:bolder}> ul{padding-inline-start:0}}.book-page{min-width:var(--body-min-width);flex-grow:1;padding:var(--space-16)}.book-post{margin-bottom:calc(var(--space-16) * 4);.book-post-date img{height:1em;width:1em;margin-inline-end:.5em}.book-post-content{margin-top:var(--space-16)}.book-post-thumbnail{flex:0 0 34%;img{width:100%;aspect-ratio:4/3;object-fit:cover}}}.book-header{margin-bottom:var(--space-16);label{line-height:0}h3{overflow:hidden;text-overflow:ellipsis;margin:0 var(--space-16)}}.book-layout-landing .book-header{display:block;position:relative;z-index:1;nav > ul{display:flex;gap:var(--space-16);justify-content:end;> li{display:block;white-space:nowrap;> ul{display:none;position:absolute;padding:0}&:hover > ul, &:focus-within > ul{display:block}}}}.book-search{position:relative;margin:var(--space-8)0;input{width:100%;padding:var(--space-8);border:var(--space-1)solid var(--gray-200);border-radius:var(--border-radius);background:var(--gray-100);color:var(--body-font-color);&:required + .book-search-spinner{display:block}}.book-search-spinner{position:absolute;top:0;margin:var(--space-8);margin-inline-start:calc(100% - (var(--space-16) + var(--space-8)));width:var(--space-16);height:var(--space-16);border:var(--space-1)solid transparent;border-top-color:var(--body-font-color);border-radius:50%;animation:spin 1s ease infinite}ul a{padding:0;margin-top:var(--space-16);font-weight:bolder}mark{background:0 0;color:var(--color-link)}}.book-toc{flex:0 0 var(--toc-width);font-size:var(--font-size-smallest);.book-toc-content{width:var(--toc-width);padding:var(--space-16)}img{height:1em;width:1em}nav > ul > li:first-child{margin-top:0}}.book-menu .book-menu-content,.book-toc .book-toc-content{position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-footer{padding-top:var(--space-16);font-size:var(--font-size-smaller);a{margin:var(--space-4)0;padding:var(--space-4)0}}.book-comments{margin-top:var(--space-16)}.book-copyright{margin-top:var(--space-16)}.book-languages{span{padding:0}ul{padding-inline-start:1.5em}}.book-menu-content,.book-toc-content{transition:.2s ease-in-out;transition-property:transform,margin,opacity,visibility;will-change:transform,margin,opacity}@media screen and (max-width:56rem){.book-menu{visibility:hidden;margin-inline-start:calc(-1 * var(--menu-width));z-index:1;.book-menu-content{background:var(--body-background)}}.book-toc{display:none}.book-header{display:block}.book-post-container{flex-direction:column-reverse}body:has(#menu-control:checked){.book-menu{visibility:initial}.book-menu .book-menu-content{transform:translateX(var(--menu-width));box-shadow:0 0 var(--space-8)rgba(0,0,0,.1)}.book-page{opacity:.25}.book-menu-overlay{display:block;position:fixed;top:0;bottom:0;left:0;right:0}}body:has(#toc-control:checked){.book-header aside{display:block}}body[dir=rtl] #menu-control:checked~main{.book-menu .book-menu-content{transform:translateX(calc(-1 * var(--menu-width)))}}}@media screen and (min-width:90rem){main{gap:var(--space-16);padding:var(--space-16)}.book-menu .book-menu-content,.book-toc .book-toc-content{padding-top:calc(var(--space-16) * 2)}}.markdown{line-height:1.6;>:first-child, >section:first-child :first-child{margin-top:0}h1, h2, h3, h4, h5, h6{font-weight:inherit;line-height:1.2;margin-top:1.5em;margin-bottom:var(--space-16);a.anchor{opacity:0;font-size:.75em;margin-inline-start:.25em;&::after{content:'#'}}&:hover a.anchor, a.anchor:focus-visible{opacity:initial;text-decoration:none}}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}b, optgroup, strong{font-weight:bolder}a{text-decoration:none;&[href]:hover{text-decoration:underline}&[href]:visited{color:var(--color-visited-link)}}img{max-width:100%;height:auto}code{direction:ltr;unicode-bidi:embed;padding:.125em .25em;background:var(--gray-100);border:var(--space-1)solid var(--gray-200);border-radius:var(--border-radius);font-size:.875em}pre{padding:var(--space-16);background:var(--gray-100);border:var(--space-1)solid var(--gray-200);border-radius:var(--border-radius);overflow-x:auto;&:focus{outline-style:auto;outline-color:var(--color-link)}code{padding:0;border:0;background:0 0}}p{word-wrap:break-word}blockquote{margin:var(--space-16)0;padding:var(--space-8)var(--space-16)var(--space-8)calc(var(--space-16) - var(--space-4));border-inline-start:var(--space-4)solid var(--gray-200);border-radius:var(--border-radius); :first-child { margin-top: 0; } :last-child { margin-bottom: 0; }}table{overflow:auto;display:block;border-spacing:0;border-collapse:collapse;margin-top:var(--space-16);margin-bottom:var(--space-16);tr th, tr td{padding:var(--space-8)var(--space-16);border:var(--space-1)solid var(--gray-200);text-align:start}tr:nth-child(2n){background:var(--gray-100)}}hr{height:var(--space-1);border:none;background:var(--gray-200)}ul, ol{padding-inline-start:calc(var(--space-16) * 2);word-wrap:break-word}dl{dt{font-weight:bolder;margin-top:var(--space-16)}dd{margin-inline-start:0;margin-bottom:var(--space-16)}}.highlight{direction:ltr;unicode-bidi:embed;border-radius:var(--border-radius);table tbody{border:var(--space-1)solid var(--gray-200)}table tr{pre{border:0}td pre code > span{display:flex}td:nth-child(1) pre{margin:0;padding-inline-end:0}td:nth-child(2) pre{margin:0;padding-inline-start:0}}}details{padding:var(--space-16);margin:var(--space-16)0;border:var(--space-1)solid var(--gray-200);border-radius:var(--border-radius);summary{line-height:1;padding:var(--space-16);margin:calc(-1 * var(--space-16));cursor:pointer;list-style:none;&::before{content:"›";display:inline-block;margin-inline-end:var(--space-8);transition:transform .1s ease-in-out}}&[open] summary{margin-bottom:0;&::before{transform:rotate(90deg)}}}figure{margin:var(--space-16)0;figcaption{margin-top:var(--space-16)}}}.markdown-inner>:first-child,.markdown .book-steps>ol>li>:first-child,.markdown figure figcaption>:first-child{margin-top:0}.markdown-inner>:last-child,.markdown .book-steps>ol>li>:last-child,.markdown figure figcaption>:last-child{margin-bottom:0}.markdown{.book-tabs{margin-top:var(--space-16);margin-bottom:var(--space-16);border:var(--space-1)solid var(--gray-200);border-radius:var(--border-radius);display:flex;flex-wrap:wrap;label{display:inline-block;padding:var(--space-8)var(--space-16);border-bottom:var(--space-1)solid transparent;cursor:pointer}.book-tabs-content{order:999;width:100%;border-top:var(--space-1)solid var(--gray-100);padding:var(--space-16);display:none}input[type=radio]:checked+label{border-bottom:var(--space-1)solid var(--color-link)}input[type=radio]:checked+label+.book-tabs-content{display:block}}.book-columns{gap:var(--space-16);>div{margin:var(--space-16)0;min-width:calc(var(--body-min-width) * .66)}>ul{list-style:none;display:flex;padding:0;flex-wrap:wrap;gap:var(--space-16);>li{flex:1 1;min-width:calc(var(--body-min-width) * .66)}}}a.book-btn[href]{display:inline-block;font-size:var(--font-size-smaller);color:var(--color-link);line-height:calc(var(--space-16) * 2);padding:0 var(--space-16);border:var(--space-1)solid var(--color-link);border-radius:var(--border-radius);cursor:pointer;&:hover{text-decoration:none}}.book-hint{&.note{--accent-color:var(--color-accent-note)}&.tip{--accent-color:var(--color-accent-tip)}&.important{--accent-color:var(--color-accent-important)}&.warning{--accent-color:var(--color-accent-warning)}&.caution{--accent-color:var(--color-accent-caution)}&.default{--accent-color:var(--color-accent-default)}&.info{--accent-color:var(--color-accent-info)}&.success{--accent-color:var(--color-accent-success)}&.danger{--accent-color:var(--color-accent-danger)}border-color:var(--accent-color);background-color:color-mix(in srgb,var(--accent-color) 10%,transparent)}.book-badge{&.note{--accent-color:var(--color-accent-note)}&.tip{--accent-color:var(--color-accent-tip)}&.important{--accent-color:var(--color-accent-important)}&.warning{--accent-color:var(--color-accent-warning)}&.caution{--accent-color:var(--color-accent-caution)}&.default{--accent-color:var(--color-accent-default)}&.info{--accent-color:var(--color-accent-info)}&.success{--accent-color:var(--color-accent-success)}&.danger{--accent-color:var(--color-accent-danger)}display:inline-block;font-size:var(--font-size-smaller);font-weight:var(--body-font-weight);vertical-align:middle;border-radius:var(--border-radius);border:var(--space-1)solid var(--accent-color);overflow:hidden;text-wrap:nowrap;color:var(--body-font-color);span{display:inline-block;padding:0 var(--space-8)}span.book-badge-value{color:var(--body-background);background-color:var(--accent-color)}}.book-steps{position:relative;>ol{counter-reset:steps;list-style:none;padding-inline-start:calc(var(--space-16) + var(--space-4));margin-top:calc(var(--space-16) * 2);>li::before{content:counter(steps);counter-increment:steps;position:absolute;left:var(--space-8);display:flex;justify-content:center;align-items:center;white-space:nowrap;height:calc(var(--space-16) * 1.5);width:calc(var(--space-16) * 1.5);line-height:var(--space-16);border-radius:var(--border-radius);background:var(--body-background);border:var(--space-1)solid var(--gray-500);outline:var(--space-4)solid var(--body-background)}>li{border-inline-start:var(--space-1)dotted var(--gray-500);padding-inline-start:calc(var(--space-16) * 3);padding-bottom:calc(var(--space-16) * 2)}>li:last-child{border:0}}}.book-image{input + img{cursor:zoom-in;transition:transform .2s ease-in-out}input:checked + img{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--body-background);object-fit:contain;width:100%;height:100%;z-index:1;cursor:zoom-out;padding:var(--space-16)}}.book-asciinema{margin:var(--space-16)0}.book-codeblock-filename{display:block;padding:var(--space-4)var(--space-8);border-bottom:0;font-size:var(--font-size-smallest);border-radius:var(--border-radius)var(--border-radius)0 0;a{color:var(--body-font-color)}+ .highlight pre{margin-top:0;border-start-start-radius:0;border-start-end-radius:0}}}@media print{.book-menu,.book-footer,.book-toc{display:none}a::after{content:attr(href);margin:0 var(--space-4)}main{display:block!important}}@layer theme{:root{color-scheme:light;--body-background-tint:none;--icon-filter:none;--color-accent-info:var(--color-accent-note);--color-accent-success:var(--color-accent-tip);--color-accent-danger:var(--color-accent-caution)}:root[data-theme$=dark]{color-scheme:dark}:root[data-theme$=auto]{color-scheme:light dark}:root,:root[data-theme=light],:root[data-theme=auto]{--body-background:white;--body-font-color:black;--color-link:#0055bb;--color-visited-link:#5500bb;--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-500:#adb5bd;--color-accent-default:#64748b;--color-accent-note:#4486dd;--color-accent-tip:#3bad3b;--color-accent-important:#8144dd;--color-accent-warning:#f59e42;--color-accent-caution:#d84747}:root[data-theme=dark]{--body-background:#2e3440;--body-font-color:#eceff4;--icon-filter:brightness(0) invert(1);--color-link:#81a1c1;--color-visited-link:#b48ead;--gray-100:#3b4252;--gray-200:#434c5e;--gray-500:#d8dee9;--color-accent-default:#81a1c1;--color-accent-note:#5e81ac;--color-accent-tip:#a3be8c;--color-accent-important:#b48ead;--color-accent-warning:#d08770;--color-accent-caution:#bf616a}@media(prefers-color-scheme:dark){:root[data-theme=auto]{--body-background:#2e3440;--body-font-color:#eceff4;--icon-filter:brightness(0) invert(1);--color-link:#81a1c1;--color-visited-link:#b48ead;--gray-100:#3b4252;--gray-200:#434c5e;--gray-500:#d8dee9;--color-accent-default:#81a1c1;--color-accent-note:#5e81ac;--color-accent-tip:#a3be8c;--color-accent-important:#b48ead;--color-accent-warning:#d08770;--color-accent-caution:#bf616a}}:root[data-theme=contrast-light],:root[data-theme=contrast-auto]{--body-background:#ffffff;--body-font-color:#000000;--color-link:#0055ee;--color-visited-link:#551a8b;--gray-100:#f0f0f0;--gray-200:#d0d0d0;--gray-500:#707070;--color-accent-default:#000000;--color-accent-note:#0066cc;--color-accent-tip:#008000;--color-accent-important:#800080;--color-accent-warning:#ff8c00;--color-accent-caution:#cc0000}:root[data-theme=contrast-dark]{--body-background:#000000;--body-font-color:#ffffff;--icon-filter:brightness(0) invert(1);--color-link:#00ffff;--color-visited-link:#ff00ff;--gray-100:#1a1a1a;--gray-200:#333333;--gray-500:#a0a0a0;--color-accent-default:#ffffff;--color-accent-note:#00ccff;--color-accent-tip:#00ff00;--color-accent-important:#ff00ff;--color-accent-warning:#ffaa00;--color-accent-caution:#ff0000}@media(prefers-color-scheme:dark){:root[data-theme=contrast-auto]{--body-background:#000000;--body-font-color:#ffffff;--icon-filter:brightness(0) invert(1);--color-link:#00ffff;--color-visited-link:#ff00ff;--gray-100:#1a1a1a;--gray-200:#333333;--gray-500:#a0a0a0;--color-accent-default:#ffffff;--color-accent-note:#00ccff;--color-accent-tip:#00ff00;--color-accent-important:#ff00ff;--color-accent-warning:#ffaa00;--color-accent-caution:#ff0000}}:root[data-theme=catppuccin-light],:root[data-theme=catppuccin-auto]{--body-background:#eff1f5;--body-font-color:#4c4f69;--color-link:#dd7878;--color-visited-link:#dc8a78;--gray-100:#e6e9ef;--gray-200:#ccd0da;--gray-500:#9ca0b0;--color-accent-default:#7c7f93;--color-accent-note:#04a5e5;--color-accent-tip:#40a02b;--color-accent-important:#7287fd;--color-accent-warning:#df8e1d;--color-accent-caution:#d20f39}:root[data-theme=catppuccin-dark]{--body-background:#303446;--body-font-color:#c6d0f5;--icon-filter:brightness(0) invert(1);--color-link:#eebebe;--color-visited-link:#f2d5cf;--gray-100:#414559;--gray-200:#51576d;--gray-500:#737994;--color-accent-default:#838ba4;--color-accent-note:#8caaee;--color-accent-tip:#a6d189;--color-accent-important:#ca9ee6;--color-accent-warning:#ef9f76;--color-accent-caution:#e78284}@media(prefers-color-scheme:dark){:root[data-theme=catppuccin-auto]{--body-background:#303446;--body-font-color:#c6d0f5;--icon-filter:brightness(0) invert(1);--color-link:#eebebe;--color-visited-link:#f2d5cf;--gray-100:#414559;--gray-200:#51576d;--gray-500:#737994;--color-accent-default:#838ba4;--color-accent-note:#8caaee;--color-accent-tip:#a6d189;--color-accent-important:#ca9ee6;--color-accent-warning:#ef9f76;--color-accent-caution:#e78284}}:root[data-theme=ayu-light],:root[data-theme=ayu-auto]{--body-background:#fafafa;--body-font-color:#575f66;--color-link:#0870c4;--color-visited-link:#7339a8;--gray-100:#f3f4f5;--gray-200:#e7e8e9;--gray-500:#abb0b6;--color-accent-default:#8a9199;--color-accent-note:#399ee6;--color-accent-tip:#86b300;--color-accent-important:#a37acc;--color-accent-warning:#fa8d3e;--color-accent-caution:#f07171}:root[data-theme=ayu-dark]{--body-background:#1f2430;--body-font-color:#cbccc6;--icon-filter:brightness(0) invert(1);--color-link:#5ccfe6;--color-visited-link:#d4bfff;--gray-100:#242936;--gray-200:#2d3443;--gray-500:#5c6773;--color-accent-default:#5c6773;--color-accent-note:#5ccfe6;--color-accent-tip:#bae67e;--color-accent-important:#d4bfff;--color-accent-warning:#ffa759;--color-accent-caution:#f28779}@media(prefers-color-scheme:dark){:root[data-theme=ayu-auto]{--body-background:#1f2430;--body-font-color:#cbccc6;--icon-filter:brightness(0) invert(1);--color-link:#5ccfe6;--color-visited-link:#d4bfff;--gray-100:#242936;--gray-200:#2d3443;--gray-500:#5c6773;--color-accent-default:#5c6773;--color-accent-note:#5ccfe6;--color-accent-tip:#bae67e;--color-accent-important:#d4bfff;--color-accent-warning:#ffa759;--color-accent-caution:#f28779}}}@font-face{font-display:swap;font-family:ibm plex sans;font-style:normal;font-weight:400;src:url(/fonts/ibm-plex-sans-v23-cyrillic_latin_latin-ext-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:ibm plex sans;font-style:normal;font-weight:600;src:url(/fonts/ibm-plex-sans-v23-cyrillic_latin_latin-ext-600.woff2)format("woff2")}@font-face{font-display:swap;font-family:ibm plex mono;font-style:normal;font-weight:400;src:url(/fonts/ibm-plex-mono-v20-latin-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:ibm plex mono;font-style:normal;font-weight:600;src:url(/fonts/ibm-plex-mono-v20-latin-600.woff2)format("woff2")}:root{color-scheme:light dark;--theme-canvas:light-dark(#f8f9fa, #161616);--theme-surface:light-dark(#ffffff, #1b1b1b);--theme-surface-muted:light-dark(#e4e8ec, #2b2b2b);--theme-foreground:light-dark(#25272d, #ebebeb);--theme-muted:light-dark(#4d545a, #a3a3a3);--theme-line:light-dark(#dce0e5, #2e2e2e);--theme-brand:light-dark(#1055c9, #4a86e0);--theme-brand-strong:light-dark(#0c46a8, #6a9fec);--theme-brand-contrast:light-dark(#ffffff, #0d0f12);--theme-primary:light-dark(#25272d, #3b3b3b);--theme-primary-strong:light-dark(#36383e, #4a4a4a);--theme-primary-contrast:light-dark(#ffffff, #ebebeb);--theme-positive:light-dark(#17734b, #3fbf88);--theme-warning:light-dark(#96500f, #f0a06a);--theme-critical:light-dark(#b02a42, #ff7d8e);--theme-secondary:light-dark(#e4e8ec, #2b2b2b);--theme-secondary-hover:light-dark(#dce0e5, #363636);--theme-selection:light-dark(rgb(70 90 115 / 25%), rgb(255 255 255 / 22%));--theme-shadow-color:light-dark(rgb(16 24 40 / 8%), rgb(0 0 0 / 30%));--theme-shadow-color-strong:light-dark(rgb(16 24 40 / 17%), rgb(0 0 0 / 45%));--theme-popover-shadow:light-dark(rgb(16 24 40 / 10%), rgb(0 0 0 / 45%));--theme-popover-shadow-strong:light-dark(rgb(16 24 40 / 22%), rgb(0 0 0 / 65%));--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--radius:5px;--site-width:1160px;--site-gutter:clamp(1rem, 4vw, 2rem);--header-height:56px;--shadow-control:0 1px 1px var(--theme-shadow-color), 0 2px 5px -2px var(--theme-shadow-color-strong);--shadow-control-lift:0 5px 12px -6px var(--theme-shadow-color-strong), 0 1px 2px var(--theme-shadow-color);--shadow-panel:0 1px 2px var(--theme-shadow-color), 0 18px 40px -24px var(--theme-popover-shadow-strong);--body-background:var(--theme-canvas);--body-font-color:var(--theme-foreground);--color-link:var(--theme-brand);--color-visited-link:var(--theme-brand-strong);--border-radius:var(--radius);--space-1:1px;--space-4:0.25rem;--space-8:0.5rem;--space-16:1rem;--body-min-width:20rem;--container-max-width:var(--site-width);--menu-width:15rem;--toc-width:12.5rem;--font-size:100%;--font-size-smaller:0.875rem;--font-size-smallest:0.75rem;--body-font-weight:400;--gray-100:var(--theme-surface-muted);--gray-200:var(--theme-line);--gray-500:var(--theme-muted);--color-accent-default:var(--theme-muted);--color-accent-note:var(--theme-brand);--color-accent-tip:var(--theme-positive);--color-accent-important:var(--theme-brand-strong);--color-accent-warning:var(--theme-warning);--color-accent-caution:var(--theme-critical);--icon-filter:none}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html{background:var(--theme-canvas);scroll-behavior:smooth}body{margin:0;min-height:100dvh;background:var(--theme-canvas);color:var(--theme-foreground);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--theme-selection)}:focus-visible{outline:2px solid var(--theme-brand);outline-offset:2px}main:focus{outline:none}a{color:var(--theme-brand)}a:hover{color:var(--theme-brand-strong)}h1,h2,h3,h4{font-weight:600;letter-spacing:-.02em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:100;padding:.5rem .75rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface);box-shadow:var(--shadow-panel);color:var(--theme-foreground);transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:1rem;min-height:var(--header-height);padding:.5rem var(--site-gutter);border-bottom:1px solid var(--theme-line);background:color-mix(in srgb,var(--theme-canvas) 88%,transparent);backdrop-filter:blur(10px);view-transition-name:site-header}.site-wordmark,a.site-wordmark,a.site-wordmark:visited{display:inline-flex;align-items:center;gap:.5rem;color:var(--theme-foreground);font-size:1.125rem;font-weight:600;letter-spacing:-.02em;text-decoration:none}a.site-wordmark:hover{color:var(--theme-foreground)}.site-wordmark svg{width:1.75rem;height:1.75rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.site-byline{flex:none;color:var(--theme-muted);font-size:.78rem;text-decoration:none}.site-byline:hover{color:var(--theme-foreground)}.site-nav{display:flex;align-items:center;gap:1.25rem;margin-left:auto;font-size:.9rem}.site-nav a{color:var(--theme-muted);text-decoration:none;white-space:nowrap}.site-nav a:hover,.site-nav a[href]:hover,.site-nav a[aria-current=page]{color:var(--theme-foreground);font-weight:600;opacity:1}.site-menu{display:none;position:relative;margin-left:auto}.site-menu summary{display:inline-flex;align-items:center;height:2.25rem;padding:0 .75rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface);color:var(--theme-foreground);font:600 .875rem/1 var(--font-sans);cursor:pointer;list-style:none}.site-menu summary::-webkit-details-marker{display:none}.site-menu summary::after{content:"⌄";margin-left:.375rem;color:var(--theme-muted);font-size:.75rem}.site-menu[open] summary{border-color:var(--theme-brand)}.site-menu ul{position:absolute;top:calc(100% + .375rem);right:0;display:grid;min-width:10rem;margin:0;padding:.375rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface);box-shadow:var(--shadow-panel);list-style:none;z-index:50}.site-menu li a{display:block;padding:.5rem .625rem;border-radius:var(--radius);color:var(--theme-foreground);font-size:.9375rem;text-decoration:none}.site-menu li a:hover{background:var(--theme-surface-muted);opacity:1}@media(max-width:720px){.site-nav{display:none}.site-menu{display:block}}@media(max-width:380px){.site-header{gap:.5rem;padding-inline:.75rem}.site-wordmark span,.site-byline{display:none}}.site-footer{margin-top:3rem;padding:2rem var(--site-gutter);border-top:1px solid var(--theme-line);color:var(--theme-muted);font-size:.875rem}.site-footer__grid{display:grid;grid-template-columns:minmax(0,1.4fr)repeat(2,minmax(0,1fr));gap:1.5rem 2rem;width:min(var(--site-width),calc(100% - 2 * var(--site-gutter)));margin-inline:auto;padding-bottom:1.5rem}.site-footer__brand{display:grid;gap:.375rem;align-content:start;justify-items:start}.site-footer__wordmark,a.site-footer__wordmark,a.site-footer__wordmark:visited{color:var(--theme-foreground);font-size:1.0625rem;font-weight:600;letter-spacing:-.02em;text-decoration:none}a.site-footer__wordmark:hover{color:var(--theme-foreground)}.site-footer__tagline{max-width:24ch;margin:0;line-height:1.5}.site-footer__cta{color:var(--theme-brand);font-weight:600;text-decoration:none}.site-footer__cta:hover{text-decoration:underline;text-underline-offset:3px}.site-footer__label{margin:0 0 .5rem;color:var(--theme-muted);font:600 .625rem/1.4 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.site-footer ul{display:grid;gap:.375rem;margin:0;padding:0;list-style:none}.site-footer a{color:var(--theme-muted);text-decoration:none}.site-footer a:hover{color:var(--theme-foreground);text-decoration:underline;text-underline-offset:3px;opacity:1}.site-footer__copy{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;width:min(var(--site-width),calc(100% - 2 * var(--site-gutter)));margin:0 auto}@media(max-width:719px){.site-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__brand{grid-column:1/-1}}@media(max-width:479px){.site-footer__grid{grid-template-columns:1fr}}.button{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:.5rem;height:2.5rem;padding:0 1rem;border:1px solid transparent;border-radius:var(--radius);font:600 .9375rem/1 var(--font-sans);text-decoration:none;white-space:nowrap;cursor:pointer;transition:box-shadow 140ms ease,background-color 140ms ease,transform 70ms ease}.button:active{transform:translateY(1px)}a.button--primary,a.button--primary:visited,.button--primary{background:var(--theme-primary);color:var(--theme-primary-contrast);box-shadow:var(--shadow-control)}a.button--primary:hover,a.button--primary:visited:hover,.button--primary:hover{background:var(--theme-primary-strong);color:var(--theme-primary-contrast);box-shadow:var(--shadow-control-lift)}a.button--secondary,a.button--secondary:visited,.button--secondary{border-color:var(--theme-line);background:var(--theme-surface);color:var(--theme-foreground);box-shadow:var(--shadow-control)}a.button--secondary:hover,a.button--secondary:visited:hover,.button--secondary:hover{background:var(--theme-surface-muted);color:var(--theme-foreground)}@media(prefers-color-scheme:dark){a.button--primary,a.button--primary:visited,.button--primary{background:var(--theme-foreground);color:var(--theme-canvas)}a.button--primary:hover,a.button--primary:visited:hover,.button--primary:hover{background:#fff;color:var(--theme-canvas)}}@view-transition{navigation: auto;
}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.button{transition:none}}.docs-container{display:flex;width:min(var(--site-width),calc(100% - 2 * var(--site-gutter)));max-width:none;margin-inline:auto;gap:clamp(1.5rem,3vw,3rem);align-items:flex-start;padding:0}.book-menu{flex:0 0 var(--menu-width);min-width:0;font-size:.8125rem}.book-menu .book-menu-content{position:sticky;top:calc(var(--header-height) + 1.5rem);width:var(--menu-width);max-height:calc(100dvh - var(--header-height) - 3rem);padding:1.5rem 1rem 2rem 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--theme-line)transparent}.docs-menu-label{margin:0 0 .75rem;padding-left:.75rem;color:var(--theme-muted);font:600 .6875rem/1.4 var(--font-mono);letter-spacing:.09em;text-transform:uppercase}.book-search{margin:0 0 1.25rem}.book-search input{width:100%;height:2.25rem;padding:0 .625rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface);color:var(--theme-foreground);font:.8125rem/1 var(--font-sans)}.book-search input:focus-visible{border-color:var(--theme-brand);outline:2px solid var(--theme-brand);outline-offset:0}.book-search ul{margin:.5rem 0 0;padding:0;list-style:none}.book-search ul a{display:block;padding:.3125rem .5rem;border-radius:var(--radius);color:var(--theme-foreground);font-size:.8125rem;text-decoration:none}.book-search ul a:hover{background:var(--theme-surface-muted)}.book-search mark{background:color-mix(in srgb,var(--theme-brand) 18%,transparent);color:var(--theme-foreground)}.book-menu nav>ul{margin:0;padding:0;border-left:1px solid var(--theme-line)}.book-menu nav ul{list-style:none}.book-menu nav ul ul{padding-inline-start:.75rem}.book-menu nav a,.book-menu nav label>a{display:block;margin-left:-1px;padding:.3125rem .75rem .3125rem 1rem;border-left:2px solid transparent;color:var(--theme-muted);font-size:.8125rem;line-height:1.45;text-decoration:none;text-wrap:pretty}.book-menu nav a:hover,.book-menu nav a[href]:hover{background:color-mix(in srgb,var(--theme-foreground) 5%,transparent);color:var(--theme-foreground);opacity:1}.book-menu nav a.active{border-left-color:var(--theme-brand);color:var(--theme-foreground);font-weight:600}.book-menu nav .book-section-flat>a,.book-menu nav .book-section-flat>label>a{color:var(--theme-foreground);font-weight:600}.book-menu nav .flex{display:flex;align-items:center;justify-content:space-between;gap:.375rem}.book-menu nav .flex>a{flex:1}.book-menu nav label>img{width:.75rem;height:.75rem;margin-right:.5rem;opacity:.6;filter:var(--icon-filter)}.book-menu nav label{cursor:pointer}.docs-menu-foot{margin:1.5rem 0 0;padding:.75rem 0 0 .75rem;border-top:1px solid var(--theme-line);color:var(--theme-muted);font:.6875rem/1.4 var(--font-mono)}.book-menu nav .docs-menu-foot a,.book-menu nav .docs-menu-foot a:visited{display:inline;margin:0;padding:0;border:0;color:var(--theme-muted);font:inherit;text-decoration:none}.book-menu nav .docs-menu-foot a:hover{background:0 0;color:var(--theme-foreground);opacity:1}.book-page{min-width:0;max-width:50rem;flex:auto;padding:2rem 0 0}.book-header{display:none;margin:0 0 1.25rem}.book-header-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.5rem;padding:0 .75rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface)}.book-header .book-header-button{display:inline-flex;align-items:center;height:2rem;color:var(--theme-muted);font:600 .75rem/1 var(--font-mono);line-height:1;cursor:pointer}.book-header-button:hover{color:var(--theme-foreground)}.book-header-title{overflow:hidden;color:var(--theme-foreground);font-size:.8125rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.toggle{position:absolute;opacity:0;pointer-events:none}.docs-head{padding-bottom:1.25rem;border-bottom:1px solid var(--theme-line)}.docs-crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;margin:0;padding:0;list-style:none}.docs-crumbs li{display:inline-flex;align-items:center;gap:.375rem;color:var(--theme-muted);font:.6875rem/1.6 var(--font-mono)}.docs-crumbs li+li::before{color:color-mix(in srgb,var(--theme-muted) 55%,transparent);content:"/"}.docs-crumbs a{color:var(--theme-muted);text-decoration:none}.docs-crumbs a:hover{color:var(--theme-foreground)}.docs-crumbs li[aria-current=page]{color:var(--theme-foreground)}.docs-head h1{max-width:26ch;margin:.625rem 0 0;font-size:clamp(1.875rem,3.2vw,2.5rem);font-weight:600;line-height:1.08;letter-spacing:-.03em;text-wrap:balance}.docs-lede{max-width:64ch;margin:.625rem 0 0;color:var(--theme-muted);font-size:1.0625rem;line-height:1.6}.docs-toc-mobile{display:none;margin-top:1rem;padding:0;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface)}.docs-toc-mobile summary{padding:.625rem .75rem;color:var(--theme-muted);font:600 .75rem/1 var(--font-mono);cursor:pointer;list-style:none}.docs-toc-mobile summary::-webkit-details-marker{display:none}.docs-toc-mobile nav{padding:0 .75rem .75rem}.docs-toc-mobile ul{margin:0;padding-left:1rem;border-left:1px solid var(--theme-line);list-style:none}.docs-toc-mobile a{display:block;padding:.1875rem 0;color:var(--theme-muted);font-size:.8125rem;text-decoration:none}.docs-toc-mobile a:hover{color:var(--theme-foreground)}.book-article{max-width:72ch;padding-top:1.5rem;font-size:1rem;line-height:1.7}.book-article>:first-child{margin-top:0}.book-article h1,.book-article h2,.book-article h3,.book-article h4{color:var(--theme-foreground);font-weight:600;line-height:1.2;letter-spacing:-.025em;text-wrap:balance}.book-article h1{margin:0 0 1rem;font-size:1.875rem}.book-article h2{margin:2.5rem 0 .875rem;padding-top:1.25rem;border-top:1px solid var(--theme-line);font-size:1.4375rem}.book-article h3{margin:2rem 0 .625rem;font-size:1.125rem}.book-article h4{margin:1.5rem 0 .5rem;font-size:1rem}.book-article p,.book-article li{color:var(--theme-foreground)}.book-article p{margin:0 0 1rem;overflow-wrap:break-word}.book-article ul,.book-article ol{margin:0 0 1rem;padding-left:1.375rem}.book-article li{margin:.25rem 0}.book-article li>ul,.book-article li>ol{margin-top:.25rem;margin-bottom:.25rem}.book-article a[href]{color:var(--theme-brand);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--theme-brand) 45%,transparent);text-underline-offset:2px}.book-article a[href]:hover{color:var(--theme-brand-strong);text-decoration-color:initial}.book-article a[href]:visited{color:var(--theme-brand)}.book-article strong,.book-article b{font-weight:600}.book-article :not(pre)>code{padding:.125em .375em;border:1px solid var(--theme-line);border-radius:3px;background:var(--theme-surface-muted);color:var(--theme-foreground);font-family:var(--font-mono);font-size:.85em}.book-article blockquote{margin:1.25rem 0;padding:.75rem 1rem;border-left:2px solid var(--theme-brand);border-radius:0 var(--radius)var(--radius)0;background:var(--theme-surface);color:var(--theme-muted)}.book-article blockquote>:first-child{margin-top:0}.book-article blockquote>:last-child{margin-bottom:0}.book-article hr{height:1px;margin:2rem 0;border:0;background:var(--theme-line)}.book-article img{max-width:100%;height:auto;border-radius:var(--radius)}.book-article table{display:block;width:100%;margin:1.25rem 0;overflow-x:auto;border-spacing:0;border-collapse:collapse;font-size:.9375rem}.book-article th,.book-article td{padding:.5rem .75rem;border-bottom:1px solid var(--theme-line);text-align:left;vertical-align:top}.book-article th{color:var(--theme-muted);font:600 .6875rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.book-article tr:nth-child(2n){background:0 0}.book-article details{margin:1rem 0;padding:.75rem 1rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface)}.book-article details summary{margin:-.75rem -1rem;padding:.75rem 1rem;color:var(--theme-foreground);cursor:pointer;list-style:none}.book-article details summary::-webkit-details-marker{display:none}.book-article details[open] summary{border-bottom:1px solid var(--theme-line);margin-bottom:.75rem}.book-article .highlight,.book-article .code-frame{margin:1.25rem 0;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface);overflow:hidden}.book-article .highlight{padding:0}.book-article .code-frame{margin:1.25rem 0}.book-article .code-frame>.highlight,.book-article .code-frame>pre{margin:0;padding:0;border:0;border-radius:0;background:0 0;overflow:visible}.book-article .code-frame__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.25rem;padding:0 .75rem;border-bottom:1px solid var(--theme-line);background:var(--theme-surface-muted)}.book-article .code-frame__lang{color:var(--theme-muted);font:600 .6875rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.book-article .code-frame__copy{padding:.25rem .5rem;border:1px solid transparent;border-radius:3px;background:0 0;color:var(--theme-muted);font:500 .6875rem/1 var(--font-mono);cursor:pointer}.book-article .code-frame__copy:hover{background:var(--theme-surface);color:var(--theme-foreground)}.book-article pre{margin:0;padding:1rem;border:0;border-radius:0;background:0 0;font-family:var(--font-mono);font-size:.8125rem;line-height:1.65;overflow-x:auto}.book-article pre code{padding:0;border:0;background:0 0;font-size:inherit}.book-article .code-frame pre{background:0 0!important}.book-article .highlight pre{padding:1rem;background:0 0}.book-article .book-codeblock-filename{display:block;padding:.375rem .75rem;border-bottom:1px solid var(--theme-line);background:var(--theme-surface-muted);color:var(--theme-muted);font:500 .6875rem/1.4 var(--font-mono)}.book-article .book-codeblock-filename+.highlight,.book-article .book-codeblock-filename+.code-frame{margin-top:0}.book-article .book-hint{margin:1.25rem 0;padding:.75rem 1rem;border:1px solid color-mix(in srgb,var(--accent-color,var(--theme-brand)) 55%,var(--theme-line));border-left-width:3px;border-radius:var(--radius);background:color-mix(in srgb,var(--accent-color,var(--theme-brand)) 8%,var(--theme-surface))}.book-article .book-hint>:first-child{margin-top:0}.book-article .book-hint>:last-child{margin-bottom:0}.book-article .book-tabs{margin:1.25rem 0;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface)}.book-article .book-tabs label{padding:.5rem .75rem;color:var(--theme-muted);font:500 .75rem/1.4 var(--font-mono)}.book-article .book-tabs input[type=radio]:checked+label{border-bottom-color:var(--theme-brand);color:var(--theme-foreground)}.book-article .book-tabs-content{border-top-color:var(--theme-line)}.book-article .book-btn[href]{display:inline-flex;align-items:center;height:2.25rem;padding:0 .75rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface);box-shadow:var(--shadow-control);color:var(--theme-foreground);font-size:.8125rem;font-weight:600;text-decoration:none}.book-article .book-btn[href]:hover{background:var(--theme-surface-muted);color:var(--theme-foreground)}.book-article .book-steps>ol>li::before{background:var(--theme-surface);border-color:var(--theme-line);outline-color:var(--theme-canvas)}.book-article .book-steps>ol>li{border-inline-start-color:var(--theme-line)}.book-article .chroma{background:0 0;color:var(--theme-foreground)}.book-article .chroma .c,.book-article .chroma .ch,.book-article .chroma .cm,.book-article .chroma .c1,.book-article .chroma .cs,.book-article .chroma .cp,.book-article .chroma .cpf{color:var(--theme-muted);font-style:italic}.book-article .chroma .k,.book-article .chroma .kc,.book-article .chroma .kd,.book-article .chroma .kn,.book-article .chroma .kp,.book-article .chroma .kr,.book-article .chroma .kt{color:var(--theme-brand-strong);font-weight:600}.book-article .chroma .s,.book-article .chroma .sa,.book-article .chroma .sb,.book-article .chroma .sc,.book-article .chroma .dl,.book-article .chroma .sd,.book-article .chroma .s2,.book-article .chroma .se,.book-article .chroma .sh,.book-article .chroma .si,.book-article .chroma .sx,.book-article .chroma .sr,.book-article .chroma .s1,.book-article .chroma .ss{color:var(--theme-positive)}.book-article .chroma .m,.book-article .chroma .mb,.book-article .chroma .mf,.book-article .chroma .mh,.book-article .chroma .mi,.book-article .chroma .il,.book-article .chroma .mo{color:var(--theme-warning)}.book-article .chroma .na,.book-article .chroma .nb,.book-article .chroma .bp,.book-article .chroma .nc,.book-article .chroma .no,.book-article .chroma .nd,.book-article .chroma .ni,.book-article .chroma .ne,.book-article .chroma .nf,.book-article .chroma .fm,.book-article .chroma .py,.book-article .chroma .nl,.book-article .chroma .nn,.book-article .chroma .nt,.book-article .chroma .nv,.book-article .chroma .vc,.book-article .chroma .vg,.book-article .chroma .vi,.book-article .chroma .vm{color:var(--theme-brand)}.book-article .chroma .o,.book-article .chroma .ow{color:var(--theme-foreground);font-weight:600}.book-article .chroma .p{color:var(--theme-muted)}.book-footer{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--theme-line);color:var(--theme-muted);font-size:.75rem}.book-footer a{color:var(--theme-muted);text-decoration:none}.book-footer a:hover{color:var(--theme-foreground)}.book-footer .flex{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.book-footer .book-icon{width:.875rem;height:.875rem;filter:var(--icon-filter)}.book-toc{flex:0 0 var(--toc-width);min-width:0;font-size:.8125rem}.book-toc .book-toc-content{position:sticky;top:calc(var(--header-height) + 2rem);width:var(--toc-width);max-height:calc(100dvh - var(--header-height) - 4rem);padding:2rem 0 2rem 1rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--theme-line)transparent}.docs-toc-label{margin:0 0 .75rem;color:var(--theme-muted);font:600 .6875rem/1.4 var(--font-mono);letter-spacing:.09em;text-transform:uppercase}.book-toc nav>ul{margin:0;padding:0;border-left:1px solid var(--theme-line);list-style:none}.book-toc nav ul ul{padding-left:.75rem}.book-toc nav a{display:block;margin-left:-1px;padding:.25rem 0 .25rem .75rem;border-left:2px solid transparent;color:var(--theme-muted);font-size:.75rem;line-height:1.45;text-decoration:none}.book-toc nav a:hover,.book-toc nav a[href]:hover{color:var(--theme-foreground);opacity:1}.book-toc nav a.active{border-left-color:var(--theme-brand);color:var(--theme-foreground)}@media(max-width:1180px){.book-toc{display:none}}@media(max-width:56rem){.docs-container{display:block;width:min(var(--site-width),calc(100% - 2 * var(--site-gutter)))}.book-menu{visibility:hidden;margin-inline-start:calc(-1 * var(--menu-width));position:relative;z-index:2}.book-menu .book-menu-content{position:fixed;top:var(--header-height);bottom:0;left:0;width:var(--menu-width);max-height:none;padding:1rem;background:var(--theme-surface);border-right:1px solid var(--theme-line)}body:has(#menu-control:checked) .book-menu{visibility:visible}body:has(#menu-control:checked) .book-menu .book-menu-content{transform:none;box-shadow:var(--shadow-panel)}body:has(#menu-control:checked) .book-page{opacity:.25}.book-menu-overlay{display:none;position:fixed;inset:var(--header-height)0 0;z-index:1}body:has(#menu-control:checked) .book-menu-overlay{display:block}.book-header{display:block}.book-page{max-width:none;padding-top:1rem}.docs-toc-mobile{display:block}}@media(max-width:640px){.book-article{font-size:.9375rem}.book-article h2{margin-top:2rem}.book-article table{font-size:.875rem}}:root{--hero-paper:light-dark(
    color-mix(in srgb, #ffffff 96%, #f2e2c8),
    color-mix(in srgb, #161616 99%, #efe3cf)
  );--paper-noise-fine:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='1' intercept='1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E")}.landing-main{width:100%;padding:0}.landing-wrap{width:min(var(--site-width),calc(100% - 2 * var(--site-gutter)));margin-inline:auto}.hero{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:clamp(4rem,9vw,7rem)0 clamp(3rem,6vw,5rem);text-align:center}.hero::before{content:"";position:absolute;inset:0;z-index:-1;background-color:var(--hero-paper);background-image:var(--paper-noise-fine);background-size:160px 160px;background-blend-mode:multiply;border-bottom:1px solid var(--theme-line)}@media(prefers-color-scheme:dark){.hero::before{background-image:none}}.hero-title{max-width:20ch;margin:0 auto;color:var(--theme-foreground);font-size:clamp(2.6rem,6.4vw,5rem);font-weight:600;line-height:1.02;letter-spacing:-.035em;text-wrap:balance}.hero-title__lead{display:block}.hero-title__rotator{display:inline-grid;overflow:hidden;padding-bottom:.08em;color:var(--theme-brand);vertical-align:bottom}.hero-title__word{grid-area:1/1;white-space:nowrap;opacity:0;transform:translateY(115%);transition:transform 520ms cubic-bezier(.22,1,.36,1),opacity 380ms ease}.hero-title__word[data-state=enter]{opacity:0;transform:translateY(115%);transition:none}.hero-title__word[data-state=leave]{opacity:0;transform:translateY(-115%)}.hero-title__word[data-state=active]{opacity:1;transform:translateY(0)}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.25rem}.install{display:inline-flex;align-items:center;gap:.625rem;max-width:100%;margin-top:1.25rem;padding:.625rem .875rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface);color:var(--theme-muted);font-family:var(--font-mono);font-size:.8125rem;text-align:left;cursor:pointer;overflow-x:auto;transition:border-color 120ms ease,background-color 120ms ease}.install:hover{border-color:color-mix(in srgb,var(--theme-foreground) 30%,var(--theme-line));background:var(--theme-surface-muted)}.install:focus-visible{outline:2px solid var(--theme-brand);outline-offset:2px}.install code{padding:0;border:0;background:0 0;color:var(--theme-foreground);font-family:inherit;font-size:inherit;overflow-wrap:anywhere;white-space:normal}.install .prompt{color:var(--theme-brand)}.install__action{flex:none;padding-left:.625rem;border-left:1px solid var(--theme-line);color:var(--theme-muted);font:600 .625rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.install:hover .install__action{color:var(--theme-foreground)}.install[data-copied=true]{border-color:color-mix(in srgb,var(--theme-positive) 55%,var(--theme-line))}.install[data-copied=true] .prompt,.install[data-copied=true] .install__action{color:var(--theme-positive)}.section{padding:clamp(3rem,7vw,5rem)0;border-bottom:1px solid var(--theme-line)}.section--agent{border-bottom:0}.section-head{max-width:46rem;margin-bottom:2rem}.section-head h2,.agent h2{margin:0 0 .75rem;color:var(--theme-foreground);font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:600;line-height:1.1;letter-spacing:-.035em;text-wrap:balance}.section-head p,.agent p{margin:0;color:var(--theme-muted);font-size:1rem;line-height:1.65}.section-head a,.agent a{color:var(--theme-brand)}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.feature-card{padding:1.375rem;border:1px solid var(--theme-line);border-radius:var(--radius);background:var(--theme-surface)}.feature-card h3{margin:.875rem 0 .375rem;color:var(--theme-foreground);font-size:1rem;font-weight:600;letter-spacing:-.02em}.feature-card p{margin:0;color:var(--theme-muted);font-size:.9375rem;line-height:1.55}.feature-card a{color:var(--theme-brand)}.feature-icon{display:inline-grid;place-items:center;width:2rem;height:2rem;color:var(--theme-brand)}.feature-icon svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.agent{display:grid;grid-template-columns:minmax(0,.9fr)minmax(0,1.1fr);gap:clamp(2rem,5vw,4rem);align-items:center}.agent h2{margin-top:.5rem}.checks{display:grid;gap:.5rem;margin:1.25rem 0 0;padding:0;list-style:none}.checks li{display:flex;align-items:flex-start;gap:.625rem;color:var(--theme-muted);font-size:.9375rem}.checks li::before{flex:none;width:5px;height:5px;margin-top:.6em;border-radius:50%;background:var(--theme-brand);content:""}.agent .agent-link{margin-top:2rem;font-size:.9375rem;font-weight:600}.terminal{overflow:hidden;border:1px solid var(--theme-chrome,#25272d);border-radius:var(--radius);background:#141414;box-shadow:var(--shadow-panel)}.terminal-bar{display:flex;gap:.375rem;padding:.75rem 1rem;border-bottom:1px solid #2e2e2e}.terminal-bar span{width:.5rem;height:.5rem;border-radius:50%;background:#3b3b3b}.terminal pre{margin:0;padding:1rem 1.125rem 1.25rem;color:#ebebeb;font-family:var(--font-mono);font-size:.8125rem;line-height:1.7;overflow-x:auto}.terminal code{padding:0;border:0;background:0 0;color:inherit;font-family:inherit}.terminal .prompt{color:#7ee787}.terminal .comment{color:#a3a3a3}@media(max-width:900px){.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.agent{grid-template-columns:1fr}}@media(max-width:640px){.hero{padding-top:3rem}.hero-title{max-width:none;font-size:clamp(1.65rem,7.5vw,2.4rem)}.feature-grid{grid-template-columns:1fr}.install{justify-content:center;width:100%}.terminal pre{overflow-wrap:anywhere;white-space:pre-wrap}}