/*!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:16px;--font-size-smaller:0.875rem;--font-size-smallest:0.75rem;--body-font-weight:400;--border-radius:0.375rem;--space-1:1px;--space-4:0.25rem;--space-8:0.5rem;--space-16:1rem;--space-24:1.5rem;--body-min-width:20rem;--container-max-width:80rem;--menu-width:18.5rem;--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{position:fixed;top:0;left:0;height:1px;width:1px;overflow:hidden;opacity:0;pointer-events:none}@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-family:inter,-apple-system,BlinkMacSystemFont,segoe ui,noto sans,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji;font-feature-settings:"cv02","cv03","cv04","cv11","ss01";font-weight:var(--body-font-weight);line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:color-mix(in srgb,var(--sr-primary) 25%,transparent);color:var(--sr-ink)}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;font-size:1em}a[href]:hover, a[role=button]:hover{opacity:.5}ul{padding-inline-start:.75em;margin-inline-start:.5em;border-inline-start:1px solid var(--sr-border)}}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:var(--space-4)0 var(--space-8);padding-inline-start:var(--space-4);a{display:flex;align-items:center;color:var(--sr-ink)}img{height:2.5rem;width:auto;max-width:100%;display:block}.brand-logo-dark{display:none}}:root[data-theme=dark] .book-brand .brand-logo-light,:root[data-theme$=dark] .book-brand .brand-logo-light{display:none}:root[data-theme=dark] .book-brand .brand-logo-dark,:root[data-theme$=dark] .book-brand .brand-logo-dark{display:block}@media(prefers-color-scheme:dark){:root[data-theme=auto] .book-brand .brand-logo-light{display:none}:root[data-theme=auto] .book-brand .brand-logo-dark{display:block}}#TableOfContents{font-size:.8125rem;b{font-weight:400}}#TableOfContents a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.book-menu{flex:0 0 var(--menu-width);font-size:.875rem;border-inline-end:1px solid var(--sr-border)}.book-menu .book-menu-content{width:var(--menu-width);padding:var(--space-8)}.book-menu ul{list-style:none;padding:0;margin:0}.book-menu li{margin:1px 0}.book-menu nav>ul a,.book-menu nav label{display:flex;align-items:center;gap:8px;min-height:2rem;padding:6px 12px;border-radius:var(--border-radius);color:var(--sr-ink);font-weight:400;line-height:1.4285;min-width:0;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .1s ease}.book-menu nav label>a{-webkit-tap-highlight-color:transparent}.book-menu nav>ul a:active,.book-menu nav label:active{background-color:var(--sr-surface-2)}.book-menu nav>ul a,.book-menu nav label>a,.book-menu nav label{opacity:1;transition:background-color .1s ease}.book-menu nav>ul a[href]:hover,.book-menu nav>ul a[role=button]:hover,.book-menu nav label:hover{background:var(--sr-surface-2);text-decoration:none;opacity:1}.book-menu nav label>a[href],.book-menu nav label>a[href]:hover,.book-menu nav label>a[role=button],.book-menu nav label>a[role=button]:hover,.book-menu nav label:hover>a[href],.book-menu nav label:hover>a[role=button]{background:0 0;opacity:1}.book-menu nav>ul a.active,.book-menu nav label:has(>a.active){background:color-mix(in srgb,var(--sr-primary) 10%,transparent);color:var(--sr-ink);font-weight:600;position:relative}.book-menu nav>ul a.active::before,.book-menu nav label:has(>a.active)::before{content:"";position:absolute;inset-inline-start:0;top:4px;bottom:4px;width:2px;border-radius:2px;background:var(--sr-primary)}.book-menu nav label>a,.book-menu nav label>a.active,.book-menu nav label>a:hover{flex:auto;min-width:0;display:flex;align-items:center;gap:6px;padding:0;min-height:0;border-radius:0;background:0 0;color:inherit;font:inherit;font-weight:inherit;position:static;text-decoration:none}.book-menu nav label>a::before,.book-menu nav label>a.active::before{content:none}.book-menu .book-menu-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:auto}.book-menu nav .book-icon{height:1em;width:1em;flex-shrink:0}.book-menu nav label>img:last-child{height:1em;width:1em;flex-shrink:0;margin-inline-start:auto;opacity:.6;transition:transform .1s ease-in-out}.book-menu input.toggle+label+ul{display:none}.book-menu input.toggle:checked+label>img:last-child{transform:rotate(90deg)}.book-menu input.toggle:checked+label+ul{display:block}.book-menu nav>ul ul{margin-inline-start:6px;padding-inline-start:4px;border-inline-start:1px solid var(--sr-border)}.book-menu .book-section-flat>a,.book-menu .book-section-flat>span,.book-menu .book-section-flat>label{display:block;padding:4px 8px;margin:var(--space-8)0 var(--space-4);font-size:.6875rem;font-weight:600;color:var(--sr-ink-2);text-transform:uppercase;letter-spacing:.04em;background:0 0!important;cursor:default;min-height:0}.book-menu .book-section-flat>a::before,.book-menu .book-section-flat>label::before{content:none!important}.book-menu .book-section-flat>a:hover,.book-menu .book-section-flat>label:hover{background:0 0}.book-menu .book-section-flat>ul{margin:0;padding:0;border-inline-start:none}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, > span, > label{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:0;label{line-height:0;padding:var(--space-8)}h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 var(--space-16);font-size:1.1rem}.book-icon{height:1.5em;width:1.5em}}@media screen and (max-width:56rem){.book-header{background:var(--sr-surface);box-shadow:0 1px 0 var(--sr-border),0 2px 10px rgba(15,23,42,4%);border-bottom:none}.book-header>div{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;min-height:3.5rem;border-bottom:none;gap:.5rem}.book-header label{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;margin:0;border-radius:.55rem;line-height:1;cursor:pointer;color:var(--sr-ink);transition:background .15s ease;flex:0 0 2.75rem;box-sizing:border-box}.book-header label:hover,.book-header label:active{background:color-mix(in srgb,var(--sr-primary) 10%,transparent)}.book-header label .book-icon{height:1.4rem;width:1.4rem;display:block;margin:0}.book-header label:empty{visibility:hidden}.book-header h3{flex:auto;min-width:0;margin:0 .25rem;padding:0;font-size:1rem;font-weight:600;line-height:1.2;text-align:center;color:var(--sr-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-header+*{margin-top:1rem}.book-page{padding:0 0 1rem}.book-article,.book-footer{padding-left:.9rem;padding-right:.9rem}}.book-search{margin:0 0 var(--space-8);padding-bottom:var(--space-8);border-bottom:1px solid var(--sr-border)}.book-search-trigger{display:flex;align-items:center;gap:var(--space-8);width:100%;padding:var(--space-8);border:var(--space-1)solid var(--sr-border);border-radius:calc(var(--border-radius) * 1.2);background:var(--sr-surface-2);color:var(--gray-500);font:inherit;text-align:start;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;span{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.book-icon{width:1em;height:1em;opacity:.6}&:hover, &:focus-visible{border-color:var(--sr-primary);outline:none}&:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--sr-primary) 20%,transparent)}}.book-search-trigger kbd,.search-dialog kbd{padding:0 .4em;border:var(--space-1)solid var(--sr-border);border-radius:4px;background:var(--sr-surface);font:inherit;font-size:.75em;line-height:1.6;color:var(--gray-500)}.book-header-search{display:flex;padding:var(--space-8);border:0;background:0 0;line-height:0;cursor:pointer}html.search-open{overflow:hidden}.search-dialog{width:min(42rem,calc(100vw - 2rem));max-height:min(36rem,calc(100dvh - 4rem));margin:8vh auto auto;padding:0;border:var(--space-1)solid var(--sr-border);border-radius:12px;background:var(--sr-surface);color:var(--body-font-color);box-shadow:0 20px 50px rgba(15,23,42,.25);overflow:hidden;text-align:start;&[open]{display:flex;flex-direction:column}&::backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(2px)}}.search-box{display:flex;align-items:center;gap:var(--space-8);padding:12px var(--space-16);border-bottom:var(--space-1)solid var(--sr-border);.book-icon{width:1.15em;height:1.15em;opacity:.6}input{flex:1;min-width:0;padding:var(--space-4)0;border:0;background:0 0;color:var(--body-font-color);font:inherit;font-size:1.05rem;outline:none;&::-webkit-search-cancel-button{display:none}}}.search-spinner{width:1em;height:1em;border:2px solid transparent;border-top-color:var(--body-font-color);border-radius:50%;animation:spin 1s ease infinite}.search-close{padding:2px 8px;border:var(--space-1)solid var(--sr-border);border-radius:6px;background:var(--sr-surface-2);color:var(--gray-500);font:inherit;font-size:.75rem;cursor:pointer}.search-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-8);overscroll-behavior:contain}.search-group{padding:var(--space-4)var(--space-8)var(--space-8)}.search-group-title{margin:var(--space-4)0 var(--space-8);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gray-500)}.search-quick,.search-chips,.search-results{margin:0;padding:0;list-style:none}.search-quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:var(--space-4);a{display:block;padding:var(--space-8)12px;border-radius:8px;background:var(--sr-surface-2);color:var(--body-font-color);text-decoration:none;&:hover, &:focus-visible{background:color-mix(in srgb,var(--sr-primary) 12%,transparent);color:var(--sr-primary);outline:none}}}.search-chips{display:flex;flex-wrap:wrap;gap:var(--space-8);button{padding:var(--space-4)12px;border:var(--space-1)solid var(--sr-border);border-radius:999px;background:0 0;color:var(--body-font-color);font:inherit;font-size:.875rem;cursor:pointer;&:hover, &:focus-visible{border-color:var(--sr-primary);color:var(--sr-primary);outline:none}}}.search-results{li a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:8px;color:var(--body-font-color);text-decoration:none}li[aria-selected=true] a{background:color-mix(in srgb,var(--sr-primary) 12%,transparent)}mark{padding:0 1px;border-radius:2px;background:color-mix(in srgb,var(--color-accent-warning) 30%,transparent);color:inherit}}.search-result-meta{display:flex;max-width:100%;align-items:center;gap:var(--space-8);min-width:0;font-size:.75rem;color:var(--gray-500)}.search-crumbs{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.search-result-title{font-weight:600;color:var(--sr-primary)}.search-result-heading{font-size:.875rem;font-weight:500}.search-result-snippet{font-size:.8125rem;line-height:1.5;color:var(--gray-500);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-message{margin:0;padding:var(--space-16);color:var(--gray-500);text-align:center}.search-footer{display:flex;gap:var(--space-16);padding:var(--space-8)var(--space-16);border-top:var(--space-1)solid var(--sr-border);font-size:.75rem;color:var(--gray-500);kbd{margin-inline-end:2px}}@media screen and (max-width:35rem){.search-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.search-footer{display:none}}.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-toc-label{display:block;font-size:var(--font-size-smallest);font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--sr-ink);margin-bottom:var(--space-8);padding-bottom:var(--space-8);border-bottom:1px solid var(--sr-border)}#TableOfContents a,#TableOfContents a:visited{color:var(--sr-ink-2)}#TableOfContents a[href]:hover{color:var(--sr-ink);opacity:1}#TableOfContents ul ul a.toc-active::before{content:"";position:absolute;inset-inline-start:calc(-.609375rem - 1.5px);top:.35rem;bottom:.35rem;width:2px;border-radius:2px;background:var(--sr-ink)}#TableOfContents a.toc-active,#TableOfContents a.toc-active:visited{color:var(--sr-ink);font-size:.875rem;font-weight:500}.book-menu .book-menu-content,.book-toc .book-toc-content{position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.book-menu .book-menu-content::-webkit-scrollbar,.book-toc .book-toc-content::-webkit-scrollbar{width:0;height:0;display:none}.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,.book-toc{transition:flex-basis .2s ease-in-out}.book-menu-content,.book-toc-content{transition:.2s ease-in-out;transition-property:transform,margin,opacity,visibility,width;will-change:transform,margin,opacity}.book-sidebar-toggle{display:none}@media screen and (min-width:56.0625rem){:root{--sidebar-collapsed-width:2.5rem}.book-sidebar-toggle{display:flex;align-items:center;justify-content:center;height:2.5rem;padding:0;background:0 0;border:none;border-radius:var(--border-radius);cursor:pointer;color:var(--body-font-color);-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease;@media(hover:hover){&:hover{background:color-mix(in srgb,var(--sr-primary) 10%,var(--body-background));color:var(--sr-primary)}&:hover img{filter:var(--icon-filter,none)}}&:focus-visible{outline:2px solid var(--sr-primary);outline-offset:-2px}img{height:1.25rem;width:1.25rem;transition:transform .2s ease-in-out,filter .15s ease}}.book-menu-toggle,.book-toc-toggle{position:fixed;bottom:var(--space-8);width:1.75rem;height:1.75rem;padding:0;border:1px solid var(--sr-border);border-radius:var(--border-radius);background:var(--sr-surface);z-index:12;margin:0;display:inline-flex;align-items:center;justify-content:center}.book-menu-toggle{inset-inline-start:calc(var(--menu-width) - 1.75rem - var(--space-8))}.book-toc-toggle{inset-inline-end:calc(var(--toc-width) - 1.75rem - var(--space-8))}.book-menu-toggle:hover,.book-toc-toggle:hover{background:var(--sr-surface-2)}.book-menu .book-menu-content,.book-toc .book-toc-content{padding-bottom:calc(1.75rem + var(--space-16))}.book-menu-toggle img,.book-toc-toggle img{transform:rotate(0)}.book-menu-collapsed{.book-menu{flex-basis:var(--sidebar-collapsed-width)}.book-menu-content{width:var(--sidebar-collapsed-width);padding:0;> *{display:none}}.book-menu-toggle{inset-inline-start:calc(var(--sidebar-collapsed-width) - 1.75rem - var(--space-8));img{transform:rotate(180deg)}}}.book-toc-collapsed{.book-toc{flex-basis:var(--sidebar-collapsed-width)}.book-toc-content{width:var(--sidebar-collapsed-width);padding:0;> *{display:none}}.book-toc-toggle{inset-inline-end:calc(var(--sidebar-collapsed-width) - 1.75rem - var(--space-8));img{transform:rotate(180deg)}}}}@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:block;position:fixed;top:0;right:0;bottom:0;width:var(--toc-width);visibility:hidden;z-index:11;transform:translateX(var(--toc-width));transition:transform .2s ease-in-out,visibility .2s ease-in-out;.book-toc-content{position:relative;top:auto;bottom:auto;height:100%;background:var(--body-background)}}.book-header{display:block;position:sticky;top:0;z-index:10;background:var(--body-background)}.book-article :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:3.5rem}.book-post-container{flex-direction:column-reverse}#menu-control,#toc-control{display:inline}#menu-control:checked~main{.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}}#toc-control:checked~main{.book-toc{visibility:initial;transform:translateX(0);box-shadow:0 0 var(--space-8)rgba(0,0,0,.1)}.book-page{opacity:.25}.book-toc-overlay{display:block;position:fixed;top:0;bottom:0;left:0;right:0}}body[dir=rtl] #toc-control:checked~main{.book-toc{transform:translateX(calc(-1 * var(--toc-width)))}}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{top:var(--space-16)}}.book-breadcrumb{display:block;font-size:var(--font-size-smaller);line-height:1.5;margin:0 0 1rem;padding:0;background:0 0;border:0;color:var(--sr-ink-2);overflow:hidden;ol{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;list-style:none;padding:0;margin:0;width:100%;min-width:0;white-space:nowrap;overflow:hidden}&.is-scrolling{overflow:visible}&.is-scrolling ol{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}&.is-scrolling ol::-webkit-scrollbar{width:0;height:0;display:none}li{display:inline-flex;align-items:center;flex:none}li + li::before{content:"";flex:none;width:.38rem;height:.38rem;margin-inline:.1rem .55rem;border-top:1.5px solid;border-right:1.5px solid;transform:rotate(45deg);opacity:.45}a{color:var(--sr-ink-2);text-decoration:none;background:0 0;padding:.15rem 0;border-radius:0;white-space:nowrap;transition:color .15s ease}a:hover{color:var(--sr-ink);text-decoration:underline;text-underline-offset:3px;background:0 0}li[aria-current=page] a, li[aria-current=page] span{color:var(--sr-ink);font-weight:600;white-space:nowrap}li[aria-current=page] a:hover{color:var(--sr-ink);text-decoration:none;cursor:default}a.book-breadcrumb-home{display:inline-flex;align-items:center;justify-content:center;height:1.25rem;padding:0 2px;color:var(--sr-ink-2)}a.book-breadcrumb-home:hover{color:var(--sr-ink);text-decoration:none}a.book-breadcrumb-home svg{display:block}}[dir=rtl] .book-breadcrumb li+li::before{transform:rotate(-135deg)}@media(max-width:56rem){.book-breadcrumb{padding:.4rem .65rem;border:1px solid var(--sr-border);border-radius:var(--border-radius);margin-bottom:.75rem}}@media(max-width:30rem){.book-breadcrumb{margin-bottom:.75rem;font-size:.8125rem}}.book-scroll-top{position:fixed;right:1rem;bottom:1rem;z-index:50;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--sr-border);border-radius:999px;background:var(--sr-surface);color:var(--sr-ink);box-shadow:0 4px 14px rgba(15,23,42,.12);cursor:pointer;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.book-scroll-top[hidden]{display:none}.book-scroll-top:hover{background:color-mix(in srgb,var(--sr-primary) 10%,var(--sr-surface));transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.16)}.book-scroll-top:focus-visible{outline:2px solid var(--sr-primary);outline-offset:2px}.book-scroll-top .book-icon{width:1.25rem;height:1.25rem;display:block}@media(max-width:30rem){:root{--font-size:15.5px}}.book-related{text-align:start;margin-top:var(--space-16);padding-top:var(--space-16);border-top:var(--space-1)solid var(--gray-200)}.book-related-title{margin:0 0 var(--space-8);font-size:1rem;font-weight:600}.book-related-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:var(--space-8);margin:0;padding:0;list-style:none;a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;height:100%;margin:0;padding:var(--space-8)12px;border:var(--space-1)solid var(--gray-200);border-radius:var(--border-radius);color:var(--body-font-color);text-decoration:none}a:hover{border-color:var(--color-link)}}.book-page-nav-dir,.book-page-nav-sub{font-size:.8em;color:var(--gray-500)}.book-related-name,.book-page-nav-title{font-weight:600;color:var(--color-link)}.book-page-nav{text-align:start;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);margin-top:var(--space-16);a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0;padding:var(--space-8)12px;border:var(--space-1)solid var(--gray-200);border-radius:var(--border-radius);color:var(--body-font-color);text-decoration:none}a:hover{border-color:var(--color-link)}.next{grid-column:2;align-items:flex-end;text-align:end}}@media screen and (max-width:35rem){.book-page-nav{grid-template-columns:1fr;.next{grid-column:1}}}@supports((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){@media screen and (max-width:56rem){.book-header{background:color-mix(in srgb,var(--sr-surface) 70%,transparent);-webkit-backdrop-filter:saturate(180%)blur(14px);backdrop-filter:saturate(180%)blur(14px)}}}.sidebar-no-anim :is(.book-menu,.book-toc,.book-menu-content,.book-toc-content,.book-sidebar-toggle,.book-sidebar-toggle img){transition:none!important}.book-lastmod{display:inline-flex;align-items:center;gap:.4rem;margin-top:var(--space-16);font-size:var(--font-size-smaller);color:var(--sr-ink-2);.book-icon{width:.95rem;height:.95rem;opacity:.6}a, a:visited{color:inherit}}.book-page{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.book-footer{margin-top:auto}@media screen and (min-width:90rem){.book-page{min-height:calc(100vh - 2 * var(--space-16));min-height:calc(100dvh - 2 * var(--space-16))}}.katex-display{overflow-x:auto;overflow-y:hidden;padding-block:.25em}.katex-display>.katex{max-width:100%}.markdown{line-height:1.65;>:first-child, >section:first-child :first-child{margin-top:0}h1, h2, h3{letter-spacing:-.015em}h1, h2, h3, h4, h5, h6{font-weight:inherit;line-height:1.25;margin-top:1.5em;margin-bottom:var(--space-16);a.anchor{opacity:0;font-size:.75em;margin-inline-start:.25em}&:hover a.anchor, a.anchor:focus-visible{opacity:initial;text-decoration:none}}h1{font-size:clamp(1.375rem,1.1rem + 1vw,1.625rem);font-weight:600}h1:not(.sr-hero h1){padding-bottom:.65rem;border-bottom:1px solid var(--sr-border)}h2{font-size:clamp(1.25rem,1.1rem + .5vw,1.375rem);font-weight:600}h3{font-size:1.125rem;font-weight:600}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}.normal-text{font-size:1rem;font-weight:600;line-height:1.55;letter-spacing:0}h2:has(> .normal-text){margin-top:2em;margin-bottom:var(--space-8)}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:.2em .4em;background:var(--gray-100);border-radius:var(--border-radius);font-family:jetbrains mono,ui-monospace,SFMono-Regular,sf mono,Menlo,Consolas,liberation mono,monospace;font-size:.85em}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-x:auto;display:block;max-width:max-content;border-spacing:0;border-collapse:collapse;margin-top:var(--space-16);margin-bottom:var(--space-16);tr th{white-space:nowrap}tr th, tr td{padding:var(--space-8)var(--space-16);border:var(--space-1)solid var(--gray-200);text-align:start;vertical-align:middle;.katex{white-space:nowrap}}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{margin:var(--space-8)0 var(--space-16);border:var(--space-1)solid var(--sr-border);border-radius:var(--border-radius);background:var(--sr-surface);overflow:hidden;summary{display:block;position:relative;padding:.7rem var(--space-16).7rem 2.6rem;cursor:pointer;list-style:none;font-weight:600;line-height:1.4;color:var(--sr-primary);background:color-mix(in srgb,var(--sr-primary) 5%,var(--sr-surface));transition:background .15s ease;&::-webkit-details-marker{display:none}&::before{content:"›";position:absolute;inset-inline-start:var(--space-16);top:.78rem;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;font-size:1.1rem;line-height:1;transition:transform .15s ease-in-out}&:hover{background:color-mix(in srgb,var(--sr-primary) 10%,var(--sr-surface))}&:focus-visible{outline:2px solid var(--sr-primary);outline-offset:-2px}}&[open] summary{border-bottom:var(--space-1)solid var(--sr-border);&::before{transform:rotate(90deg)}}> .book-answer-body{padding:var(--space-8)var(--space-16)var(--space-16)}}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{container-type:inline-size}.markdown table tr th{white-space:normal}@container(max-width:600px){.markdown table {
    font-size: 0.92em;

    tr th,
    tr td {
      padding: var(--space-4) var(--space-8);
    }

    tr th {
      min-width: 3.5em;
    }
  }

  .markdown table.table-cards {
    display: block;
    max-width: 100%;
    overflow: visible;
    border: 0;

    
    thead,
    thead tr {
      display: block;
    }

    thead {
      position: sticky;
      top: var(--table-sticky-top, 0);
      z-index: 1;
      background: var(--body-background);
    }

    thead th {
      display: none;
    }

    thead th:first-child:not(:empty) {
      display: block;
      padding: var(--space-4) 2px;
      border: 0;
      font-size: 0.85em;
      color: var(--gray-500);
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

    tbody,
    tr,
    td {
      display: block;
    }

    tbody tr,
    tbody tr:nth-child(2n) {
      margin-bottom: var(--space-8);
      padding: var(--space-8) 12px;
      border: var(--space-1) solid var(--gray-200);
      border-radius: var(--border-radius);
      background: none;
    }

    tr td {
      padding: 2px 0;
      border: 0;
      text-align: start !important;

      .katex { white-space: normal; }
    }

    tr td[data-label]::before {
      content: attr(data-label) ": ";
      font-weight: 600;
      color: var(--gray-500);
    }

    
    tr td:first-child {
      font-weight: 600;
      padding-bottom: var(--space-4);
      margin-bottom: var(--space-4);
      border-bottom: var(--space-1) solid var(--gray-200);

      &::before { content: none; }
    }
  }
}@container(min-width:601px){.markdown table.table-cards {
    display: table;
    overflow: visible;

    thead th {
      position: sticky;
      top: var(--table-sticky-top, 0);
      z-index: 1;
      background: var(--body-background);
      
      box-shadow: inset 0 -1px 0 var(--gray-200), inset 0 1px 0 var(--gray-200);
    }

    .katex { white-space: normal; }
  }
}@media screen and (max-width:56rem){.markdown{--table-sticky-top:3.65rem}}.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)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:.35rem 1rem;border:var(--space-1)solid var(--color-link);border-radius:var(--border-radius);font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;&:hover{text-decoration:none;background:var(--sr-primary);color:#fff;border-color:var(--sr-primary)}}.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-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;display:flex;justify-content:center;left:var(--space-8);height:calc(var(--space-16) * 1.5);width:calc(var(--space-16) * 1.5);padding:var(--space-4);border-radius:var(--space-8);white-space:nowrap;line-height:var(--space-16);color:var(--body-background);background:var(--gray-500);outline:var(--space-4)solid var(--body-background)}>li{border-inline-start:var(--space-1)solid 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-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}}}.index-list{list-style:none;padding:0;margin:var(--space-16)0;> li{margin:0;border-bottom:var(--space-1)solid var(--gray-200);&:last-child{border-bottom:none}> a{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8)var(--space-16);border-radius:var(--border-radius);transition:background .15s ease;&[href], &[href]:visited{color:var(--body-font-color);text-decoration:none}&[href]:hover{text-decoration:none;background:var(--gray-100)}.index-list-img{width:calc(var(--space-16) * 1.5);height:calc(var(--space-16) * 1.5);flex-shrink:0;color:var(--sr-primary)}.index-list-title{font-weight:var(--body-font-weight);color:var(--sr-primary)}.index-list-desc{margin-left:auto;font-size:var(--font-size-smaller);color:var(--gray-500);max-width:50%;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}}}.index-grid{display:grid;gap:1rem;margin:var(--space-16)0;&.index-col-1{grid-template-columns:1fr}&.index-col-2{grid-template-columns:repeat(2,1fr)}&.index-col-3{grid-template-columns:repeat(3,1fr)}&.index-col-4{grid-template-columns:repeat(4,1fr)}@media(max-width:768px){&.index-col-3,&.index-col-4{grid-template-columns:repeat(2,1fr)}}> a{display:flex;flex-direction:row;align-items:center;gap:var(--space-16);text-align:left;padding:1rem 1.15rem;border:var(--space-1)solid var(--sr-border);border-radius:var(--border-radius);background:var(--sr-surface-2);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease;&[href], &[href]:visited{color:var(--body-font-color);text-decoration:none}&[href]:hover{text-decoration:none;background:color-mix(in srgb,var(--sr-primary) 4%,var(--sr-surface-2));border-color:color-mix(in srgb,var(--sr-primary) 55%,transparent);transform:translateY(calc(var(--space-1) * -2));box-shadow:0 10px 22px rgba(15,23,42,8%)}.index-card-img{width:calc(var(--space-16) * 2);height:calc(var(--space-16) * 2);flex-shrink:0;padding:.35rem;background:color-mix(in srgb,var(--sr-primary) 10%,transparent);border-radius:.5rem;box-sizing:content-box;color:var(--sr-primary)}.index-card-title{font-weight:600;line-height:1.35;color:var(--sr-primary)}}@media(max-width:480px){grid-template-columns: 1fr !important; gap: .5rem;>a{padding:.625rem .8rem;gap:.7rem}>a .index-card-img{width:1.35rem;height:1.35rem;padding:.32rem;border-radius:.45rem}>a .index-card-title{font-size:.9375rem;line-height:1.35}}}.index-compact{display:flex;flex-wrap:wrap;gap:var(--space-8);margin:var(--space-16)0;> a{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-4)var(--space-16);border:var(--space-1)solid var(--gray-200);border-radius:calc(var(--space-16) * 1.5);font-size:var(--font-size-smaller);transition:all .2s ease;&[href], &[href]:visited{color:var(--body-font-color);text-decoration:none}&[href]:hover{text-decoration:none;background:var(--gray-100);transform:translateY(calc(var(--space-1) * -1))}.index-compact-img{width:calc(var(--space-16) * 1.1);height:calc(var(--space-16) * 1.1);flex-shrink:0;color:var(--sr-primary)}.index-compact-title{white-space:nowrap;color:var(--sr-primary)}}}.index-list-img svg,.index-card-img svg,.index-compact-img svg{display:block;width:100%;height:100%}.index-error{color:var(--color-accent-caution);padding:var(--space-8)var(--space-16);border:var(--space-1)solid var(--color-accent-caution);border-radius:var(--border-radius);background:color-mix(in srgb,var(--color-accent-caution) 10%,transparent);font-size:var(--font-size-smaller)}.markdown .book-answer-body{overflow:auto}.function-plot-wrapper{width:100%;margin:var(--space-16)0;svg{max-width:100%;height:auto;display:block}}.function-plot-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;padding:4px 0 8px;font-size:13px;color:var(--body-font-color);.fplot-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}}.jxgbox[data-geom]{width:100%;margin:var(--space-16)0;background:var(--body-background)!important;border-color:var(--gray-200)!important;border-radius:var(--border-radius)!important;touch-action:auto!important}@media(prefers-color-scheme:dark){.function-plot-wrapper svg{.axis path, .axis line, .tick line, .origin line, path.domain{stroke:#b8bfcc!important}text{fill:#e5e9f0!important}.background{fill:transparent!important}}.jxgbox svg text{fill:var(--body-font-color)!important}}.markdown figure.diagram{margin:var(--space-16)auto;max-width:var(--diagram-w,480px);text-align:center;svg{display:block;width:100%;height:auto;color:var(--body-font-color);font-family:inherit}text{fill:currentColor;stroke:none;font-size:14px}text.small{font-size:12px}text.bold{font-weight:600}.s{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.dash{stroke-dasharray:5 4}.thick{stroke-width:2.4}.blue{--c:var(--color-accent-note)}.green{--c:var(--color-accent-tip)}.orange{--c:var(--color-accent-warning)}.red{--c:var(--color-accent-caution)}.purple{--c:var(--color-accent-important)}.muted{--c:var(--gray-500)}.s:is(.blue, .green, .orange, .red, .purple, .muted){stroke:var(--c)}text:is(.blue, .green, .orange, .red, .purple, .muted){fill:var(--c)}.dot{fill:currentColor;stroke:none}.dot:is(.blue, .green, .orange, .red, .purple, .muted){fill:var(--c)}.fb{fill:var(--color-accent-note);fill-opacity:.14}.fg{fill:var(--color-accent-tip);fill-opacity:.16}.fo{fill:var(--color-accent-warning);fill-opacity:.16}.fr{fill:var(--color-accent-caution);fill-opacity:.14}.fp{fill:var(--color-accent-important);fill-opacity:.14}.fm{fill:var(--gray-500);fill-opacity:.14}figcaption{margin-top:var(--space-8);font-size:.875em;color:var(--gray-500)}}@media print{.book-menu,.book-footer,.book-toc{display:none}.book-header,.book-header aside{display:block}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]{--sr-primary:#0969da;--sr-primary-soft:#0550ae;--sr-ink:#1f2328;--sr-ink-2:#656d76;--sr-surface:#ffffff;--sr-surface-2:#f6f8fa;--sr-border:#d0d7de;--body-background:var(--sr-surface);--body-font-color:var(--sr-ink);--color-link:var(--sr-primary);--color-visited-link:var(--sr-primary-soft);--gray-100:#f6f8fa;--gray-200:#d0d7de;--gray-500:#656d76;--color-accent-default:#656d76;--color-accent-note:#0969da;--color-accent-tip:#1a7f37;--color-accent-important:#8250df;--color-accent-warning:#9a6700;--color-accent-caution:#cf222e}:root[data-theme=dark]{--sr-primary:#4493f8;--sr-primary-soft:#58a6ff;--sr-ink:#e6edf3;--sr-ink-2:#8d96a0;--sr-surface:#0d1117;--sr-surface-2:#161b22;--sr-border:#30363d;--body-background:var(--sr-surface);--body-font-color:var(--sr-ink);--icon-filter:brightness(0) invert(1);--color-link:var(--sr-primary);--color-visited-link:var(--sr-primary-soft);--gray-100:#161b22;--gray-200:#30363d;--gray-500:#8d96a0;--color-accent-default:#8d96a0;--color-accent-note:#4493f8;--color-accent-tip:#3fb950;--color-accent-important:#a371f7;--color-accent-warning:#d29922;--color-accent-caution:#f85149}@media(prefers-color-scheme:dark){:root[data-theme=auto]{--sr-primary:#4493f8;--sr-primary-soft:#58a6ff;--sr-ink:#e6edf3;--sr-ink-2:#8d96a0;--sr-surface:#0d1117;--sr-surface-2:#161b22;--sr-border:#30363d;--body-background:var(--sr-surface);--body-font-color:var(--sr-ink);--icon-filter:brightness(0) invert(1);--color-link:var(--sr-primary);--color-visited-link:var(--sr-primary-soft);--gray-100:#161b22;--gray-200:#30363d;--gray-500:#8d96a0;--color-accent-default:#8d96a0;--color-accent-note:#4493f8;--color-accent-tip:#3fb950;--color-accent-important:#a371f7;--color-accent-warning:#d29922;--color-accent-caution:#f85149}}}.markdown ul.book-chapters{margin:var(--space-16)0 var(--space-24);padding:0;list-style:none;border:1px solid var(--sr-border);border-radius:var(--border-radius);overflow:hidden;li{display:flex;align-items:center;gap:.75rem;margin:0;padding:.55rem .9rem;border-top:1px solid var(--sr-border);&:first-child{border-top:0}}.book-chapter-no{flex:0 0 1.75rem;font-variant-numeric:tabular-nums;color:var(--sr-ink-2)}.book-chapter-title{flex:auto;min-width:0;font-weight:500}.book-chapter-label{display:block;font-size:var(--font-size-smallest);font-weight:600;letter-spacing:.02em;color:var(--sr-ink-2)}.book-chapter-type{flex:none;padding:.05rem .35rem;border:1px solid var(--sr-border);border-radius:.3rem;font-size:.6875rem;font-weight:600;letter-spacing:.04em;color:var(--sr-ink-2)}}