@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(/fonts/montserrat-400.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/fonts/montserrat-600.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(/fonts/montserrat-700.woff2)format("woff2")}*{box-sizing:border-box;margin:0;padding:0;font-family:Montserrat,sans-serif}html{scroll-behavior:smooth;font-size:62.5%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.section{flex-direction:column;justify-content:center;align-items:center;width:100%;padding:9rem 2rem;scroll-margin-top:-4.7rem;display:flex;position:relative}.section-heading{font-size:2.8rem;font-weight:700;line-height:1.25}.center-content{text-align:center}.fw-bold{font-weight:600}.section-decoration{background-color:#171e2f;border-radius:25rem;width:17rem;height:17rem;position:absolute;bottom:calc(100% - 4.5rem)}.skip-link{color:#171e2f;z-index:10;background-color:#f5f5f5;border:.2rem solid #008313;border-radius:.5rem;padding:1rem;font-size:1.6rem;font-weight:600;line-height:1.5;text-decoration:none;transition:transform .15s ease-in-out;position:fixed;top:1rem;left:50%;transform:translate(-50%,-150%)}.skip-link:focus-visible{outline-offset:.2rem;outline:.2rem solid #55ef69;transform:translate(-50%)}.portfolio-btn{color:#f5f5f5;cursor:pointer;background-color:#171e2f;border:.1rem solid #f5f5f5;border-radius:.5rem;padding:1rem;font-size:1.4rem;font-weight:600;line-height:1.5;text-decoration:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.portfolio-btn:hover,.portfolio-btn:focus-visible{color:#171e2f;background-color:#f5f5f5}.portfolio-btn:focus-visible{outline-offset:.2rem;outline:.2rem solid #008313}.no-scroll{overscroll-behavior:none;overflow:hidden}body.no-scroll{width:100%;position:fixed}.simple-link{color:#5a3daa;border-radius:.5rem;transition:color .15s ease-in-out}.simple-link:hover,.simple-link:focus-visible{color:#2d0d87}.simple-link:focus-visible{outline-offset:.2rem;outline:.2rem solid #171e2f}.reveal{opacity:0}.reveal--fade{transition:opacity .5s ease-in-out .1s}.reveal--slide{transition:opacity .5s ease-in-out .1s,transform .6s cubic-bezier(.4,1,.4,1) .1s;transform:translate(15rem)}.reveal--from-left{transform:translate(-15rem)}.reveal--visible{opacity:1}.reveal--slide.reveal--visible{transform:translate(0)}@media only screen and (width>=610px){.section{padding:9rem 4.5rem}}@media (prefers-reduced-motion:reduce){.skip-link{transition:none}.reveal{opacity:1;transition:none;transform:none}}.core-technologies{color:#171e2f;z-index:2;background-color:#f5f5f5}.core-technologies__heading-container{max-width:70rem;margin-bottom:5rem}.core-technologies__heading-container p{color:#535353;margin-top:1.4rem;font-size:1.6rem;line-height:1.6}.core-technologies__stack{width:min(120rem,90%)}.core-technologies__stack .technology-wrapper{grid-template-columns:repeat(auto-fit,minmax(8.2rem,1fr));justify-content:center;place-items:flex-start center;gap:4rem clamp(4rem,5vw,6.5rem);list-style:none;display:grid}.core-technologies__stack .technology-wrapper .technology{width:100%;max-width:11rem;height:100%}.core-technologies__stack .technology-wrapper .technology>div{flex-direction:column;justify-content:flex-start;align-items:center;gap:.5rem;width:100%;height:100%;min-height:12rem;display:flex}.core-technologies__stack .technology-wrapper .technology img{object-fit:contain;background-color:#f5f5f5;width:min(100%,7.2rem);max-height:7rem;transition:transform .15s ease-in-out}.core-technologies__stack .technology-wrapper .technology .fw-bold{color:#171e2f;text-align:center;margin-top:2rem;font-size:1.4rem;line-height:1.5}.core-technologies__stack .technology-wrapper .technology:hover img{transform:translateY(-.3rem)}@media only screen and (width<=420px){.core-technologies__stack .technology-wrapper{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:3rem}}@media (prefers-reduced-motion:reduce){.core-technologies__stack .technology-wrapper .technology img{transition:none}.core-technologies__stack .technology-wrapper .technology:hover img{transform:none}}.contact{color:#171e2f;background-color:#f5f5f5;overflow:hidden}.contact.section{padding-bottom:0}.contact .section-decoration--left,.contact .section-decoration--right{display:none;bottom:calc(40% - 4.5rem)}.contact .section-decoration--left{right:calc(100% - 4.5rem)}.contact .section-decoration--right{left:calc(100% - 4.5rem)}.contact__heading{text-align:center;max-width:72rem;margin-bottom:4.5rem}.contact__heading p{color:#535353;margin-top:1.4rem;font-size:1.6rem;line-height:1.6}.contact__form-wrapper{justify-content:center;width:100%;margin-bottom:5rem;display:flex}.contact-form{flex-direction:column;width:90%;max-width:70rem;display:flex;position:relative}.contact-form__required-note{margin-bottom:1.6rem;font-size:1.4rem;line-height:1.5}.contact-form__required-mark{color:#a00}.contact-form__announcer{font-size:1.6rem;position:absolute;top:auto;left:-10000px}.contact-form__state-msg{color:#f5f5f5;opacity:1;border-radius:.5rem;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:.5rem;padding:.4rem 1rem;font-size:1.4rem;font-weight:600;line-height:1.5;transition:opacity .15s;display:flex}@starting-style{.contact-form__state-msg{opacity:0}}.contact-form__state-msg--success{background-color:#00610e}.contact-form__state-msg--error{background-color:#a00}.contact-form__dismiss-btn{cursor:pointer;background-color:#0000;border:none;border-radius:.5rem;flex:none;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex}.contact-form__dismiss-btn:focus-visible{outline:.2rem solid #f5f5f5}.contact-form__dismiss-icon{filter:brightness(0)invert();background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='800'%20fill='none'%20viewBox='0%200%2024%2024'%3e%3cpath%20fill='%23f5f5f5'%20d='M20.746%203.329a1%201%200%200%200-1.415%200l-7.294%207.294-7.294-7.294a1%201%200%201%200-1.414%201.414l7.294%207.294-7.294%207.294a1%201%200%200%200%201.414%201.415l7.294-7.295%207.294%207.295a1%201%200%200%200%201.415-1.415l-7.295-7.294%207.295-7.294a1%201%200%200%200%200-1.414'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:cover;width:2rem;min-width:2rem;height:2rem;display:block}.contact-form__loading-spinner{opacity:1;background-color:#008313;border:.5rem solid #fff;border-top-color:#171e2f;border-radius:50%;width:3.8rem;height:3.8rem;margin:0 auto .5rem;transition:opacity .15s;animation:1.2s linear infinite spin}@starting-style{.contact-form__loading-spinner{opacity:0}}.contact-form__loading-message{color:#f5f5f5;text-align:center;background-color:#171e2f;border-radius:.5rem;align-self:center;margin-bottom:1rem;padding:.7rem 1.2rem;font-size:1.4rem;font-weight:600;line-height:1.5}.contact-form .portfolio-btn{border:.2rem solid #171e2f;font-size:1.4rem}.contact-form .portfolio-btn:disabled{color:#535353;cursor:default;background-color:#f5f5f5;border-color:#535353}@media (prefers-reduced-motion:reduce){.contact-form__state-msg{transition:none}}@keyframes spin{to{transform:rotate(1turn)}}@media only screen and (width>=530px){.contact__form-wrapper .contact__form{width:70%}}@media only screen and (width>=900px){.contact .section-decoration--left,.contact .section-decoration--right{display:block}}.form-field{flex-direction:column;display:flex}.form-field__label{text-align:start;width:fit-content;margin-bottom:.5rem;font-size:1.6rem;font-weight:600;line-height:1.5}.form-field__required-mark{color:#a00}.form-field__input{border:.15rem solid #171e2f;border-radius:.25rem;margin-bottom:2rem;padding:.7rem 1rem;font-size:1.6rem;line-height:1.6;transition:border-color .15s ease-in-out}.form-field__input:read-only{color:#535353;border-color:#535353}.form-field__input:focus-visible{outline-offset:.2rem;outline:.2rem solid #008313}.form-field__input::placeholder{color:#595959}.form-field__input--error{border-color:#a00;outline-color:#a00}.form-field__textarea-field{flex-direction:column;margin-bottom:2rem;display:flex}.form-field__textarea-field .form-field__input{margin-bottom:.4rem}.form-field__character-count{color:#535353;text-align:end;font-size:1.4rem;line-height:1.5}.form-field__error{color:#a00;margin-top:-2.2rem;margin-bottom:1.2rem;font-size:1.4rem;font-weight:600;line-height:1.5}.form-field textarea.form-field__input{resize:vertical;min-height:5.1rem}.footer{color:#171e2f;text-align:center;background-color:#f5f5f5;padding:.5rem 2rem 2rem}.footer__content{flex-wrap:wrap;justify-content:center;align-items:center;gap:2rem;display:flex}.footer__content p{min-width:28rem;font-size:1.4rem;font-weight:600;line-height:1.5}.footer__content .footer__links-container{gap:2rem;display:flex}.icon-link{background-color:#f5f5f5;border:0 solid #171e2f;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s ease-in-out;display:flex}.icon-link:hover,.icon-link:focus-visible{background-color:#55ef69;outline:none}.icon-link:focus-visible{outline-offset:.2rem;outline:.2rem solid #008313}.icon-link img{border-radius:50%}.icon-link--labeled{color:#f5f5f5;background-color:#0000;border-radius:.5rem;gap:.8rem;font-size:1.4rem;font-weight:600;text-decoration:none;transition:color .15s ease-in-out}.icon-link--labeled:hover,.icon-link--labeled:focus-visible{color:#55ef69;background-color:#0000}.icon-link--labeled:hover img,.icon-link--labeled:focus-visible img{background-color:#55ef69}.icon-link--labeled img{background-color:#f5f5f5;padding:.1rem;transition:background-color .15s ease-in-out}.header{color:#f5f5f5;z-index:3;background:radial-gradient(circle at 84% 24%,#7beafe29,#0000 28rem),linear-gradient(#0b1020 0%,#172313 48%,#171e2f 100%);min-height:93vh;overflow:hidden}.header.section{justify-content:unset;padding-top:2rem;padding-bottom:9rem}.header__menu{z-index:1;justify-content:space-between;align-items:center;width:100%;margin-bottom:4.5rem;display:flex;position:relative}.header__menu .portfolio-btn{white-space:nowrap;font-size:1.4rem}.header__content{flex-wrap:wrap;flex-grow:1;justify-content:center;align-items:center;gap:3rem 6rem;width:100%;display:flex}.header__text-content{max-width:70rem}.header__text-content h1{flex-direction:column;width:fit-content;margin-bottom:3rem;scroll-margin-top:1.5rem;font-size:4rem;line-height:1.2;display:flex}.header__text-content h1 span:first-of-type{color:#7beafe}.header__text-content h1 span:last-of-type{color:#55ef69;font-size:2.5rem;line-height:1.35}.header__text-content h1:focus-visible{outline-offset:.4rem;border-radius:.5rem;outline:.2rem solid #55ef69}.header__text-content p{padding-bottom:1.6rem;font-size:1.6rem;line-height:1.6}.header__text-content p:last-of-type{margin-bottom:3rem;padding-bottom:0}.header__cta-wrapper{flex-wrap:wrap;gap:2rem;display:flex}.header__cta-wrapper a:focus-visible{outline-color:#55ef69}.header__cta{border-radius:50%;justify-content:center;align-items:center;display:flex}.header__profile-picture{object-fit:cover;border-radius:1.8rem;width:28rem;height:28rem}.nav{justify-content:space-around;width:100%;display:flex}.nav__wcag-link{height:fit-content;margin-top:.2rem;display:flex}.nav__wcag-link:focus-visible{outline-offset:.2rem;border-radius:.25rem;outline:.2rem solid #55ef69}.nav__wcag-link img{width:8.8rem;height:3.1rem}.nav .hamburger-menu{cursor:pointer;background-color:#171e2f;border:none;border-radius:.25rem;justify-content:center;align-items:center;width:3rem;height:3rem;margin-left:auto;display:flex;position:relative}.nav .hamburger-menu:focus-visible{outline-offset:.3rem;outline:.2rem solid #55ef69}.nav .hamburger-menu .hamburger-icon{background-color:#fff;border-radius:.2rem;width:3rem;height:.25rem}.nav .hamburger-menu .hamburger-icon:before,.nav .hamburger-menu .hamburger-icon:after{content:"";background-color:#fff;border-radius:.5rem;width:3rem;height:.25rem;transition:all .15s ease-in-out;position:absolute}.nav .hamburger-menu .hamburger-icon:before{transform:translate(-1.5rem,-1rem)}.nav .hamburger-menu .hamburger-icon:after{transform:translate(-1.5rem,1rem)}.nav .backdrop{opacity:.6;z-index:1;background-color:#171e2f;position:fixed;inset:0}.nav__link-wrapper{text-align:center;z-index:2;background-color:#171e2f;border-left:.2rem solid #f5f5f5;flex-flow:column wrap;gap:2rem;width:62vw;height:100dvh;margin-bottom:3rem;margin-left:auto;padding:2rem;transition:background-color .15s ease-in-out,color .15s ease-in-out;display:flex;position:fixed;top:0;right:0}.nav__link-wrapper .close-btn{cursor:pointer;background-color:#0000;background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='800'%20fill='none'%20viewBox='0%200%2024%2024'%3e%3cpath%20fill='%23f5f5f5'%20d='M20.746%203.329a1%201%200%200%200-1.415%200l-7.294%207.294-7.294-7.294a1%201%200%201%200-1.414%201.414l7.294%207.294-7.294%207.294a1%201%200%200%200%201.414%201.415l7.294-7.295%207.294%207.295a1%201%200%200%200%201.415-1.415l-7.295-7.294%207.295-7.294a1%201%200%200%200%200-1.414'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:.5rem;width:3rem;min-width:3rem;height:3rem;margin-bottom:5rem;margin-left:auto;display:inline-block}.nav__link-wrapper .close-btn:focus-visible{outline:.2rem solid #55ef69}.nav__link-wrapper .portfolio-btn{white-space:wrap;font-size:1.4rem}.nav__link-wrapper .portfolio-btn:focus-visible{outline-color:#55ef69}@media only screen and (width>=610px){.nav .hamburger-menu{display:none}.nav__link-wrapper{z-index:auto;background-color:#0000;border:none;flex-direction:row;justify-content:flex-end;width:auto;height:auto;padding:0;position:static}.nav .portfolio-btn{white-space:normal}}.case-studies-section{color:#f5f5f5;z-index:1;background:linear-gradient(#0b1020 0%,#171e2f 100%);overflow:hidden}.case-studies-section .section-decoration{background-color:#f5f5f5}.case-studies-section__heading{text-align:center;max-width:78rem;margin-bottom:5rem}.case-studies-section__heading p{color:#f5f5f5c7;margin-top:1.4rem;font-size:1.6rem;line-height:1.6}.case-studies-section__case-studies-container{flex-direction:column;justify-items:center;row-gap:2rem;width:min(104rem,100%);margin:0;padding:0;list-style:none;display:flex}.case-study{color:#171e2f;text-align:start;background-color:#f5f5f5;border:.1rem solid #f5f5f524;border-radius:1.4rem;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;row-gap:1.2rem;width:100%;max-width:100%;margin:0 auto;padding:clamp(2rem,4vw,3.4rem);display:grid}.case-study__logo{grid-row:1/span 2;margin-right:1.6rem}.case-study__title{margin-bottom:.2rem;font-size:2.2rem;line-height:1.3}.case-study__title a{color:#00568c;text-underline-offset:.3rem;text-decoration-thickness:.15rem;transition:color .15s ease-in-out}.case-study__title a:hover,.case-study__title a:focus-visible{color:#008313}.case-study__title a:focus-visible{outline-offset:.2rem;border-radius:.25rem;outline:.2rem solid #008313}.case-study__meta{flex-wrap:wrap;align-items:baseline;display:flex}.case-study__stack{flex-wrap:wrap;justify-content:flex-start;gap:.5rem;list-style:none;display:flex}.case-study__stack li{color:#00610e;font-size:1.4rem;font-weight:600;line-height:1.5}.case-study__stack-label{color:#171e2f;margin-right:.5rem;font-size:1.4rem;font-weight:600;line-height:1.5}.case-study p{margin-bottom:1.5rem;font-size:1.6rem;line-height:1.6}.case-study p:first-of-type{margin-top:2.4rem}.case-study strong{font-weight:600}.case-study strong.case-study__final-strong{font-weight:700}.case-study__description{text-align:start;grid-column:1/-1;max-width:64rem}.case-study__description p{margin-bottom:0}.case-study__body{grid-column:1/-1;width:100%;min-width:0;animation:.28s ease-out case-study-body-fade-in}.case-study__body--closing{animation:.28s ease-out case-study-body-fade-out}.case-study__body h4{text-align:start;margin-bottom:1.5rem;font-size:1.6rem;line-height:1.5}.case-study__body ol{text-align:justify;list-style-position:inside}.case-study__body ol li{margin-bottom:1.5rem;font-size:1.4rem;line-height:1.5}.case-study__table-wrapper{width:100%;max-width:100%;margin-bottom:2rem;overflow-x:auto}.case-study__table-wrapper:focus-visible{outline-offset:.2rem;outline:.2rem solid #008313}.case-study__comparison-table{border-collapse:collapse;width:100%;min-width:62rem;font-size:1.4rem;line-height:1.5}.case-study__comparison-table caption{text-align:left;margin-bottom:.8rem;font-weight:600}.case-study__comparison-table th,.case-study__comparison-table td{vertical-align:top;border:.1rem solid #171e2f33;padding:.8rem}.case-study__comparison-table th{text-align:left;background-color:#171e2f14;font-weight:600}.case-study .case-study__button{color:#f5f5f5;cursor:pointer;min-width:unset;background-color:#171e2f;border:.1rem solid #171e2f;border-radius:999rem;grid-column:1/-1;margin:2rem 0 0;padding:1rem 1.5rem;font-size:1.4rem;font-weight:600;line-height:1.5;text-decoration:none;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out,transform .15s ease-in-out}.case-study .case-study__button:hover,.case-study .case-study__button:focus-visible{color:#171e2f;outline-offset:.4rem;background-color:#f5f5f5;border-color:#171e2f;outline-color:#008313;transform:translateY(-.1rem)}@media only screen and (width>=760px){.case-study{grid-template-columns:auto minmax(0,1fr) auto;column-gap:2rem}.case-study__description{grid-column:2/3;max-width:72rem}.case-study .case-study__button{white-space:nowrap;grid-area:1/3/span 3/4;align-self:end;margin:0}}@media (prefers-reduced-motion:reduce){.case-study__body{animation:none}.case-study .case-study__button{transition:none}.case-study .case-study__button:hover,.case-study .case-study__button:focus-visible{transform:none}}@keyframes case-study-body-fade-in{0%{opacity:0}}@keyframes case-study-body-fade-out{to{opacity:0}}
