.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.table{display:table}.table-cell{display:table-cell}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.left{float:left}.right{float:right}.fit{max-width:100%}.truncate{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.max-width-1{max-width:24rem}.max-width-2{max-width:32rem}.max-width-3{max-width:48rem}.max-width-4{max-width:64rem}.border-box{box-sizing:border-box}.m0{margin:0}.mt0{margin-top:0}.mr0{margin-right:0}.mb0{margin-bottom:0}.ml0{margin-left:0}.mx0{margin-left:0;margin-right:0}.my0{margin-top:0;margin-bottom:0}.m1{margin:.5rem}.mt1{margin-top:.5rem}.mr1{margin-right:.5rem}.mb1{margin-bottom:.5rem}.ml1{margin-left:.5rem}.mx1{margin-left:.5rem;margin-right:.5rem}.my1{margin-top:.5rem;margin-bottom:.5rem}.m2{margin:1rem}.mt2{margin-top:1rem}.mr2{margin-right:1rem}.mb2{margin-bottom:1rem}.ml2{margin-left:1rem}.mx2{margin-left:1rem;margin-right:1rem}.my2{margin-top:1rem;margin-bottom:1rem}.m3{margin:2rem}.mt3{margin-top:2rem}.mr3{margin-right:2rem}.mb3{margin-bottom:2rem}.ml3{margin-left:2rem}.mx3{margin-left:2rem;margin-right:2rem}.my3{margin-top:2rem;margin-bottom:2rem}.m4{margin:4rem}.mt4{margin-top:4rem}.mr4{margin-right:4rem}.mb4{margin-bottom:4rem}.ml4{margin-left:4rem}.mx4{margin-left:4rem;margin-right:4rem}.my4{margin-top:4rem;margin-bottom:4rem}.mxn1{margin-left:-.5rem;margin-right:-.5rem}.mxn2{margin-left:-1rem;margin-right:-1rem}.mxn3{margin-left:-2rem;margin-right:-2rem}.mxn4{margin-left:-4rem;margin-right:-4rem}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-left:auto;margin-right:auto}.p0{padding:0}.pt0{padding-top:0}.pr0{padding-right:0}.pb0{padding-bottom:0}.pl0{padding-left:0}.px0{padding-left:0;padding-right:0}.py0{padding-top:0;padding-bottom:0}.p1{padding:.5rem}.pt1{padding-top:.5rem}.pr1{padding-right:.5rem}.pb1{padding-bottom:.5rem}.pl1{padding-left:.5rem}.py1{padding-top:.5rem;padding-bottom:.5rem}.px1{padding-left:.5rem;padding-right:.5rem}.p2{padding:1rem}.pt2{padding-top:1rem}.pr2{padding-right:1rem}.pb2{padding-bottom:1rem}.pl2{padding-left:1rem}.py2{padding-top:1rem;padding-bottom:1rem}.px2{padding-left:1rem;padding-right:1rem}.p3{padding:2rem}.pt3{padding-top:2rem}.pr3{padding-right:2rem}.pb3{padding-bottom:2rem}.pl3{padding-left:2rem}.py3{padding-top:2rem;padding-bottom:2rem}.px3{padding-left:2rem;padding-right:2rem}.p4{padding:4rem}.pt4{padding-top:4rem}.pr4{padding-right:4rem}.pb4{padding-bottom:4rem}.pl4{padding-left:4rem}.py4{padding-top:4rem;padding-bottom:4rem}.px4{padding-left:4rem;padding-right:4rem}.content .h1,.content h1{letter-spacing:.01em;font-size:1.5em;font-style:normal;font-weight:700;color:#2bbc8a;margin-top:3rem;margin-bottom:1rem;display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.content .h2,.content h2{position:relative;font-size:1rem;font-weight:700;text-transform:none;letter-spacing:normal;margin-top:2rem;margin-bottom:.5rem;color:#eee;display:block}.content h3{font-size:.9rem;font-weight:700;text-decoration:underline;color:#eee}.content h4,.content h5,.content h6{font-size:.9rem;font-weight:400;color:#ccc;border-bottom:1px dashed #ccc;display:inline;text-decoration:none}.content h3,.content h4,.content h5,.content h6{margin-top:.9rem;margin-bottom:.5rem}.content hr{border:1px dashed #ccc}.content strong{font-weight:700}.content cite,.content em{font-style:italic}.content sub,.content sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}.content sup{top:-.5em}.content sub{bottom:-.2em}.content small{font-size:.85em}.content abbr,.content acronym{border-bottom:1px dotted}.content dl,.content ol,.content ul{line-height:1.725}.content ol ol,.content ol ul,.content ul ol,.content ul ul{margin-top:0;margin-bottom:0}.content ol{list-style:decimal}.content dt{font-weight:700}.content table{width:100%;font-size:$font-size -2px;border-collapse:collapse;text-align:left}.content th{font-size:$font-size -1px;font-weight:700;color:#eee;border-bottom:1px dashed #ccc;padding:8px 8px}.content td{border-bottom:none;padding:9px 8px 0 8px}*,:after,:before{box-sizing:border-box}html{height:100%;border-top:2px solid #c9cacc;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{color:#c9cacc;background-color:#1d1f21;font-size:15px;font-family:Consolas,SourceCodePro,DroidSansMono;font-weight:400;line-height:1.725;text-rendering:geometricPrecision;min-height:100%;display:flex;flex-direction:column;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.content{flex:1}.content p{-moz-hyphens:auto;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.content code,.content pre{-moz-hyphens:manual;-ms-hyphens:manual;-webkit-hyphens:manual;hyphens:manual}.content a{text-decoration:none;color:#c9cacc;background-repeat:repeat-x;background-position:bottom;background-size:100% 6px;background-image:linear-gradient(transparent,transparent 5px,#c9cacc 5px,#c9cacc)}.content a:hover{background-image:linear-gradient(transparent,transparent 4px,#d480aa 4px,#d480aa)}.content a.icon{background:0 0;margin-left:10px}.content a.icon:hover{color:#d480aa}.content .h1 a,.content h1 a,.content h2 a,.content h3 a,.content h4 a,.content h5 a,.content h6 a{color:inherit;text-decoration:none;background:0 0}.content .h1 a:hover,.content h1 a:hover,.content h2 a:hover,.content h3 a:hover,.content h4 a:hover,.content h5 a:hover,.content h6 a:hover{background-repeat:repeat-x;background-position:bottom;background-size:100% 6px;background-image:linear-gradient(transparent,transparent 6px,#d480aa 6px,#d480aa)}@media (min-width:540px){.image-wrap{flex-direction:row;margin-bottom:2rem}.image-wrap .image-block{margin-right:2rem;flex:1 0 35%}.image-wrap p{flex:1 0 65%}}.width{width:100%;max-width:39rem}@media (max-width:480px){.px3{padding-left:1rem;padding-right:1rem}.my4{margin-top:2rem;margin-bottom:2rem}}@media (min-width:480px){p{text-align:justify}}#header{max-width:710px;width:100%;margin:0 auto 3rem auto}#header .h1,#header h1{letter-spacing:.01em;font-size:1.5rem;line-height:2rem;font-style:normal;font-weight:700;color:#c9cacc;margin-top:0;margin-bottom:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}#header .h2,#header h2{position:relative;font-size:.8rem;letter-spacing:normal;color:#eee;margin-top:0}#header a{color:inherit;text-decoration:none;background:0 0}#header #logo{display:inline-block;float:left;margin-right:20px;width:50px;height:50px;background-repeat:no-repeat;background-size:50px 50px;border-radius:5px;-webkit-filter:grayscale(100%);filter:grayscale(100%);background-image:url(/images/logo.png)}#header #nav{letter-spacing:.04em;font-size:.8rem;font-style:normal;font-weight:600;color:#2bbc8a}#header #nav ul{list-style-type:none;margin:0;padding:0;line-height:15px}#header #nav ul a{margin-right:15px;color:color-accent}#header #nav ul a:hover{background-repeat:repeat-x;background-position:bottom;background-size:100% 6px;background-image:linear-gradient(transparent,transparent 5px,#2bbc8a 5px,#2bbc8a)}#header #nav ul li{display:inline-block;vertical-align:middle;margin-right:15px;border-right:1px dotted #2bbc8a}#header #nav ul .icon{display:none}#header #nav ul li:last-child{border-right:0;margin-right:0}#header #nav ul li:last-child a{margin-right:0}#header:hover #logo{-webkit-filter:none;filter:none}@media screen and (max-width:480px){#header #title{padding-top:0;padding-bottom:0}#header #nav ul a:hover{background:0 0}#header #nav ul li{display:none;border-right:0}#header #nav ul li.icon{display:inline-block;position:absolute;top:55px;right:1rem}#header #nav ul.responsive li{display:block}#header #nav li:not(:first-child){padding-top:1rem;padding-left:70px;font-size:1rem}}#header-post{position:fixed;top:2rem;right:0;display:inline-block;float:right}#header-post a{color:inherit;text-decoration:none;background:0 0}#header-post a.icon{background:0 0}#header-post a.icon:hover{color:#d480aa}#header-post ol{list-style-type:none}#header-post ul{list-style-type:none;margin:0;padding:0;display:inline-block}#header-post ul li{margin-right:15px;display:inline-block;vertical-align:middle}#header-post ul li:last-child{margin-right:0}#header-post #menu-icon{float:right;margin-left:15px;margin-right:2rem}#header-post #menu-icon:hover{color:#2bbc8a}#header-post #menu-icon-tablet{float:right;margin-left:15px;margin-right:2rem}#header-post #menu-icon-tablet:hover{color:#2bbc8a}#header-post #top-icon-tablet{margin-left:15px;margin-right:2rem;bottom:2rem;right:2rem;position:fixed}#header-post #top-icon-tablet:hover{color:#2bbc8a}#header-post .active{color:#2bbc8a}#header-post #menu{visibility:hidden;margin-right:2rem}#header-post #nav{letter-spacing:.01em;font-size:.8rem;font-style:normal;font-weight:200;color:#2bbc8a}#header-post #nav ul{line-height:15px}#header-post #nav ul a{margin-right:15px;color:color-accent}#header-post #nav ul a:hover{background-repeat:repeat-x;background-position:bottom;background-size:100% 6px;background-image:linear-gradient(transparent,transparent 5px,#2bbc8a 5px,#2bbc8a)}#header-post #nav ul li{border-right:1px dotted #2bbc8a}#header-post #nav ul li:last-child{border-right:0;margin-right:0}#header-post #nav ul li:last-child a{margin-right:0}#header-post #actions{float:right;margin-top:2rem;margin-right:2rem;width:100%;text-align:right}#header-post #actions ul{display:block}#header-post #actions .info{display:block;font-style:italic}#header-post #share{clear:both;text-align:right;padding-top:1rem}#header-post #share li{margin:0;display:block}#header-post #toc{clear:both;text-align:right;margin-top:1rem;padding-right:2rem;max-width:20em;float:right;overflow:auto;max-height:calc(95vh - 7rem)}#header-post #toc a:hover{color:#d480aa}#header-post #toc .toc-level-1>.toc-link{display:none}#header-post #toc .toc-level-2{font-size:.8rem;color:#c9cacc}#header-post #toc .toc-level-2:before{content:"#";color:#2bbc8a}#header-post #toc .toc-level-3{font-size:.7rem;color:#b3b3b3}#header-post #toc .toc-level-4{font-size:.4rem;color:#666}#header-post #toc .toc-level-5{display:none}#header-post #toc .toc-level-6{display:none}#header-post #toc .toc-number{display:none}@media screen and (max-width:500px){#header-post{display:none}}@media screen and (max-width:900px){#header-post #menu-icon{display:none}#header-post #actions{display:none}}@media screen and (max-width:1199px){#header-post #toc{display:none}}@media screen and (min-width:900px){#header-post #menu-icon-tablet{display:none!important}#header-post #top-icon-tablet{display:none!important}}@media screen and (min-width:1199px){#header-post #actions{width:auto}#header-post #actions ul{display:inline-block;float:right}#header-post #actions .info{float:left;margin-right:2rem;font-style:italic;display:inline}}#footer-post{bottom:0;left:0;right:0;position:fixed;transition:opacity .2s;width:100%;z-index:5000000;background:#212326;border-top:1px solid #666673}#footer-post a{color:inherit;text-decoration:none;background:0 0}#footer-post a.icon{background:0 0}#footer-post a.icon:hover{color:#d480aa}#footer-post #nav-footer{margin-left:1rem;margin-right:1rem;text-align:center}#footer-post #nav-footer a{color:#2bbc8a;font-size:1rem}#footer-post #nav-footer a:hover{background-repeat:repeat-x;background-position:bottom;background-size:100% 6px;background-image:linear-gradient(transparent,transparent 5px,#2bbc8a 5px,#2bbc8a)}#footer-post #nav-footer ul{list-style-type:none;margin:0;padding:0;display:table;width:100%}#footer-post #nav-footer ul li{display:inline-table;width:20%;padding:10px;vertical-align:middle}#footer-post #actions-footer{text-align:center;margin-top:1rem;margin-bottom:1rem;width:100%}#footer-post #actions-footer a{color:#2bbc8a}#footer-post #actions-footer ul{list-style-type:none;margin:0;padding:0;display:table;width:100%}#footer-post #actions-footer ul li{display:table-cell;vertical-align:middle}#footer-post #share-footer{margin-left:1rem;margin-right:1rem;text-align:center}#footer-post #share-footer ul{list-style-type:none;margin:0;padding:0;display:table;width:100%}#footer-post #share-footer ul li{display:inline-table;width:20%;padding:10px;vertical-align:middle}#footer-post #toc-footer{clear:both;text-align:left;padding-top:1rem}#footer-post #toc-footer ol{list-style-type:none;padding-left:20px}#footer-post #toc-footer ol li{line-height:30px}#footer-post #toc-footer a:hover{color:#d480aa}#footer-post #toc-footer .toc-level-1>.toc-link{display:none}#footer-post #toc-footer .toc-level-2{font-size:.8rem;color:#c9cacc}#footer-post #toc-footer .toc-level-2:before{content:"#";color:#2bbc8a}#footer-post #toc-footer .toc-level-3{font-size:.7rem;color:#b3b3b3;color:#666;line-height:15px}#footer-post #toc-footer .toc-level-4{display:none}#footer-post #toc-footer .toc-level-5{display:none}#footer-post #toc-footer .toc-level-6{display:none}#footer-post #toc-footer .toc-number{display:none}@media screen and (min-width:500px){#footer-post-container{display:none}}#sociallinks{display:inline-block;list-style:none;padding:0;margin:0}#sociallinks li{display:inline-block}#sociallinks li:after{content:", "}#sociallinks li:last-child:after{content:""}#sociallinks li:nth-last-child(2):after{content:" and "}.post-list{padding:0}.post-list .post-item{list-style-type:none;margin-left:0;margin-bottom:1rem}.post-list .post-item .meta{display:block;font-size:14px;color:#666;min-width:100px}@media (min-width:480px){.post-list .post-item{display:flex;margin-bottom:5px}.post-list .post-item .meta{text-align:left}}.project-list{padding:0;list-style:none}.project-list .project-item{margin-bottom:5px}article header .posttitle{margin-top:0;margin-bottom:0;text-transform:none;font-size:1.5em;line-height:1.25}article header .meta{margin-top:0;margin-bottom:1rem}article header .meta *{color:#ccc;font-size:.85rem;margin-right:3px}article header .author{letter-spacing:.01em}article header .postdate{display:inline;margin-left:5px;margin-right:5px}article .content h2:before{content:"#";color:#2bbc8a;position:absolute;left:-1rem;top:-4px;font-size:1.2rem;font-weight:700}article .content img,article .content video{max-width:100%;height:auto;display:block;margin:auto}article .content .video-container{position:relative;padding-top:56.25%;height:0;overflow:hidden}article .content .video-container embed,article .content .video-container iframe,article .content .video-container object{position:absolute;top:0;left:0;width:100%;height:100%;margin-top:0}article .content blockquote{background:inherit;color:#ccffb6;border-left:0 solid #ccc;margin:1rem 10px;padding:.5em 10px;quotes:"\201C" "\201D" "\2018" "\2019"}article .content blockquote p{margin:0}article .content blockquote:before{color:#ccffb6;content:"\201C";font-size:2em;line-height:.1em;margin-right:.25em;vertical-align:-.4em}article .content blockquote footer{color:#666;font-size:11px;margin:line-height 0}article .content blockquote footer a{color:#666;background-image:linear-gradient(transparent,transparent 5px,#666 5px,#666)}article .content blockquote footer a:hover{color:#999;background-image:linear-gradient(transparent,transparent 4px,#999 4px,#999)}article .content blockquote footer cite:before{content:"—";padding:0 .5em}article .content .pullquote{text-align:left;width:45%;margin:0}article .content .pullquote.left{margin-left:.5em;margin-right:1em}article .content .pullquote.right{margin-right:.5em;margin-left:1em}article .content .caption{color:color-grey;display:block;font-size:.9em;margin-top:.5em;position:relative;text-align:center}.posttitle{text-transform:none;font-size:1.5em;line-height:1.25}.article-tag .tag-link:before{content:"#"}@media (min-width:480px){.article-tag{display:inline}.article-tag:before{content:"|"}}#archive .post-list{padding:0}#archive .post-list .post-item{list-style-type:none;margin-left:0;margin-bottom:1rem}#archive .post-list .post-item .meta{display:block;font-size:15px;color:#666;min-width:100px;margin-right:16px}@media (min-width:480px){#archive .post-list .post-item{display:flex;margin-left:1rem;margin-bottom:5px}#archive .post-list .post-item .meta{text-align:left}}.blog-post-comments{margin-top:4rem}#footer{padding-top:10px;padding-bottom:10px;color:#666;font-size:11px;max-width:700px;width:100%;margin:0 auto 1rem auto;vertical-align:top;text-align:center}#footer ul{margin:0;padding:0;list-style:none}#footer li{display:inline-block;vertical-align:middle;margin-right:15px;border-right:1px solid #4a4a4a}#footer li a{margin-right:15px}#footer li:last-child{border-right:0;margin-right:0}#footer li:last-child a{margin-right:0}#footer a{color:#666}#footer a:hover{color:#999}#footer .footer-left{height:20px;line-height:20px;vertical-align:middle}@media (min-width:39rem){#footer{padding-top:20px;padding-bottom:20px}#footer .footer-left{float:left}#footer .footer-right{float:right}}.pagination{display:inline-block;margin-top:2rem;text-align:center;width:100%}.pagination .page-number{color:#c9cacc;font-size:.8rem}.pagination a{color:#c9cacc;padding:4px 6px;text-decoration:none;border-radius:5px;background-color:#2bbc8a;background-image:none}.pagination a:hover{background-image:none}.pagination a:hover:not(.active){color:#eee}.search-input{font-size:.875rem;height:1.75rem;border-width:1px;display:block;font-family:inherit;padding:.5rem;width:100%}.reset-button{height:1.75rem;color:#fff;background-color:#2bbc8a;padding:0 16px;font-size:.8em;border:1px solid #2bbc8a;border-radius:2px;font-family:inherit;font-weight:700}#search-result ul.search-result-list{list-style-type:none;padding:0}#search-result li{margin:2em auto;border-bottom:2px solid #2bbc8a}#search-result .search-result-list li:hover{color:#eee}#search-result a.search-result-title{line-height:1.2;font-weight:700;color:#2bb48a}#search-result p.search-result{margin:.4em auto;max-height:13em;overflow:hidden;font-size:.8em;text-align:justify}#search-result em.search-keyword{color:#f58e90;border-bottom:1px dashed #f58e90;font-weight:700;font-size:.85em}p.no-result{display:none;padding-bottom:.5em;color:#eee;border-bottom:2px solid #2bbc8a}.highlight{color:#f8f8f2;background:#23241f}.highlight .code .highlight,.highlight .code .subst,.highlight .code .tag{color:#f8f8f2}.highlight .code .emphasis,.highlight .code .strong{color:#a8a8a2}.highlight .code .bullet,.highlight .code .link,.highlight .code .literal,.highlight .code .number,.highlight .code .quote,.highlight .code .regexp{color:#ae81ff}.highlight .code .code,.highlight .code .section,.highlight .code .selector-class,.highlight .code .title{color:#a6e22e}.highlight .code .strong{font-weight:700}.highlight .code .emphasis{font-style:italic}.highlight .code .attr,.highlight .code .keyword,.highlight .code .name,.highlight .code .selector-tag{color:#f92672}.highlight .code .attribute,.highlight .code .symbol{color:#66d9ef}.highlight .code .class .title,.highlight .code .params{color:#f8f8f2}.highlight .code .addition,.highlight .code .built_in,.highlight .code .builtin-name,.highlight .code .selector-attr,.highlight .code .selector-id,.highlight .code .selector-pseudo,.highlight .code .string,.highlight .code .template-variable,.highlight .code .type,.highlight .code .variable{color:#e6db74}.highlight .code .comment,.highlight .code .deletion,.highlight .code .meta{color:#75715e}pre{font-family:Consolas,SourceCodePro,DroidSansMono;font-size:14px;padding:10px 15px;padding-bottom:0;line-height:22px;-webkit-border-radius:4px;border-radius:4px;border:1px dotted #666;overflow-x:auto}code{-webkit-border-radius:2px;border-radius:2px;border:1px dotted #666;padding:0 5px}pre code{border:none;display:block;padding:0}.highlight{font-family:Consolas,SourceCodePro,DroidSansMono;background:#212326;-webkit-border-radius:4px;border-radius:4px;padding:10px 15px;overflow-x:auto;margin:1rem 0 1rem 0}.highlight figcaption{zoom:1;margin:-5px 0 5px;font-size:.9em;color:#999}.highlight figcaption a{float:right}.highlight figcaption content: "",.highlight figcaption:before{display:table}.highlight figcaption:after{clear:both}.highlight pre{padding:0;border:none;background:0 0}.highlight table{width:auto}.highlight td.gutter{text-align:right}.highlight .line{height:22px}