.ContactForm-module-scss-module__jMp5HW__contactWrapper{height:calc(100vh - 70px);padding:10px;overflow:auto}.ContactForm-module-scss-module__jMp5HW__contactMe{border-bottom:1px solid #000;width:72%;margin:0 auto;font-family:Open Sans,sans-serif;font-size:1.6em}.ContactForm-module-scss-module__jMp5HW__form,.ContactForm-module-scss-module__jMp5HW__input{text-align:center}.ContactForm-module-scss-module__jMp5HW__form{flex-direction:column;justify-content:center;align-items:center;width:100%;height:420px;margin:auto auto 50px;display:flex}.ContactForm-module-scss-module__jMp5HW__input{background:0 0;border:none;border-bottom:1px dashed #1e162a;outline:none;width:275px;padding:0;font-style:italic}.ContactForm-module-scss-module__jMp5HW__message{resize:both;resize:both;-webkit-resize:both;background:0 0;border:none;border-bottom:1px dashed #1e162a;outline:none;width:275px;margin-top:10px;padding:0;font-style:italic;overflow:auto}.ContactForm-module-scss-module__jMp5HW__submit{-webkit-appearance:none;color:#000;background-color:#fff;border:none;border-radius:5px;margin:15px auto 0;padding:8px 10px;transition:all .2s ease-in-out;-webkit-box-shadow:0 2.5px 2.5px 2.5px #1e162a80;box-shadow:0 2.5px 2.5px 2.5px #1e162a80!important}.ContactForm-module-scss-module__jMp5HW__submit:hover{cursor:pointer}.ContactForm-module-scss-module__jMp5HW__label{margin:20px}
.SharedCss-module-scss-module__iHb0AW__height100vh{height:100vh}.SharedCss-module-scss-module__iHb0AW__zeroPadding{padding:0}.SharedCss-module-scss-module__iHb0AW__tenPadding{padding:10px}.SharedCss-module-scss-module__iHb0AW__zeroMarginBottom{margin-bottom:0}.SharedCss-module-scss-module__iHb0AW__sectionHeader,.SharedCss-module-scss-module__iHb0AW__sectionHeader2{border-bottom:1px solid #000;width:72%;margin:0 auto 52px;font-family:Open Sans,sans-serif;font-size:25px}.SharedCss-module-scss-module__iHb0AW__sectionHeader2{border-bottom:none;width:50%;min-height:38px;margin:0}@media only screen and (max-width:400px){.SharedCss-module-scss-module__iHb0AW__sectionHeader2{min-height:20px;padding-top:5px;font-size:20px}}.SharedCss-module-scss-module__iHb0AW__sectionHeight{height:calc(100vh - 70px)}.SharedCss-module-scss-module__iHb0AW__viewWrapper{flex-flow:wrap;justify-content:space-evenly;width:80%;margin:auto;padding:10px;display:flex}.SharedCss-module-scss-module__iHb0AW__headerWrapper{border-bottom:1px solid #000;justify-content:space-between;width:75%;margin:0 auto 52px;display:flex}.SharedCss-module-scss-module__iHb0AW__alwaysCentered{width:200px;height:100px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.SharedCss-module-scss-module__iHb0AW__width75{width:75%;margin:auto}.SharedCss-module-scss-module__iHb0AW__minus10LeftMargin{margin-left:-10px}
.StackItems-module-scss-module__hqq6hq__projectStackItem{max-width:90px;margin:auto auto 10px;display:inline-block;position:relative}.StackItems-module-scss-module__hqq6hq__logo{width:40px;height:40px;margin:5px}.StackItems-module-scss-module__hqq6hq__typescript{background-image:url(/images/typescript.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__nextjs{background-image:url(/images/nextjs.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__postgres{background-image:url(/images/postgres.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__dynamodb{background-image:url(/images/dynamodb.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__lancedb{background-image:url(/images/lancedb-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__mongo{background-image:url(/images/mongodb.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__react{background-image:url(/images/react.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__node{background-image:url(/images/nodejs.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__serverless{background-image:url(/images/serverless-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__express{background-image:url(/images/expressjslogo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__redux{background-image:url(/images/redux.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__javascript{background-image:url(/images/javascript.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__angular{background-image:url(/images/angular.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__docker{background-image:url(/images/docker-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__go{background-image:url(/images/go-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__awssam{background-image:url(/images/aws-sam.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__kubernetes{background-image:url(/images/kubernetes.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__cdk{background-image:url(/images/cdk.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__terraform{background-image:url(/images/terraform.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__lambda{background-image:url(/images/lambda.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__bedrock{background-image:url(/images/bedrock-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__apigateway{background-image:url(/images/apigateway.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__eventbridge{background-image:url(/images/eventbridge-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__route53{background-image:url(/images/route53-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__s3{background-image:url(/images/s3-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__jwt{background-image:url(/images/jwt.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__jest{background-image:url(/images/jest.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__python{background-image:url(/images/python.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__pytorch{background-image:url(/images/pytorch.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__cuda{background-image:url(/images/cuda.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__bash{background-image:url(/images/bash.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__athena{background-image:url(/images/athena.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__websockets{background-image:url(/images/websockets-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__grpc{background-image:url(/images/grpc-logo.webp);background-position:50%;background-size:cover}.StackItems-module-scss-module__hqq6hq__mcp{background-image:url(/images/mcp-logo.webp);background-position:50%;background-size:cover}
.Tooltip-module__X6bSSG__tooltipContainer{display:inline-block;position:relative}.Tooltip-module__X6bSSG__tooltipText{visibility:visible;color:#000;text-align:center;background-color:#fff;border-radius:6px;width:70px;margin-left:-40px;padding:5px;font-size:12px;position:absolute;bottom:100%;left:50%}
.Project-module-scss-module__tAzyrW__padding10{padding:10px}.Project-module-scss-module__tAzyrW__imageWrapper{width:350px;height:350px;margin:10px;position:relative;overflow:hidden}.Project-module-scss-module__tAzyrW__imageWrapper:hover .Project-module-scss-module__tAzyrW__overlay{opacity:1}.Project-module-scss-module__tAzyrW__overlay{opacity:0;z-index:3;background-color:#000000e6;width:100%;height:93%;transition:all .5s;position:absolute;inset:0}.Project-module-scss-module__tAzyrW__placeholderOverlay{z-index:2;pointer-events:none;background:linear-gradient(120deg,#e8e8e8 25%,#f3f3f3 50%,#e8e8e8 75%) 0 0/200% 100%;animation:1.4s linear infinite Project-module-scss-module__tAzyrW__placeholderShimmer;position:absolute;inset:0}.Project-module-scss-module__tAzyrW__placeholderHidden{opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}.Project-module-scss-module__tAzyrW__projectImage{object-fit:cover;object-position:center;width:100%;height:100%;position:relative;top:-25px}@keyframes Project-module-scss-module__tAzyrW__placeholderShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.Project-module-scss-module__tAzyrW__title{margin-top:0;font-size:1.5em;position:relative;top:20px}.Project-module-scss-module__tAzyrW__projectDescription{color:gold;max-width:320px;margin-bottom:10px;font-size:15px}.Project-module-scss-module__tAzyrW__projectStack{flex-flow:wrap;justify-content:space-evenly;max-width:300px;margin:auto;padding:0;display:flex}.Project-module-scss-module__tAzyrW__projectLinks{margin-bottom:50px;padding:10px}.Project-module-scss-module__tAzyrW__projectLinks ul{list-style-type:none}.Project-module-scss-module__tAzyrW__proLink{color:#f1f1f1;font-size:1.3em}.Project-module-scss-module__tAzyrW__text{color:gold;letter-spacing:1px}.Project-module-scss-module__tAzyrW__name{margin:0 10px;font-size:15px;display:block}
