.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--color-light: #FDFBF6;--color-dark: #212121;--color-accent: #BCCCA2;--color-accent-light: #EDFFD2;--color-accent-muted: #828D70;--color-accent-background: #A5B38E;--color-dark-green: #1A1D16;--color-dark-gray: #1A1A1A;--color-warm-cream: #F9EFE7;--color-white: #FFFFFF;--color-text-light: #FDFBF6;--color-text-dark: #212121;--color-text-muted: rgba(253, 251, 246, .6);--color-text-muted-medium: rgba(253, 251, 246, .7);--color-text-muted-light: rgba(253, 251, 246, .8);--color-border-light: rgba(249, 239, 231, .2);--color-border-hover: rgba(249, 239, 231, .5);--color-border-focus: rgba(249, 239, 231, .8);--color-border-card: rgba(253, 251, 246, .1);--color-border-card-hover: rgba(253, 251, 246, .3);--color-border-tab: rgba(253, 251, 246, .1);--color-border-tab-hover: rgba(253, 251, 246, .3);--color-bg-light: #FDFBF6;--color-bg-dark: #212121;--color-bg-accent: #BCCCA2;--color-bg-dark-green: #1A1D16;--color-bg-dark-gray: #1A1A1A;--color-bg-form: rgba(0, 0, 0, .1);--color-bg-form-focus: rgba(0, 0, 0, .2);--color-gradient-black-start: rgba(0, 0, 0, .85);--color-gradient-black-middle: rgba(0, 0, 0, .4);--color-gradient-black-end: rgba(0, 0, 0, 0);--font-heading: "Montserrat", sans-serif;--font-body: "Mulish", sans-serif;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 4rem;--spacing-xl: 6rem;--left-rail-width: 1.5rem;--left-rail-padding: .5rem;--transition-fast: .3s ease;--transition-medium: .4s ease-out;--transition-slow: .6s ease-in-out;--z-menu-overlay: 998;--z-menu-button: 1000;--z-menu-content: 1001}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;background-color:var(--color-light)}body{margin:0;padding:0;font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--color-accent-light);background-color:var(--color-dark);overflow-x:hidden}.page-transition-overlay{position:fixed;inset:0;background:#0c143e;pointer-events:none;z-index:2147483000;opacity:0;clip-path:circle(0px at 50% 50%);will-change:clip-path,opacity;display:none;visibility:hidden;transition:opacity .26s ease-out}.page-transition-overlay[style*="display: block"],.page-transition-overlay[style*="display:block"]{display:block!important;visibility:visible!important}@media(prefers-reduced-motion:no-preference){html[data-astro-transition=back]::view-transition-old(root),html[data-astro-transition=back]::view-transition-old(body){z-index:2}html[data-astro-transition=back]::view-transition-new(root),html[data-astro-transition=back]::view-transition-new(body){z-index:1}html[data-astro-transition=back]::view-transition-old(root){animation:webvdev-drawer-close .52s cubic-bezier(.22,1,.36,1) both}html[data-astro-transition=back]::view-transition-new(root){animation:none}html[data-astro-transition=back][data-astro-transition-fallback=old] body{animation:webvdev-drawer-close .52s cubic-bezier(.22,1,.36,1) both}}@keyframes webvdev-drawer-close{0%{transform:translateY(0)}to{transform:translateY(110%)}}body.menu-open{overflow:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,h4,h5,h6,p{margin:0}p{max-width:70ch}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2}.title{font-size:clamp(1.75rem,4vw,4rem);font-weight:700;line-height:1.3;margin-bottom:var(--spacing-md)}.title--div{font-size:clamp(1.75rem,3.5vw,2.5rem);line-height:1.3}.text{font-family:var(--font-body);font-size:1rem;line-height:1.7}.text-big{font-size:1.1rem;line-height:1.7}.text-left,.left-aligned{text-align:left}.list-item{font-family:var(--font-body);font-size:1rem;line-height:2}.intro-greeting{font-family:var(--font-heading);font-size:clamp(2rem,4vw,2.5rem);font-weight:600;line-height:1}.intro-text{font-family:var(--font-body);font-size:clamp(1rem,3vw,2rem);font-weight:300;line-height:1.5}.bonjour,.bonjour-delay{font-family:var(--font-heading);font-size:clamp(4rem,12vw,10rem);font-weight:800;line-height:1}.projects-title{font-family:var(--font-heading);font-weight:700;line-height:1.2}.tab-label{font-family:var(--font-heading);font-size:.875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase}.project-name{font-family:var(--font-heading);font-size:1.5rem;font-weight:600;line-height:1.3}.project-tags{font-family:var(--font-body);font-size:.875rem}.project-description{font-family:var(--font-body);font-size:1rem;line-height:1.6}.project-link{font-family:var(--font-heading);font-size:.875rem;font-weight:500}.project-card-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;line-height:1.3}.project-card-link{font-family:var(--font-body);font-size:.85rem;letter-spacing:.03em;text-transform:uppercase}.project-card-tags{font-family:var(--font-heading);font-size:.875rem;font-weight:500}.project-card-description{font-family:var(--font-body);font-size:.9rem;line-height:1.5}.project-eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.title-project{font-size:clamp(2.5rem,6vw,4.25rem);line-height:1.1}.about-subtitle{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;line-height:1.3}.service-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;line-height:1.3}.form-input{font-family:var(--font-body);font-size:1rem}.submit-button{font-family:var(--font-body);font-size:1rem;font-weight:500}.menu-btn{font-family:var(--font-heading);font-size:.875rem;font-weight:600;letter-spacing:.1em}.menu-item-xl{font-family:var(--font-body);font-size:25px;font-weight:500}.menu-item-sm{font-family:var(--font-heading);font-size:2rem;font-weight:600}.acknowledgement-text{font-family:var(--font-body);font-size:.8rem;line-height:1.7}.copyright-text{font-family:var(--font-body);font-size:.8rem}.theme-label{font-family:var(--font-heading);font-size:.75rem;font-weight:500;letter-spacing:.1em}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.wrapper{overflow:hidden}.section{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-lg) var(--spacing-md)}.section-inner{max-width:1200px;width:100%}.panel{display:flex;align-items:center;justify-content:center;min-width:100vw;min-height:100vh;padding:var(--spacing-lg) var(--spacing-md)}@media(max-width:1024px){.menu-item-xl{font-size:2.5rem}.panel{padding:var(--spacing-md) var(--spacing-sm)}}.pr-xs{padding-right:var(--spacing-xs)}.pr-sm{padding-right:var(--spacing-sm)}.pr-md{padding-right:var(--spacing-md)}.pr-lg{padding-right:var(--spacing-lg)}.pr-xl{padding-right:var(--spacing-xl)}.pl-xs{padding-left:var(--spacing-xs)}.pl-sm{padding-left:var(--spacing-sm)}.pl-md{padding-left:var(--spacing-md)}.pl-lg{padding-left:var(--spacing-lg)}.pl-xl{padding-left:var(--spacing-xl)}.pt-xs{padding-top:var(--spacing-xs)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pb-xs{padding-bottom:var(--spacing-xs)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.mr-xs{margin-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.ml-xs{margin-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mx-xs{margin-left:var(--spacing-xs);margin-right:var(--spacing-xs)}.mx-sm{margin-left:var(--spacing-sm);margin-right:var(--spacing-sm)}.mx-md{margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.mx-lg{margin-left:var(--spacing-lg);margin-right:var(--spacing-lg)}.mx-xl{margin-left:var(--spacing-xl);margin-right:var(--spacing-xl)}.my-xs{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.my-sm{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.my-md{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.my-lg{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.my-xl{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-light{color:var(--color-light)!important}.dark{background-color:var(--color-dark);color:var(--color-light)}.dark *{color:var(--color-light)}.section--light{background-color:var(--color-light);color:var(--color-dark)}.section--light *{color:var(--color-dark)}.section--dark{background-color:var(--color-dark);color:var(--color-light)}.section--dark *{color:var(--color-light)}.text-dark{color:var(--color-text-dark)!important}.light{color:var(--color-light)!important;stroke:var(--color-light)!important}.line{stroke:var(--color-dark);transition:stroke var(--transition-fast)}.btn{cursor:pointer;transition:all var(--transition-fast)}.anim{opacity:0;transform:scale3d(1,.5,1)}.anim-active{animation:textFadeIn .4s ease-in forwards;transform-origin:bottom}@keyframes textFadeIn{0%{opacity:0;transform:scale3d(1,.5,1)}to{opacity:1;transform:scaleZ(1)}}.color-active{animation:colorFadeIn .4s ease-in forwards}@keyframes colorFadeIn{0%{color:var(--color-light)}to{color:var(--color-accent)}}.collapsible{transition:var(--transition-medium);cursor:pointer}.collapsible-active{animation:tabAppear .6s ease-in-out;transform-origin:left}@keyframes tabAppear{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.anim-img--up{will-change:transform}.section.active{outline:none}.color-wrapper{position:relative}.project-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;background:linear-gradient(to top,#000000d9,#0006,#0000);opacity:0;transition:opacity var(--transition-fast)}.link--border{border:1px solid var(--color-border-light);transition:border-color var(--transition-fast)}.link--border:hover,.link--border:focus{border-color:var(--color-border-hover)}.project-showcase{position:relative;background-color:transparent;overflow:hidden;min-height:0;opacity:0;will-change:opacity;transition:opacity .6s cubic-bezier(.22,1,.36,1)}.project-showcase.project-showcase--loaded{opacity:1}.project-hero{display:flex;align-items:center;height:100vh;position:relative;z-index:1}.project-overlayer{position:absolute;inset:0;opacity:0;pointer-events:none;z-index:0}.project-hero-content{position:relative;z-index:1}.project-panel-wrap{--project-panel-reveal-buffer: 18vh;position:relative;z-index:2;margin-top:0;margin-bottom:0;overflow:visible}.project-showcase.project-showcase--ready .project-panel-wrap{margin-top:calc((var(--project-pin-distance) - var(--project-panel-reveal-buffer)) * -1)}.project-panel{position:relative;width:min(85%,1500px);margin:0 auto var(--spacing-xl);border-radius:0;background-color:#f9f5f2;box-shadow:none;will-change:transform;padding:var(--spacing-lg) 0}@media screen and (max-width:768px){.project-panel{width:92%}}.project-panel-inner{width:100%;background-color:var(--color-light);padding:clamp(2rem,6vw,5rem) 5%}.project-media-caption{margin-top:var(--spacing-sm);text-align:center;color:var(--color-text-light);font-size:.875rem;font-weight:600;line-height:1.4}@media(max-width:768px){.project-panel-wrap{--project-panel-reveal-buffer: 14vh}}@media(max-width:768px){:root{--spacing-lg: 2rem;--spacing-xl: 4rem}.container{padding:0 var(--spacing-sm)}.panel{padding:var(--spacing-md) var(--spacing-sm)}}.d-block{display:block!important}.d-none{display:none!important}.d-flex{display:flex!important}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.projects-ripple-layer{position:fixed;inset:0;pointer-events:none;z-index:999;mix-blend-mode:multiply}.projects-ripple{position:absolute;width:12px;height:12px;left:0;top:0;transform:translate3d(-50%,-50%,0);border-radius:9999px;border:2px solid rgba(188,204,162,calc(var(--ripple-alpha, 1) * .18 * var(--ripple-strength, 1)));box-shadow:0 0 0 1px rgba(237,255,210,calc(var(--ripple-alpha, 1) * .14 * var(--ripple-strength, 1))),0 0 22px rgba(188,204,162,calc(var(--ripple-alpha, 1) * .1 * var(--ripple-strength, 1)));filter:blur(.2px);opacity:.9;will-change:transform,opacity}@media(prefers-reduced-motion:reduce){.projects-ripple-layer{display:none!important}}:focus:not(:focus-visible){outline:none}.case-study-list{list-style:none!important;margin:0;padding:0}.case-study-list li{position:relative;padding-left:1.5rem;margin-bottom:.5rem}.case-study-list li:last-child{margin-bottom:0}.case-study-list li:before{content:"";position:absolute;left:0;top:.95em;width:14px;height:2px;background:var(--showcase-from);transform:rotate(-20deg);transform-origin:center;transition:transform .25s ease}.case-study-list li:hover:before,.case-study-list li:focus-within:before{transform:rotate(0)}
