body{font-family:arial,Gadget,sans-serif;counter-reset:heading;margin:0}.main{margin:auto;max-width:42em}.main .header-bar{padding:1em .2em .3em}img{max-width:100%;display:block;margin-left:auto;margin-right:auto}figure{margin:0}figcaption{text-align:center;font-size:.9em;font-weight:700}iframe{max-width:42em;display:block;margin-left:auto;margin-right:auto}li{margin-top:.5em}p{line-height:1.4em}h1{font-size:2em;font-weight:400}h2{font-size:1.5em;font-weight:400}h3{font-size:1.17em;font-weight:400}h4{font-size:1.12em;font-weight:400}h5{font-size:.83em;font-weight:400}h6{font-size:.75em;font-weight:400}a:hover,a:active,a:focus{outline:0}header{justify-content:space-around;flex-direction:column}nav{text-align:center;display:-webkit-flex;-webkit-justify-content:space-between;-webkit-flex-flow:column;display:flex;justify-content:space-between;flex-flow:column}.nav-item{font-size:1.2em;text-decoration:none;font-weight:700}.nav-item-title{padding:.2em}.nav-item-title:hover{text-decoration:underline}pre{margin:1em 0;padding:.5em}code{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;line-height:1.4em}blockquote{padding:.5em;padding-left:1em}th,td{padding:.5em}.siteTitle{font-size:2.5em;margin-bottom:.2em}.siteTitle a{text-decoration:none}.articleheader_data{display:-webkit-flex;-webkit-justify-content:space-between;-webkit-flex-flow:row wrap;display:flex;justify-content:space-between;flex-flow:row wrap}.post .title{text-align:center}.post .date{text-align:center}.post{margin-top:1.5em;padding-left:.5em;padding-right:.5em}.post .content h1{margin:1em 0}.post .content h2{margin:1em 0}.post .content h3{margin:1em 0}.post .content h4{margin:1em 0}.post .content h5{margin:1em 0}.post-footer-data{display:-webkit-flex;-webkit-flex-direction:column;-webkit-align-items:flex-end;display:flex;flex-direction:column;align-items:flex-end;margin:1em}.post-footer-data .date{font-weight:700;font-size:.9em}.post-footer-data .tags{font-weight:700;font-size:.9em}.content-item{margin-top:.5em;padding:.1em .3em .5em}.content-item .meta{margin-top:.5em;padding-top:.5em;display:-webkit-flex;display:flex;flex-wrap:wrap;justify-content:space-between}.content-item .tags{margin-bottom:.2em;font-size:.7em}.content-item .date{font-size:.7em;font-weight:700;white-space:nowrap;text-align:right}.post-footer-menu{display:-webkit-flex;-webkit-justify-content:space-between;display:flex;justify-content:space-between;font-size:.8em;margin:.5em 4em}.post-prev a{text-decoration:none;font-weight:700}.post-next a{text-decoration:none;font-weight:700}.post-home a{text-decoration:none;font-weight:700}.copyright{font-size:smaller;text-align:center;margin-top:1em}.poweredby{font-size:smaller;text-align:center}.poweredby a{text-decoration:none;text-decoration:underline}.err-404{margin:3em;text-align:center}.social-links-header{display:-webkit-flex;-webkit-justify-content:center;-webkit-flex-flow:row wrap;display:flex;justify-content:center;flex-flow:row wrap}.social-links-header a{text-decoration:none}.social-links-footer{text-align:center;display:-webkit-flex;-webkit-justify-content:center;-webkit-flex-flow:row wrap;display:flex;justify-content:center;flex-flow:row wrap;margin-top:.5em}.social-links-footer a{text-decoration:none}.social-link{margin:.2em;font-size:1.2em}.social-link:hover{text-decoration:underline}.content-list{font-size:1.2em}.content-item a{text-decoration:none}.content-list-date{font-size:1.2em;margin-top:.5em;text-align:center}.post-list{display:-webkit-flex;-webkit-justify-content:center;display:flex;justify-content:space-between}.post-list .title{margin:0}.tag{display:inline-block}.tag a{text-decoration:none}.post-preview{text-decoration:none;padding-bottom:1em;padding-left:.5em;padding-right:.5em;margin-top:1.5em;margin-bottom:1.5em}.post-preview .title{margin-top:.3em;margin-bottom:.3em}.post-preview a{text-decoration:none}.post-preview .summary{margin-top:1em;margin-bottom:.5em;line-height:1.4em}.post-preview .summary p{margin-block-start:.5em;margin-block-end:.5em;margin-inline-start:0.em;margin-inline-end:0;line-height:1.4em}.post-preview .meta{font-size:.8em;font-weight:700;padding:.3em 1em .5em;text-align:left;display:flex;flex-wrap:wrap;justify-content:space-between}.post-preview .date{font-weight:700;text-align:left}.post-preview .tags{font-weight:700;text-align:left}.rmore{margin-top:.5em;white-space:nowrap;text-align:right}.rmore a{border-radius:.2em;padding:.3em}.terms{border-radius:.2em;width:50%;margin:auto;margin-bottom:1em}.terms a{font-size:1.2em;text-decoration:none}.terms .term{padding:.5em}.page-nav{display:-webkit-flex;-webkit-justify-content:center;-webkit-flex-flow:row wrap;display:flex;justify-content:center;flex-flow:row wrap;padding:1em;font-weight:700}.page-nav a{text-decoration:none}.page-num{text-align:center;margin-left:1em;margin-right:1em}.content-list-title{text-align:center;margin-bottom:0}.content-list-title a{text-decoration:none}.term-list-title{text-align:center}.term-list-title a{text-decoration:none}.sitemap{margin:auto;width:50%;font-size:1.4em}@media only screen and (min-width:400px){nav{flex-flow:row wrap}.siteTitle{flex-grow:2;text-align:left;flex-basis:0}.nav-item-title{font-size:.85em;font-weight:700}.social-links-header{font-size:.75em;-webkit-justify-content:left;-webkit-flex-flow:row wrap;justify-content:left;flex-flow:row wrap}.social-link{font-weight:700}.social-links-footer{text-align:center;-webkit-justify-content:center;-webkit-flex-flow:row wrap;justify-content:center;flex-flow:row wrap;font-size:.75em}}:root{--font-display:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-body:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}@media only screen and (max-width:615px){#blog{flex-direction:column}#header{height:1em}#header-bound{min-height:1em}.text-button{padding:0;font-size:.75em}.text-button img{max-width:1.25em;margin:.15em .3em}.text-title{font-size:1em}}@media only screen and (min-width:615px){#all{max-width:1e3px;margin:0 auto}#blog{flex-direction:row}#header{height:3em}#header-bound{min-height:4em}#left-blog,#right-blog{flex:1 0}#left-blog{margin-right:1em}#right-blog{margin-left:1em}.text-button{padding:.5em;font-size:1em}.text-button img{max-width:1.75em;margin:.25em .5em}.text-title{font-size:2em}}body{margin:1.5em 2em!important;background-image:url(/images/so-white.png);background-attachment:fixed}body img{max-width:100%}#header-bound{position:relative;z-index:3}#header-wrap{width:100%;position:sticky;top:0;padding-top:1em;z-index:1}#header{display:flex;justify-content:space-between;position:relative;margin:0 auto;width:100%}#left-wrap{display:flex;justify-content:flex-start;margin-left:0}#right-wrap{display:flex;flex-direction:row;justify-content:flex-end;margin-right:0}.nav-button{display:flex}.nav-button a{display:block}.nav-title{display:flex;justify-content:flex-start;margin-right:2em}#text-row{display:flex;flex-direction:row}.text-title{font-family:var(--font-display);flex-shrink:0;display:block;margin:0;color:#333533;font-weight:700;line-height:1em;letter-spacing:-.5px;text-decoration:none}.text-button{font-family:var(--font-display);color:#333533;font-weight:700;line-height:1em;letter-spacing:-.5px;text-decoration:none;transition:filter ease-in-out 250ms;margin:-1.5em 0;padding:0 .15em;list-style-type:none}.text-button a{font-family:var(--font-display);display:block;color:#e8eddf;font-size:1em;font-weight:600;line-height:2em;letter-spacing:-.5px;text-decoration:none}.text-button a:hover,.text-button:hover{filter:drop-shadow(0 1px 0 #77c0fc)}.too-left{margin-right:-.2em}.too-low{margin-top:-1.6em}.text-icon{display:block;color:#242423;font-size:2em}#middle{background-image:url(/images/so-white.png);background-attachment:fixed;margin:1em auto 0;line-height:1.5em;width:100%;font-family:var(--font-body);font-size:1em;z-index:5}#hero{margin:1em auto 1.5em;line-height:0;border-radius:.25em;overflow:hidden}#hero img{width:100%;height:auto;display:block}.nav-icon{width:1.25em;height:1.25em;vertical-align:middle}.text-button a{color:var(--main-text,#333533);line-height:1;display:inline-flex;align-items:center}.text-button a:hover{filter:drop-shadow(0 1px 0 #77c0fc)}#theme-toggle-wrap{display:flex;justify-content:flex-end;margin:.5em 0}#theme-toggle{display:inline-flex;border:1px solid var(--main-border,#c8c8c8);border-radius:.35em;overflow:hidden;font-size:.75em;color:var(--main-text,#333533)}#theme-toggle button{background:0 0;border:0;padding:.25em .5em;cursor:pointer;color:inherit;display:inline-flex;align-items:center;font:inherit;line-height:1;transition:background-color 150ms ease-in-out}#theme-toggle button+button{border-left:1px solid var(--main-border,#c8c8c8)}#theme-toggle button:hover{background:var(--main-hover,#f0f0f0)}#theme-toggle[data-state=auto] button[data-mode=auto],#theme-toggle[data-state=light] button[data-mode=light],#theme-toggle[data-state=dark] button[data-mode=dark]{background:var(--main-active,#333533);color:var(--main-active-text,#ffffff)}#blog{display:flex;flex:auto;justify-content:space-between}.post{margin:1em 0;padding:1em 0}.post p:last-child{margin:1em 0 0}#blog h1{font-family:var(--font-display);color:#333533}#left-blog h1,#right-blog h1{font-size:1em;text-transform:uppercase}.post h1{font-size:1.5em!important;text-transform:none!important;transition:ease-in-out 250ms}.post:hover h1{color:#242423;transition:ease-in-out 250ms}h1 a{text-decoration:none;color:#333533}.post h1 a:hover{color:#242423}.post h2{font-family:var(--font-display);font-size:1.25em!important;color:#333533;transition:ease-in-out 250ms}.post .rmore-container{text-align:right}.post .rmore{color:#333533;font-weight:700;text-decoration:none;border-bottom:2px solid rgba(24,24,23,0);transition:ease-in-out 250ms}.post:hover .rmore{border-bottom:2px solid #181817;transition:ease-in-out 250ms}.post:hover .rmore:hover{color:#77c0fc;border-bottom:2px solid #77c0fc;transition:ease-in-out 250ms}.post p a,.post ol a,.post ul a,#right-blog .links a{color:#333533;font-weight:700}.post p img{max-width:100%}#right-blog .links p{margin:.5em 0}.post .date{text-align:right;color:#333533;font-family:var(--font-display);font-weight:700}.tags{margin:1em 0 1.5em}.tag a{padding:.25em;border-radius:10px;color:#eaeaeb;background-color:#333533;font-weight:800;line-height:200%;text-decoration:none;transition:ease-in-out 500ms}.tag a:hover{color:#fff;background-color:#77c0fc;transition:ease-in-out 250ms}#right-blog{max-width:10em}#footer{margin:0 auto;width:100%;margin-top:3em;font-family:var(--font-display);font-size:.75em}.post .title,h1.term-list-title{text-align:left}.post p img{margin:0}.post-preview .meta{padding:0;align-items:center}.post code{font-size:125%}.terms{width:auto}.terms .term{padding:.5em 0;font-family:var(--font-display)}.terms .term a{color:#333533}.terms .term a .page-count,.page-arrows a{color:#d87e2f;filter:drop-shadow(0 0 2px #cfdbd5);transition:color ease-in-out 250ms,filter ease-in-out 250ms}.terms .term a .page-count:hover,.page-arrows a:hover{color:#333533;filter:drop-shadow(0 0 3px #d87e2f);transition:color ease-in-out 250ms,filter ease-in-out 250ms}.reading-time{color:#333533;font-style:italic}.post-toc{margin:1em 0 1.5em;padding:.5em .75em;border-left:3px solid var(--main-border,#cccccc);font-size:.9em}.post-toc summary{cursor:pointer;font-weight:600;padding:.25em 0}.post-toc nav{padding:.5em 0 .25em;text-align:left}.post-toc ul{list-style:none;padding-left:1.25em;margin:.25em 0}.post-toc>nav>ul{padding-left:0}.post-toc li{margin:.2em 0}.post-toc a{text-decoration:none}.post-toc a:hover{text-decoration:underline}.post-related ul{list-style:none;padding-left:0}.post-related li{margin:.25em 0}.post-related .date{display:inline;margin-left:.5em;font-size:.85em;opacity:.7}.bg{color:#272822;background-color:#fafafa}.chroma{color:#272822;background-color:#fafafa;-webkit-text-size-adjust:none}.chroma .err{color:#960050;background-color:#1e0010}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#e1e1e1}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#00a8c8}.chroma .kc{color:#00a8c8}.chroma .kd{color:#00a8c8}.chroma .kn{color:#f92672}.chroma .kp{color:#00a8c8}.chroma .kr{color:#00a8c8}.chroma .kt{color:#00a8c8}.chroma .n{color:#111}.chroma .na{color:#75af00}.chroma .nc{color:#75af00}.chroma .no{color:#00a8c8}.chroma .nd{color:#75af00}.chroma .ni{color:#111}.chroma .ne{color:#75af00}.chroma .nl{color:#111}.chroma .nn{color:#111}.chroma .nx{color:#75af00}.chroma .py{color:#111}.chroma .nt{color:#f92672}.chroma .nb{color:#111}.chroma .bp{color:#111}.chroma .nv{color:#111}.chroma .vc{color:#111}.chroma .vg{color:#111}.chroma .vi{color:#111}.chroma .vm{color:#111}.chroma .nf{color:#75af00}.chroma .fm{color:#75af00}.chroma .l{color:#ae81ff}.chroma .ld{color:#d88200}.chroma .s{color:#d88200}.chroma .sa{color:#d88200}.chroma .sb{color:#d88200}.chroma .sc{color:#d88200}.chroma .dl{color:#d88200}.chroma .sd{color:#d88200}.chroma .s2{color:#d88200}.chroma .se{color:#8045ff}.chroma .sh{color:#d88200}.chroma .si{color:#d88200}.chroma .sx{color:#d88200}.chroma .sr{color:#d88200}.chroma .s1{color:#d88200}.chroma .ss{color:#d88200}.chroma .m{color:#ae81ff}.chroma .mb{color:#ae81ff}.chroma .mf{color:#ae81ff}.chroma .mh{color:#ae81ff}.chroma .mi{color:#ae81ff}.chroma .il{color:#ae81ff}.chroma .mo{color:#ae81ff}.chroma .o{color:#f92672}.chroma .ow{color:#f92672}.chroma .p{color:#111}.chroma .c{color:#75715e}.chroma .ch{color:#75715e}.chroma .cm{color:#75715e}.chroma .c1{color:#75715e}.chroma .cs{color:#75715e}.chroma .cp{color:#75715e}.chroma .cpf{color:#75715e}.chroma .ge{font-style:italic}.chroma .gs{font-weight:700}