@font-face{font-family:Proxima Nova;src:url(/fonts/proxima-nova/ProximaNovaT-Thin.woff2)format("woff2"),url(/fonts/proxima-nova/ProximaNovaT-Thin.woff)format("woff");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Proxima Nova;src:url(/fonts/proxima-nova/ProximaNova-Light.woff2)format("woff2"),url(/fonts/proxima-nova/ProximaNova-Light.woff)format("woff");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Proxima Nova;src:url(/fonts/proxima-nova/ProximaNova-Regular.woff2)format("woff2"),url(/fonts/proxima-nova/ProximaNova-Regular.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Proxima Nova;src:url(/fonts/proxima-nova/ProximaNova-RegularIt.woff2)format("woff2"),url(/fonts/proxima-nova/ProximaNova-RegularIt.woff)format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Proxima Nova;src:url(/fonts/proxima-nova/ProximaNova-Medium.woff2)format("woff2"),url(/fonts/proxima-nova/ProximaNova-Medium.woff)format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Proxima Nova;src:url(/fonts/proxima-nova/ProximaNova-Semibold.woff2)format("woff2"),url(/fonts/proxima-nova/ProximaNova-Semibold.woff)format("woff");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Proxima Nova;src:url(/fonts/proxima-nova/ProximaNova-Bold.woff2)format("woff2"),url(/fonts/proxima-nova/ProximaNova-Bold.woff)format("woff");font-weight:700;font-style:normal;font-display:swap}:root{--dark:#171717;--body:#646464;--muted:#8b8b8b;--line:#f4f5fa;--border:#ececec;--content:1330px;--gutter:15px;--header-h:90px;--font:"Proxima Nova", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden}body{max-width:100vw;color:var(--body);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{color:var(--dark);font-weight:300;line-height:1.2}button{cursor:pointer;font-family:inherit}.grid-lines{z-index:0;pointer-events:none;justify-content:center;display:flex;position:fixed;inset:0}.grid-lines__inner{width:min(var(--content), calc(100% - var(--gutter) * 2));height:100%;display:flex}.grid-lines__inner span{border-left:1px solid var(--line);flex:1;height:100%}.site{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.site-main{flex:1}.site-header{z-index:100;background:#fff;position:fixed;top:0;left:0;right:0}.site-header--transparent{background:0 0}.site-header__inner{width:min(var(--content), calc(100% - var(--gutter) * 2));min-height:var(--header-h);justify-content:space-between;align-items:center;gap:1.5rem;margin:0 auto;display:flex}.site-logo{transition:opacity .25s;display:inline-flex}.site-logo:hover{opacity:.6}.site-logo img{width:auto;height:30px}.site-header__tools{align-items:center;gap:1.25rem;display:flex}.header-phone{color:var(--dark);letter-spacing:.02em;white-space:nowrap;border:1px solid var(--border);border-radius:999px;align-items:center;gap:.6rem;padding:.55rem 1.1rem;font-size:.95rem;transition:border-color .25s,color .25s,background .25s;display:inline-flex}.header-phone:hover{border-color:var(--dark);background:var(--dark);color:#fff}.header-phone__icon{color:var(--dark);display:inline-flex}.burger{color:var(--dark);background:0 0;border:0;justify-content:center;align-items:center;padding:4px;display:inline-flex}.burger svg line{stroke:currentColor;stroke-width:6px;stroke-linecap:round}.menu-layer{z-index:190;pointer-events:none;position:fixed;inset:0;overflow:hidden}.side-menu-overlay{opacity:0;visibility:hidden;pointer-events:auto;background:#17171766;transition:opacity .35s,visibility .35s;position:absolute;inset:0}.side-menu-overlay.is-open{opacity:1;visibility:visible}.side-menu{z-index:2;pointer-events:auto;background:#fff;flex-direction:column;width:420px;max-width:88vw;height:100%;padding:2.5rem 3rem;transition:transform .4s cubic-bezier(.7,0,.3,1);display:flex;position:absolute;top:0;right:0;transform:translate(100%)}.side-menu.is-open{transform:translate(0)}.side-menu__close{color:var(--dark);background:0 0;border:0;align-self:flex-end;margin-bottom:2rem;padding:.5rem}.side-menu__nav{flex:1;align-items:center;display:flex}.side-menu__nav ul{gap:1.1rem;list-style:none;display:grid}.side-menu__nav a{color:var(--dark);font-size:2rem;font-weight:300;transition:opacity .2s}.side-menu__nav a:hover,.side-menu__nav a.is-active{opacity:.5}.side-menu__foot{color:var(--muted);gap:.35rem;font-size:.9rem;display:grid}.side-menu__foot a:hover{color:var(--dark)}.page-shell{width:min(var(--content), calc(100% - var(--gutter) * 2));padding-top:calc(var(--header-h) + 40px);z-index:1;margin:0 auto;padding-bottom:90px;position:relative}.home-slider{background:#eee;width:100%;height:100vh;position:relative;overflow:hidden}.home-slider__slide{opacity:0;background-position:50%;background-size:cover;transition:opacity 1.2s;position:absolute;inset:0}.home-slider__slide.is-active{opacity:1}.home-slider__arrow{z-index:5;color:#fff;opacity:.85;background:0 0;border:0;transition:opacity .2s;position:absolute;top:50%;transform:translateY(-50%)}.home-slider__arrow:hover{opacity:1}.home-slider__arrow--prev{left:1.5rem}.home-slider__arrow--next{right:1.5rem}.home-slider__dots{z-index:5;gap:.6rem;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.home-slider__dots button{background:0 0;border:1px solid #fff;border-radius:50%;width:10px;height:10px;padding:0;transition:background .2s}.home-slider__dots button.is-active{background:#fff}.portfolio-filter{flex-wrap:wrap;gap:.6rem 1.6rem;margin-bottom:2.5rem;display:flex}.portfolio-filter button{color:var(--body);background:0 0;border:0;padding:0;font-size:.98rem;transition:color .2s;position:relative}.portfolio-filter button:hover,.portfolio-filter button.is-active{color:var(--dark)}.portfolio-filter button.is-active:after{content:"";background:var(--dark);height:1px;position:absolute;bottom:-4px;left:0;right:0}.portfolio{overflow:clip visible}.portfolio-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.pf-item{position:relative}.pf-item__link{display:block;position:relative}.pf-item__image{aspect-ratio:1;background:#f0f0f0;display:block;position:relative;overflow:hidden}.pf-item__image img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .3s}.pf-item:hover .pf-item__image img{opacity:.9;transform:scale(1.05)}.pf-item__caption{z-index:30;opacity:0;visibility:hidden;pointer-events:none;background:#fff;min-width:340px;max-width:420px;padding:1.1rem 1.3rem;transition:opacity .25s,transform .25s,visibility .25s;position:absolute;top:100%;left:0;transform:translateY(8px);box-shadow:0 20px 45px #00000024}.pf-item:hover{z-index:20}.pf-item:hover .pf-item__caption{opacity:1;visibility:visible;transform:translateY(-6px)}.pf-item__cats{color:var(--muted);margin-bottom:.4rem;font-size:.8rem;display:block}.pf-item__title{color:var(--dark);font-size:1.05rem;font-weight:500;line-height:1.35;display:block}.portfolio-sentinel{height:1px}@media (min-width:1201px){.pf-item:nth-child(7n) .pf-item__caption,.pf-item:nth-child(7n-1) .pf-item__caption{left:auto;right:0}}@media (min-width:993px) and (max-width:1200px){.pf-item:nth-child(5n) .pf-item__caption,.pf-item:nth-child(5n-1) .pf-item__caption{left:auto;right:0}}@media (min-width:769px) and (max-width:992px){.pf-item:nth-child(4n) .pf-item__caption,.pf-item:nth-child(4n-1) .pf-item__caption{left:auto;right:0}}.project-header{margin-bottom:2.5rem}.project-header h1{max-width:26ch;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:300}.project-layout{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:3rem;display:grid}.project-layout__gallery{min-width:0}.project-gallery{gap:12px;display:grid}.project-gallery__item{background:#f2f2f2;border:0;width:100%;padding:0;display:block;overflow:hidden}.project-gallery__item img{width:100%;height:auto;transition:opacity .3s}.project-gallery__item:hover img{opacity:.9}.project-layout__aside{top:calc(var(--header-h) + 30px);align-self:start;position:sticky}.project-info-panel{display:block}.project-info__block{margin-bottom:2rem}.project-info__heading{margin-bottom:1rem;font-size:1.4rem;font-weight:300}.project-info__block p{color:var(--body)}.project-info__row{color:var(--body);margin-bottom:1.4rem}.project-info__label{color:var(--dark);font-weight:600}.project-info__value a:hover{color:var(--dark);text-decoration:underline}.project-share{display:block}.project-share__icons{vertical-align:middle;align-items:center;gap:1rem;display:inline-flex}.project-share__icons a{color:var(--dark);opacity:.75;transition:opacity .2s}.project-share__icons a:hover{opacity:1}.project-nav{border-top:1px solid var(--border);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-top:5rem;padding:2.2rem 0;display:grid}.project-nav__side--right{text-align:right}.project-nav__link{color:var(--dark);align-items:center;gap:.6rem;transition:opacity .2s;display:inline-flex}.project-nav__link:hover{opacity:.6}.project-nav__arrow{font-size:1.3rem;line-height:1;transition:transform .25s}.project-nav__link--prev:hover .project-nav__arrow{transform:translate(-4px)}.project-nav__link--next:hover .project-nav__arrow{transform:translate(4px)}.project-nav__grid{color:var(--dark);opacity:.7;transition:opacity .2s;display:inline-flex}.project-nav__grid:hover{opacity:1}.lightbox{z-index:300;background:#0f0f0feb;justify-content:center;align-items:center;padding:3rem;display:flex;position:fixed;inset:0}.lightbox__image{object-fit:contain;width:auto;max-width:90vw;height:auto;max-height:88vh}.lightbox__close{color:#fff;background:0 0;border:0;font-size:2.4rem;line-height:1;position:absolute;top:1.4rem;right:1.8rem}.lightbox__nav{color:#fff;opacity:.8;background:0 0;border:0;padding:0 1rem;font-size:3.5rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav:hover{opacity:1}.lightbox__nav--prev{left:.5rem}.lightbox__nav--next{right:.5rem}.agence__layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:3.5rem;display:grid}.agence__title{margin-bottom:1.5rem;font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:300}.agence__collage{width:100%;margin-bottom:2.5rem}.agence__subtitle{color:var(--dark);margin:1.8rem 0 .9rem;font-size:1rem;font-weight:700}.agence__main p{margin-bottom:1.2rem}.agence__aside img{width:100%;height:auto}.agence__skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3.5rem;margin-top:4rem;display:grid}.skill__head{justify-content:space-between;align-items:baseline;margin-bottom:.7rem;display:flex}.skill__label{color:var(--dark);font-style:italic}.skill__value{color:var(--dark);font-size:.9rem}.skill__track{background:var(--border);height:2px}.skill__fill{background:var(--dark);width:0;height:100%;transition:width 1.6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--skill-delay,0s);display:block}.skill.is-visible .skill__fill{width:var(--skill-target,100%)}@media (prefers-reduced-motion:reduce){.skill__fill{width:var(--skill-target,100%);transition:none}}.contact__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem;display:grid}.contact__item{margin-bottom:2.6rem}.contact__item h3{color:var(--dark);margin-bottom:.7rem;font-size:1.15rem;font-weight:700}.contact__item a:hover{color:var(--dark);text-decoration:underline}.contact__map{margin-top:1.5rem}.contact__map iframe{border:0;width:100%;height:430px;display:block}.publications__title{margin-bottom:.8rem;font-size:clamp(1.9rem,3.4vw,2.8rem);font-weight:300}.publications__lead{color:var(--muted);margin-bottom:3rem;font-style:italic}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;display:grid}.gallery-grid .project-gallery__item{background:#f5f5f5}.site-footer{z-index:1;color:#ffffffb3;background:#171717;position:relative}.site-footer p{width:min(var(--content), calc(100% - var(--gutter) * 2));color:#ffffffb3;margin:0 auto;padding:1.6rem 0;font-size:.9rem}@media (max-width:1200px){.portfolio-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (max-width:992px){.grid-lines{display:none}.project-layout{grid-template-columns:1fr;gap:2.5rem}.project-layout__aside{position:static}.agence__layout{grid-template-columns:1fr;gap:2.5rem}.agence__aside{order:-1;max-width:360px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:768px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact__grid{grid-template-columns:1fr;gap:0}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pf-item__caption{display:none}.side-menu{padding:2rem 1.75rem}.side-menu__nav a{font-size:1.6rem}.project-nav__link span:not(.project-nav__arrow){display:none}}@media (max-width:560px){:root{--header-h:76px}.header-phone__number{display:none}.header-phone{border-radius:50%;padding:.5rem}.site-logo img{height:24px}.gallery-grid{grid-template-columns:1fr}}@keyframes acFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes acFade{0%{opacity:0}to{opacity:1}}@keyframes acKenBurns{0%{transform:scale(1.08)}to{transform:scale(1)}}.project-header,.agence__main,.agence__aside,.agence__skills,.contact__col,.contact__map,.publications__title,.publications__lead,.portfolio-filter{animation:.7s cubic-bezier(.2,.7,.2,1) both acFadeUp}.agence__main{animation-delay:50ms}.agence__aside{animation-delay:.12s}.agence__skills{animation-delay:.15s}.contact__map{animation-delay:.1s}.project-info-panel{animation:.8s .1s both acFade}.pf-item{animation:.55s both acFadeUp}.project-gallery__item,.gallery-grid .project-gallery__item{animation:.6s both acFade}.home-slider__slide.is-active{animation:6s ease-out both acKenBurns}.side-menu__nav li{opacity:0}.side-menu.is-open .side-menu__nav li{animation:.5s both acFadeUp}.side-menu.is-open .side-menu__nav li:first-child{animation-delay:.12s}.side-menu.is-open .side-menu__nav li:nth-child(2){animation-delay:.18s}.side-menu.is-open .side-menu__nav li:nth-child(3){animation-delay:.24s}.side-menu.is-open .side-menu__nav li:nth-child(4){animation-delay:.3s}.side-menu.is-open .side-menu__nav li:nth-child(5){animation-delay:.36s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-delay:0s!important}.side-menu__nav li{opacity:1}}
