.PageLayout-module__UebBua__layout{grid-template-columns:1fr min(var(--trimmed-content-width),100%)1fr;max-width:var(--outer-content-width);padding-inline:var(--viewport-padding);padding-top:calc(var(--header-height) + 48px);background:0 0;margin:0 auto;padding-bottom:32px;display:grid;position:relative}.PageLayout-module__UebBua__layout>*{--col:2;grid-column:var(--col,2)}@media (min-width:544px){.PageLayout-module__UebBua__layout{padding-top:calc(var(--header-height) + 48px)}}@media (min-width:768px){.PageLayout-module__UebBua__layout{padding-top:calc(var(--header-height) + 64px)}}
.Callout-module__1J1nfW__callout{--callout-accent:var(--accent-400);--callout-bg:hsl(from var(--callout-accent)h s l/.08);border-left:4px solid var(--callout-accent);background:var(--callout-bg);border-radius:4px;margin:1.5rem 0;padding:1rem 1.25rem;font-size:1.125rem;font-style:italic;line-height:1.6}.Callout-module__1J1nfW__callout strong{color:var(--callout-accent)}.Callout-module__1J1nfW__callout p{margin-bottom:0!important}
.CodeSnippet-module__sKf9bq__wrapper{overflow:hidden;margin-inline:calc(var(--viewport-padding)*-1)!important;border-radius:0!important;margin-bottom:2rem!important}.CodeSnippet-module__sKf9bq__wrapper pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;padding:var(--viewport-padding)!important}.CodeSnippet-module__sKf9bq__wrapper code{font-family:var(--font-family-mono)}.CodeSnippet-module__sKf9bq__wrapper code>div{font-size:clamp(.875rem,2vw + .5rem,1.125rem);padding:0!important}@media (min-width:1024px){.CodeSnippet-module__sKf9bq__wrapper{border-radius:8px!important}}
.ExpandableSection-module__3VHDka__wrapper{margin:0 calc(var(--viewport-padding)*-1);--transition-timing:cubic-bezier(.4,0,.2,1);--transition-length:.5s;background:#e9ecc6;border:none;box-shadow:0 4px 10px #0000001a}.ExpandableSection-module__3VHDka__headerButton{width:100%;padding:1rem var(--viewport-padding);cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;display:flex}.ExpandableSection-module__3VHDka__headerButtonText{letter-spacing:-.025em}.ExpandableSection-module__3VHDka__icon{transition:transform var(--transition-length)var(--transition-timing)}.ExpandableSection-module__3VHDka__iconOpen{transform:rotate(90deg)}.ExpandableSection-module__3VHDka__animationWrapper{transition:grid-template-rows var(--transition-length)var(--transition-timing);grid-template-rows:0fr;display:grid;overflow:hidden}.ExpandableSection-module__3VHDka__open .ExpandableSection-module__3VHDka__animationWrapper{grid-template-rows:1fr}.ExpandableSection-module__3VHDka__animation{min-height:0}.ExpandableSection-module__3VHDka__content *{margin:0}.ExpandableSection-module__3VHDka__content>:first-child{margin-top:0}.ExpandableSection-module__3VHDka__content>:last-child{margin-bottom:0}.ExpandableSection-module__3VHDka__content{border-top:1px solid var(--gray-200);padding-block:2rem;padding-inline:var(--viewport-padding)}@media (min-width:1024px){.ExpandableSection-module__3VHDka__wrapper{border-radius:8px}}@media (min-width:1124px){.ExpandableSection-module__3VHDka__wrapper{--buffer:clamp(1.5rem,-8.0714rem + 14.2857vw,3rem);margin-inline:calc(var(--buffer)*-1)}.ExpandableSection-module__3VHDka__headerButton,.ExpandableSection-module__3VHDka__content{padding-inline:calc(var(--buffer))}}@media (prefers-reduced-motion:reduce){.ExpandableSection-module__3VHDka__icon,.ExpandableSection-module__3VHDka__animationWrapper,.ExpandableSection-module__3VHDka__transformWrapper{transition:none!important}.ExpandableSection-module__3VHDka__animationWrapper{grid-template-rows:auto!important}.ExpandableSection-module__3VHDka__transformWrapper{visibility:visible!important;transform:none!important}}
.Figure-module__IfwlBq__figure{text-align:center;flex-direction:column;align-items:center;width:fit-content;max-width:100%;margin:2rem auto;display:flex}.Figure-module__IfwlBq__image{border-radius:8px;width:100%;max-width:80ch;height:auto;display:block}.Figure-module__IfwlBq__caption{color:var(--color-text-muted);margin-top:1rem;font-size:.9rem}
.SectionHeading-module__Uo9Qca__heading{margin-bottom:var(--section-heading-spacing,1.5rem)}
.Carousel-module__kvvB0q__trackContainer{isolation:isolate;margin-bottom:2rem;position:relative}.Carousel-module__kvvB0q__track{scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:32px;display:flex;position:relative;overflow-x:auto}.Carousel-module__kvvB0q__track::-webkit-scrollbar{display:none}.Carousel-module__kvvB0q__track{scrollbar-width:none}.Carousel-module__kvvB0q__slot{scroll-snap-align:var(--carousel-snap,center);max-width:var(--carousel-max-width,380px);flex:0 0 var(--carousel-basis,85%)}.Carousel-module__kvvB0q__fade{pointer-events:none;opacity:0;width:30px;transition:opacity .24s;position:absolute;top:0;bottom:0}.Carousel-module__kvvB0q__fadeLeft{background:linear-gradient(90deg,var(--gray-200),transparent);left:0}.Carousel-module__kvvB0q__fadeRight{background:linear-gradient(90deg,transparent,var(--gray-200));right:0}.Carousel-module__kvvB0q__fade.Carousel-module__kvvB0q__visible{opacity:1}.Carousel-module__kvvB0q__scrollButton{cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);will-change:transform,opacity;background:#ffffffe6;border:none;border-radius:999px;width:44px;height:44px;transition:transform .14s,opacity .14s;display:none;position:absolute;top:50%;transform:translateY(-50%)}.Carousel-module__kvvB0q__scrollButton.Carousel-module__kvvB0q__left{left:8px}.Carousel-module__kvvB0q__scrollButton.Carousel-module__kvvB0q__right{right:8px}.Carousel-module__kvvB0q__scrollButton:hover:not(:disabled){transform:translateY(-50%)scale(1.1)}.Carousel-module__kvvB0q__scrollButton:disabled{opacity:0;pointer-events:none}@media (min-width:768px){.Carousel-module__kvvB0q__scrollButton{place-content:center;display:grid}.Carousel-module__kvvB0q__fade{width:80px}}
.Card-module__ckVvha__card{border-radius:var(--card-br,12px);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;display:flex}.Card-module__ckVvha__inner{height:100%;color:inherit;flex-direction:var(--card-image-dir,column);text-decoration:none;display:flex}.Card-module__ckVvha__content{padding:var(--card-padding,1rem);margin-block:var(--card-content-margin-top,.5rem)var(--card-content-margin-bottom,1rem);flex-direction:column;flex:1;gap:.625rem;display:flex}.Card-module__ckVvha__footer{padding:var(--card-padding,1rem);border-top:1px solid var(--color-border)}
.FeaturedProjectCard-module__TGSu5q__featured{--card-br:12px;--card-transition:none;height:100%}.FeaturedProjectCard-module__TGSu5q__imageWrapper{aspect-ratio:16/9;border-radius:var(--card-br)var(--card-br)0 0;position:relative;overflow:hidden}.FeaturedProjectCard-module__TGSu5q__image{object-fit:cover;will-change:transform,filter;filter:brightness(95%);transition:transform .6s,filter 1s}.FeaturedProjectCard-module__TGSu5q__featured:hover .FeaturedProjectCard-module__TGSu5q__image,.FeaturedProjectCard-module__TGSu5q__featured:focus .FeaturedProjectCard-module__TGSu5q__image{filter:brightness();transform:scale(1.1)}.FeaturedProjectCard-module__TGSu5q__title{font-size:1.25rem}.FeaturedProjectCard-module__TGSu5q__desc{color:var(--color-text-muted);font-size:.95rem}.FeaturedProjectCard-module__TGSu5q__techList{gap:.5rem;padding:0;list-style:none;display:flex}.FeaturedProjectCard-module__TGSu5q__techList li{background:var(--gray-700);color:var(--gray-100);border-radius:4px;padding:.25rem .5rem;font-size:.875rem}
.Grid-module__uSk6Xa__grid{gap:var(--grid-gap,2rem);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));align-items:start;display:grid}
.PageHeading-module__OYitUq__heading{margin-bottom:2.5rem}.PageHeading-module__OYitUq__wrapper{flex-direction:column;gap:16px;margin-bottom:2rem;display:flex}.PageHeading-module__OYitUq__headingWithSubtitle{margin-bottom:0}.PageHeading-module__OYitUq__subtitle{color:var(--color-text-muted);font-size:1rem}

.SmartLink-module__mPPSOG__link{color:inherit;vertical-align:baseline;text-underline-offset:2px;text-underline-position:from-font;font-weight:500;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1px;transition:color .2s;display:inline}.SmartLink-module__mPPSOG__link:hover{color:var(--accent-600)}.SmartLink-module__mPPSOG__icon{vertical-align:middle;stroke-width:2px;width:1em;height:1em;line-height:1;display:inline-block}
.ContactForm-module__fw3Taq__form{flex-direction:column;gap:1rem;max-width:480px;margin:0 auto;display:flex}.ContactForm-module__fw3Taq__label{text-align:left;flex-direction:column;gap:.25rem;font-weight:500;display:flex}.ContactForm-module__fw3Taq__label input,.ContactForm-module__fw3Taq__label textarea{border:1px solid var(--gray-200);color:(--color-text);background:var(--color-bg);border-radius:4px;padding:.75rem;font-size:1rem}.ContactForm-module__fw3Taq__label input:focus,.ContactForm-module__fw3Taq__label textarea:focus{outline-offset:2px;border-color:var(--accent-400);box-shadow:0 0 0 2px hsl(var(--hue-accent)90% 45%/.25);outline:2px solid #0000}.ContactForm-module__fw3Taq__label input[data-invalid=true],.ContactForm-module__fw3Taq__label textarea[data-invalid=true]{border-color:#d74242;box-shadow:0 0 0 2px #d9262640}.ContactForm-module__fw3Taq__submitButton{background:var(--accent-400);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-top:1rem;padding:.75rem 1.25rem;font-weight:600;transition:background .2s}.ContactForm-module__fw3Taq__submitButton:hover:not(:disabled){background:var(--accent-600)}.ContactForm-module__fw3Taq__submitButton:disabled{opacity:.7;cursor:not-allowed}.ContactForm-module__fw3Taq__success,.ContactForm-module__fw3Taq__error{text-align:center;margin-top:.5rem}.ContactForm-module__fw3Taq__success{color:var(--accent-600)}.ContactForm-module__fw3Taq__error{color:#a32929;font-weight:400}
.Spacer-module__GetaDW__spacer{width:var(--spacer-width);height:var(--spacer-height);min-height:var(--spacer-height);display:block}
.homepage-module__JmzoLq__hero{text-align:center;margin-bottom:96px;padding-top:32px}.homepage-module__JmzoLq__title{margin-bottom:1.125rem}.homepage-module__JmzoLq__accent{color:var(--accent-400)}.homepage-module__JmzoLq__subtitle{color:var(--color-text-muted);margin-inline:auto;max-width:40ch;margin-bottom:2rem;font-size:1.125rem}.homepage-module__JmzoLq__cta{background:var(--accent-50);border-radius:6px;width:200px;height:50px;text-decoration:none;display:inline-block}.homepage-module__JmzoLq__ctaText{width:100%;height:100%;color:var(--accent-400);will-change:transform;border:3px solid var(--accent-400);border-radius:6px;place-content:center;font-weight:600;text-decoration:none;transition:transform .2s ease-in;display:grid}.homepage-module__JmzoLq__cta:hover .homepage-module__JmzoLq__ctaText{transform:translate(8px,-8px)}.homepage-module__JmzoLq__cta:active .homepage-module__JmzoLq__ctaText{transition:transform 80ms ease-out;transform:translate(0)}.homepage-module__JmzoLq__linkWrapper{justify-content:center;font-size:1.125rem;display:flex}
.projectpage-module__c8KMga__metaNav{color:var(--color-text-muted);margin-bottom:1rem}.projectpage-module__c8KMga__backLink{align-items:center;gap:8px;padding-block:8px;font-weight:400;display:inline-flex}.projectpage-module__c8KMga__backLink svg{vertical-align:top;stroke-width:2px;width:1em;height:1em;line-height:1;transition:transform .3s cubic-bezier(.49,.54,.39,.98);display:inline-block}.projectpage-module__c8KMga__backLink:hover svg{transform:translate(-6px)}.projectpage-module__c8KMga__date{margin-top:-1.5rem}.projectpage-module__c8KMga__content{font-size:1.125rem}.projectpage-module__c8KMga__content h1,.projectpage-module__c8KMga__content h2,.projectpage-module__c8KMga__content h3,.projectpage-module__c8KMga__content h4{word-wrap:break-word;text-rendering:optimizeLegibility;margin-top:1.75em;margin-bottom:1.5rem}.projectpage-module__c8KMga__content h3{font-size:clamp(1.125rem,2.1vw,1.25rem)}.projectpage-module__c8KMga__content p,.projectpage-module__c8KMga__content ul,.projectpage-module__c8KMga__content ol{margin-bottom:1.5em}.projectpage-module__c8KMga__content ul,.projectpage-module__c8KMga__content ol{padding-left:1.25rem}.projectpage-module__c8KMga__content p{text-rendering:optimizeLegibility;margin-bottom:1.5em}.projectpage-module__c8KMga__content a{text-decoration:underline}@media (min-width:1034px){.projectpage-module__c8KMga__metaNav{transform:translate(calc(-1em - 8px))}}
.workpage-module__9p1yqW__intro{max-width:55ch;margin-bottom:2.5rem;line-height:1.7}.workpage-module__9p1yqW__grid{--grid-gap:1.5rem;padding:0;list-style:none}.workpage-module__9p1yqW__grid>li{height:100%}
.SocialLinks-module__Cnt9Jq__wrapper{text-align:center}.SocialLinks-module__Cnt9Jq__heading{margin-bottom:2rem;font-size:1.25rem;font-weight:500}.SocialLinks-module__Cnt9Jq__list{flex-wrap:wrap;justify-content:center;gap:1rem;padding:0;list-style:none;display:flex}.SocialLinks-module__Cnt9Jq__list a{color:var(--accent-400);border:1px solid var(--gray-200);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:flex}.SocialLinks-module__Cnt9Jq__list a:hover{background:var(--accent-400);color:#fff;border-color:var(--accent-400)}.SocialLinks-module__Cnt9Jq__list svg{width:1.2rem;height:1.2rem}
.aboutpage-module__aHq1EG__content{gap:1.5rem;max-width:55ch;line-height:1.7;display:grid}
.blogpage-module__Vd7LNW__intro{max-width:55ch}
.contactpage-module__GAcNZa__content{margin-bottom:5rem}.contactpage-module__GAcNZa__intro{max-width:55ch;margin-bottom:2rem;line-height:1.7}
.GridSpan-module__j4QWgq__wrapper{grid-column:1/-1!important}
.NextProject-module__2zDx3G__wrapper{justify-content:flex-end;margin-top:64px;padding-top:32px;display:flex}.NextProject-module__2zDx3G__next{--card-br:8px;--card-image-dir:row;--card-content-margin-top:0;--card-content-margin-bottom:0;max-width:500px;transition:transform .2s,box-shadow .2s}.NextProject-module__2zDx3G__topRow{color:var(--accent-600);align-items:center;gap:8px;font-size:1rem;display:flex}.NextProject-module__2zDx3G__next:hover{box-shadow:var(--shadow-elevation-medium);transform:translateY(-2px)}.NextProject-module__2zDx3G__next:hover .NextProject-module__2zDx3G__icon{transform:translate(6px)}.NextProject-module__2zDx3G__next:hover .NextProject-module__2zDx3G__image{filter:brightness()}.NextProject-module__2zDx3G__imageWrapper{aspect-ratio:1;border-radius:var(--card-br)0 0 var(--card-br);min-width:110px;display:none;position:relative;overflow:hidden}.NextProject-module__2zDx3G__image{object-fit:cover;filter:brightness(95%);will-change:filter;transition:filter .3s}.NextProject-module__2zDx3G__fade{background:linear-gradient(90deg,#f3f4f700 0%,#f3f4f703 8.1%,#f3f4f70c 15.5%,#f3f4f71b 22.5%,#f3f4f72d 29%,#f3f4f742 35.3%,#f3f4f75a 41.2%,#f3f4f773 47.1%,#f3f4f78c 52.9%,#f3f4f7a5 58.8%,#f3f4f7bd 64.7%,#f3f4f7d2 71%,#f3f4f7e4 77.5%,#f3f4f7f3 84.5%,#f3f4f7fc 91.9%,#f3f4f7 100%);position:absolute;inset:0}.NextProject-module__2zDx3G__icon{transition:transform .3s cubic-bezier(.49,.54,.39,.98)}.NextProject-module__2zDx3G__desc{line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:1rem;display:-webkit-box;overflow:hidden}@media (min-width:544px){.NextProject-module__2zDx3G__imageWrapper{display:revert}}
