:root{--ink:#16224a;--blue:#3454a4;--marble:#7ca2e8;--mist:#eef2fa;--paper:#fdfdfe;--line:#d6deee;--muted:#55607f;--font-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body:"Figtree", "Segoe UI", system-ui, sans-serif;--radius:6px;--container:1160px;--gutter:clamp(1.25rem, 4vw, 2.5rem);--section-y:clamp(4rem, 9vw, 7.5rem);--vein:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .02' numOctaves='5' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 -9 5.2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E")}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6}img,svg{max-width:100%;display:block}a{color:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;line-height:1.08}h1{font-size:clamp(2.5rem,6.4vw,4.75rem);font-weight:700}h2{font-size:clamp(1.9rem,4vw,3rem);font-weight:700}h3{letter-spacing:-.01em;font-size:1.25rem;font-weight:500}p{margin:0}:focus-visible{outline:3px solid var(--marble);outline-offset:3px}.container{width:min(100% - 2 * var(--gutter), var(--container));margin-inline:auto}.btn{background:var(--blue);color:#fff;font:600 1rem var(--font-body);border:2px solid var(--blue);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;padding:.95rem 1.6rem;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.btn:hover{background:var(--ink);border-color:var(--ink)}.btn--ghost{color:var(--blue);background:0 0}.btn--ghost:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.btn--small{padding:.55rem 1.1rem;font-size:.95rem}.btn--light{color:var(--ink);background:#fff;border-color:#fff}.btn--light:hover{background:var(--marble);border-color:var(--marble);color:var(--ink)}.header{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fdfdfeeb;position:sticky;top:0}.header__inner{justify-content:space-between;align-items:center;gap:1rem;min-height:76px;display:flex}.brand{flex-shrink:0;align-items:center;min-width:0;text-decoration:none;display:flex}.brand_logo{width:auto;max-width:100%;height:clamp(44px,5vw,56px);display:block}.nav{align-items:center;gap:2rem;display:flex}.nav a:not(.btn){color:var(--muted);font-weight:500;text-decoration:none;transition:color .2s}.nav a:not(.btn):hover{color:var(--blue)}.nav-toggle{cursor:pointer;background:0 0;border:0;width:44px;height:44px;display:none;position:relative}.nav-toggle span{background:var(--ink);height:2px;transition:transform .25s,top .25s;position:absolute;left:10px;right:10px}.nav-toggle span:first-child{top:17px}.nav-toggle span:last-child{top:25px}.nav-toggle[aria-expanded=true] span:first-child{top:21px;transform:rotate(45deg)}.nav-toggle[aria-expanded=true] span:last-child{top:21px;transform:rotate(-45deg)}.hero{background-image:url(/img/hero-img.webp);background-position:100%;background-repeat:no-repeat;background-size:cover;align-items:center;min-height:clamp(560px,82vh,780px);padding:clamp(3rem,7vw,5rem) 0;display:flex;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0}.hero__grid{z-index:1;display:block;position:relative}.hero__text{max-width:40rem}.hero__actions{flex-wrap:wrap;gap:.9rem;margin-top:2.25rem;display:flex}.hero__facts{color:var(--muted);flex-wrap:wrap;gap:.5rem 1.75rem;margin:2.75rem 0 0;padding:0;font-size:.95rem;font-weight:500;list-style:none;display:flex}.hero__facts li{padding-left:1.1rem;position:relative}.hero__facts li:before{content:"";background:var(--marble);border-radius:1px;width:.5rem;height:.5rem;position:absolute;top:.55em;left:0}.section{padding:var(--section-y) 0}.section--tint{background:var(--mist)}.section--dark{background:var(--ink);color:#fff}.section__head{grid-template-columns:1fr 1fr;align-items:end;gap:1.5rem 3rem;margin-bottom:clamp(2.25rem,5vw,3.75rem);display:grid}.section__head p{color:var(--muted);max-width:30rem}.services{border-top:2px solid var(--ink)}.service{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.2fr auto;align-items:baseline;gap:1rem 3rem;padding:1.75rem 0;transition:background .2s,padding .2s;display:grid}.service h3{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:700}.service p{color:var(--muted)}.service a{color:var(--blue);text-underline-offset:4px;white-space:nowrap;font-weight:600;text-decoration:underline}.service:hover{background:var(--mist);padding-inline:1rem}.service{display:block}.service__row{grid-template-columns:1fr 1.2fr auto auto;align-items:baseline;gap:1rem 3rem;display:grid}.services--compact .service__row{grid-template-columns:1fr auto}.service__toggle{border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;flex:none;align-self:center;width:40px;height:40px;transition:background .2s,border-color .2s,transform .3s;position:relative}.service__toggle:before,.service__toggle:after{content:"";background:var(--ink);width:14px;height:2px;transition:background .2s;position:absolute;top:50%;left:50%;translate:-50% -50%}.service__toggle:after{transform:rotate(90deg)}.service__toggle:hover,.service.is-open .service__toggle{background:var(--blue);border-color:var(--blue)}.service__toggle:hover:before,.service__toggle:hover:after,.service.is-open .service__toggle:before,.service.is-open .service__toggle:after{background:#fff}.service.is-open .service__toggle{transform:rotate(45deg)}.service__panel{grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.22,.61,.36,1);display:grid}.service.is-open .service__panel{grid-template-rows:1fr}.service__panel-inner{min-height:0;overflow:hidden}.service__images{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:.75rem;padding-top:1.5rem;display:grid}.service__images img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);background:var(--mist);width:100%}.service__empty{padding-top:1.25rem}@media (width<=960px){.service__row{grid-template-columns:1fr auto;gap:.5rem 1rem}.services:not(.services--compact) .service__row h3{grid-area:1/1}.services:not(.services--compact) .service__toggle{grid-area:1/2}.services:not(.services--compact) .service__row p{grid-area:2/1/auto/-1}.services:not(.services--compact) .service__row a{grid-area:3/1/auto/-1}}@media (prefers-reduced-motion:reduce){.service__panel{transition:none}}.service__img{border-radius:var(--radius);cursor:zoom-in;background:0 0;border:0;padding:0;display:block;overflow:hidden}.service__img img{transition:transform .4s;display:block}.service__img:hover img{transform:scale(1.04)}.service__images .service__img:focus-visible{outline-offset:-3px}.filters{flex-wrap:wrap;gap:.6rem;margin-bottom:1.75rem;display:flex}.chip{font:500 .95rem var(--font-body);color:var(--ink);border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:99px;padding:.5rem 1.1rem;transition:background .2s,color .2s,border-color .2s}.chip:hover{border-color:var(--blue)}.chip.is-active{background:var(--blue);border-color:var(--blue);color:#fff}.gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:1rem;display:grid}.work{border-radius:var(--radius);background-color:var(--marble);background-image:var(--vein);background-size:560px;align-items:flex-end;margin:0;display:flex;position:relative;overflow:hidden}.work[hidden]{display:none}.work figcaption{color:#fff;background:linear-gradient(#16224a00,#16224ad1);flex-direction:column;gap:.1rem;width:100%;padding:2.5rem 1.1rem 1rem;display:flex}.work figcaption strong{font:500 1.1rem var(--font-display)}.work figcaption span{opacity:.9;font-size:.88rem}.work img{object-fit:cover;width:100%;height:100%;transition:transform .4s;position:absolute;inset:0}.work:hover img{transform:scale(1.04)}.work figcaption{position:relative}.work__btn{z-index:2;cursor:pointer;background:0 0;border:0;position:absolute;inset:0}.project-info{margin-bottom:1.5rem}.project-info p{color:var(--muted);margin-top:.3rem}.note{color:var(--muted);margin-top:1.25rem;font-size:.9rem}.about{grid-template-columns:1.1fr 1fr;align-items:start;gap:clamp(2.5rem,6vw,5rem);display:grid}.about__text>*+*{margin-top:1.25rem}.about__text p{color:var(--muted);max-width:34rem}.about__values{gap:1rem;padding:0;list-style:none;display:grid;margin-top:2rem!important}.about__values li{border-left:3px solid var(--marble);color:var(--muted);padding-left:1.25rem}.about__values strong{color:var(--ink)}.info-cards{grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;display:grid}.info-card{background:var(--paper);border:1.5px solid var(--line);border-radius:16px;transition:border-color .2s,box-shadow .3s}.info-card:hover{border-color:var(--blue)}.info-card.is-open{border-color:var(--blue);box-shadow:0 18px 40px -26px #16224a73}.info-card__heading{font:inherit;letter-spacing:normal;margin:0}.info-card__head{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:16px;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;display:flex}.info-card__titles{gap:.15rem;display:grid}.info-card__title{font:700 clamp(1.5rem, 3vw, 2rem) / 1.1 var(--font-display);letter-spacing:-.02em}.info-card__hint{color:var(--muted);font-size:.95rem}.info-card__icon{border:1.5px solid var(--line);border-radius:50%;flex:none;width:40px;height:40px;transition:background .2s,border-color .2s,transform .3s;position:relative}.info-card__icon:before,.info-card__icon:after{content:"";background:var(--ink);width:14px;height:2px;transition:background .2s;position:absolute;top:50%;left:50%;translate:-50% -50%}.info-card__icon:after{transform:rotate(90deg)}.info-card__head:hover .info-card__icon,.info-card.is-open .info-card__icon{background:var(--blue);border-color:var(--blue)}.info-card__head:hover .info-card__icon:before,.info-card__head:hover .info-card__icon:after,.info-card.is-open .info-card__icon:before,.info-card.is-open .info-card__icon:after{background:#fff}.info-card.is-open .info-card__icon{transform:rotate(45deg)}.info-card__panel{grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.22,.61,.36,1);display:grid}.info-card.is-open .info-card__panel{grid-template-rows:1fr}.info-card__panel-inner{min-height:0;overflow:hidden}.info-card__panel-inner p{color:var(--muted);padding:0 1.5rem 1.6rem}.objective{text-align:center;max-width:44rem;margin:clamp(2.5rem,6vw,4rem) auto 0}.objective:before{content:"";background:var(--marble);border-radius:2px;width:56px;height:3px;margin:0 auto 1.5rem;display:block}.objective h2{font-size:clamp(1.6rem,3.4vw,2.3rem)}.objective p{color:var(--muted);margin-top:1rem;font-size:1.15rem}@media (width<=720px){.info-cards{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.info-card__panel{transition:none}}.process{counter-reset:step;border-left:2px solid var(--line);margin:0;padding:0;list-style:none}.process li{counter-increment:step;padding:0 0 2rem 2.25rem;position:relative}.process li:last-child{padding-bottom:0}.process li:before{content:counter(step);background:var(--blue);color:#fff;width:32px;height:32px;font:600 .9rem var(--font-body);border-radius:50%;place-items:center;display:grid;position:absolute;top:-2px;left:-17px}.process p{color:var(--muted);margin-top:.25rem}.contact{grid-template-columns:1fr 1.1fr;align-items:start;gap:clamp(2.5rem,6vw,5rem);display:grid}.contact__info p{color:#c3ceea;max-width:28rem;margin-top:1.25rem}.contact__list{gap:1.25rem;margin:2.5rem 0 0;display:grid}.contact__list div{border-top:1px solid #ffffff2e;padding-top:.9rem}.contact__list dt{color:#a9b8dd;font-size:.9rem}.contact__list dd{margin:.15rem 0 0;font-size:1.1rem;font-weight:500}.contact__list a{text-decoration:none}.contact__list a:hover{text-decoration:underline}.contact__list a.contact__wa,.contact__list a.contact__fb{border:1.5px solid #ffffff80;border-radius:99px;align-items:center;margin-top:.25rem;padding:.55rem 1.1rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.contact__list a.contact__wa:hover,.contact__list a.contact__fb:hover{color:var(--ink);background:#fff;border-color:#fff;text-decoration:none}.form{color:var(--ink);background:#fff;border-radius:10px;gap:1.1rem;padding:clamp(1.5rem,4vw,2.5rem);display:grid}.field-row{grid-template-columns:1fr 1fr;gap:1.1rem;display:grid}.field{gap:.4rem;display:grid}.field label{font-size:.95rem;font-weight:600}.opt{color:var(--muted);font-weight:400}.field input,.field select,.field textarea{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);padding:.8rem .9rem;transition:border-color .2s}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #7ca2e859}.field.has-error input,.field.has-error select{border-color:#b3261e}.error{color:#b3261e;min-height:0;font-size:.85rem}.form .btn{background:var(--blue);color:#fff;border-color:var(--blue);justify-self:start;margin-top:.25rem}.form .btn:hover{background:var(--ink);border-color:var(--ink)}.form__status{color:var(--blue);font-size:.95rem;font-weight:500}.footer{color:#a9b8dd;background:#0f1836;padding:1.75rem 0;font-size:.92rem}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 2rem;display:flex}.logo_footer{filter:invert(.3)brightness();width:auto;max-width:100%;height:clamp(44px,5vw,56px);display:block}.project-videos{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:1rem;margin-bottom:1rem;display:grid}.project-video{aspect-ratio:16/9;background:var(--ink);border-radius:var(--radius);position:relative;overflow:hidden}.project-video video,.project-video iframe{object-fit:contain;border:0;width:100%;height:100%;position:absolute;inset:0}.work__btn--zoom{cursor:zoom-in}.lightbox{color:#fff;background:#0a1026f2;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}.lightbox[open]{place-items:center;display:grid}.lightbox::backdrop{background:0 0}.lightbox__img{object-fit:contain;border-radius:var(--radius);max-width:calc(100vw - 2rem);max-height:calc(100dvh - 6rem)}.lightbox__btn{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:50%;place-items:center;width:48px;height:48px;font-size:1.9rem;line-height:1;transition:background .2s;display:grid;position:absolute}.lightbox__btn:hover{background:#ffffff47}.lightbox__close{top:1rem;right:1rem}.lightbox__prev{top:50%;left:1rem;translate:0 -50%}.lightbox__next{top:50%;right:1rem;translate:0 -50%}.lightbox__count{text-align:center;color:#c3ceea;font-size:.9rem;position:absolute;bottom:1rem;left:0;right:0}body:has(dialog[open]){overflow:hidden}.reveal{opacity:0}.reveal.is-visible{opacity:1;animation:.7s cubic-bezier(.22,.61,.36,1) backwards reveal-up;animation-delay:var(--reveal-delay,0s)}@keyframes reveal-up{0%{opacity:0;transform:translateY(28px)}}html.intro-lock{overflow:hidden}html.intro-hold .reveal.is-visible{animation-play-state:paused}.intro{z-index:1000;cursor:pointer;position:fixed;inset:0;overflow:hidden}.intro.is-leaving{pointer-events:none}.intro__slab{will-change:transform;width:50%;height:50%;position:absolute}.intro__slab svg{width:100%;height:100%;display:block}.intro__slab:after{content:"";pointer-events:none;position:absolute;inset:0}.intro__slab--tl{--x:-1;--y:-1;top:0;left:0}.intro__slab--tl:after{box-shadow:inset -3px -3px 0 var(--paper)}.intro__slab--tr{--x:1;--y:-1;top:0;right:0}.intro__slab--tr:after{box-shadow:inset 3px -3px 0 var(--paper)}.intro__slab--bl{--x:-1;--y:1;bottom:0;left:0}.intro__slab--bl:after{box-shadow:inset -3px 3px 0 var(--paper)}.intro__slab--br{--x:1;--y:1;bottom:0;right:0}.intro__slab--br:after{box-shadow:inset 3px 3px 0 var(--paper)}.intro__center{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.intro__logo{filter:drop-shadow(0 0 10px #fff)drop-shadow(0 0 24px #ffffffe6);width:min(72vw,560px);height:auto;animation:.5s cubic-bezier(.22,.61,.36,1) both intro-logo-in}.intro.is-leaving .intro__logo{animation:.25s ease-in forwards intro-logo-out}.intro.is-leaving .intro__slab{animation:.75s cubic-bezier(.76,0,.24,1) forwards intro-slab-out;animation-delay:var(--d,0s)}.pills{margin-bottom:1.75rem;position:relative}.pills__track{overscroll-behavior-x:contain;scrollbar-width:none;padding:4px 2px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 48px calc(100% - 48px),#0000);mask-image:linear-gradient(90deg,#0000,#000 48px calc(100% - 48px),#0000)}.pills__track::-webkit-scrollbar{display:none}.pills__track .chip{white-space:nowrap;flex:none;margin-right:.6rem}.pills__arrow{z-index:2;border:1.5px solid var(--line);background:var(--paper);width:36px;height:36px;color:var(--ink);cursor:pointer;border-radius:50%;place-items:center;font-size:1.4rem;line-height:1;transition:background .2s,border-color .2s,color .2s;display:none;position:absolute;top:50%;translate:0 -50%}.pills__arrow:hover{background:var(--blue);border-color:var(--blue);color:#fff}.pills__arrow--prev{left:0}.pills__arrow--next{right:0}.filters-all{margin-bottom:.75rem}@media (hover:hover) and (pointer:fine){.pills__arrow{display:grid}}@keyframes intro-logo-in{0%{opacity:0;transform:translateY(14px)scale(.96)}}@keyframes intro-logo-out{to{opacity:0;transform:scale(1.04)}}@keyframes intro-slab-out{to{transform:translate(calc(var(--x) * 102%), calc(var(--y) * 102%))}}@media (prefers-reduced-motion:reduce){.reveal{opacity:1}.reveal.is-visible{animation:none}}@media (width<=720px){.lightbox__prev{left:.5rem}.lightbox__next{right:.5rem}.lightbox__img{border-radius:0;max-width:100vw}}@media (width<=960px){.hero__grid,.about,.contact{grid-template-columns:1fr}.hero__visual{max-width:560px;margin-inline:auto}.section__head{grid-template-columns:1fr}.service{grid-template-columns:1fr;gap:.5rem}.service:hover{background:0 0;padding-inline:0}.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}}@media (width<=720px){.hero{background-position:65%}.hero:before{background:#fdfdfe59}.nav-toggle{display:block}.nav{background:var(--paper);border-bottom:1px solid var(--line);padding:.5rem var(--gutter) 1.25rem;flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:76px;left:0;right:0}.nav.is-open{display:flex}.nav a:not(.btn){border-bottom:1px solid var(--line);padding:.9rem 0}.nav .btn{margin-top:1rem}.brand{max-width:calc(100% - 56px)}.hero__actions .btn{flex:100%}.field-row{grid-template-columns:1fr}.form .btn{justify-self:stretch}.gallery{grid-template-columns:1fr;grid-auto-rows:200px}.work--wide{grid-column:auto}.work--tall{grid-row:auto}.footer__inner{justify-content:center}}@media (width>=721px){.nav{flex:.8;gap:0;margin-left:clamp(2rem,6vw,5rem)}.nav a:not(.btn){text-align:center;flex:1}.nav .btn{flex-shrink:0;margin-left:clamp(1rem,3vw,2.5rem)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.nav a.active{color:var(--blue);font-weight:600}.page-head{background:var(--mist);border-bottom:1px solid var(--line);padding:clamp(2.75rem,7vw,5rem) 0 clamp(2rem,5vw,3.5rem)}.page-head h1{font-size:clamp(2.1rem,5vw,3.5rem)}.page-head p{max-width:36rem;color:var(--muted);margin-top:1rem;font-size:1.1rem}.section--dark .contact{margin-top:0}.more{margin-top:1.75rem}.more a{color:var(--blue);text-underline-offset:4px;font-weight:600;text-decoration:underline}.services--compact .service{grid-template-columns:1fr auto}.services--compact .service p{display:none}.cta-banner{background:var(--blue);color:#fff;padding:clamp(2.75rem,6vw,4.25rem) 0}.cta-banner__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem 3rem;display:flex}.cta-banner h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}.cta-banner p{color:#dbe4f8;max-width:32rem;margin-top:.6rem}.footer__nav{flex-wrap:wrap;gap:.5rem 1.5rem;display:flex}.footer__nav a{text-decoration:none}.footer__nav a:hover{color:#fff;text-decoration:underline}.about__text>p+.about__values{margin-top:2rem}@media (width<=720px){.cta-banner .btn{width:100%}}
