@charset "UTF-8";:root{--gray-100:#013440;--gray-200:#013440;--gray-500:#05a6a6;--color-link:#05a6a6;--color-visited-link:#05a6a6;--body-background:#02151b;--body-font-color:#dedede;--icon-filter:brightness(0) invert(1)}/*!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:14px;scroll-behavior:smooth;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:.5em;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}ul.pagination{display:flex;justify-content:center;list-style-type:none;padding-inline-start:0}ul.pagination .page-item a{padding:1rem}.container{max-width:80rem;margin:0 auto}.book-icon{filter:var(--icon-filter)}a .book-icon{height:1em;width:1em}.book-brand{margin-top:0;margin-bottom:1rem}.book-brand img{height:1.5em;width:1.5em}.book-menu{flex:0 0 18rem;font-size:.875rem}.book-menu .book-menu-content{width:18rem;padding:1rem;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{min-width:20rem;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}.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}.book-search{position:relative;margin:.5rem 0;border-bottom:1px solid transparent}.book-search input{width:100%;padding:.5rem;border:0;border-radius:.25rem;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:.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 ul a{padding-bottom:0}.book-search small{opacity:.5}.book-toc{flex:0 0 16rem;font-size:.75rem}.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-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}.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:-18rem;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: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(18rem);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}#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}body[dir=rtl] #menu-control:checked~main .book-menu .book-menu-content{transform:translateX(-18rem)}}@media screen and (min-width:80rem){.book-page,.book-menu .book-menu-content,.book-toc .book-toc-content{padding:2rem 1rem}}@font-face{font-family:roboto;font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:roboto;font-style:normal;font-weight:700;font-display:fallback;src:url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:roboto mono;font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_ROW4AJi8SJQt.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}body{font-family:roboto,sans-serif}code{font-family:roboto mono,monospace}@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:#05a6a6;background-color:rgba(5,166,166,.1)}.markdown .book-hint.info{border-color:#05a6a6;background-color:rgba(5,166,166,.1)}.markdown .book-hint.warning{border-color:#fd6;background-color:rgba(255,221,102,.1)}.markdown .book-hint.danger{border-color:#f66;background-color:rgba(255,102,102,.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(5,166,166,var(--background-opacity))}.markdown .book-badge.info span{background-color:rgba(5,166,166,var(--background-opacity))}.markdown .book-badge.warning span{background-color:rgba(255,221,102,var(--background-opacity))}.markdown .book-badge.danger span{background-color:rgba(255,102,102,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}html{scrollbar-gutter:unset}body{min-height:100vh;display:flex;flex-direction:column;padding-top:64px}main{flex:1 0 auto}footer{flex:none}.navbar{display:flex;position:fixed;top:0;width:100%;z-index:999;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#013440;border-bottom:1px solid #05a6a6;height:64px}@media(min-width:768px) and (max-width:1023px){.navbar{padding:.5rem 1.5rem}}@media(max-width:767px){.navbar{padding:.5rem 1rem}}.navbar-right{display:flex;align-items:center;gap:1rem}@media(max-width:1023px){.navbar-right .search-trigger{display:none}}.navbar-burger{display:none;flex-direction:column;gap:5px;background:0 0;border:none;cursor:pointer;padding:.5rem;z-index:10001}@media(max-width:1023px){.navbar-burger{display:flex}}.navbar-burger span{width:24px;height:2px;background:#05a6a6;transition:all .3s ease;display:block}.navbar-burger.active span:nth-child(1){transform:rotate(45deg)translate(7px,7px)}.navbar-burger.active span:nth-child(2){opacity:0}.navbar-burger.active span:nth-child(3){transform:rotate(-45deg)translate(7px,-7px)}.navbar-menu>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:1.5rem}.navbar-menu a{color:#05a6a6;text-decoration:none;font-size:.95rem;padding:.5rem;border-radius:6px;transition:all .2s ease}.navbar-menu a:hover{background:rgba(255,255,255,8%);color:#fff}@media(max-width:1023px){.navbar-menu{display:none}}.navbar .dropdown{position:relative}.navbar .dropdown:hover .dropdown-menu{display:block}.navbar .dropdown-toggle{cursor:pointer}.navbar .dropdown-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;background:#002129;border-radius:8px;padding:.25rem 0;box-shadow:0 8px 20px rgba(0,0,0,.12);list-style:none;flex-direction:column;gap:0}.navbar .dropdown-menu li{padding:0}.navbar .dropdown-menu a{display:block;padding:8px 16px;white-space:nowrap;color:#dedede;text-decoration:none}.navbar .dropdown-menu a:hover{background:#008593;color:#00303c}.mobile-menu-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);backdrop-filter:blur(4px);z-index:10000;opacity:0;transition:opacity .3s ease}.mobile-menu-overlay.active{display:block;opacity:1}.mobile-menu-close{position:absolute;top:1rem;right:1rem;background:0 0;border:none;color:#05a6a6;font-size:2.5rem;line-height:1;cursor:pointer;padding:.25rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10002}.mobile-menu-close span{display:block;line-height:1}.mobile-menu-close:hover{color:#fff;transform:rotate(90deg)}.mobile-menu-content{position:fixed;top:0;left:0;right:0;bottom:0;background:#013440;z-index:10000;padding:calc($navbar-height + 2rem)2rem 2rem;transform:translateY(-100%);transition:transform .3s ease;overflow-y:auto}.mobile-menu-content.active{transform:translateY(0)}.mobile-menu-content ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.mobile-menu-content li{border-bottom:1px solid #05a6a6;padding-bottom:1rem}.mobile-menu-content li:last-child{border-bottom:none}.mobile-menu-content li.mobile-menu-search{border-bottom:1px solid #05a6a6;margin-top:1.5rem;padding-top:1.5rem}.mobile-menu-content a{color:#05a6a6;text-decoration:none;font-size:1.25rem;display:block;padding:1rem;border-radius:6px;transition:all .2s ease}.mobile-menu-content a:hover{background:#032936;color:#fff}.mobile-menu-content .dropdown-toggle{cursor:pointer;display:flex;justify-content:space-between;align-items:center}.mobile-menu-content .dropdown-toggle::after{content:"▼";font-size:.8rem;transition:transform .2s}.mobile-menu-content .dropdown-toggle.active::after{transform:rotate(180deg)}.mobile-menu-content .dropdown-menu{display:none;position:static;background:0 0;box-shadow:none;padding-left:1.5rem;margin-top:1rem;border-radius:0}.mobile-menu-content .dropdown-menu.active{display:flex}.mobile-menu-content .dropdown-menu li{border-bottom:none;padding-bottom:0}.mobile-menu-content .dropdown-menu a{font-size:1rem;padding:.5rem 1rem}.mobile-menu-search .search-trigger-mobile{display:flex;align-items:center;gap:1rem;color:#05a6a6;font-size:1.25rem;padding:1rem;cursor:pointer;border-radius:6px;transition:all .2s ease}.mobile-menu-search .search-trigger-mobile svg{width:20px;height:20px}.mobile-menu-search .search-trigger-mobile:hover{background:#032936;color:#fff}.page-section{padding:2.5rem 10%;background-color:#02151b;position:relative;top:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left}@media(min-width:768px) and (max-width:1023px){.page-section{padding:2.5rem 5%}}@media(max-width:767px){.page-section{padding:2rem 1.5rem}}.page-section>h1{font-size:2.5rem;margin:0 0 1.5rem}@media(max-width:767px){.page-section>h1{font-size:2rem}}.page-section>h1.section-heading-spaced{margin-top:2rem}.page-section:nth-of-type(even){background-color:#002129}.navbar{display:flex;position:fixed;top:0;width:100%;z-index:999;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#013440;border-bottom:1px solid #05a6a6;height:64px}.navbar-menu>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center}.navbar .dropdown-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;background:#002129;border-radius:8px;padding:.25rem 0;box-shadow:0 8px 20px rgba(0,0,0,.12);list-style:none;flex-direction:column;gap:0}.dropdown-menu li{padding:0}.dropdown-menu li a{display:block;padding:8px 16px;white-space:nowrap;color:#dedede;text-decoration:none}.dropdown-menu li a:hover{background:#008593;color:#00303c}.dropdown{position:relative}.dropdown:hover .dropdown-menu{display:block}.dropdown-toggle{cursor:pointer}.search-trigger{display:flex;align-items:center;gap:.5rem;padding:.5rem 7rem .5rem 1rem;background:var(--body-background);border:0 solid #ddd;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}@media(max-width:767px){.search-trigger{padding:.5rem 1rem}}.search-trigger:hover{backdrop-filter:brightness(.5)}.search-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh}.search-modal.hidden{display:none}.search-modal-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);backdrop-filter:blur(100px)}.search-modal-content{position:relative;width:90%;max-width:600px;background:#013440;border-radius:12px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);max-height:70vh;overflow:hidden;display:flex;flex-direction:column;animation:slideDown .2s ease-out;border-bottom:none}@media(max-width:767px){.search-modal-content{width:95%;max-width:none;margin:0 1rem}}.search-modal-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem}@keyframes slideDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.search-close{background:0 0;border:none;font-size:2rem;cursor:pointer;color:#999;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all .2s}.search-close:hover{background:#f5f5f5;color:#333}#book-search-input{flex:1;border:none;outline:none;font-size:1rem;padding:.5rem;background:0 0}#book-search-input::placeholder{color:#dedede !important}#book-search-filters{display:flex;flex-wrap:wrap;gap:.25rem;padding:0 1.5rem 1rem}#book-search-filters:empty{display:none}.book-search-filter{padding:.25rem 1rem;border-radius:8px;border:1px solid #05a6a6;background:0 0;color:#05a6a6;font-size:.8rem;cursor:pointer;transition:all .15s ease}.book-search-filter.active{background:#05a6a6;color:#02151b}.book-search-filter:disabled{border-color:#a6a6a6;color:#a6a6a6;opacity:.5;cursor:not-allowed}.book-search-filter:hover:not(:disabled):not(.active){background:rgba(5,166,166,.15)}#book-search-results{overflow-y:auto;max-height:calc(70vh - 100px);padding:0;margin:0;list-style:none;backdrop-filter:grayscale(90%)}#book-search-results .book-search-heading{padding:1rem 1.5rem .25rem;background:#02151b;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#05a6a6;cursor:default}#book-search-results .book-search-subheading{padding:.25rem 1.5rem .25rem 2.5rem;background:#02151b;font-size:.75rem;color:#a6a6a6;cursor:default}#book-search-results .book-search-empty{padding:1.5rem;color:#a6a6a6;text-align:center;cursor:default}#book-search-results .book-search-result{border-bottom:1px solid rgba(255,255,255,8%);cursor:pointer;transition:background .15s}#book-search-results .book-search-result:hover{background:#013440}#book-search-results .book-search-result a{padding:.5rem 1.5rem .5rem 2.5rem}#book-search-results .book-search-result .book-search-result-title{display:block}#book-search-results .book-search-result .book-search-result-snippet{margin:.25rem 0 0;font-size:.8rem;color:#a6a6a6}#book-search-results .book-search-result .book-search-result-snippet mark{background:0 0;color:#05a6a6;font-weight:700}#book-search-results a{text-decoration:none;color:inherit;display:block}.book-search-spinner{padding:2rem;text-align:center}.book-hero{background:#032936;position:relative;padding:5% 10%;overflow:hidden}@media(min-width:768px) and (max-width:1023px){.book-hero{padding:5%}}@media(max-width:767px){.book-hero{padding:5% 1.5rem}}.book-hero-content{position:relative;z-index:3}.book-hero .hero-buttons{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}@media(max-width:767px){.book-hero .hero-buttons{flex-direction:column;gap:.5rem;align-items:stretch}}.book-hero .hero-buttons a{flex:none;text-decoration:none;display:inline-block}@media(max-width:767px){.book-hero .hero-buttons a{width:100%;text-align:center}}.book-hero-icon{position:absolute;right:10%;top:0;transform:translateY(-15%)scale(1.5);opacity:.35}@media(max-width:767px){.book-hero-icon{display:none}}.book-hero--side .book-hero-grid{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem}@media(max-width:767px){.book-hero--side .book-hero-grid{grid-template-columns:1fr;gap:1.5rem}}.book-hero--side .book-hero-content{position:static}.book-hero--side .book-hero-image{display:flex;align-items:center;justify-content:center}.book-hero--side .book-hero-image img{max-height:300px;width:auto;opacity:1}@media(max-width:767px){.book-hero--side .book-hero-image img{max-height:200px;width:100%;object-fit:contain}}.navbar-menu ul{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}.navbar-menu a{color:#05a6a6;text-decoration:none;font-size:.95rem;padding:.5rem .75rem;border-radius:6px;transition:all .2s ease}.navbar-menu a:hover{background:rgba(255,255,255,8%);color:#fff}.btn-full{background:#05a6a6 !important;color:#dedede !important;text-decoration:none !important}@media(max-width:767px){.btn-full{padding:.5rem 1.5rem !important}}.btn-large{background:#032936;border:solid 1px #05a6a6;border-radius:6px !important;color:#dedede !important;padding:.25rem 1.5rem !important;text-decoration:none !important}@media(max-width:767px){.btn-large{padding:.5rem 1.5rem !important}}.book-card{position:relative}.book-card-link{position:absolute;inset:0;z-index:1}.book-card .markdown-inner h1,.book-card .markdown figure figcaption h1,.markdown figure .book-card figcaption h1,.book-card .markdown .book-steps>ol>li h1,.markdown .book-card .book-steps>ol>li h1{color:var(--color-link)}.book-card-clickable{transition:filter .2s ease;cursor:pointer}.book-card-clickable:hover{filter:brightness(1.25)}.book-card-clickable .markdown-inner h1,.book-card-clickable .markdown figure figcaption h1,.markdown figure .book-card-clickable figcaption h1,.book-card-clickable .markdown .book-steps>ol>li h1,.markdown .book-card-clickable .book-steps>ol>li h1{text-decoration:none}.book-card-clickable .markdown-inner h1 a,.book-card-clickable .markdown figure figcaption h1 a,.markdown figure .book-card-clickable figcaption h1 a,.book-card-clickable .markdown .book-steps>ol>li h1 a,.markdown .book-card-clickable .book-steps>ol>li h1 a{color:inherit;text-decoration:none;pointer-events:none}.landing-container .project-card{border:2px solid #05a6a6;border-radius:3px;background:linear-gradient(to bottom right,rgba(0,33,41,.1),#002129)}.project-card>.markdown-inner,.markdown figure .project-card>figcaption,.markdown .book-steps>ol.project-card>li{height:100%}.card-gradient{background:linear-gradient(to bottom right,rgba(0,133,147,.15),#02151b) !important}.streamshub-architecture{width:100%;align-self:stretch}.markdown h3{font-weight:700}.markdown pre code{font-size:12px}.markdown table tr:nth-child(2n) th,.markdown table tr:nth-child(2n) td{border-color:#02151b}.book-toc{font-size:12px}.book-menu{font-size:14px}.book-menu-content nav>ul,.book-toc-content nav>ul{margin-top:2rem}.book-header{margin-bottom:1.5rem}.book-brand{margin:0}.book-brand a{color:#fff}.book-brand .book-icon{filter:none}.book-menu .book-menu-content,.book-toc .book-toc-content{position:sticky !important;top:6rem !important;bottom:auto !important;max-height:calc(100vh - 6rem);overflow-y:auto}.book-page{margin-top:6rem}.landing-logo{display:flex;align-items:center;gap:.8em;margin-top:1.5em;margin-bottom:1rem}.landing-logo img{width:3em}.landing-logo h1{margin-top:0;margin-bottom:0}.inline-header-card{text-align:left}.inline-header-card h1{display:flex;align-items:flex-start;gap:12px}@media(max-width:767px){.inline-header-card h1{gap:8px;align-items:center}}.book-card.card-with-icon{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;padding:1.5rem;align-items:start;overflow:hidden;height:100%;text-align:left}@media(max-width:767px){.book-card.card-with-icon{grid-template-columns:1fr;text-align:center;justify-items:center}}.book-card.card-with-icon>img{width:48px;height:48px;aspect-ratio:1/1;object-fit:contain}.book-card.card-with-icon .markdown-inner,.book-card.card-with-icon .markdown figure figcaption,.markdown figure .book-card.card-with-icon figcaption,.book-card.card-with-icon .markdown .book-steps>ol>li,.markdown .book-card.card-with-icon .book-steps>ol>li{padding:0}.book-card.card-with-icon .markdown-inner h1,.book-card.card-with-icon .markdown figure figcaption h1,.markdown figure .book-card.card-with-icon figcaption h1,.book-card.card-with-icon .markdown .book-steps>ol>li h1,.markdown .book-card.card-with-icon .book-steps>ol>li h1{margin:0;color:#dedede}.book-card.card-with-icon .markdown-inner p,.book-card.card-with-icon .markdown figure figcaption p,.markdown figure .book-card.card-with-icon figcaption p,.book-card.card-with-icon .markdown .book-steps>ol>li p,.markdown .book-card.card-with-icon .book-steps>ol>li p{overflow-wrap:break-word}.book-footer{flex-shrink:0;margin-top:auto;position:relative;width:100%;padding:4rem 10%;font-size:1rem}@media(min-width:768px) and (max-width:1023px){.book-footer{padding:4rem 5%}}@media(max-width:767px){.book-footer{padding:2rem 1.5rem}}.book-footer::before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background-color:#013440}.book-footer .book-brand img{width:2rem;height:2rem}.book-footer .book-brand h1{margin-left:.5rem}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}@media(max-width:767px){.footer-grid{grid-template-columns:1fr;gap:2.5rem}}.footer-menu{display:grid;grid-template-columns:1fr 1fr;justify-items:center;list-style:none;width:100%;gap:1.5rem}@media(max-width:767px){.footer-menu{grid-template-columns:1fr;gap:2rem;justify-items:start}}.footer-column ul{padding:0;list-style:none}.footer-column li{padding:.25rem 0;list-style:none}.footer-column h4{font-size:1.25rem;color:#a6a6a6}.footer-license{bottom:0;width:100%;position:relative;background:#02151b;color:#dedede}.book-copyright{padding:2rem}.book-card.external-project-card{display:grid;grid-template-columns:auto 1fr;column-gap:1.5rem;padding:1.5rem;align-items:start;height:100%;text-align:left}@media(max-width:767px){.book-card.external-project-card{grid-template-columns:1fr;text-align:center}}.book-card.external-project-card>img{align-self:center;width:48px;height:48px}@media(max-width:767px){.book-card.external-project-card>img{justify-self:center}}.book-card.external-project-card .markdown-inner,.book-card.external-project-card .markdown figure figcaption,.markdown figure .book-card.external-project-card figcaption,.book-card.external-project-card .markdown .book-steps>ol>li,.markdown .book-card.external-project-card .book-steps>ol>li{display:flex;flex-direction:column;height:100%;padding:0}.book-card.external-project-card .markdown-inner h1,.book-card.external-project-card .markdown figure figcaption h1,.markdown figure .book-card.external-project-card figcaption h1,.book-card.external-project-card .markdown .book-steps>ol>li h1,.markdown .book-card.external-project-card .book-steps>ol>li h1{margin:0}.book-card.external-project-card .markdown-inner p,.book-card.external-project-card .markdown figure figcaption p,.markdown figure .book-card.external-project-card figcaption p,.book-card.external-project-card .markdown .book-steps>ol>li p,.markdown .book-card.external-project-card .book-steps>ol>li p{margin:0}.book-card.external-project-card .markdown-inner p:last-child,.book-card.external-project-card .markdown figure figcaption p:last-child,.markdown figure .book-card.external-project-card figcaption p:last-child,.book-card.external-project-card .markdown .book-steps>ol>li p:last-child,.markdown .book-card.external-project-card .book-steps>ol>li p:last-child{margin-top:auto}.feature-section{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;padding:2rem 0}.feature-section-image img{width:100%;border-radius:8px}.feature-section-text{order:1}.feature-section-image{order:2}.feature-section--flip .feature-section-text{order:2}.feature-section--flip .feature-section-image{order:1}@media(max-width:767px){.feature-section{grid-template-columns:1fr;gap:2rem}.feature-section .feature-section-text{order:1}.feature-section .feature-section-image{order:2}.feature-section--flip .feature-section-text{order:1}.feature-section--flip .feature-section-image{order:2}}.feature-divider{width:100%;align-self:stretch;height:10px;background-color:#013440}.subheading{color:var(--gray-500);margin-top:.4em;margin-bottom:.5em}.subheading+h1{margin-top:0}.list-none ul{padding-left:0;margin-left:0;list-style:none !important}.border-none{border:none !important}::placeholder{color:var(--gray-500)}.rouge.highlight{overflow-x:auto;background:#013440 !important}@media(max-width:767px){aside{margin-top:1rem}}pre{margin-top:1rem;margin-bottom:1em;padding:1rem}.main-container{position:relative;max-width:100%}.landing-container{width:100%}.explore-kicker{font-size:.75rem;font-weight:700;letter-spacing:.05em;margin-bottom:.25rem}.explore-kicker--walk-through{color:#e935c1}.explore-kicker--tutorial{color:#4aa3ff}.explore-kicker--use-case{color:#34c759}.book-columns>ul.explore-list{display:grid;grid-template-columns:1fr 1fr;gap:0}@media(max-width:767px){.book-columns>ul.explore-list{grid-template-columns:1fr}}.explore-list-item{min-width:0;padding:2rem 2.5rem;border-bottom:1px solid #013440}.explore-list-item:nth-child(odd){border-right:1px solid #013440}.explore-list-item:nth-last-child(-n+2){border-bottom:none}@media(max-width:767px){.explore-list-item{border-right:none}.explore-list-item:last-child{border-bottom:none}}.explore-article{align-items:flex-start;text-align:left}.explore-breadcrumb{margin-bottom:1rem}.explore-breadcrumb a{color:var(--color-link)}.announcement-entry{align-self:stretch;padding:1.5rem 0;text-align:left}.announcement-date{color:var(--color-link);font-weight:700}.book-version-picker{margin-bottom:1rem}.book-version-picker-label{font-size:.75rem;color:#a6a6a6;margin-bottom:.25rem}.book-version-picker-select{position:relative}.book-version-picker-select summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:.5rem 1rem;border:1px solid #013440;border-radius:3px;background:#013440}.book-version-picker-select summary::-webkit-details-marker{display:none}.book-version-picker-select ul{position:absolute;z-index:10;top:100%;left:0;right:0;margin-top:.25rem;padding:.25rem 0;list-style:none;background:#013440;border:1px solid #032936;border-radius:3px}.book-version-picker-select ul li a{display:block;padding:.25rem 1rem;color:#dedede}.book-version-picker-select ul li a:hover,.book-version-picker-select ul li a.active{color:var(--color-link)}