@charset "UTF-8";/*!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.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}.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}a[href],a[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}nav ul li{position:relative}nav ul a{padding:.5em 0;display:flex;transition:opacity .1s ease-in-out}nav ul a[href]:hover,nav ul a[role=button]:hover{opacity:.5}nav ul 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}ul.pagination .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)}.book-brand img{height:1.5em;width:1.5em}.book-menu{flex:0 0 var(--menu-width);font-size:var(--font-size-smaller)}.book-menu .book-menu-content{width:var(--menu-width);padding:var(--space-16)}.book-menu a,.book-menu label{color:inherit;word-wrap:break-word;display:flex}.book-menu a.active{color:var(--color-link)}.book-menu label>img:last-child{height:1em;width:1em;cursor:pointer;align-self:center;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}body[dir=rtl] .book-menu input.toggle+label>img:last-child{transform:rotate(180deg)}body[dir=rtl] .book-menu input.toggle:checked+label>img:last-child{transform:rotate(90deg)}.book-section-flat{margin:var(--space-16)0}.book-section-flat>a,.book-section-flat>span,.book-section-flat>label{font-weight:bolder}.book-section-flat>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 .book-post-date img{height:1em;width:1em;margin-inline-end:.5em}.book-post .book-post-content{margin-top:var(--space-16)}.book-post .book-post-thumbnail{flex:0 0 34%}.book-post .book-post-thumbnail img{width:100%;aspect-ratio:4/3;object-fit:cover}.book-header{margin-bottom:var(--space-16)}.book-header label{line-height:0}.book-header h3{overflow:hidden;text-overflow:ellipsis;margin:0 var(--space-16)}.book-layout-landing .book-header{display:block;position:relative;z-index:1}.book-layout-landing .book-header nav>ul{display:flex;gap:var(--space-16);justify-content:end}.book-layout-landing .book-header nav>ul>li{display:block;white-space:nowrap}.book-layout-landing .book-header nav>ul>li>ul{display:none;position:absolute;padding:0}.book-layout-landing .book-header nav>ul>li:hover>ul,.book-layout-landing .book-header nav>ul>li:focus-within>ul{display:block}.book-search{position:relative;margin:var(--space-8)0}.book-search 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)}.book-search input:required+.book-search-spinner{display:block}.book-search .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}.book-search ul a{padding-bottom:0}.book-search small{opacity:.5}.book-toc{flex:0 0 var(--toc-width);font-size:var(--font-size-smallest)}.book-toc .book-toc-content{width:var(--toc-width);padding:var(--space-16)}.book-toc img{height:1em;width:1em}.book-toc 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)}.book-footer 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}.book-languages 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 .book-menu-content{background:var(--body-background)}.book-toc{display:none}.book-header{display:block}.book-post-container{flex-direction:column-reverse}#menu-control,#toc-control{display:inline}#menu-control:checked~main .book-menu{visibility:initial}#menu-control:checked~main .book-menu .book-menu-content{transform:translateX(var(--menu-width));box-shadow:0 0 var(--space-8)rgba(0,0,0,.1)}#menu-control:checked~main .book-page{opacity:.25}#menu-control:checked~main .book-menu-overlay{display:block;position:fixed;top:0;bottom:0;left:0;right:0}#toc-control:checked~main .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{top:var(--space-16)}}.markdown{line-height:1.6}.markdown>:first-child,.markdown>section:first-child :first-child{margin-top:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{font-weight:inherit;line-height:1;margin-top:1.5em;margin-bottom:var(--space-16)}.markdown h1 a.anchor,.markdown h2 a.anchor,.markdown h3 a.anchor,.markdown h4 a.anchor,.markdown h5 a.anchor,.markdown h6 a.anchor{opacity:0;font-size:.75em;margin-inline-start:.25em}.markdown h1:hover a.anchor,.markdown h1 a.anchor:focus-visible,.markdown h2:hover a.anchor,.markdown h2 a.anchor:focus-visible,.markdown h3:hover a.anchor,.markdown h3 a.anchor:focus-visible,.markdown h4:hover a.anchor,.markdown h4 a.anchor:focus-visible,.markdown h5:hover a.anchor,.markdown h5 a.anchor:focus-visible,.markdown h6:hover a.anchor,.markdown h6 a.anchor:focus-visible{opacity:initial;text-decoration:none}.markdown h1{font-size:2rem}.markdown h2{font-size:1.5rem}.markdown h3{font-size:1.25rem}.markdown h4{font-size:1.125rem}.markdown h5{font-size:1rem}.markdown h6{font-size:.875rem}.markdown b,.markdown optgroup,.markdown strong{font-weight:bolder}.markdown a{text-decoration:none}.markdown a[href]:hover{text-decoration:underline}.markdown a[href]:visited{color:var(--color-visited-link)}.markdown img{max-width:100%;height:auto}.markdown 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}.markdown 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}.markdown pre:focus{outline-style:auto;outline-color:var(--color-link)}.markdown pre code{padding:0;border:0;background:0 0}.markdown p{word-wrap:break-word}.markdown 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)}.markdown blockquote :first-child{margin-top:0}.markdown blockquote :last-child{margin-bottom:0}.markdown table{overflow:auto;display:block;border-spacing:0;border-collapse:collapse;margin-top:var(--space-16);margin-bottom:var(--space-16)}.markdown table tr th,.markdown table tr td{padding:var(--space-8)var(--space-16);border:var(--space-1)solid var(--gray-200);text-align:start}.markdown table tr:nth-child(2n){background:var(--gray-100)}.markdown hr{height:var(--space-1);border:none;background:var(--gray-200)}.markdown ul,.markdown ol{padding-inline-start:calc(var(--space-16) * 2);word-wrap:break-word}.markdown dl dt{font-weight:bolder;margin-top:var(--space-16)}.markdown dl dd{margin-inline-start:0;margin-bottom:var(--space-16)}.markdown .highlight{direction:ltr;unicode-bidi:embed;border-radius:var(--border-radius)}.markdown .highlight table tbody{border:var(--space-1)solid var(--gray-200)}.markdown .highlight table tr pre{border:0}.markdown .highlight table tr td pre code>span{display:flex}.markdown .highlight table tr td:nth-child(1) pre{margin:0;padding-inline-end:0}.markdown .highlight table tr td:nth-child(2) pre{margin:0;padding-inline-start:0}.markdown details{padding:var(--space-16);margin:var(--space-16)0;border:var(--space-1)solid var(--gray-200);border-radius:var(--border-radius)}.markdown details summary{line-height:1;padding:var(--space-16);margin:calc(-1 * var(--space-16));cursor:pointer;list-style:none}.markdown details summary::before{content:"›";display:inline-block;margin-inline-end:var(--space-8);transition:transform .1s ease-in-out}.markdown details[open] summary{margin-bottom:0}.markdown details[open] summary::before{transform:rotate(90deg)}.markdown figure{margin:var(--space-16)0}.markdown figure 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}.markdown .book-tabs label{display:inline-block;padding:var(--space-8)var(--space-16);border-bottom:var(--space-1)transparent;cursor:pointer}.markdown .book-tabs .book-tabs-content{order:999;width:100%;border-top:var(--space-1)solid var(--gray-100);padding:var(--space-16);display:none}.markdown .book-tabs input[type=radio]:checked+label{border-bottom:var(--space-1)solid var(--color-link)}.markdown .book-tabs input[type=radio]:checked+label+.book-tabs-content{display:block}.markdown .book-columns{gap:var(--space-16)}.markdown .book-columns>div{margin:var(--space-16)0;min-width:calc(var(--body-min-width) * .66)}.markdown .book-columns>ul{list-style:none;display:flex;padding:0;flex-wrap:wrap;gap:var(--space-16)}.markdown .book-columns>ul>li{flex:1 1;min-width:calc(var(--body-min-width) * .66)}.markdown 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}.markdown a.book-btn[href]:hover{text-decoration:none}.markdown .book-hint{border-color:var(--accent-color);background-color:color-mix(in srgb,var(--accent-color) 10%,transparent)}.markdown .book-hint.note{--accent-color:var(--color-accent-note)}.markdown .book-hint.tip{--accent-color:var(--color-accent-tip)}.markdown .book-hint.important{--accent-color:var(--color-accent-important)}.markdown .book-hint.warning{--accent-color:var(--color-accent-warning)}.markdown .book-hint.caution{--accent-color:var(--color-accent-caution)}.markdown .book-hint.default{--accent-color:var(--color-accent-default)}.markdown .book-hint.info{--accent-color:var(--color-accent-info)}.markdown .book-hint.success{--accent-color:var(--color-accent-success)}.markdown .book-hint.danger{--accent-color:var(--color-accent-danger)}.markdown .book-badge{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)}.markdown .book-badge.note{--accent-color:var(--color-accent-note)}.markdown .book-badge.tip{--accent-color:var(--color-accent-tip)}.markdown .book-badge.important{--accent-color:var(--color-accent-important)}.markdown .book-badge.warning{--accent-color:var(--color-accent-warning)}.markdown .book-badge.caution{--accent-color:var(--color-accent-caution)}.markdown .book-badge.default{--accent-color:var(--color-accent-default)}.markdown .book-badge.info{--accent-color:var(--color-accent-info)}.markdown .book-badge.success{--accent-color:var(--color-accent-success)}.markdown .book-badge.danger{--accent-color:var(--color-accent-danger)}.markdown .book-badge span{display:inline-block;padding:0 var(--space-8)}.markdown .book-badge span.book-badge-value{color:var(--body-background);background-color:var(--accent-color)}.markdown .book-steps{position:relative}.markdown .book-steps>ol{counter-reset:steps;list-style:none;padding-inline-start:calc(var(--space-16) + var(--space-4));margin-top:calc(var(--space-16) * 2)}.markdown .book-steps>ol>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)}.markdown .book-steps>ol>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)}.markdown .book-steps>ol>li:last-child{border:0}.markdown .book-card{display:block;overflow:hidden;height:100%;border-radius:var(--border-radius);border:var(--space-1)solid var(--gray-200)}.markdown .book-card>a{display:block;height:100%}.markdown .book-card>a[href],.markdown .book-card>a[href]:visited{color:var(--body-font-color)}.markdown .book-card>a[href]:hover{text-decoration:none;background:var(--gray-100)}.markdown .book-card>a>img,.markdown .book-card>img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}.markdown .book-card .markdown-inner{padding:var(--space-16)}.markdown .book-image input+img{cursor:zoom-in;transition:transform .2s ease-in-out}.markdown .book-image 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)}.markdown .book-asciinema{margin:var(--space-16)0}.markdown .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}.markdown .book-codeblock-filename a{color:var(--body-font-color)}.markdown .book-codeblock-filename+.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}.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]{--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:#1e66f5;--color-visited-link:#8839ef;--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:#8caaee;--color-visited-link:#ca9ee6;--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:#8caaee;--color-visited-link:#ca9ee6;--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}}}body{min-height:100vh;min-height:-webkit-fill-available}main.container{min-height:100vh;min-height:-webkit-fill-available}.book-page{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;min-height:100vh;min-height:-webkit-fill-available}.book-page>article{-webkit-box-flex:1;-webkit-flex:1;flex:1}:root[data-theme=light]{--gray-200:#d0d3d6}:root[data-theme=catppuccin-light]{--gray-200:#b0b4be}:root[data-theme=ayu-light]{--gray-200:#c9cacb}:root[data-theme=contrast-light]{--gray-200:#b0b0b0}:root[data-theme=github-light]{--gray-200:#b5bcc2}:root[data-theme=light] .highlight pre,:root[data-theme=catppuccin-light] .highlight pre,:root[data-theme=ayu-light] .highlight pre,:root[data-theme=contrast-light] .highlight pre,:root[data-theme=github-light] .highlight pre{background:var(--gray-100)!important;color:var(--body-font-color)!important}:root[data-theme=dark] .highlight pre,:root[data-theme=catppuccin-dark] .highlight pre,:root[data-theme=ayu-dark] .highlight pre,:root[data-theme=contrast-dark] .highlight pre,:root[data-theme=github-dark] .highlight pre{background:var(--gray-100)!important;color:var(--body-font-color)!important}.book-codeblock-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;align-items:center;background:var(--gray-200);border:var(--space-1)solid var(--gray-200);border-bottom:0;border-radius:var(--border-radius)var(--border-radius)0 0;padding:2px var(--space-8)}:root[data-theme=light] .book-codeblock-copy,:root[data-theme=catppuccin-light] .book-codeblock-copy,:root[data-theme=ayu-light] .book-codeblock-copy,:root[data-theme=contrast-light] .book-codeblock-copy,:root[data-theme=github-light] .book-codeblock-copy{color:var(--gray-700)}.book-codeblock-header .book-codeblock-filename{border:none;background:0 0;padding:0;border-radius:0}.book-codeblock-header+*{margin-top:0}.book-codeblock-header+* pre{margin-top:0;border-top-left-radius:0;border-top-right-radius:0;border-top:0}.book-codeblock-copy{background:0 0;border:none;color:var(--gray-500);cursor:pointer;padding:2px 8px;font-size:.8em;border-radius:var(--border-radius)}.book-codeblock-copy:hover{color:var(--body-font-color);background:var(--gray-100)}img.book-icon[src$=".png"]{filter:none;-webkit-filter:none}a img.book-icon[src$=".png"]{width:auto;height:1.2em}.pan-link{word-wrap:break-word;overflow-wrap:break-word;overflow-wrap:anywhere;word-break:break-all;max-width:100%}.pan-link a{word-break:break-all}.pan-info{padding:4px 0}.changelog{position:relative;padding-left:1.5rem;margin:1.5rem 0}.changelog::before{content:'';position:absolute;left:calc(.3rem - 1px);top:.25rem;bottom:.25rem;width:2px;background:var(--gray-200)}.changelog h2{position:relative;font-size:1.1rem;font-weight:600;color:var(--color-accent-note);margin:1.5rem 0 .25rem;padding-left:0;line-height:1.4}.changelog h2::before{content:'';position:absolute;left:calc(.3rem - 1.5rem);top:.77rem;width:.6rem;height:.6rem;background:var(--body-background);border:2px solid var(--color-accent-note);border-radius:2px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.changelog>h2:first-child{margin-top:0}.changelog h2 code{display:inline-block;font-size:.75rem;font-weight:500;padding:.15rem .5rem;margin-right:.35rem;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--border-radius);color:var(--body-font-color);vertical-align:middle;line-height:1.4}.changelog h2 code:nth-of-type(2){background:var(--color-accent-note);border-color:var(--color-accent-note);color:var(--body-background)}.changelog ul{margin:.5rem 0 1rem;padding-left:1.2rem;list-style:disc}.changelog ul li{margin:.25rem 0;font-size:.9375rem;line-height:1.6;color:var(--body-font-color)}@media(max-width:480px){.changelog{padding-left:1.2rem}.changelog::before{left:calc(.2rem - 1px)}.changelog h2::before{left:calc(.2rem - 1.2rem);top:.7rem;width:.5rem;height:.5rem;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.changelog h2{font-size:1rem}}:root[data-theme*=light] button#theme-switcher,:root[data-theme*=light] button#back-to-top{background:#fff!important;background-color:#fff!important;background-image:none!important;color:#111827!important;border:1px solid #d1d5db!important;box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;user-select:none!important;transition:transform .2s ease!important;-webkit-transition:-webkit-transform .2s ease!important;outline:none!important;opacity:1!important;filter:none!important;-webkit-filter:none!important}:root[data-theme*=dark] button#theme-switcher,:root[data-theme*=dark] button#back-to-top{background:#3f3f46!important;background-color:#3f3f46!important;background-image:none!important;color:#fafafa!important;border:1px solid #52525b!important;box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;user-select:none!important;transition:transform .2s ease!important;-webkit-transition:-webkit-transform .2s ease!important;outline:none!important;opacity:1!important;filter:none!important;-webkit-filter:none!important}:root[data-theme*=light] button#theme-switcher:hover,:root[data-theme*=light] button#theme-switcher:active,:root[data-theme*=light] button#theme-switcher:focus,:root[data-theme*=light] button#theme-switcher:focus-visible,:root[data-theme*=light] button#back-to-top:hover,:root[data-theme*=light] button#back-to-top:active,:root[data-theme*=light] button#back-to-top:focus,:root[data-theme*=light] button#back-to-top:focus-visible{background:#fff!important;background-color:#fff!important;background-image:none!important;color:#111827!important;border:1px solid #d1d5db!important;box-shadow:none!important;outline:none!important;opacity:1!important;filter:none!important;-webkit-filter:none!important;mix-blend-mode:normal!important;text-shadow:none!important;-webkit-appearance:none!important;appearance:none!important;-webkit-tap-highlight-color:transparent!important}:root[data-theme*=dark] button#theme-switcher:hover,:root[data-theme*=dark] button#theme-switcher:active,:root[data-theme*=dark] button#theme-switcher:focus,:root[data-theme*=dark] button#theme-switcher:focus-visible,:root[data-theme*=dark] button#back-to-top:hover,:root[data-theme*=dark] button#back-to-top:active,:root[data-theme*=dark] button#back-to-top:focus,:root[data-theme*=dark] button#back-to-top:focus-visible{background:#3f3f46!important;background-color:#3f3f46!important;background-image:none!important;color:#fafafa!important;border:1px solid #52525b!important;box-shadow:none!important;outline:none!important;opacity:1!important;filter:none!important;-webkit-filter:none!important;mix-blend-mode:normal!important;text-shadow:none!important;-webkit-appearance:none!important;appearance:none!important;-webkit-tap-highlight-color:transparent!important}:root[data-theme=github-light]{color-scheme:light;--body-background:#ffffff;--body-font-color:#1f2328;--icon-filter:none;--color-link:#0969da;--color-visited-link:#8250df;--gray-100:#f6f8fa;--gray-200:#d0d7de;--gray-500:#656d76;--gray-700:#1f2328;--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=github-dark]{color-scheme:dark;--body-background:#0d1117;--body-font-color:#c9d1d9;--icon-filter:brightness(0) invert(1);--color-link:#58a6ff;--color-visited-link:#a371f7;--gray-100:#161b22;--gray-200:#30363d;--gray-500:#8b949e;--gray-700:#c9d1d9;--color-accent-default:#8b949e;--color-accent-note:#58a6ff;--color-accent-tip:#2ea043;--color-accent-important:#a371f7;--color-accent-warning:#d2991d;--color-accent-caution:#da3633}.book-menu nav a.active{color:var(--body-font-color);font-weight:600}.book-posts-list{flex:1}.term-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;gap:.6rem;margin-bottom:.5rem}.term-header>*+*{margin-left:.6rem}.term-title{margin:0;font-size:1.25rem;font-weight:600}.term-count{font-size:.85rem;color:var(--gray-500)}.book-post-card{display:block;padding:1rem 1.25rem;margin:.75rem 0;border:1px solid var(--gray-200);border-radius:var(--border-radius);text-decoration:none;color:inherit;-webkit-transition:background .15s,border-color .15s;transition:background .15s,border-color .15s}.book-post-card:hover{background:var(--gray-100);border-color:var(--color-link);text-decoration:none}.post-card-title{margin:0;font-size:1.1rem;font-weight:600;line-height:1.5;color:var(--body-font-color)}.book-post-card:hover .post-card-title{text-decoration:underline}.post-card-meta{margin-top:.35rem;display:-webkit-box;display:-webkit-flex;display:flex;gap:.5rem;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;align-items:center;font-size:.85rem;color:var(--gray-500)}.post-card-meta>*+*{margin-left:.5rem}.post-card-summary{margin-top:.5rem;font-size:.9rem;color:var(--gray-500);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tag{display:inline-block;font-size:.75rem;padding:.15rem .5rem;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--border-radius);color:var(--gray-500)}.tag.category{background:var(--gray-100);border-color:var(--gray-500);color:var(--gray-500)}.book-post-meta{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;gap:.75rem;font-size:.85rem;color:var(--gray-500);margin-bottom:1.5rem;-webkit-flex-wrap:wrap;flex-wrap:wrap}.book-post-meta>*+*{margin-left:.75rem}.bs-icon{display:inline-block;vertical-align:-.125em;line-height:1}.bs-icon svg{width:100%;height:100%;display:block}a.book-btn.btn-block[href]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;gap:6px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}a.book-btn.btn-block[href]>*+*{margin-left:6px}.btn-row{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:8px}.btn-row>*+*{margin-left:8px;margin-top:8px}.btn-row a.book-btn[href]{-webkit-box-flex:1;-webkit-flex:1 1 200px;flex:1 1 200px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;gap:6px;-webkit-box-sizing:border-box;box-sizing:border-box}.btn-row a.book-btn[href]>*+*{margin-left:6px}.book-gallery{margin:1.5rem 0}.gallery-viewport{position:relative}.gallery-track{display:-webkit-box;display:-webkit-flex;display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;-webkit-scroll-snap-type:x mandatory;border-radius:6px;scrollbar-width:none}.gallery-track::-webkit-scrollbar{display:none}.gallery-track img{-webkit-flex:0 0 auto;flex:none;max-height:260px;border:1px solid var(--gray-200);border-radius:6px;scroll-snap-align:start;-webkit-scroll-snap-align:start}.gallery-track a{-webkit-flex:none;flex:none;display:block;line-height:0;scroll-snap-align:start;-webkit-scroll-snap-align:start}.gallery-track a img{scroll-snap-align:unset;-webkit-scroll-snap-align:unset}.gallery-caption a{flex:none;color:var(--body-font-color)}.gallery-caption a:hover{color:var(--body-font-color);text-decoration:none}.gallery-nav{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:2;width:32px;height:32px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;border:none;border-radius:50%;background:rgba(128,128,128,.7);color:var(--body-font-color);font-size:20px;line-height:1;cursor:pointer;opacity:1;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;-webkit-appearance:none;appearance:none}@supports(background:color-mix(in srgb,#000 50%,transparent)){.gallery-nav{background:color-mix(in srgb,var(--gray-100) 80%,transparent)}}.gallery-prev{left:8px}.gallery-next{right:8px}.gallery-nav:hover{color:var(--body-font-color);filter:none;-webkit-filter:none;-webkit-transform:translateY(-50%)scale(1.1);transform:translateY(-50%)scale(1.1)}.gallery-viewport.at-start .gallery-prev,.gallery-viewport.at-end .gallery-next{opacity:0;pointer-events:none}.gallery-caption{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;margin-top:8px;color:var(--body-font-color);font-size:.9rem}.gallery-caption>*+*{margin-left:8px}.gallery-caption-icon{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;width:18px;height:18px}.gallery-caption-icon svg{width:100%;height:100%}@media screen and (max-width:896px){#menu-control:checked~main .book-menu{visibility:visible!important;display:block!important;z-index:25!important}#menu-control:checked~main .book-menu .book-menu-content{-webkit-transform:translateX(var(--menu-width));transform:translateX(var(--menu-width));-webkit-box-shadow:0 0 var(--space-8)rgba(0,0,0,.1);box-shadow:0 0 var(--space-8)rgba(0,0,0,.1);background:var(--body-background)!important;background-color:var(--body-background)!important;position:relative!important;position:-webkit-sticky!important;position:sticky!important;top:0!important;height:100vh!important;height:100dvh!important;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:25!important}body[dir=rtl] #menu-control:checked~main .book-menu .book-menu-content{-webkit-transform:translateX(calc(-1 * var(--menu-width)));transform:translateX(calc(-1 * var(--menu-width)))}#menu-control:checked~main .book-page{opacity:.25!important;-webkit-filter:opacity(.25);filter:opacity(.25)}#menu-control:checked~main .book-menu-overlay{display:block!important;position:fixed!important;top:0!important;bottom:0!important;left:0!important;right:0!important;z-index:20!important;background-color:rgba(0,0,0,.45)!important;background-color:color-mix(in srgb,#000 45%,transparent)!important;cursor:pointer}.book-header label[for=menu-control],.book-header label[for=toc-control]{position:relative;z-index:30;display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:44px;min-height:44px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.book-header label[for=menu-control]>img.book-icon,.book-header label[for=menu-control]>.book-icon,.book-header label[for=toc-control]>img.book-icon,.book-header label[for=toc-control]>.book-icon{pointer-events:none}}.book-menu-content,.book-toc-content{will-change:auto!important;transition:none!important;-webkit-transition:none!important;transition-property:none!important;-webkit-transition-property:none!important;transition-duration:0s!important;-webkit-transition-duration:0s!important;animation:none!important}.book-menu-overlay{transition:none!important;-webkit-transition:none!important;will-change:auto!important;animation:none!important}@media screen and (max-width:896px){#menu-control:checked~main .book-page{opacity:1!important;-webkit-filter:none!important;filter:none!important}#menu-control:checked~main .book-menu .book-menu-content{-webkit-box-shadow:none!important;box-shadow:none!important}#menu-control:checked~main .book-menu{-webkit-margin-start:0!important;margin-inline-start:0!important;margin-left:0!important}body[dir=rtl] #menu-control:checked~main .book-menu{-webkit-margin-start:0!important;margin-inline-start:0!important;margin-right:0!important}#menu-control:checked~main .book-menu .book-menu-content{-webkit-transform:none!important;transform:none!important}body[dir=rtl] #menu-control:checked~main .book-menu .book-menu-content{-webkit-transform:none!important;transform:none!important}}