@charset "UTF-8";:root{--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-300:#c7cfd3;--gray-500:#6f767e;--gray-800:#495057;--color-link:#0055bb;--color-visited-link:#5500bb;--color-page-link:#adb5bd;--color-social-link:#fff;--link-background:rgba(0, 85, 187, 0.1);--body-background:white;--body-font-color:black;--toc-font-color:black;--toc-active-color:black;--icon-filter:none;--box-shadow:rgba(0, 0, 0, 0.1);--lineno-font-color:rgba(0, 0, 0, 0.5)}[data-theme=dark]{--gray-100:#23272a;--gray-200:#2d3339;--gray-300:#3d444a;--gray-500:#6c757d;--gray-800:#adb5bd;--color-link:#8ecfff;--color-visited-link:#a7aaff;--color-page-link:black;--color-social-link:#222;--link-background:rgba(0, 85, 187, 0.1);--body-background:#181a1b;--body-font-color:#f5f6fa;--toc-font-color:#acacac;--toc-active-color:white;--icon-filter:brightness(0) invert(1);--box-shadow:rgba(255, 255, 255, 0.1);--lineno-font-color:rgba(255, 255, 255, 0.5)}[data-theme=light]{--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-300:#c7cfd3;--gray-500:#6f767e;--gray-800:#495057;--color-link:#0055bb;--color-visited-link:#5500bb;--color-page-link:#adb5bd;--color-social-link:#fff;--link-background:rgba(0, 85, 187, 0.1);--body-background:white;--body-font-color:black;--toc-font-color:black;--toc-active-color:black;--icon-filter:none;--box-shadow:rgba(0, 0, 0, 0.1);--lineno-font-color:rgba(0, 0, 0, 0.5)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--gray-100:#23272a;--gray-200:#2d3339;--gray-300:#3d444a;--gray-500:#6c757d;--gray-800:#adb5bd;--color-link:#8ecfff;--color-visited-link:#a7aaff;--color-page-link:black;--color-social-link:#222;--link-background:rgba(0, 85, 187, 0.1);--body-background:#181a1b;--body-font-color:#f5f6fa;--toc-font-color:#acacac;--toc-active-color:white;--icon-filter:brightness(0) invert(1);--box-shadow:rgba(255, 255, 255, 0.1);--lineno-font-color:rgba(255, 255, 255, 0.5)}}/*!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}.flex{display:flex}.flex.gap{gap:1rem}.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-left{text-align:left}.text-right{text-align:right}.text-small,small{font-size:.875em}.hidden{display:none}input.toggle{height:0;width:0;overflow:hidden;opacity:0;position:absolute}.clearfix::after{content:"";display:table;clear:both}html{font-size:16px;scroll-behavior:auto;touch-action:manipulation;scrollbar-gutter:stable}body{min-width:20rem;color:var(--body-font-color);background:var(--body-background);font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:400}a{flex:auto;align-items:center;gap:.5rem;text-decoration:none;cursor:default}a[href],a[role=button]{color:var(--color-link);cursor:pointer}:focus{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}nav ul{padding:0;margin:0;list-style:none}nav ul li{position:relative}nav ul a{padding:.5em 0;display:flex}nav ul a[href]:hover,nav ul a[role=button]:hover{opacity:.5}nav ul ul{padding-inline-start:1.5em}.container{max-width:80rem;margin:0 auto}.book-icon{filter:var(--icon-filter);font-size:1.25rem}.book-brand{margin-top:0;margin-bottom:1rem}.book-brand img{height:1.5em;width:1.5em}.book-menu{position:fixed;top:0;left:0;width:16rem;z-index:100;flex-shrink:0;font-size:.875rem}.book-menu .book-menu-content{width:16rem;padding:2rem;background:var(--gray-200);position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-menu a,.book-menu label{color:inherit;word-wrap:break-word}.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::after{content:"◂"}body[dir=rtl] .book-menu input.toggle:checked+label::after{transform:rotate(-90deg)}.book-section-flat{margin:1rem 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{flex:1;max-width:56rem;min-width:20rem;margin:0 auto;flex-grow:1;padding:1rem}.book-post{margin-bottom:4rem}.book-post .book-post-date img{height:1em;width:1em;margin-inline-end:.5em}.book-post .book-post-content{margin-top:1rem}.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{display:none;margin-bottom:1rem}.book-header label{line-height:0}.book-header h3{overflow:hidden;text-overflow:ellipsis;margin:0 1rem}.markdown .site-title[href],.book-header .site-title[href]{color:var(--body-font-color)}.markdown .site-title[href]:visited,.book-header .site-title[href]:visited{color:var(--body-font-color)}.markdown .site-title[href]:hover,.book-header .site-title[href]:hover{text-decoration:none}.book-layout-landing .book-header{display:block;position:relative;z-index:1}.book-layout-landing .book-header nav>ul{display:flex;gap:1rem;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{display:block}.post-header{text-align:center;padding-bottom:1.5rem;border-bottom:1px solid var(--gray-200)}.post-header-category{margin-bottom:.5rem;font-size:1rem;font-weight:400}.markdown .post-header-category-link[href]{color:var(--body-font-color)}.markdown .post-header-category-link[href]:visited{color:var(--body-font-color)}.markdown .post-header-category-link[href]:hover{text-decoration:none}.post-header-title{font-size:2.5rem;font-weight:700;color:var(--body-font-color)}@media(max-width:56rem){.post-header-title{font-size:2rem}}.markdown .post-header-title{margin:0}.post-header-date{color:var(--gray-500);font-size:.875rem;font-weight:400;margin-top:.5rem}.book-search{position:relative;margin:.5rem 0;border-bottom:1px solid transparent;z-index:10}.book-search .search-input-container{position:relative;display:flex;align-items:center}.book-search input{width:100%;padding:.5rem;margin:0 .5rem 0 0;border:1px solid var(--gray-500);border-radius:.25rem;background:var(--gray-300);color:var(--body-font-color)}.book-search input:required+.book-search-spinner{display:block}.book-search .book-search-btn{background:0 0;border:none;color:var(--body-font-color);cursor:pointer}.book-search .book-search-btn:hover{color:var(--color-link)}.book-search .book-search-btn i{font-size:1.5rem}.book-search .book-search-spinner{position:absolute;top:0;margin:.5rem;margin-inline-start:calc(100% - 1.5rem);width:1rem;height:1rem;border:1px solid transparent;border-top-color:var(--body-font-color);border-radius:50%;animation:spin 1s ease infinite}@keyframes spin{100%{transform:rotate(360deg)}}.book-search #book-search-results{position:absolute;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:.25rem;z-index:11}.book-search #book-search-results a{font-size:.875rem;padding:.5rem}.book-search .book-search-more{border-top:1px solid var(--gray-200)}.book-search .book-search-more a{color:var(--color-link);font-size:.75rem;font-weight:500}.search-header{margin-bottom:1rem}.search-header h1{font-size:2.5rem;margin-bottom:.5rem}.search-header .search-query-info p{font-size:1.125rem}.search-no-results{text-align:center;padding:1.5rem}.search-no-results p{font-size:1.25rem}.book-toc{position:fixed;top:0;right:0;width:16rem;z-index:100;margin-right:3rem;overflow-x:hidden;font-size:.875rem}.book-toc .book-toc-content{width:16rem;padding:1rem;position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-toc img{height:1em;width:1em}.book-toc nav>ul>li:first-child{margin-top:0}.book-toc a{color:#000}#TableOfContents{margin-top:2rem;padding-left:1rem}#TableOfContents a{color:var(--toc-font-color)}#TableOfContents a.active{color:var(--toc-active-color);font-weight:700}.book-toc #TableOfContents{border-left:1px solid var(--toc-font-color)}.book-nav,.book-mobile-nav{position:fixed;bottom:0;right:0;z-index:100;margin-bottom:1rem;margin-right:1rem;display:flex;align-items:flex-end;flex-direction:column}.book-nav .book-nav-btn3,.book-mobile-nav .book-nav-btn3{width:2.5rem;height:2.5rem;margin:.25rem;border:0;border-radius:50%;background:var(--gray-200);color:var(--body-font-color);cursor:pointer}.book-nav .book-nav-btn3 i,.book-mobile-nav .book-nav-btn3 i{font-size:1.25rem}.book-nav .book-nav-btn3:hover,.book-mobile-nav .book-nav-btn3:hover{color:var(--color-link)}.book-nav .book-nav-btn3:active,.book-mobile-nav .book-nav-btn3:active{transform:scale(.95)}.book-mobile-nav{visibility:hidden}.book-mobile-nav .book-nav-btn3{opacity:.7}.book-footer{padding-top:1rem;font-size:.875rem}.book-footer a{margin:.25rem 0;padding:.25rem 0}.book-comments{margin-top:1rem}.book-copyright{margin-top:1rem}.book-languages{margin-bottom:1rem}.book-languages span{padding:0}.book-languages ul{padding-inline-start:1.5em}#disqus_thread{color-scheme:none;margin-top:2.5rem}.pagination{display:flex;justify-content:center;align-items:center;gap:.25rem;padding:2rem 0;margin-top:2rem;border-top:1px solid var(--gray-200);max-width:100%}.pagination .pagination-nav,.pagination .pagination-page{padding:.5rem;border:1px solid var(--gray-200);border-radius:4px;flex-grow:0;flex-shrink:0;text-align:center;white-space:nowrap}.pagination .pagination-nav:hover,.pagination .pagination-page:hover{background:var(--gray-200);border-color:var(--color-link)}.markdown a[href].pagination-link{color:var(--body-font-color);text-decoration:none}.markdown a[href]:hover.pagination-link{color:var(--body-font-color);text-decoration:none}.markdown a[href]:visited.pagination-link{color:var(--body-font-color);text-decoration:none}.pagination-nav{width:4rem}.pagination-nav.disabled{border:1px solid var(--gray-200);color:var(--gray-500);cursor:not-allowed}.pagination-nav i{font-size:.75rem}.pagination-pages{display:flex;gap:.25rem}.pagination-pages .pagination-page{min-width:2.5rem}.pagination-pages .pagination-page.current{background:var(--color-page-link);border-color:var(--color-link);cursor:default}#pagination-anchor{position:relative;top:-100px;visibility:hidden}@media(max-width:56rem){.pagination{flex-wrap:wrap;gap:.5rem}.pagination-pages{flex-wrap:wrap;justify-content:center;width:100%}.pagination-nav{order:2}}.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:93.6rem){.book-toc{visibility:hidden}.book-mobile-nav{visibility:visible}.book-header{display:block;position:sticky;z-index:100;opacity:.9;top:0;background-color:var(--body-background);padding:1rem}#menu-control,#toc-control{display:inline}#menu-icon{pointer-events:none;opacity:.5;cursor:default}#toc-icon{cursor:pointer}#toc-control:focus~main label[for=toc-control]{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}#toc-control:checked~main .book-header aside{display:block}.book-article{margin-top:2rem}}@media screen and (max-width:88.8rem){.book-menu{visibility:hidden;margin-inline-start:-16rem;z-index:1}.book-menu .book-menu-content{background:var(--body-background)}.book-post-container{flex-direction:column-reverse}#menu-control{display:inline}#menu-icon{pointer-events:auto;opacity:1;cursor:pointer}#menu-control:focus~main label[for=menu-control]{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}#menu-control:checked~main .book-menu{visibility:initial}#menu-control:checked~main .book-menu .book-menu-content{transform:translateX(16rem);box-shadow:0 0 .5rem rgba(0,0,0,.1)}#menu-control:checked~main .book-page{opacity:.25}#menu-control:checked~main .book-menu-overlay{display:block;position:absolute;top:0;bottom:0;left:0;right:0}body[dir=rtl] #menu-control:checked~main .book-menu .book-menu-content{transform:translateX(-16rem)}}@media screen and (min-width:80rem){.book-page,.book-menu .book-menu-content,.book-toc .book-toc-content{padding:2rem 1rem}}@media print{.book-menu,.book-footer,.book-toc{display:none}.book-header,.book-header aside{display:block}main{display:block!important}}.markdown{line-height:1.6}.markdown>:first-child{margin-top:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{font-weight:400;line-height:1;margin-top:1.5em;margin-bottom:1rem}.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;vertical-align:middle;text-decoration:none}.markdown h1:hover a.anchor,.markdown h1 a.anchor:focus,.markdown h2:hover a.anchor,.markdown h2 a.anchor:focus,.markdown h3:hover a.anchor,.markdown h3 a.anchor:focus,.markdown h4:hover a.anchor,.markdown h4 a.anchor:focus,.markdown h5:hover a.anchor,.markdown h5 a.anchor:focus,.markdown h6:hover a.anchor,.markdown h6 a.anchor:focus{opacity:initial}.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:0 .25rem;background:var(--gray-200);border-radius:.25rem;font-size:.875em}.markdown pre{padding:1rem;background:var(--gray-100);border-radius:.25rem;overflow-x:auto}.markdown pre code{padding:0;background:0 0}.markdown p{word-wrap:break-word}.markdown blockquote{margin:1rem 0;padding:.5rem 1rem .5rem .75rem;border-inline-start:.25rem solid var(--gray-200);border-radius:.25rem}.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:1rem;margin-bottom:1rem}.markdown table tr th,.markdown table tr td{padding:.5rem 1rem;border:1px solid var(--gray-200);text-align:start}.markdown table tr:nth-child(2n){background:var(--gray-100)}.markdown hr{height:1px;border:none;background:var(--gray-200)}.markdown ul,.markdown ol{padding-inline-start:2rem;word-wrap:break-word}.markdown dl dt{font-weight:bolder;margin-top:1rem}.markdown dl dd{margin-inline-start:0;margin-bottom:1rem}.markdown .highlight{direction:ltr;unicode-bidi:embed;border-radius:.25rem}.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:1rem;border:1px solid var(--gray-200);border-radius:.25rem}.markdown details summary{line-height:1;padding:1rem;margin:-1rem;cursor:pointer;list-style:none}.markdown details summary::before{content:"›";display:inline-block;margin-inline-end:.5rem;transition:transform .1s ease-in-out}.markdown details[open] summary{margin-bottom:0}.markdown details[open] summary::before{transform:rotate(90deg)}.markdown figure{margin:1rem 0}.markdown figure figcaption{margin-top:1rem}.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-expand{margin-top:1rem;margin-bottom:1rem;border:1px solid var(--gray-200);border-radius:.25rem;overflow:hidden}.markdown .book-expand .book-expand-head{background:var(--gray-100);padding:.5rem 1rem;cursor:pointer}.markdown .book-expand .book-expand-content{display:none;padding:1rem}.markdown .book-expand input[type=checkbox]:checked+.book-expand-content{display:block}.markdown .book-tabs{margin-top:1rem;margin-bottom:1rem;border:1px solid var(--gray-200);border-radius:.25rem;overflow:hidden;display:flex;flex-wrap:wrap}.markdown .book-tabs label{display:inline-block;padding:.5rem 1rem;border-bottom:1px transparent;cursor:pointer}.markdown .book-tabs .book-tabs-content{order:999;width:100%;border-top:1px solid var(--gray-100);padding:1rem;display:none}.markdown .book-tabs input[type=radio]:checked+label{border-bottom:1px solid var(--color-link)}.markdown .book-tabs input[type=radio]:checked+label+.book-tabs-content{display:block}.markdown .book-tabs input[type=radio]:focus+label{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}.markdown .book-columns{gap:1rem}.markdown .book-columns>div{margin:1rem 0;min-width:13.2rem}.markdown .book-columns>ul{list-style:none;display:flex;padding:0;flex-wrap:wrap;gap:1rem}.markdown .book-columns>ul>li{flex:1 1;min-width:13.2rem}.markdown a.book-btn[href]{display:inline-block;font-size:.875rem;color:var(--color-link);line-height:2rem;padding:0 1rem;border:1px solid var(--color-link);border-radius:.25rem;cursor:pointer}.markdown a.book-btn[href]:hover{text-decoration:none}.markdown .book-hint.default{border-color:#64748b;background-color:rgba(100,116,139,.1)}.markdown .book-hint.info{border-color:#4486dd;background-color:rgba(68,134,221,.1)}.markdown .book-hint.success{border-color:#3bad3b;background-color:rgba(59,173,59,.1)}.markdown .book-hint.warning{border-color:#f59e42;background-color:rgba(245,158,66,.1)}.markdown .book-hint.danger{border-color:#d84747;background-color:rgba(216,71,71,.1)}.markdown .book-hint.note{border-color:#4486dd;background-color:rgba(68,134,221,.1)}.markdown .book-hint.tip{border-color:#3bad3b;background-color:rgba(59,173,59,.1)}.markdown .book-hint.important{border-color:#8144dd;background-color:rgba(129,68,221,.1)}.markdown .book-hint.caution{border-color:#d84747;background-color:rgba(216,71,71,.1)}.markdown .book-badge{display:inline-block;font-size:.875rem;font-weight:400;vertical-align:middle;border-radius:.25rem;overflow:hidden;text-wrap:nowrap;color:var(--body-font-color)}.markdown .book-badge span{display:inline-block;padding:0 .5rem}.markdown .book-badge span.book-badge-title{--background-opacity:0.1}.markdown .book-badge span.book-badge-value{--background-opacity:1;color:var(--body-background)}.markdown .book-badge.default span{background-color:rgba(100,116,139,var(--background-opacity))}.markdown .book-badge.info span{background-color:rgba(68,134,221,var(--background-opacity))}.markdown .book-badge.success span{background-color:rgba(59,173,59,var(--background-opacity))}.markdown .book-badge.warning span{background-color:rgba(245,158,66,var(--background-opacity))}.markdown .book-badge.danger span{background-color:rgba(216,71,71,var(--background-opacity))}.markdown .book-badge.note span{background-color:rgba(68,134,221,var(--background-opacity))}.markdown .book-badge.tip span{background-color:rgba(59,173,59,var(--background-opacity))}.markdown .book-badge.important span{background-color:rgba(129,68,221,var(--background-opacity))}.markdown .book-badge.caution span{background-color:rgba(216,71,71,var(--background-opacity))}.markdown .book-steps{position:relative}.markdown .book-steps>ol{counter-reset:steps;list-style:none;padding-inline-start:1.25rem;margin-top:2rem}.markdown .book-steps>ol>li::before{content:counter(steps);counter-increment:steps;position:absolute;display:flex;justify-content:center;left:.5rem;height:1.5rem;width:1.5rem;padding:.25rem;border-radius:.5rem;white-space:nowrap;line-height:1rem;color:var(--body-background);background:var(--gray-500);outline:.25rem solid var(--body-background)}.markdown .book-steps>ol>li{border-inline-start:1px solid var(--gray-500);padding-inline-start:3rem;padding-bottom:2rem}.markdown .book-steps>ol>li:last-child{border:0}.markdown .book-card{display:block;overflow:hidden;height:100%;border-radius:.25rem;border:1px solid var(--gray-200)}.markdown .book-card[href],.markdown .book-card[href]:visited{color:var(--body-font-color)}.markdown .book-card[href]:hover{text-decoration:none;background:var(--gray-100)}.markdown .book-card>img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}.markdown .book-card .markdown-inner,.markdown .book-card figure figcaption,.markdown figure .book-card figcaption,.markdown .book-card .book-steps>ol>li{padding:1rem}.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:1rem}.markdown .book-hero{min-height:24rem;align-content:center}.markdown .book-hero h1{font-size:3em}.markdown .book-codeblock-filename{background:var(--gray-200);font-size:.875rem;margin-top:1rem;padding:.25rem 1rem;border-start-start-radius:.25rem;border-start-end-radius:.25rem}.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}.list-header{text-align:center;padding-bottom:1rem;margin-bottom:3rem;border-bottom:1px solid var(--body-font-color)}.list-header h1{font-size:2.5rem;margin-bottom:.5rem}.list-header p{font-size:1.25rem}.list-count{font-style:normal;font-weight:700;color:var(--color-link)}.post-list{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:3rem}.post-item{border:1px solid var(--gray-200);border-radius:8px;padding:1.5rem;background:var(--body-background);transition:box-shadow .3s ease,border-color .3s ease}.post-item:hover{box-shadow:0 4px 12px var(--box-shadow);border-color:var(--color-link)}.post-meta{display:flex;justify-content:space-between;align-items:center;color:var(--gray-500);flex-wrap:wrap;gap:.5rem;font-size:.9rem}.post-meta time{font-weight:500}.post-title{font-size:1.5rem;line-height:1.3}.post-title a{color:var(--body-font-color);text-decoration:none;transition:color .3s ease}.post-title a:hover{color:var(--color-link)}.markdown .post-title{margin-top:1.25rem}.post-summary,.post-summary-mobile{color:var(--gray-800);line-height:1.6;margin-bottom:1rem;overflow:hidden;word-wrap:break-word}.post-summary-mobile{display:none}.post-categories{display:flex;gap:.5rem}.post-categories .category{background:var(--gray-200);color:var(--body-font-color);padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.post-categories .category .fa-file,.post-categories .category .fa-folder{font-size:.8rem}.post-tags{display:flex;flex-wrap:wrap;gap:.5rem}.post-tags .tag{display:inline-block;flex:none;background:var(--gray-100);color:var(--body-font-color);padding:.25rem .5rem;font-size:.875rem;border:1px solid var(--gray-200);border-radius:4px}.book-footer .post-tags{line-height:1.6}.markdown .category[href],.markdown .category-link[href],.markdown .tag[href],.markdown .tag-link[href],.book-footer .tag[href]{color:var(--body-font-color);background:var(--gray-200);border-radius:.25rem}.markdown .category[href]:visited,.markdown .category-link[href]:visited,.markdown .tag[href]:visited,.markdown .tag-link[href]:visited,.book-footer .tag[href]:visited{color:var(--body-font-color)}.markdown .category[href]:hover,.markdown .category-link[href]:hover,.markdown .tag[href]:hover,.markdown .tag-link[href]:hover,.book-footer .tag[href]:hover{background:var(--color-page-link);color:var(--body-font-color);text-decoration:none}@media(max-width:56rem){.list-header h1{font-size:2rem}.post-title{font-size:1.25rem}.post-summary{display:none}.post-summary-mobile{display:block}}.book-categories{margin:1rem 0;padding-bottom:1rem;border-bottom:1px solid var(--gray-500);position:relative;z-index:1}.book-categories i.fa-file,.book-categories i.fa-folder,.book-categories i.fa-chevron-down,.book-categories i.fa-chevron-up{font-size:.875rem;transition:transform .2s ease;max-width:1.125rem}.book-categories .category-count{font-size:.75rem;color:var(--gray-500);white-space:nowrap;text-align:left;margin:0}.book-categories .categories-toggle{display:flex;align-items:center;padding:.25rem .5rem;min-height:2.381rem;font-weight:500;cursor:pointer}.book-categories .categories-link:hover{color:var(--color-link);background-color:var(--link-background)}.book-categories #categories-control:checked+.categories-toggle .categories-arrow{transform:rotate(180deg)}.book-categories #categories-control:checked~.categories-menu{max-height:1e3px}.book-categories input[id^=cat-]:checked+.categories-toggle .categories-arrow{transform:rotate(180deg)}.categories-header{text-align:center;margin-bottom:3rem}.categories-header h1{font-size:2.5rem}.categories-tree{overflow:auto hidden;white-space:nowrap}.categories-tree ul{padding-left:2.4em;list-style-type:none}.categories-tree .category-count{color:var(--gray-500);font-size:.875rem;white-space:nowrap}.categories-list li{position:relative}.categories-list li::before{content:" ";position:absolute;top:2.4em;left:.1em;width:.2em;height:calc(100% - 2.4em);background:var(--gray-200)}.categories-list .category-item{color:var(--body-font-color);font-size:1.2em;text-decoration:none;padding:.2em 0;display:block}.categories-list .category-item .fa-file,.categories-list .category-item .fa-folder{font-size:1.2em}.category-posts{margin-top:.5em}.category-posts .category-post{color:var(--body-font-color);text-decoration:none;font-size:1em;padding:.1em 0;display:block}.category-posts .category-post .fa-newspaper{font-size:1em}.category-posts .category-post.more{font-style:italic;color:var(--gray-500)}.categories-section{margin-bottom:2.5rem}.category-chips{display:flex;flex-wrap:wrap;gap:.5rem}.category-chips .category-link{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem}.category-chips .category-link .category-name{font-weight:500}.category-chips .category-link .category-name .fa-file,.category-chips .category-link .category-name .fa-folder,.category-chips .category-link .category-name .fa-folder-open{font-size:16px}.empty-list p{text-align:center}.tag-chips{display:flex;flex-wrap:wrap;gap:.5rem}.tag-chips .tag-link{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem}.tag-chips .tag-link .tag-name{font-weight:500}.tag-chips .tag-link .tag-count{font-size:.75rem;opacity:.7}.recent-posts{margin:1rem 0;padding-bottom:1rem;border-bottom:1px solid var(--gray-500)}.recent-posts .recent-posts-header{margin-bottom:.5rem;padding:.25rem .5rem;font-weight:500;color:var(--body-font-color)}.recent-posts .recent-posts-header .fa-clock{font-size:.875rem;color:var(--color-link)}.recent-posts .recent-posts-list{list-style:none;padding:0;margin:0}.recent-posts .recent-posts-list .recent-post-item a{display:block;padding:.5rem;color:var(--body-font-color);border-radius:.25rem;text-decoration:none}.recent-posts .recent-posts-list .recent-post-item a:hover{color:var(--color-link);background-color:var(--link-background)}.recent-posts .recent-posts-list .recent-post-item .recent-post-title{font-size:.875rem;font-weight:400;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-posts .recent-posts-list .recent-post-item .recent-post-date{font-size:.75rem;color:var(--gray-500)}.recent-posts .recent-posts-list .recent-post-item .recent-post-date time{font-family:monospace}.dark-mode-toggle{margin-top:1rem;background:0 0;border:none;cursor:pointer;font-size:1.5rem;color:inherit;transition:color .2s}[data-theme=dark] .dark-mode-toggle{color:#ffe066}.book-codeblock{position:relative;margin:1.25rem 0}.book-codeblock pre{border-radius:.625rem;padding:1rem 0 0;margin:0;position:relative;overflow:scroll}.book-codeblock pre::before{content:'';position:absolute;top:.9375rem;left:1.25rem;width:.75rem;height:.75rem;background:#ff5f57;border-radius:50%;box-shadow:1.375rem 0 #ffbd2e,2.75rem 0 #28ca42}.book-codeblock .code-actions{position:absolute;top:.75rem;right:1rem;display:flex;gap:.5rem;align-items:center;z-index:10}.book-codeblock .code-action{background:rgba(0,0,0,.6);color:rgba(255,255,255,.9);backdrop-filter:blur(10px);border:none;border-radius:.25rem;font-size:.75rem;text-transform:uppercase;height:1.5rem;min-width:4.5rem}.book-codeblock .code-copy-btn{cursor:pointer}.book-codeblock .code-copy-btn:hover{background:rgba(0,0,0,.9)}.book-codeblock .code-copy-btn.copied{background:rgba(76,175,80,.8)}.book-codeblock .code-copy-btn i{margin-right:.25rem;font-size:.75rem}.book-codeblock .code-language{display:flex;align-items:center;text-align:center;justify-content:center}.book-codeblock .hljs-ln{border-spacing:0;border-collapse:collapse;width:100%;display:table}.book-codeblock .hljs-ln tbody{display:table-row-group}.book-codeblock .hljs-ln tr{display:table-row}.book-codeblock .hljs-ln td{display:table-cell;border:none!important;vertical-align:top;margin:0;padding:0 .625rem;white-space:pre}.book-codeblock .hljs-ln-numbers{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:table-cell;text-align:right;white-space:nowrap;width:2rem;min-width:2rem;color:var(--lineno-font-color)}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:9999;pointer-events:none}.scroll-progress-bar{height:100%;background:#1e6ef4}.profile-img-wrap{border-radius:50%;overflow:hidden;margin-bottom:1rem}.profile-img{width:100%;height:100%;object-fit:contain;border-radius:50%;display:block}.sidebar-social{display:flex;justify-content:center;align-items:center;gap:.5rem;font-size:1.5rem;width:100%;margin-bottom:1rem}.sidebar-social a,i{color:--color-social-link;font-size:2rem;flex:1;text-align:center;transition:color .2s}.sidebar-social a.disabled{pointer-events:none;opacity:.5;cursor:default}.sidebar-social a:hover{color:#0077b5}.sidebar-social button{margin:0}.book-brand{margin-top:1rem}.post-navigation{display:flex;justify-content:space-between;gap:0;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--gray-200);overflow:hidden}@media screen and (max-width:38rem){.post-navigation{flex-direction:column}}.post-navigation .post-nav-link{display:block;background:var(--gray-100);padding:.75rem;text-decoration:none;transition:background-color .2s ease;flex:1;max-width:50%}.post-navigation .post-nav-link:hover{background:var(--link-background)}@media screen and (max-width:38rem){.post-navigation .post-nav-link{max-width:100%}}.post-navigation .post-nav-prev{text-align:left;border-radius:8px 0 0 8px}@media screen and (max-width:38rem){.post-navigation .post-nav-prev{border-radius:8px}}.post-navigation .post-nav-next{text-align:right;border-radius:0 8px 8px 0}@media screen and (max-width:38rem){.post-navigation .post-nav-next{border-radius:8px}}.post-navigation .post-nav-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.post-navigation .post-nav-direction{display:block;color:var(--gray-500);font-size:.875rem;font-weight:600;margin-bottom:.5rem}.post-navigation .post-nav-direction .fa-backward,.post-navigation .post-nav-direction .fa-forward{font-size:.875rem}.post-navigation .post-nav-title{display:block;color:var(--body-font-color);font-size:1rem;font-weight:400;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}