html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video,input,select,textarea{margin:0;padding:0;border:0;outline:0;font:inherit;vertical-align:baseline;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}audio:not([controls]){display:none;height:0}body{line-height:1;font-size:16px}ul{list-style:none}table{border-collapse:collapse;border-spacing:0}a:focus,a:active,button::-moz-focus-inner,input[type=reset]::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,select::-moz-focus-inner,input[type=file]>input[type=button]::-moz-focus-inner{border:0;outline:0}.floatleft{float:left}.floatright{float:right}.clear{clear:both;display:block}.clearafter:after{content:'';clear:both;display:block}a{text-decoration:none;color:inherit}strong,b{font-weight:700}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}input,textarea,select,button{font-family:inherit;font-size:inherit;font-weight:inherit;border-radius:0}audio,canvas,video{display:inline-block}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}i{font-style:italic}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:700}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:700;font-style:italic}.highlight .c,.highlight .ch,.highlight .cd,.highlight .cpf{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .gd{color:#000;background-color:#fdd}.highlight .ge{color:#000;font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:700}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{color:#000;font-weight:700}.highlight .kd{color:#000;font-weight:700}.highlight .kn{color:#000;font-weight:700}.highlight .kp{color:#000;font-weight:700}.highlight .kr{color:#000;font-weight:700}.highlight .kt{color:#458;font-weight:700}.highlight .k,.highlight .kv{color:#000;font-weight:700}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .il{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .m,.highlight .mb,.highlight .mx{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .s,.highlight .sa,.highlight .dl{color:#d14}.highlight .na{color:teal}.highlight .bp{color:#999}.highlight .nb{color:#0086b3}.highlight .nc{color:#458;font-weight:700}.highlight .no{color:teal}.highlight .nd{color:#3c5d5d;font-weight:700}.highlight .ni{color:purple}.highlight .ne{color:#900;font-weight:700}.highlight .nf,.highlight .fm{color:#900;font-weight:700}.highlight .nl{color:#900;font-weight:700}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .nv,.highlight .vm{color:teal}.highlight .ow{color:#000;font-weight:700}.highlight .o{color:#000;font-weight:700}.highlight .w{color:#bbb}.highlight{background-color:#f8f8f8}body{font-family:source sans pro,sans-serif;font-size:18px;line-height:1.6;color:#222;background:#fff}.red{color:#cc342d}.container{width:960px;margin:0 auto;padding:0 15px;max-width:100%;position:relative}.row{margin-left:-15px;margin-right:-15px;display:flex;align-items:flex-start;flex-wrap:wrap;overflow:hidden}.row .col-6,.row .col-4{padding-left:15px;padding-right:15px;flex-grow:0;flex-shrink:0}.row .col-6{width:50%}@media screen and (max-width:767px){.row .col-6{width:100%}}.row .col-4{width:25%}@media screen and (max-width:767px){.row .col-4{width:100%}}header{padding:30px 0;line-height:1.2;font-size:30px;border-bottom:1px solid #eee;margin-bottom:50px}header a{color:#222}header .mode-switcher{margin-left:20px;cursor:pointer}header .mode-switcher svg{width:32px}header .mode-switcher .dark{display:none}@media screen and (max-width:980px){header .title{width:100%}}header h1{font-weight:600;display:flex}header .subheader{font-size:18px}header .menu{font-size:18px}@media screen and (max-width:980px){header .menu{margin:20px auto 0}}header .menu a{display:inline-block;margin-right:20px}@media screen and (max-width:420px){header .menu a{margin-right:10px}}header .menu a:hover{color:#cc342d}header .menu svg{display:inline-block;width:16px;height:16px;vertical-align:middle}header .menu svg path{fill:#222}header .menu .socials{display:inline-block}@media screen and (max-width:980px){header .menu .socials{position:absolute;top:0;right:15px}}header .menu .socials a{display:inline-block;margin-right:0;margin-left:10px}header .menu .socials a:first-child{margin-left:0}header .menu .socials a:hover svg path{fill:#cc342d}.flex{display:flex;align-items:center;justify-content:space-between}.flex--wrap{flex-wrap:wrap}@media screen and (max-width:767px){.flex{flex-direction:column}}h2{font-weight:300;font-size:36px;line-height:1.3;margin:30px 0 10px}h3{font-weight:600;font-size:24px;line-height:1.3;margin:10px 0}main a:hover,footer a:hover{color:#cc342d;border-color:#cc342d!important}main h1{font-weight:300;font-size:48px;line-height:1.2}@media screen and (max-width:767px){main h1{font-size:40px}}main strong{font-weight:600}main .meta{color:#666;font-size:13px;line-height:20px;padding:10px 0}main .meta .tag{vertical-align:1px;border-radius:3px;display:inline-block;color:#666;font-size:10px;text-transform:uppercase;background-color:#eee;padding:2px 8px;margin:0 2px}main .meta .comments{margin:0 30px}main p{margin-bottom:15px}main code{font-family:source code pro,monospace;background-color:#f8f8f8;padding:0 5px;font-size:16px;color:#d14}main pre{font-family:source code pro,monospace;padding:15px 20px;margin:15px 0;overflow-x:auto}main pre code{padding:0;color:#222}main .content a{border-bottom:1px dotted #666;word-break:break-word}main ul,main ol{padding-left:30px;margin-bottom:15px}main ul li{list-style:disc}main .single-post{margin-bottom:50px}main .content{margin-top:15px}main .tags{display:inline-block}@media screen and (max-width:767px){main .tags{display:block;margin-top:10px}}#disqus_thread{margin:50px 0}.error{text-align:center;margin-bottom:50px}.about-me{text-align:center;margin-bottom:5px}.about-me__photo{width:240px;display:inline-block;border-radius:50%}.about-me__cont{margin-bottom:30px}#consulting-form{margin:30px 0}#consulting-form input,#consulting-form textarea{width:100%;border:1px solid #ccc;padding:10px;margin-bottom:10px;border-radius:5px;outline:none;display:block}#consulting-form textarea{height:200px}#consulting-form button{padding:10px 30px;border-radius:5px;background:#cc342d;color:#fff;outline:none;border:0}.open-source{margin-bottom:30px}.open-source .title{margin-right:10px}#newsletter div[data-style=minimal]{padding:0}#newsletter .formkit-header{margin-bottom:0}#newsletter .formkit-header h2{margin-bottom:0}#newsletter .formkit-subheader{margin-top:0}.dark-mode{background:#151515;color:#c3c3c3}.dark-mode header{border-bottom:1px solid #3a3a3a}.dark-mode header a{color:#c3c3c3}.dark-mode header svg path{fill:#c3c3c3}.dark-mode header .mode-switcher .light{display:none}.dark-mode header .mode-switcher .dark{display:inline-block}.dark-mode div.highlight{filter:invert(100%);-webkit-filter:invert(100%)}.dark-mode p code{background:#070707}.dark-mode main .meta .tag{background:#3a3a3a;color:#aaa}.dark-mode #newsletter .formkit-form{background-color:transparent!important}.dark-mode #newsletter .formkit-header,.dark-mode #newsletter .formkit-subheader{color:#c3c3c3!important}.dark-mode #newsletter .formkit-guarantee{color:#666!important}