a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}.highlight,code{font-family:Menlo,source code pro,serif}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}code{font-size:.8em;background:#f2f2f2;padding:3px 6px}pre code{padding:0;background:0 0;font-size:10px;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word}.highlight{background:#1b2b34;border-radius:5px;line-height:30px;padding:20px;margin:1.4rem 0}.app-bar,.site,body,footer{background-color:#fff}.highlight pre code{color:#cdd3de}.highlight .c{color:#93a1a1}.highlight .g{color:#cdd3de}.highlight .k{color:#99c794}.highlight .l,.highlight .n{color:#cdd3de}.highlight .o{color:#99c794}.highlight .p{color:#cdd3de}.highlight .x{color:#ec5f67}.highlight .cm{color:#93a1a1}.highlight .cp{color:#99c794}.highlight .c1{color:#93a1a1}.highlight .cs{color:#99c794}.highlight .gd{color:#fac863}.highlight .ge{color:#cdd3de;font-style:italic}.highlight .gr{color:#c594c5}.highlight .gh{color:#ec5f67}.highlight .gi{color:#99c794}.highlight .go,.highlight .gp{color:#cdd3de}.highlight .gs{color:#cdd3de;font-weight:700}.highlight .gu{color:#ec5f67}.highlight .gt{color:#cdd3de}.highlight .kc{color:#ec5f67}.highlight .kd{color:#69c}.highlight .kn,.highlight .kp{color:#99c794}.highlight .kr{color:#69c}.highlight .kt{color:#c594c5}.highlight .ld{color:#cdd3de}.highlight .m,.highlight .s{color:#fac863}.highlight .na{color:#cdd3de}.highlight .nb{color:#b58900}.highlight .nc{color:#69c}.highlight .no{color:#ec5f67}.highlight .nd{color:#69c}.highlight .ne,.highlight .ni{color:#ec5f67}.highlight .nf{color:#69c}.highlight .nl,.highlight .nn,.highlight .nx,.highlight .py{color:#cdd3de}.highlight .nt,.highlight .nv{color:#69c}.highlight .ow{color:#99c794}.highlight .w{color:#cdd3de}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#fac863}.highlight .sb{color:#93a1a1}.highlight .sc{color:#fac863}.highlight .sd{color:#cdd3de}.highlight .s2{color:#fac863}.highlight .se{color:#ec5f67}.highlight .sh{color:#cdd3de}.highlight .si,.highlight .sx{color:#fac863}.highlight .sr{color:#c594c5}.highlight .s1,.highlight .ss{color:#fac863}.highlight .bp,.highlight .vc,.highlight .vg,.highlight .vi{color:#69c}.highlight .il{color:#fac863}@font-face{font-family:icomoon;src:url(/blog/fonts/icomoon.eot?tb7it8);src:url(/blog/fonts/icomoon.eot?tb7it8#iefix) format("embedded-opentype"),url(/blog/fonts/icomoon.ttf?tb7it8) format("truetype"),url(/blog/fonts/icomoon.woff?tb7it8) format("woff"),url(/blog/fonts/icomoon.svg?tb7it8#icomoon) format("svg");font-weight:400;font-style:normal}[class*=" icon-"],[class^=icon-]{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-user:before{content:"\f007"}.icon-linkedin-square:before{content:"\f08c"}.icon-twitter:before{content:"\f099"}.icon-github:before{content:"\f09b"}.icon-flask:before{content:"\f0c3"}.icon-paper-plane:before,.icon-send:before{content:"\f1d8"}.animated{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceIn{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}.group:after{content:"";display:table;clear:both}.site,body{font:1em fira sans,sans-serif}.app-bar .name,strong{font-weight:600}img{max-width:100%}h2,h3{color:#000;margin-top:10px}.app-bar,.site{margin:0 auto}a:link{color:#000;text-decoration:none;border-bottom:1px solid}a:active,a:hover{color:#2980b9}a:visited{color:#7f8c8d}.app-bar{position:relative;display:grid;grid-template-columns:1fr 2fr;align-items:center;max-width:1028px;padding:20px 40px;border-bottom:1px solid #9d9d9d}.app-bar a:link,.app-bar a:visited{color:#2d2d2d}.app-bar .name{font-size:1.2rem;margin-top:0}.app-bar .name a{color:#000;text-decoration:none;border-bottom:none}.app-bar .name i{color:#212121;font-weight:400}.app-bar .name em,.app-bar .name i{display:none}.app-bar .social-links{justify-self:end}.app-bar .social-links li{display:inline-block;margin-left:20px;text-align:center}.app-bar .social-links li a{text-decoration:none;border:none}.app-bar .social-links i[class^=icon-]{display:inline-block;font-size:1.7rem;text-decoration:none}.app-bar .social-links em{display:none}footer{font-size:.8rem;text-align:center;padding:10px 10px 20px}footer a{color:#3d3d3d}footer a:active,footer a:link,footer a:visited{color:#3d3d3d;border-bottom:none}footer a:hover{border-bottom:1px solid}footer .social-links{display:grid;grid-template-columns:1fr 1fr 1fr;justify-items:center}.one-liner li,.post .secondary{display:none}.one-liner{text-align:center;z-index:5}.one-liner li.animated{display:block}.one-liner p{font-size:.9rem;font-weight:100;background-color:#6ab0de;color:#20638f;padding:5px 10px;letter-spacing:1pt}.author{position:relative;text-align:center;border:5px solid #000;background:url(https://veerasundar.com/blog/img/sfo-skyline.png) bottom right repeat-x #f1da4e;background-size:100%;color:#000;padding:20px 20px 80px}.author .name{font-size:3rem;font-weight:700;margin-top:0}.author .role{margin-top:10px}.mini-author .author{background-size:150px;padding-bottom:40px}.mini-author .author .name{font-size:1.5rem}.content{padding-bottom:20px}.page{max-width:728px;margin:10px auto}.home .comments h2{text-align:center;font-size:1.3rem;color:#2980b9}.home .comments ul{margin-top:20px}.home .comments .dsq-widget-item{position:relative;margin-top:40px;margin-bottom:0;border-top:1px solid #2980b9}.home .comments .dsq-widget-item>:first-child{position:absolute;left:50%;transform:translateX(-50%);top:-25px}.home .comments .dsq-widget-avatar{border-radius:50%;float:none;background-color:#fff;padding:5px;border:1px solid #2980b9}.home .comments .dsq-widget-user{display:block;text-decoration:none;color:#409ad5;font-size:.8rem;margin-top:10px}.home .comments .dsq-widget-user:after{content:'said';margin-left:5px;color:#7f8c8d}.home .comments .dsq-widget-comment{display:block;margin-top:10px}.home .comments .dsq-widget-meta{margin-top:10px;font-size:.8rem}.home .comments .dsq-widget-meta a{text-decoration:none;color:#b5bcbd}.home .comments .dsq-widget-meta a:first-child{max-width:70%}a.cta{background-color:#000;padding:5px 10px;text-decoration:none;color:#fff;border-radius:3px;border:1px solid #000;font-size:.9rem}a.cta:focus,a.cta:hover{background-color:#fff;color:#000}@media(min-width:800px){footer{padding:30px 10px}footer .social-links{display:block;font-size:1.2rem}footer .social-links li{display:inline-block;margin-right:40px}}@media(min-width:600px){.app-bar .name em{display:inline-block}.app-bar .social-links i[class^=icon-]{font-size:1rem}.app-bar .social-links em{display:inline-block;margin-left:5px}.author{position:relative;background-size:300px;background-repeat:repeat-x}.post .title{font-size:2rem}}@media(min-width:1200px){.app-bar{grid-template-columns:1fr 1fr}.app-bar .name i{display:inline-block}}.home .posts-list,.home .posts-list li{display:grid;grid-template-columns:1fr}.home{max-width:1000px;margin:0 auto}.home h3{margin-top:0}.home .posts-list{grid-column-gap:10px;grid-row-gap:10px;margin:10px}.home .posts-list li{padding:10px;background-color:#fff;border-radius:5px}.home .posts-list li .date{align-self:end;font-size:.8rem;opacity:.7}.home .posts-list li.view-all{align-items:center;justify-items:center}.home .posts-list li.view-all a{border:1px solid #3d3d3d;padding:10px;border-radius:5px;background-color:#3d3d3d;color:#fff}.home .posts-list a,.post .page-navigation a{border-bottom:none;text-decoration:none}.home .posts-list h3{font-size:1rem;line-height:1.7rem}.home .posts-list a:active,.home .posts-list a:link,.home .posts-list a:visited{color:#1e2222}@media(min-width:600px){.home .posts-list li{padding:20px}.home .posts-list h3{font-size:2rem;line-height:2.7rem}}.post{padding:20px 20px 0}.post .main{background-color:#fff;padding:20px}.post .title{font-weight:400;font-size:3rem;color:#000}.post .date{margin-top:10px;font-size:.8rem;color:#3d3d3d}.post .post-content{margin-top:10px;font-size:1.1rem;line-height:1.75rem;color:#1e2222}.post .post-content img:first-child{display:block;text-align:center;max-width:90%;margin:10px auto 0}.post .post-content h2{font-size:1.5rem;line-height:2.5rem;color:#000;margin-top:40px}.post .post-content h3{font-size:1rem;color:#000;margin-top:20px;font-weight:700;border-left:10px solid #000;padding-left:10px}.post .post-content p{margin-top:20px;line-height:2rem}.post .post-content ol,.post .post-content ul{margin-top:20px;margin-left:20px}.post .post-content ol li,.post .post-content ul li{margin-top:10px}.post .post-content ul{list-style:circle}.post .post-content ol{list-style:decimal}.post .post-content .highlight{margin-top:10px;margin-left:-20px;margin-right:-20px;padding:5px 20px;border-radius:10px}.post .post-content .highlight pre{padding:10px;white-space:pre-wrap;word-wrap:break-word}.post .post-content .highlight code{color:#7f8c8d;font:1rem fira mono,monospace;overflow:auto}.post .post-content .highlighter-rouge{font:1rem fira mono,monospace;letter-spacing:0;color:#2980b9}.post .post-content img{margin:10px 0}.post .post-content iframe{margin-top:10px}.post .post-content em{font-style:italic}.post blockquote{margin-top:10px;margin-left:10px;padding-left:10px;border-left:2px solid #6ab0de}.post .page-navigation{margin:20px 0;padding:10px;background-color:#f0f0f0;border-radius:10px}.post .page-navigation a{color:#000}.post .page-navigation ul{position:relative;display:grid;grid-template-columns:1fr;grid-column-gap:10px;grid-row-gap:10px;align-items:center}.post .page-navigation ul li{position:relative;z-index:2}.post .page-navigation ul li:first-child{justify-self:start}.post .page-navigation ul li:last-child{justify-self:end}.post .page-navigation ul i{display:inline-block;width:26px;height:26px;text-align:center;border-radius:50%}.post .page-navigation ul .text{display:inline-block}.post .app-holder{margin-top:20px}.post .ad.post-inside{display:block;text-align:center;margin:20px 0;padding:20px 0;border-top:1px solid #dadada;border-bottom:1px solid #dadada}.comments{padding:20px;font:1rem open sans,sans-serif}.aside{background-color:#fff;padding:20px}.aside .posts{margin-top:40px}.aside .posts li{margin-bottom:20px}.aside .posts li a{border-bottom:0}.aside .posts li a:hover{border-bottom:1px solid}.written-by{position:relative;text-align:center}.written-by .photo{width:100px;border-radius:50%;padding:5px}.written-by .name{font-weight:700}.written-by .position{color:#6d6d6d;margin-top:5px}.written-by .maker{margin:10px 0}.written-by .links{display:grid;padding:20px 0;margin:20px -20px;background-color:#eaeaea;grid-template-columns:1fr 1fr 1fr;font-size:.8rem}.written-by .links a{border-bottom:0;color:#3d3d3d}.written-by .links a:hover{border-bottom:1px solid}.written-by .links a i{margin-right:5px;font-size:1rem}@media(min-width:800px){.post{display:grid;grid-template-columns:1fr 300px;grid-column-gap:20px}.post .post-content{margin-top:40px}.post p:first-child{margin-top:0}.post .main{max-width:728px}.post .page-navigation{margin-top:20px}.post .page-navigation ul{grid-template-columns:1fr 1fr}}@media(min-width:1028px){.post{grid-template-columns:728px 300px;margin:0 auto;max-width:1028px}}.page .content,.page .content p{margin-top:20px}.page{padding:20px}.page .title{font-weight:400;font-size:3rem;color:#000}.page .content{background-color:#fff;padding:20px;font-size:1.1rem;line-height:1.75rem;color:#1e2222}.page .content>p:first-child{margin-top:0}.page .content h2{font-size:1.5rem;line-height:2.5rem;color:#000;margin-top:40px}.page .content h3{font-size:1rem;color:#000;margin-top:20px}.page.projects ol{margin-top:20px}.page.projects ol li{margin-top:30px}.page.projects ol li:first-child{margin-top:0}.page.projects h3 a{text-decoration:none}.page.projects img{margin:20px auto 0;text-align:center}.page.archive .posts li{padding:10px 0}.page.archive .posts li small{margin-left:10px}#carbonads{display:block;overflow:hidden;padding:.5rem;line-height:1.5;max-width:400px;margin:0 auto;border:1px solid #ccc;border-radius:5px}.carbon-img img,.carbon-poweredby{display:block;line-height:1}#carbonads a{border-bottom:none}#carbonads span{position:relative;display:block;overflow:hidden}.carbon-img{float:left;margin-right:1em}.carbon-text{display:block;float:left;max-width:calc(100% - 130px - 1em);text-align:left}.carbon-poweredby{position:absolute;right:0;bottom:0;font-size:.7em;text-transform:uppercase;letter-spacing:1px}@media only screen and (min-width:320px) and (max-width:759px){.carbon-poweredby{position:relative;margin:10px 5px 5px 0;text-align:right}}