.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{display:table;content:" "}.clearfix:after{clear:both}.left{float:left}.right{float:right}.fit{max-width:100%}.truncate{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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-right:0;margin-left: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-right:.5rem;margin-left:.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-right:1rem;margin-left: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-right:2rem;margin-left: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-right:4rem;margin-left:4rem}.my4{margin-top:4rem;margin-bottom:4rem}.mxn1{margin-right:-.5rem;margin-left:-.5rem}.mxn2{margin-right:-1rem;margin-left:-1rem}.mxn3{margin-right:-2rem;margin-left:-2rem}.mxn4{margin-right:-4rem;margin-left:-4rem}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-right:auto;margin-left:auto}.p0{padding:0}.pt0{padding-top:0}.pr0{padding-right:0}.pb0{padding-bottom:0}.pl0{padding-left:0}.px0{padding-right:0;padding-left: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-right:.5rem;padding-left:.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-right:1rem;padding-left: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-right:2rem;padding-left: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-right:4rem;padding-left:4rem}body .h1,body h1{display:block;margin-top:3rem;margin-bottom:1rem;color:#00c296;letter-spacing:.01em;font-weight:700;font-style:normal;font-size:1.5em;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}body .h2,body h2{position:relative;display:block;margin-top:2rem;margin-bottom:.5rem;color:#383838;text-transform:none;letter-spacing:normal;font-weight:700;font-size:1.125rem}body h3{color:#383838;text-decoration:underline;font-weight:700;font-size:1rem}body h4,body h5,body h6{display:inline;border-bottom:1px dashed #8c8c8c;color:#8c8c8c;text-decoration:none;font-weight:400;font-size:.9rem}body h3,body h4,body h5,body h6{margin-top:.9rem;margin-bottom:.5rem}body hr{border:1px dashed #8c8c8c;margin:0}body strong{font-weight:700}body cite,body em{font-style:italic}body sub,body sup{position:relative;vertical-align:baseline;font-size:.75em;line-height:0}body sup{top:-.5em}body sub{bottom:-.2em}body small{font-size:.85em}body abbr,body acronym{border-bottom:1px dotted}body dl,body ol,body ul{line-height:1.725}body ol ol,body ol ul,body ul ol,body ul ul{margin-top:0;margin-bottom:0}body ol{list-style:decimal}body dt{font-weight:700}body table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;overflow:auto;display:block}body th{padding:8px;border-bottom:1px dashed #666;color:#383838;font-weight:700;font-size:13px}body td{padding:9px 8px 0;border-bottom:none}@font-face{font-style:normal;font-family:"Meslo LG";src:local("Meslo LG S"),url(../lib/meslo-LG/MesloLGS-Regular.ttf) format("truetype")}*,:after,:before{box-sizing:border-box}html{margin:0;padding:0;height:100%;border-top:2px solid #383838;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0;height:100%;background-color:#fefefe;color:#383838;font-display:swap;font-weight:400;font-size:14px;font-family:Menlo,"Meslo LG",monospace;line-height:1.725;text-rendering:geometricPrecision;flex:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.content{position:relative;display:flex;flex-direction:column;min-height:100%;overflow-wrap:break-word}.content p{hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-webkit-hyphens:auto}.content code{hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual;-webkit-hyphens:manual}.content a{color:#383838;text-decoration:none;background-image:linear-gradient(transparent,transparent 5px,#383838 5px,#383838);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.content a:hover{background-image:linear-gradient(transparent,transparent 4px,#daefb1 4px,#daefb1)}.content a.icon{background:0 0}.content a.icon:hover{color:#daefb1}.content .h1 a,.content h1 a,.content h2 a,.content h3 a,.content h4 a,.content h5 a,.content h6 a{background:0 0;color:inherit;text-decoration:none}.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-image:linear-gradient(transparent,transparent 6px,#daefb1 6px,#daefb1);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.content h6 a{background:0 0;color:inherit;text-decoration:none}.content h6 a:hover{background-image:linear-gradient(transparent,transparent 6px,#daefb1 6px,#daefb1);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}@media (min-width:540px){.image-wrap{flex-direction:row;margin-bottom:2rem}.image-wrap .image-block{flex:1 0 35%;margin-right:2rem}.image-wrap p{flex:1 0 65%}}.max-width{max-width:48rem}@media (max-width:480px){.px3{padding-right:1rem;padding-left:1rem}.my4{margin-top:2rem;margin-bottom:2rem}}@media (min-width:480px){p{text-align:justify}}#header{margin:0 auto 1rem;width:100%}#header .h1,#header h1{margin-top:0;margin-bottom:0;color:#383838;letter-spacing:.01em;font-weight:700;font-style:normal;font-size:1.5rem;line-height:2rem;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}#header a{background:0 0;color:inherit;text-decoration:none}#header #logo{display:inline-block;float:left;margin-right:20px;width:50px;height:50px;border-radius:5px;background-size:50px 50px;background-repeat:no-repeat}#header #nav{color:#00c296;letter-spacing:.01em;font-weight:200;font-style:normal;font-size:.8rem}#header #nav ul{margin:0;padding:0;list-style-type:none;line-height:15px;display:flex;flex-wrap:wrap;padding:1px 0 1px 0}#header #nav ul a{margin-right:15px;color:#00c296}#header #nav ul a:hover{background-image:linear-gradient(transparent,transparent 5px,#00c296 5px,#00c296);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}#header #nav ul li{display:inline-block;margin-right:15px;border-right:1px dotted #00c296;vertical-align:middle;min-width:75px}#header #nav ul .icon{display:none}#header #nav ul li:last-child{margin-right:0;border-right:0}#header #nav ul li:last-child a{margin-right:0}#header:hover #logo{filter:none;-webkit-filter:none}@media screen and (max-width:480px){#header{margin:0 auto .5rem}#header #nav ul li{margin:2px 0 2px 0;border-right:unset}}#header #email-list{margin:.5rem 0;padding:3px;border:2px solid #daefb1;text-align:center}#header #email-list form{display:inline-block;min-width:250px;margin:0 3px}#header #email-list form input{display:inline-block;font-family:inherit;text-align:center}#header #email-list form #submit{background-color:#00c296;border:none;color:#fff;min-height:23px;cursor:pointer;font-weight:700}#header #email-list form #email{font-family:inherit}#header #email-list form #nkt{display:none}.post-list{padding:0}.post-list .post-item{margin-bottom:1rem;margin-left:0;list-style-type:none}.post-list .post-item .meta{display:block;margin-right:16px;min-width:100px;color:#666;font-size:14px}@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}.project-list .project-item p{display:inline}article header .posttitle{margin-top:75px;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:#8c8c8c;font-size:.85rem}article header .author{text-transform:uppercase;letter-spacing:.01em;font-weight:700;margin-right:.5rem}article header .postdate{display:inline}article .content h2:before{margin-right:10px;top:-4px;left:-1rem;color:#00c296;font-weight:700;font-size:1.2rem}article .content img,article .content video{display:block;margin:auto;max-width:100%;height:auto}article .content .video-container{position:relative;overflow:hidden;padding-top:56.25%;height:0}article .content .video-container embed,article .content .video-container iframe,article .content .video-container object{position:absolute;top:0;left:0;margin-top:0;width:100%;height:100%}article .content blockquote{margin:1rem 10px;padding:.5em 10px;background:inherit;color:#00c296;quotes:"\201C" "\201D" "\2018" "\2019";font-weight:700}article .content blockquote p{margin:0}article .content blockquote:before{margin-right:.25em;color:#00c296;content:"\201C";vertical-align:-.4em;font-size:2em;line-height:.1em}article .content blockquote footer{margin:line-height 0;color:#666;font-size:11px}article .content blockquote footer a{background-image:linear-gradient(transparent,transparent 5px,#666 5px,#666);color:#666}article .content blockquote footer a:hover{background-image:linear-gradient(transparent,transparent 4px,#858585 4px,#858585);color:#858585}article .content blockquote footer cite:before{padding:0 .5em;content:"—"}article .content .pullquote{margin:0;width:45%;text-align:left}article .content .pullquote.left{margin-right:1em;margin-left:.5em}article .content .pullquote.right{margin-right:.5em;margin-left:1em}article .content .caption{position:relative;display:block;margin-top:.5em;color:color-grey;text-align:center;font-size:.9em}.posttitle{text-transform:none;font-size:1.5em;line-height:1.25}.article-tag .tag-link{background-image:linear-gradient(transparent,transparent 10px,#daefb1 10px,#daefb1);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.article-tag .tag-link:before{content:"#"}.article-category .category-link{background-image:linear-gradient(transparent,transparent 10px,#daefb1 10px,#daefb1);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}@media (min-width:480px){.article-category,.article-tag{display:inline}.article-category:before,.article-tag:before{content:"|"}}#archive .post-list{padding:0}#archive .post-list .post-item{margin-bottom:1rem;margin-left:0;list-style-type:none}#archive .post-list .post-item .meta{display:block;margin-right:16px;min-width:100px;color:#666;font-size:14px}@media (min-width:480px){#archive .post-list .post-item{display:flex;margin-bottom:5px;margin-left:1rem}#archive .post-list .post-item .meta{text-align:left}}.blog-post-comments{margin-top:4rem}#footer{position:absolute;bottom:0;margin-bottom:10px;width:100%;color:#666;vertical-align:top;text-align:center;font-size:11px}#footer ul{margin:0;padding:0;list-style:none}#footer li{display:inline-block;margin-right:15px;border-right:1px solid #666;vertical-align:middle}#footer li a{margin-right:15px}#footer li:last-child{margin-right:0;border-right:0}#footer li:last-child a{margin-right:0}#footer a{color:#666;text-decoration:underline;background-image:none}#footer a:hover{color:#858585}#footer .footer-left{height:20px;vertical-align:middle;line-height:20px}@media (min-width:39rem){#footer{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:center;align-content:center;margin-bottom:20px}#footer .footer-left{align-self:flex-start;margin-right:20px}#footer .footer-right{align-self:flex-end}}.pagination{display:inline-block;margin-top:2rem;width:100%;text-align:center}.pagination .page-number{color:#383838;font-size:.8rem}.pagination a{padding:4px 6px;border-radius:5px;background-image:none;color:#383838;text-decoration:none}.pagination a:hover{background-image:none}.pagination a:hover:not(.active){color:#383838}.search-input{padding:4px 7px;width:100%;outline:0;border:solid 1px #8c8c8c;border-radius:5px;background-color:#fefefe;color:#383838;font-size:1.2rem;-webkit-border-radius:5px;-moz-border-radius:5px}.search-input:focus{border:solid 1px #00c296}#search-result ul.search-result-list{padding:0;list-style-type:none}#search-result li{margin:2em auto}#search-result a.search-result-title{background-image:none;color:#383838;text-transform:capitalize;font-weight:700;line-height:1.2}#search-result p.search-result{overflow:hidden;margin:.4em auto;max-height:13em;text-align:justify;font-size:.8em}#search-result em.search-keyword{border-bottom:1px dashed #daefb1;color:#daefb1;font-weight:700}.search-no-result{display:none;padding-bottom:.5em;color:#383838}#tag-cloud .tag-cloud-title{color:#666}#tag-cloud .tag-cloud-tags{clear:both;text-align:center}#tag-cloud .tag-cloud-tags a{display:inline-block;margin:10px}#categories .category-list-title{color:#666}#categories .category-list .category-list-item .category-list-count{color:#666}#categories .category-list .category-list-item .category-list-count:before{content:" ("}#categories .category-list .category-list-item .category-list-count:after{content:")"}.highlight{padding:.5em;color:#333}.highlight .code .comment,.highlight .code .meta{color:#969896}.highlight .code .emphasis,.highlight .code .quote,.highlight .code .string,.highlight .code .strong,.highlight .code .template-variable,.highlight .code .variable{color:#df5000}.highlight .code .keyword,.highlight .code .selector-tag,.highlight .code .type{color:#a71d5d}.highlight .code .attribute,.highlight .code .bullet,.highlight .code .literal,.highlight .code .symbol{color:#0086b3}.highlight .code .name,.highlight .code .section{color:#63a35c}.highlight .code .tag{color:#333}.highlight .code .attr,.highlight .code .selector-attr,.highlight .code .selector-class,.highlight .code .selector-id,.highlight .code .selector-pseudo,.highlight .code .title{color:#795da3}.highlight .code .addition{color:#55a532;background-color:#eaffea}.highlight .code .deletion{color:#bd2c00;background-color:#ffecec}.highlight .code .link{text-decoration:underline}pre{overflow-x:auto;padding:10px 15px;padding-bottom:0;border:1px dotted #666;border-radius:4px;font-size:13px;font-family:Menlo,"Meslo LG",monospace;line-height:22px;-webkit-border-radius:4px}pre code{display:block;padding:0;border:none}code{padding:0 5px;border:1px dotted #666;border-radius:2px;-webkit-border-radius:2px}.highlight{overflow-x:auto;margin:1rem 0;padding:10px 15px;border-radius:4px;background:#f9f9f9;font-family:Menlo,"Meslo LG",monospace;-webkit-border-radius:4px}.highlight figcaption{margin:-5px 0 5px;color:#757575;font-size:.9em;zoom:1}.highlight figcaption a{float:right;color:#757575;font-style:italic;font-size:.8em;background-image:linear-gradient(transparent,transparent 10px,#daefb1 10px,#daefb1);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.highlight figcaption a:hover{color:#919191}.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;display:none}.highlight .line{height:22px}.pag-anchor:hover{text-decoration:underline}#twx{display:inline-block;background-image:url(../images/twitter.svg);width:15px;height:15px;background-size:15px 15px;background-repeat:no-repeat;vertical-align:middle}video::-webkit-media-controls-panel{background-image:linear-gradient(transparent,transparent)!important}