html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body,h1,h2,h3,h4,h5,h6,p,ol,ul{margin:0;padding:0}ol,ul{list-style:none}img{max-width:100%;height:auto}@font-face{font-family:open sans;font-style:normal;font-weight:400;src:url(../fonts/open-sans/open-sans-v20-latin-regular.woff2)format("woff2");font-display:swap}@font-face{font-family:open sans;font-style:normal;font-weight:700;src:url(../fonts/open-sans/open-sans-v20-latin-700.woff2)format("woff2");font-display:swap}.text{color:#040c28}.text p{margin:.8rem 0;font-size:1rem;line-height:calc(1rem + .8rem)}.text p:first-child{margin-top:0}.text p:last-child{margin-bottom:0}.text a{color:#040c28;text-decoration:none;border-bottom:1px solid #040c28}.text a:hover{border-bottom-color:#5cf797}.text a:focus,.text a:active{outline:dashed 1px #8e97ab;border-bottom-color:transparent}.text a.image-link{display:inline-block;border-bottom:none}.text img{margin:0 auto}.text img[src$="#center"]{display:block;margin:0 auto}.text ul{margin-left:1.7rem;margin-top:.8rem;list-style-position:outside}.text ul li{list-style-type:square}.text ol{margin-left:1.7rem;margin-top:.8rem;list-style-position:outside}.text ol li{list-style-type:decimal}.text li{margin-bottom:.8rem;font-size:1rem;line-height:calc(1rem + .8rem)}.text blockquote{margin:0;padding:.8rem;padding-left:1rem;color:#061332;border-left:2px solid #eee}.text blockquote p{padding:0}.text code{font-family:ui-monospace,Menlo,Monaco,cascadia mono,segoe ui mono,roboto mono,oxygen mono,ubuntu monospace,source code pro,fira mono,droid sans mono,courier new,monospace;font-size:.8rem;background-color:#f7f9fa;padding:.2rem .3rem;word-break:break-word;overflow:hidden;border-radius:2px}.text .highlight{margin:.8rem 0;position:relative}.text .highlight .copy-button{position:absolute;right:0;top:0;display:none;font-size:.8rem}.text .highlight:hover .copy-button,.text .highlight:active .copy-button,.text .highlight:focus .copy-button{display:block}.text table:not([class=lntable]){margin:.8rem 0;font-size:1rem;line-height:calc(1rem + .8rem);width:100%;border-collapse:separate;border-spacing:0;border:1px solid #eee;display:block;overflow-x:auto;white-space:nowrap}.text table:not([class=lntable]).narrow-table{overflow-y:auto;max-height:20rem;position:relative}.text table:not([class=lntable]).narrow-table thead{position:sticky;top:0}.text table:not([class=lntable]) td{padding:.4rem .6rem;border-right:1px solid #eee;border-bottom:1px solid #eee}.text table:not([class=lntable]) td:last-child{border-right:0;width:100%}.text table:not([class=lntable]) thead{background-color:#f7f9fa}.text table:not([class=lntable]) thead th{font-size:.9rem;font-weight:700;text-transform:uppercase;text-align:left;padding:.1rem .6rem;border-bottom:2px solid #eee;border-right:1px solid #eee}.text table:not([class=lntable]) thead th:last-child{border-right:0}.text table:not([class=lntable]) tbody tr{border-bottom:1px solid #eee}.text table:not([class=lntable]) tbody tr:nth-child(even){background-color:#fbfbfc}.text table:not([class=lntable]) tbody tr:last-child{border-bottom:0}.text-on-dark-background{color:#fff}.text-on-dark-background a{color:#fff;border-bottom-color:#fff}.text-on-dark-background a:focus,.text-on-dark-background a:active{outline-color:#8e97ab}.text-on-dark-background code{color:#040c28}.text-small p,.text-small ul,.text-small ol{font-size:calc(1rem * .8)}.text .tombstone{width:.6rem;height:.6rem;background-color:#061332}h1,h2,h3,h4,h5,h6{font-family:open sans,sans-serif;font-weight:700;letter-spacing:-.03rem;margin-top:calc(1rem + .8rem);margin-bottom:.8rem}h1:hover .heading-anchor,h2:hover .heading-anchor,h3:hover .heading-anchor,h4:hover .heading-anchor,h5:hover .heading-anchor,h6:hover .heading-anchor{opacity:1}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,h6:last-child{margin-bottom:0}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{border-width:2px!important}h1.non-chapter,h2.non-chapter,h3.non-chapter,h4.non-chapter,h5.non-chapter,h6.non-chapter{margin:0!important;padding:0!important}h1{font-size:calc(1rem + .9rem);line-height:calc(calc(1rem + .9rem) + .8rem)}h1:not(.non-chapter):after{display:block;width:2.5rem;content:"";border-bottom:3px solid #5cf797}h1 .heading-anchor{font-size:calc(calc(1rem + .9rem) * .6);opacity:0;padding:0 .2rem;line-height:calc(calc(1rem + .9rem) * .6)}h2{font-size:calc(1rem + .7rem);line-height:calc(calc(1rem + .7rem) + .8rem)}h2:not(.non-chapter):after{display:block;width:2.5rem;content:"";border-bottom:3px solid #5cf797}h2 .heading-anchor{font-size:calc(calc(1rem + .7rem) * .6);opacity:0;padding:0 .2rem;line-height:calc(calc(1rem + .7rem) * .6)}h3{font-size:calc(1rem + .3rem);line-height:calc(calc(1rem + .3rem) + .8rem)}h3:not(.non-chapter):after{display:block;width:2.5rem;content:"";border-bottom:3px solid #5cf797}h3 .heading-anchor{font-size:calc(calc(1rem + .3rem) * .6);opacity:0;padding:0 .2rem;line-height:calc(calc(1rem + .3rem) * .6)}h4{font-size:calc(1rem + .2rem);line-height:calc(calc(1rem + .2rem) + .8rem)}h4:not(.non-chapter):after{display:block;width:2.5rem;content:"";border-bottom:3px solid #5cf797}h4 .heading-anchor{font-size:calc(calc(1rem + .2rem) * .6);opacity:0;padding:0 .2rem;line-height:calc(calc(1rem + .2rem) * .6)}h5{font-size:calc(1rem + .1rem);line-height:calc(calc(1rem + .1rem) + .8rem)}h5:not(.non-chapter):after{display:block;width:2.5rem;content:"";border-bottom:3px solid #5cf797}h5 .heading-anchor{font-size:calc(calc(1rem + .1rem) * .6);opacity:0;padding:0 .2rem;line-height:calc(calc(1rem + .1rem) * .6)}h6{font-size:calc(1rem + -.1rem);line-height:calc(calc(1rem + -.1rem) + .8rem)}h6:not(.non-chapter):after{display:block;width:2.5rem;content:"";border-bottom:3px solid #5cf797}h6 .heading-anchor{font-size:calc(calc(1rem + -.1rem) * .6);opacity:0;padding:0 .2rem;line-height:calc(calc(1rem + -.1rem) * .6)}h6{text-transform:uppercase}body,html{height:100%}body{font-family:open sans,sans-serif;font-size:16px;color:#fff;background-color:#05112e;-webkit-text-size-adjust:100%}.main{color:#030b1c;background:#fff}.with-safety-gap{padding:0 1.6rem}.horizontal-wrapper-narrow{max-width:920px;margin-left:auto;margin-right:auto;position:relative}.vertical-wrapper-large{padding-top:2.5rem;padding-bottom:2.5rem}.gap-top-paragraph{margin-top:.8rem}.gap-top-small{margin-top:.5rem}.gap-top-medium{margin-top:1rem}.gap-top-large{margin-top:2rem}.gap-top-xl{margin-top:3rem}.gap-top-xxl{margin-top:4rem}.gap-bottom-small{margin-bottom:.5rem}.gap-bottom-medium{margin-bottom:1rem}.gap-bottom-large{margin-bottom:2rem}.page-meta{font-size:.8rem}.page-header{color:#fff;background-color:#061332;padding-top:2rem;padding-bottom:2rem}.page-header .page-meta{color:#fbfbfc}.page-header .page-description{font-size:1rem}.pages-list>li{padding-top:1.5rem;padding-bottom:1.5rem}.pages-list>li:first-child{padding-top:0}.pages-list>li:last-child{padding-bottom:0;border-bottom:0}@media(max-width:900px){.pages-flex{display:block}.pages-flex>li{margin-bottom:2.5rem}.pages-flex>li:last-child{margin-bottom:0}}@media(min-width:901px){.pages-flex{display:flex;flex-flow:row wrap;justify-content:flex-start;position:relative;top:-2.5rem;margin-bottom:-2.5rem;margin-left:-2rem}.pages-flex>li{flex:0 1 50%;margin-top:2.5rem;padding-left:2rem}.pages-flex>li:first-child{padding-top:0}.pages-flex>li:last-child{padding-bottom:0;border-bottom:0}}@media(max-width:900px){.post-partial{float:none}.table-of-contents-toggle{text-align:center;margin:.5rem auto 0;display:block}}@media(min-width:901px){.post-partial{float:left}.table-of-contents-toggle{display:flex;justify-content:flex-end}}.table-of-contents{text-align:center}.table-of-contents #TableOfContents{margin:auto;text-align:left;display:none}.table-of-contents #TableOfContents.table-of-contents-visible{display:inline-block}.bookmarks .description{margin-top:.8rem}.about-the-author{border:.15rem solid #061332;padding:1.4rem 1.6rem;position:relative}.about-the-author-title{display:inline-block;content:"About the Author";font-family:open sans,sans-serif;font-weight:700;font-size:.9rem;line-height:1.8rem;background-color:#061332;color:#fff;padding:0 .4rem;position:absolute;top:calc(1.8rem/2 * -1)}.about-the-author-name{font-size:calc(1rem + .1rem);line-height:calc(calc(1rem + .1rem) + .8rem)}.about-the-author-name:not(.non-chapter):after{display:block;width:2.5rem;content:"";border-bottom:3px solid #5cf797}.about-the-author-name .heading-anchor{font-size:calc(calc(1rem + .1rem) * .6);opacity:0;padding:0 .2rem;line-height:calc(calc(1rem + .1rem) * .6)}.group:after{content:"";display:table;clear:both}.center{text-align:center}.left{float:left}.right{float:right}.button-like{color:#040c28;display:inline-block;padding:.1rem .6rem;text-decoration:none;text-align:center;border-left:none;border-right:none;border-top:2px solid transparent;border-bottom:2px solid #5cf797;white-space:nowrap}.button-like:hover{color:#040c28;border-bottom-color:#5cf797}.button-like:focus,.button-like:active{outline:dashed 1px #8e97ab;border-top-color:transparent;background-color:initial;border-bottom-color:transparent}.button-like-secondary-dark{border-bottom-color:#030b1c}.button-like-secondary-bright{border-bottom-color:#fff}.button-like-inverted-bright{color:#000;background-color:#5cf797;border-color:#5cf797}.button-like-inverted-bright:hover:not(:active){color:#fff;border-top-color:#061332;border-bottom-color:#5cf797;background-color:#061332}.button-like-inverted-bright-on-dark-background{color:#000;background-color:#5cf797;border-color:#5cf797}.button-like-inverted-bright-on-dark-background:hover:not(:active){color:#fff;border-top-color:#061332;border-bottom-color:#5cf797;background-color:#061332}.button-like-inverted-bright-on-dark-background:focus,.button-like-inverted-bright-on-dark-background:active{color:#fff}.button-like-inverted-inactive{border-bottom-color:#030b1c;background-color:#eee;border-color:#eee}.button-like-inverted-inactive:hover{border-bottom-color:#030b1c}.button-like-inverted-dark{color:#fff;background-color:#061332;border-color:#061332}.button-like-inverted-dark:hover{color:#000;border-top-color:#5cf797;border-bottom-color:#061332;background-color:#5cf797}.button-like-inverted-dark:focus,.button-like-inverted-dark:active{color:#040c28;border-color:transparent;background-color:initial}.button-like-size-m{font-size:.8rem}.button-like-size-l{font-size:.9rem}.button-like-on-dark-background-filled{color:#fff}.button-like-on-dark-background-filled:focus{color:#fff}.button-like-on-dark-background-filled:hover:not(:active){color:#030b1c;background-color:#5cf797;border-color:#5cf797}.button-like-on-dark-background-filled:active{color:#fff}.button-like-on-dark-background{color:#fff}.button-like-on-dark-background:hover,.button-like-on-dark-background:focus,.button-like-on-dark-background:active{color:#fff}.button-like-monospace{font-family:ui-monospace,Menlo,Monaco,cascadia mono,segoe ui mono,roboto mono,oxygen mono,ubuntu monospace,source code pro,fira mono,droid sans mono,courier new,monospace}.horizontal-links-menu{margin-top:calc(.8rem * -1)}.horizontal-links-menu li{display:inline-block;margin-right:.5rem;margin-top:.8rem}.horizontal-links-menu li:last-child{margin-right:0}.horizontal-links-menu-no-top-gap li{margin-top:0}.vertical-links-menu li{margin-top:.5rem}.vertical-links-menu li:first-child{margin-top:0}.separator{display:block;border-top:1px solid #ced9f0}.header{color:#fff;background-color:#05112e}.header .logo{font-family:open sans,sans-serif;font-weight:700;letter-spacing:-.03rem;font-size:1.1rem;line-height:4rem}.header .logo a{color:#fff;text-decoration:none}.header .logo a:focus,.header .logo a:active{outline:dashed 1px #8e97ab;border-top-color:transparent;background-color:initial;border-bottom-color:transparent}.header .logo:after{display:block;position:absolute;top:calc(calc((4rem - 1.1rem)/2) + 1.1rem + .3rem);width:2.5rem;content:"";border-bottom:3px solid #5cf797}.header .main-menu-horizontal{margin:0;position:absolute;top:50%;right:1.6rem;-ms-transform:translateY(-50%);transform:translateY(-50%)}.header .main-menu-vertical-toggle{margin:0;position:absolute;z-index:1001;top:50%;right:1.6rem;-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:1.4rem;text-decoration:none;color:inherit;display:none}@media(hover:hover) and (pointer:fine){.header .main-menu-vertical-toggle:hover{color:#5cf797}}.header .main-menu-vertical-toggle-menu-visible{color:#030b1c}.header .main-menu-vertical{color:#030b1c;background-color:#fff;border-left:1px solid #ced9f0;border-bottom:1px solid #ced9f0;margin:0;padding:calc(4rem - 1.4rem + 1.2rem)calc(1.6rem + .3rem)2rem;position:absolute;right:0;top:0;display:none;z-index:1000}.header .main-menu-vertical a{display:block}.header .main-menu-vertical li{margin-bottom:.5rem}.header .main-menu-vertical li:last-child{margin-bottom:0}.header .main-menu-vertical-visible{display:block}@media(max-width:900px){.header .main-menu-horizontal{display:none}.header .main-menu-vertical-toggle{display:block}}@media(min-width:901px){.header .main-menu-vertical{display:none!important}}.inline-svg{display:inline-block;height:100%;width:auto}.chroma pre{margin:0;display:block;line-height:1.6rem}.chroma pre code{font-size:.85rem;background-color:initial!important;display:block;padding:0}.chroma .lntd{vertical-align:top;margin:0;border:0}.chroma .lntd .lnt{padding:0}.chroma .lntd .lnt:only-child{display:block}.chroma .lntd:nth-child(1) .lnt{padding-left:1rem;padding-right:.5rem}.chroma .lntd:nth-child(1) .hl{display:block;width:100%;background-color:#061332;color:#fff}.chroma .lntd:nth-child(2){padding-left:.5rem;width:105%;display:block}.chroma .lntable{background-color:#f7f9fa;border-radius:.2rem;padding:calc(.8rem/3)0;width:100%;border-collapse:collapse;border-spacing:0;border:none;margin:0;display:block;overflow-x:auto;overflow-y:visible}.chroma .lntable tr,.chroma .lntable td{border:none;padding:0;margin:0}.chroma .lntable *:focus{outline:none}.chroma .k{color:#cf222e}.chroma .kc{color:#000}.chroma .kd{color:#cf222e}.chroma .kn{color:#000}.chroma .kp{color:#000}.chroma .kr{color:#000}.chroma .kt{color:#8250df}.chroma .na{color:#0550ae}.chroma .nb{color:#0086b3}.chroma .bp{color:#999}.chroma .nc{color:#8250df}.chroma .no{color:#0550ae}.chroma .nd{color:#cf222e}.chroma .ni{color:purple}.chroma .ne{color:#cf222e}.chroma .nf{color:#cf222e}.chroma .nl{color:#cf222e}.chroma .nn{color:#555}.chroma .nt{color:navy}.chroma .nv{color:#0550ae}.chroma .vc{color:#0550ae}.chroma .vg{color:#0550ae}.chroma .vi{color:#0550ae}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#009926}.chroma .s1{color:#0a3069}.chroma .ss{color:#990073}.chroma .m{color:#099}.chroma .mb{color:#099}.chroma .mf{color:#099}.chroma .mh{color:#099}.chroma .mi{color:#099}.chroma .il{color:#099}.chroma .mo{color:#099}.chroma .o{color:#000}.chroma .ow{color:#000}.chroma .c{color:#6e7781}.chroma .ch{color:#6e7781}.chroma .cm{color:#6e7781}.chroma .c1{color:#6e7781}.chroma .cs{color:#6e7781}.chroma .cp{color:#6e7781}.chroma .cpf{color:#6e7781}.chroma .gd{color:#000;background-color:#fdd}.chroma .ge{color:#000;font-style:italic}.chroma .gr{color:#a00}.chroma .gh{color:#999}.chroma .gi{color:#000;background-color:#dfd}.chroma .go{color:#888}.chroma .gp{color:#555}.chroma .gs{font-weight:700}.chroma .gu{color:#aaa}.chroma .gt{color:#a00}.chroma .gl{text-decoration:underline}.chroma .w{color:#bbb}.footer{background-color:#061332}#toast{position:fixed;left:50%;bottom:2rem;z-index:1;visibility:hidden;min-width:10rem;margin-left:-5rem;padding:.5rem 1rem;background-color:#061332;color:#fff;text-align:center;font-size:.9rem}#toast.show{visibility:visible;-webkit-animation:fadein .5s,fadeout .5s 2.5s;animation:fadein .5s,fadeout .5s 2.5s}@-webkit-keyframes fadein{from{bottom:0;opacity:0}to{bottom:2rem;opacity:1}}@keyframes fadein{from{bottom:0;opacity:0}to{bottom:2rem;opacity:1}}@-webkit-keyframes fadeout{from{bottom:2rem;opacity:1}to{bottom:0;opacity:0}}@keyframes fadeout{from{bottom:2rem;opacity:1}to{bottom:0;opacity:0}}