@keyframes bganimation{0%{background-position:-100% -100%,200% 200%,-100% 200%,200% -100%}70%{background-position:150% 100%,-200% 100%,100% 0,0 100%}to{background-position:-100% -100%,200% 200%,-100% 200%,200% -100%}}html{background:radial-gradient(ellipse at center,#00f 0,rgba(0,0,255,0) 75%),radial-gradient(ellipse at center,red 0,rgba(255,0,0,0) 75%),radial-gradient(ellipse at center,#0f0 0,rgba(0,255,0,0) 75%) blue;background-repeat:no-repeat,no-repeat,no-repeat;background-size:900px 900px,900px 900px,900px 900px;background-attachment:fixed;animation:bganimation 7s infinite}.nav{width:100%;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;padding-top:10px}body{position:relative;background:#f4f4f4;margin:20px;padding:0;box-sizing:border-box;border-radius:4px}@media screen and (max-width:690px){body{margin:12px}}header{padding-top:4em;flex-direction:row;align-items:center;width:100%;flex-wrap:wrap}.header-content,header{display:flex;justify-content:center;box-sizing:border-box}.header-content{margin:0 2em;flex-direction:column;align-items:flex-start;max-width:30em}.tags{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:8px}.tag{background-color:#ededed;border-radius:8px;font-weight:700;color:dimgray;font-family:basic-sans,sans-serif;font-size:1em;padding:4px 6px;transition:all .1s ease-out;border:.5px solid rgba(0,0,0,.1)}.tag:hover{background-color:#e0e0e0;transform:scale(1.05)}@media screen and (max-width:700px){.header-content{align-items:center}.tags{justify-content:center}}.content{margin-top:50px}.content,.technical-content{position:relative;background:#f0f0f0;box-sizing:border-box;overflow:hidden!important;text-overflow:hidden!important}.technical-content{box-shadow:inset -20px 10px 20px 10px rgba(0,0,0,.05)}.description{width:100%;max-width:40em;margin:0 auto;padding:1em;box-sizing:border-box}.description p{font-size:1.4em}.technical-description{width:100%;max-width:40em;margin:0 auto;padding:7em 1em;box-sizing:border-box;position:relative;z-index:2!important}.technical-description p{font-size:1.4em}h2,h3,li,p{color:#272727}h1{font-family:basic-sans,sans-serif;letter-spacing:-1px;font-size:48px;color:#272727}h1,h2{font-weight:900;font-style:normal;margin:0}h2{font-size:32px}h2,h3{font-family:basic-sans,serif}h3{font-weight:900;font-size:28px;margin:0}h3,li,p{font-style:normal}li,p{font-family:basic-sans,sans-serif;font-weight:300;font-size:16px;line-height:1.2em}hr{position:relative;border:1px dashed #000;width:100%;margin:30px 0 20px}.hr-text{left:calc((100% - 63px)/2)}.hr-text,.hr-text-long{position:absolute;margin-top:-35px;background-color:#f4f4f4;font-size:1.5em;padding:0 8px}.hr-text-long{left:calc((100% - 230px)/2)}a{color:#45a396;transition:all .2s;cursor:pointer}.btn,a,a:hover{text-decoration:none}.btn{border-radius:12px!important;background:#f4f4f4;-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067);transition:box-shadow .6s cubic-bezier(.79,.21,.06,.81);color:#2a3454;padding:.8em 1em;margin:0 4px;font-family:basic-sans,sans-serif;font-weight:700;font-style:normal;font-size:16px;cursor:pointer;border-radius:6px;transition:transform .2s;display:inline-flex;flex-direction:row;justify-content:center;align-items:center}.btn.disabled,.btn:disabled{border:.5px solid rgba(0,0,0,.05)}.btn.disabled,.btn.disabled:hover,.btn:disabled,.btn:disabled:hover{cursor:default;transition:none!important;transform:none!important;box-shadow:none!important}.btn.disabled:active,.btn:disabled:active{box-shadow:none!important}.btn:hover{transform:scale(1.05)}.btn-nav{text-transform:uppercase;font-family:basic-sans,sans-serif;font-weight:700;font-style:normal;font-size:14px;cursor:pointer;border-radius:6px;padding:0 6px;transition:transform .2s;display:inline-flex;flex-direction:row;justify-content:center;align-items:center}.btn-nav:hover{transform:scale(.97)}.inline-img{display:inline-block;position:relative;margin:auto auto auto 5px;width:18px!important}.btn-gray{color:#999;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-gray:hover{color:#666}.btn-gray:active,.btn-gray:hover{background-color:hsla(0,0%,60%,.15)}.btn-purple{color:#824bff;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-purple:hover{color:#6a2bff}.btn-purple:active,.btn-purple:hover{background-color:rgba(130,75,255,.15)}.btn-orange{color:#f4911e;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-orange:hover{color:#db8016}.btn-orange:active,.btn-orange:hover{background-color:rgba(244,145,30,.15)}.btn-red{color:#d00000;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-red:hover{color:#bd0000}.btn-red:active,.btn-red:hover{background-color:rgba(208,0,0,.15)}.btn-burnt-orange{color:#ff6300;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-burnt-orange:hover{color:#e65900}.btn-burnt-orange:active,.btn-burnt-orange:hover{background-color:rgba(255,99,0,.15)}.btn-blue{color:#026cf7;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-blue:hover{color:#0962d6}.btn-blue:active,.btn-blue:hover{background-color:rgba(2,108,247,.15)}.btn-dark-gray{color:#474747;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-dark-gray:hover{color:#272727}.btn-dark-gray:active,.btn-dark-gray:hover{background-color:rgba(71,71,71,.15)}.btn-light-blue{color:#4fb5ff;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-light-blue:hover{color:#3bacff}.btn-light-blue:active,.btn-light-blue:hover{background-color:rgba(79,181,255,.15)}.btn-light-red{color:#ff004c;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-light-red:hover{color:#eb0048}.btn-light-red:active,.btn-light-red:hover{background-color:rgba(255,0,76,.15)}.btn-lighter-red{color:rgba(255,0,76,.3);background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-lighter-red:hover{color:rgba(255,0,76,.3)}.btn-lighter-red:active,.btn-lighter-red:hover{background-color:rgba(255,0,76,.05)}.btn-mint{color:#30dc9d;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-mint:hover{color:#1fcc8c}.btn-mint:active,.btn-mint:hover{background-color:rgba(48,220,157,.15)}.btn-green{color:#3db243;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-green:hover{color:#2eab35}.btn-green:active,.btn-green:hover{background-color:rgba(61,178,67,.15)}.btn-white{color:#f4f4f4;background-color:transparent;transition:all .1s ease-in-out;padding:0 4px;border-radius:8px}.btn-white:hover{color:#f4f4f4}.btn-white:active,.btn-white:hover{background-color:hsla(0,0%,100%,.15)}.dark{background-color:#000}.dark h2,.dark h3,.dark li,.dark p{color:#f4f4f4}.dark h1{color:transparent;-webkit-text-stroke:1.5px #ff004e}.wf-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto}.wf-box .testimonial-content{padding:1.5em;background:transparent;margin:auto}.wf-box .testimonial-content img{margin-top:-1em}.wf-box .testimonial-content h2{font-size:1.5em;font-weight:900}.wf-box .testimonial-content h3{font-size:1em;font-weight:900;color:rgba(0,0,0,.25)}.wf-box .testimonial-content p{font-size:1.3em;color:#272727;margin-top:8px;margin-bottom:8px}.wf-column{float:left}.testimonial{position:relative;width:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;background:transparent;cursor:pointer;box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067);border-radius:10px;margin:.5em;top:0;transition:all .2s ease;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box}.testimonial:hover{top:-5px;box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),14px 14px 15px 10px rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067)}.testimonial-image{background-size:cover;background-repeat:no-repeat;box-sizing:border-box;background-position:50%;width:auto;height:300px}@media screen and (max-width:768px){.testimonial-image{height:400px}}.card{flex-direction:column;justify-content:center;width:100%;max-width:100px;margin:.5em}.card,.social-row{display:flex;align-items:center}.social-row{flex-direction:row;justify-content:space-around;max-width:20em;width:auto;position:relative;box-shadow:-7px -7px 20px 0 hsla(0,0%,100%,.6),-4px -4px 5px 0 hsla(0,0%,100%,.6),7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 hsla(0,0%,100%,.6),inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 hsla(0,0%,100%,.6),inset 0 0 0 0 rgba(0,0,0,.067);transition:box-shadow .6s cubic-bezier(.79,.21,.06,.81);border-radius:10px;padding:1em;margin-top:16px}.cv-outer{background:#f4f4f4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23dfdfdf' fill-opacity='0.3'%3E%3Cpath d='M0 38.59l2.83-2.83 1.41 1.41L1.41 40H0v-1.41zM0 1.4l2.83 2.83 1.41-1.41L1.41 0H0v1.41zM38.59 40l-2.83-2.83 1.41-1.41L40 38.59V40h-1.41zM40 1.41l-2.83 2.83-1.41-1.41L38.59 0H40v1.41zM20 18.6l2.83-2.83 1.41 1.41L21.41 20l2.83 2.83-1.41 1.41L20 21.41l-2.83 2.83-1.41-1.41L18.59 20l-2.83-2.83 1.41-1.41L20 18.59z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.cv,.cv-outer{width:100%;box-sizing:border-box}.cv{max-width:40em;margin:0 auto;padding:40px 10px}.cv-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:0 .5em 1em;box-sizing:border-box}.front-header h2{margin:0;padding:0}.front-header p{padding:0;margin:8px 0 0;font-size:1em}@media only screen and (max-width:560px){.front-header p{display:none}}.experience-row{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;text-align:left;margin:2em 0;box-sizing:border-box}.experience-row .btn{margin-right:1em}.experience-row .btn-small{margin:0 2.05em 0 1.1em}.experience-row .row-content{width:100%}.row-content .main{justify-content:flex-start;flex-wrap:wrap}.main .title,.row-content .main{width:100%;display:flex;flex-direction:row;align-items:center}.main .title{justify-content:space-between}.main .title h3{margin:0 .5em 0 0;padding:0;font-weight:700;font-size:1.2em!important}.main .title h4{font-size:1em!important}.main .title h4,.main .title p{margin:0 .5em 0 0;padding:0}.title .location{color:#888;margin-bottom:1px!important}.title .front{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-end;flex-wrap:wrap}.main .date{margin:0;padding:0;margin-top:3px!important;text-transform:uppercase;font-size:.8em}.experience-row .position{margin:0;padding:0}.experience-row .experience-description{margin:0;padding:.3em 0 0;color:rgba(0,0,0,.6)!important}.top-button-div{position:absolute;display:flex;flex-direction:row;justify-content:flex-end;margin:0;padding:0;width:100%}.new-top-button{font-family:basic-sans,sans-serif;font-weight:700;border-radius:12px!important;background:#f4f4f4;-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067);transition:box-shadow .6s cubic-bezier(.79,.21,.06,.81);font-size:16px;color:rgba(42,52,84,.4);text-decoration:none;padding:.8em 1em;margin:0 4px}.btn:active,.new-top-button:active{box-shadow:4px 4px 6px 0 hsla(0,0%,100%,.5),-4px -4px 6px 0 hsla(213,8%,49%,.2),inset -4px -4px 6px 0 hsla(0,0%,100%,.5),inset 4px 4px 6px 0 hsla(213,8%,49%,.3)}.btn-small{border-radius:12px!important;background:#f4f4f4;-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067);transition:box-shadow .6s cubic-bezier(.79,.21,.06,.81);font-size:12px;color:#2a3454;text-decoration:none;padding:.7em 1em .5em;margin:0 4px}.btn-small.disabled,.btn-small:disabled{border:.5px solid rgba(0,0,0,.05)}.btn-small.disabled,.btn-small.disabled:hover,.btn-small:disabled,.btn-small:disabled:hover{cursor:default;transition:none!important;transform:none!important;box-shadow:none!important}.btn-small.disabled:active,.btn-small:disabled:active{box-shadow:none!important}.btn-small:hover{transform:scale(1.05)}.active,.btn-small:active{box-shadow:4px 4px 6px 0 hsla(0,0%,100%,.5),-4px -4px 6px 0 hsla(213,8%,49%,.2),inset -4px -4px 6px 0 hsla(0,0%,100%,.5),inset 4px 4px 6px 0 hsla(213,8%,49%,.3)}.active{font-family:basic-sans,sans-serif;font-weight:700;font-style:normal;cursor:auto;border-radius:6px;transition:transform .2s;display:inline-flex;flex-direction:row;justify-content:center;align-items:center;border-radius:12px!important;background:#f4f4f4;-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:16px;color:#2a3454;text-decoration:none;padding:.8em 1em;margin:0 4px}.background{position:absolute;top:-20px;left:-10px;width:150%;height:100%;white-space:"";text-overflow:hidden;z-index:0!important}.background p{display:inline-block;font-size:2em!important;color:rgba(0,0,0,.1);margin:.125em .25em .125em .2em}@media screen and (max-width:768px){.background p{font-size:1.5em!important}}.github-frame{width:auto;box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067);transition:box-shadow .6s cubic-bezier(.79,.21,.06,.81);border-radius:10px;margin:0 auto;padding:1em;background:#f4f4f4}.github-frame img{width:100%}.github-frame h3{margin:0 auto;text-align:center;font-style:italic;font-weight:400;color:rgba(0,0,0,.5)}.header-image{border-radius:10px!important;background:#f4f4f4;-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067);transition:box-shadow .6s cubic-bezier(.79,.21,.06,.81);color:#2a3454;padding:6px;margin:1em 0}footer{background-color:#f4f4f4;border-top:2px solid rgba(0,0,0,.05);width:100%;margin:auto;text-align:center;padding:1em;box-sizing:border-box;overflow:hidden}.footer-upper-content{display:flex;flex-direction:row;justify-content:center;align-items:center}@media screen and (max-width:1000px){.footer-upper-content{display:flex;flex-direction:column;justify-content:center;align-items:center}}.get-a-text{margin:1em auto}#chili-form{background-color:#fff;box-sizing:border-box;border:2px solid rgba(0,0,0,.05);border-radius:8px;box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067);width:95%;max-width:40em;height:300px;padding:30px;transition:box-shadow .6s cubic-bezier(.79,.21,.06,.81)}.twitter-tweet,blockquote{position:relative;box-sizing:border-box}.twitter-tweet{box-shadow:-7px -7px 20px 0 #fff,-4px -4px 5px 0 #fff,7px 7px 20px 0 rgba(0,0,0,.133),4px 4px 5px 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067),inset 0 0 0 0 #fff,inset 0 0 0 0 rgba(0,0,0,.067);border-radius:16px;transition:box-shadow .6s cubic-bezier(.79,.21,.06,.81);margin:1em auto;width:95%;max-width:550px}.twitter-tweet p{padding:1em}