@charset "UTF-8";/*!normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css*/html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}template,[hidden]{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}hr{border-top:1px solid #d6d6d6;border-bottom:0}p{-webkit-margin-before:1rem;-webkit-margin-after:1rem}code,pre{font-family:Consolas,Monaco,andale mono,ubuntu mono,monospace}@font-face{font-family:raleway;font-style:normal;font-weight:300;src:local("Raleway Light"),local("Raleway-Light"),url(https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwIYqWqhPAMif.woff2)format("woff2");unicode-range:U+100-24F,U+259,U+1E??,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap}@font-face{font-family:raleway;font-style:normal;font-weight:300;src:local("Raleway Light"),local("Raleway-Light"),url(https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwIYqWqZPAA.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}@font-face{font-family:raleway;font-style:normal;font-weight:400;src:local("Raleway"),local("Raleway-Regular"),url(https://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPNyCMIT5lu.woff2)format("woff2");unicode-range:U+100-24F,U+259,U+1E??,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap}@font-face{font-family:raleway;font-style:normal;font-weight:400;src:local("Raleway"),local("Raleway-Regular"),url(https://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPNyC0ITw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}@font-face{font-family:raleway;font-style:normal;font-weight:600;src:local("Raleway SemiBold"),local("Raleway-SemiBold"),url(https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwPIsWqhPAMif.woff2)format("woff2");unicode-range:U+100-24F,U+259,U+1E??,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap}@font-face{font-family:raleway;font-style:normal;font-weight:600;src:local("Raleway SemiBold"),local("Raleway-SemiBold"),url(https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwPIsWqZPAA.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}html{font-size:62.5%}body{font-size:1.6rem;line-height:1.3;font-weight:400;font-family:raleway,Arial,sans-serif;color:#222}h1,.h1{font-family:raleway,Arial,sans-serif;font-weight:400;font-size:3rem;line-height:1.2;letter-spacing:-.075rem;margin-top:2rem;margin-bottom:.25rem}h2,.h2{font-family:raleway,Arial,sans-serif;font-weight:400;font-size:2.4rem;line-height:1.4;letter-spacing:-.05rem;margin-top:2rem;margin-bottom:.25rem}h3,.h3{font-family:raleway,Arial,sans-serif;font-weight:400;font-size:1.8rem;line-height:1.5;letter-spacing:-.025rem;margin-top:2rem;margin-bottom:.25rem}blockquote.aside{font-style:italic;border-left:4px solid #eaeaea;padding:0 1rem}hr.separator{margin:3em 0}.clear{display:block;clear:both}.centered{text-align:center}img.picture{border:1px solid #d6d6d6;-webkit-box-shadow:1px 1px 1px #D6D6D6;-moz-box-shadow:1px 1px 1px #D6D6D6;box-shadow:1px 1px 1px #D6D6D6}.underlined{text-decoration:underline;text-decoration-color:#e3e3e3}.hidden{display:none!important}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}@media(max-width:319px){.show-xs-up{display:none!important}}@media(max-width:479px){.show-sm-up{display:none!important}}@media(max-width:767px){.show-md-up{display:none!important}}@media(max-width:1023px){.show-lg-up{display:none!important}}@media(max-width:1199px){.show-xl-up{display:none!important}}@media(min-width:320px){.show-xs-down{display:none!important}}@media(min-width:480px){.show-sm-down{display:none!important}}@media(min-width:768px){.show-md-down{display:none!important}}@media(min-width:1024px){.show-lg-down{display:none!important}}@media(min-width:1200px){.show-xl-down{display:none!important}}.pull-right,.pull-right-md{display:block;text-align:center}.pull-right img,.pull-right-md img{object-fit:scale-down}.pull-left,.pull-left-md{display:block;text-align:center}.pull-left img,.pull-left-md img{object-fit:scale-down}.flex{display:flex;flex-direction:row}.flex-col{flex-direction:column}.w-full{width:100%}.h-full{height:100%}@media(min-width:480px){.pull-right{float:right;margin:2rem}.pull-right img{width:auto}.pull-left{float:left;margin:2rem}.pull-left img{width:auto}}@media(min-width:768px){.pull-right-md{float:right;margin:2rem}.pull-right-md img{width:auto}.pull-left-md{float:left;margin:2rem}.pull-left-md img{width:auto}}.contained{position:relative}.contained img{width:100%;object-fit:scale-down}a{color:#1080f0;text-decoration:none}a:hover{color:#f08010}a:focus{color:#f08010}a:active{color:#d9730e}.list-unstyled{list-style:none;padding:0;margin:0}code{color:#657b83;background-color:#fdf6e3;padding:0 2px;border:1px solid #eee8d5}pre code{border:0;padding:0}.chroma{color:#657b83;background-color:#fdf6e3}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#ffc}.chroma .lnt{margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .k{color:#859900}.chroma .kc{color:#2aa198}.chroma .kd{color:#b58900}.chroma .kn{color:#dc322f;font-weight:700}.chroma .kp{color:#859900}.chroma .kr{color:#859900}.chroma .kt{color:#859900;font-weight:700}.chroma .n{color:#839496}.chroma .na{color:#268bd2}.chroma .nb{color:#2aa198}.chroma .bp{color:#268bd2}.chroma .nc{color:#268bd2}.chroma .no{color:#b58900}.chroma .nd{color:#268bd2}.chroma .ni{color:#268bd2}.chroma .ne{color:#268bd2}.chroma .nf{color:#268bd2}.chroma .fm{color:#268bd2}.chroma .nl{color:#268bd2}.chroma .nn{color:#268bd2}.chroma .nx{color:#657b83}.chroma .py{color:#268bd2}.chroma .nt{color:#859900}.chroma .nv{color:#268bd2}.chroma .vc{color:#268bd2}.chroma .vg{color:#268bd2}.chroma .vi{color:#268bd2}.chroma .vm{color:#268bd2}.chroma .l{color:#2aa198}.chroma .ld{color:#2aa198}.chroma .s{color:#2aa198}.chroma .sa{color:#2aa198}.chroma .sb{color:#2aa198}.chroma .sc{color:#2aa198}.chroma .dl{color:#2aa198}.chroma .sd{color:#2aa198}.chroma .s2{color:#2aa198}.chroma .se{color:#2aa198}.chroma .sh{color:#2aa198}.chroma .si{color:#2aa198}.chroma .sx{color:#2aa198}.chroma .sr{color:#2aa198}.chroma .s1{color:#2aa198}.chroma .ss{color:#2aa198}.chroma .m{color:#2aa198;font-weight:700}.chroma .mb{color:#2aa198;font-weight:700}.chroma .mf{color:#2aa198;font-weight:700}.chroma .mh{color:#2aa198;font-weight:700}.chroma .mi{color:#2aa198}.chroma .il{color:#2aa198;font-weight:700}.chroma .mo{color:#2aa198;font-weight:700}.chroma .ow{color:#859900}.chroma .c{color:#93a1a1;font-style:italic}.chroma .ch{color:#93a1a1;font-style:italic}.chroma .cm{color:#93a1a1;font-style:italic}.chroma .c1{color:#93a1a1;font-style:italic}.chroma .cs{color:#93a1a1;font-style:italic}.chroma .cp{color:#93a1a1;font-style:italic}.chroma .cpf{color:#93a1a1;font-style:italic}.chroma .g{color:#d33682}.chroma .gd{color:#d33682}.chroma .ge{color:#d33682}.chroma .gr{color:#d33682}.chroma .gh{color:#d33682}.chroma .gi{color:#d33682}.chroma .go{color:#d33682}.chroma .gp{color:#d33682}.chroma .gs{color:#d33682}.chroma .gu{color:#d33682}.chroma .gt{color:#d33682}.chroma .gl{color:#d33682}.highlight .chroma .language-vim .nx{color:#657b83}.highlight .chroma .language-javascript .nx{color:#657b83}.highlight{margin:3rem 0;padding:0}.highlight pre{border:1px solid #d6d6d6;border-radius:.3em;display:block;padding:1em;overflow:auto;margin:0;line-height:1.5}.highlight+blockquote{margin-top:-1.5rem;margin-bottom:3rem}#frame{min-width:320px}#content{max-width:768px;margin:0 auto;padding:1rem 2rem}#header{text-align:center;padding-bottom:1rem;border-bottom:1px solid #f08010;background:#fef3e8}#header .brand{display:inline-block;font-size:3rem;font-weight:400;padding:8px}#header .links .selected{font-weight:700}#header .contact{display:block;margin-top:1rem}#header .contact .link{color:#222;margin-right:1px;width:4em}#header .contact .link :hover{color:#f08010}#header .contact .link.twitter{color:#1080f0}#header .contact .link.github{color:#222}#header .contact .link.linkedin{color:#1080f0}#header .contact .link.rss{position:absolute;top:1rem;right:1rem;color:#f08010;font-size:1.5em}#header .contact .link.rss :hover{color:#1080f0}#footer{margin:6rem 0;text-align:center}#footer .copyright{color:#9f9f9f;margin-top:.5rem}#footer .links .selected{font-weight:700}#disqus_thread{margin-top:6rem}#social{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}#social .network{-webkit-flex:0 1 7rem;-ms-flex:0 1 7rem;flex:0 1 7rem;border:0 solid green;height:4rem;padding:1rem .5rem}.page-title{padding-bottom:1rem}.page-title .draft{float:right;color:#f08010;opacity:.5;font-weight:700;font-style:italic;display:flex;align-items:center}.page-title .draft .fad{margin-left:1rem}.page-title .date{color:#9f9f9f}.headshot{border:5px solid #0c67c1;border-radius:200px}.alert{background:#fef3e8;border:1px solid #f08010;color:#a95a0b;border-radius:4px;padding:12px 16px;margin-bottom:16px;display:flex;gap:8px;align-items:center;margin:3em 0;padding:1em;max-width:80em;margin-left:auto;margin-right:auto}.alert::before{content:"ℹ️";margin-right:8px;font-size:24px}#home #promo{font-family:raleway,Arial,sans-serif;font-weight:400;font-size:1.8rem;line-height:1.5;letter-spacing:-.025rem;margin-top:2rem;margin-bottom:.25rem;max-width:50rem;margin:3rem auto 6rem}#home #promo .intro{display:flex;gap:2rem}#home #promo .headshot{width:100%}#home #promo .welcome{display:flex;flex-direction:column;gap:1em;min-width:60%;margin:0}#home #promo .welcome .chat{padding:1rem;display:flex;align-items:center;justify-content:center;gap:1rem;background:#fef3e8;border:2px dashed orange;border-radius:.5em;font-weight:700}#home #promo .recent{margin-left:1em}#home #promo .recent-writing{list-style-type:none;padding:0 2rem}#home #latest-article{margin:2rem 0;padding:1rem 2rem 4rem;background-color:#ffffd7;border:1px solid #c1670c}#home #latest-article .continued{font-family:raleway,Arial,sans-serif;font-weight:400;font-size:1.8rem;line-height:1.5;letter-spacing:-.025rem;margin-top:2rem;margin-bottom:.25rem}#home #writing{margin:0 2rem}#home #writing .writing-centered{margin:0 auto;max-width:100rem;display:flex;flex-wrap:wrap;justify-content:center}#home #writing .writing-centered .category.writing{flex:1;text-align:center;min-width:300px}#home #writing .writing-centered .category.games{flex:1;text-align:center;min-width:300px}#home #writing .writing-centered .category{display:flex;flex-direction:column;margin:0 1rem 6rem;border:1px solid #e3e3e3}#home #writing .writing-centered .category .category-header{flex-grow:0;display:flex;align-items:center;justify-content:center}#home #writing .writing-centered .category .category-writing{flex-grow:1}#home #writing .writing-centered .category .category-more{flex-grow:0}#home #writing .writing-centered .category-writing{list-style-type:none;padding:0 1rem}#home #writing .writing-centered .category-article{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0}#home #writing .writing-centered .category-more{background-color:#f7f7f7;border-top:1px solid #e3e3e3;padding:1rem}#home #writing .writing-centered .category-watermark{margin-right:2rem;opacity:.3}#content.about .headshot{float:right;margin:-3rem 0 3rem 3rem}#content.about #my-questions{width:100%;margin-top:2em;margin-bottom:2em}#content.about #my-questions td{border:0;background:0 0;white-space:nowrap;font-style:italic}#content.about #my-questions td{width:32.3333%}#content.about #my-questions td.buffer{width:1.5%}#content.about #my-questions td ul{list-style:none;padding:0;margin:0}#content.about #my-skills{padding:0;text-align:center}#content.about #my-skills li{color:#fefefe;background-color:#337ab7;display:inline-block;padding:.1em .5em .2em;line-height:1.2;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;margin:.2em}#content.about h2{text-align:center;margin:1em 0}@media(min-width:768px){#content.about #my-questions{margin-left:4em;margin-right:0}#content.about #my-skills{margin-left:6em;margin-right:6em}}@media(min-width:768px){#header .brand{padding-right:3em}#header .contact{display:inline-block;margin:0 2rem}}