@font-face{font-family:Archivo;src:url(../fonts/archivo-400.woff2) format("woff2");font-weight:400;font-stretch:100%;font-display:swap}@font-face{font-family:Archivo;src:url(../fonts/archivo-500.woff2) format("woff2");font-weight:500;font-stretch:100%;font-display:swap}@font-face{font-family:Archivo;src:url(../fonts/archivo-600.woff2) format("woff2");font-weight:600;font-stretch:100%;font-display:swap}@font-face{font-family:Archivo;src:url(../fonts/archivo-800-expanded.woff2) format("woff2");font-weight:800;font-stretch:125%;font-display:swap}:root{--void: #000000;--ink: #ffffff;--rule: #333333;--mute: #757575;--gutter: clamp(1.25rem, 4.5vw, 4.5rem);--hpad: clamp(1.25rem, 3vw, 2.25rem);--intro-scale: 2.1;--glow-strength: 1;--glow-size: 110vmax;--glow-stops: rgba(255, 255, 255, .16), rgba(255, 255, 255, .1) 24%, rgba(255, 255, 255, .05) 46%, rgba(255, 255, 255, .018) 68%, rgba(255, 255, 255, 0) 100%;--measure: 34ch;--ease: cubic-bezier(.16, 1, .3, 1);--snap: cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box}html{overflow-x:clip;-webkit-text-size-adjust:100%}body{margin:0;background:var(--void);color:var(--ink);font-family:Archivo,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;font-stretch:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}h1,h2,h3,p,ul,figure{margin:0}ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}::selection{background:var(--ink);color:var(--void)}:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.u-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.display{font-weight:800;font-stretch:125%;letter-spacing:-.035em;line-height:.84;text-transform:uppercase;text-wrap:balance}.glow{position:fixed;top:0;left:0;z-index:2;width:var(--glow-size);height:var(--glow-size);margin:calc(var(--glow-size) / -2) 0 0 calc(var(--glow-size) / -2);pointer-events:none;background:radial-gradient(circle closest-side,var(--glow-stops));opacity:0;transition:opacity 1.2s linear;will-change:transform}.glow.is-lit{opacity:var(--glow-strength, 1)}.header{position:absolute;inset:0 0 auto;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:var(--hpad) var(--gutter)}.logo{display:block;width:clamp(150px,19vw,240px);flex:none}.js .home .logo{transform:translate(calc(50vw - var(--gutter) - 50%),calc(50vh - var(--hpad) - 50%)) scale(var(--intro-scale));transform:translate(calc(50vw - var(--gutter) - 50%),calc(50svh - var(--hpad) - 50%)) scale(var(--intro-scale))}.js .home .logo.is-home{transform:none;transition:transform 1s cubic-bezier(.62,.03,.2,1)}.js .home .nav,.js .home .hero__foot{opacity:0}.js .home .nav.is-in,.js .home .hero__foot.is-in{opacity:1;transition:opacity .8s var(--ease)}.logo__svg{width:100%;height:auto;color:var(--ink);overflow:visible;filter:drop-shadow(0 0 22px rgba(255,255,255,.28))}.logo__svg path{fill:currentColor}body:not(.home) .logo__svg *{animation:none!important}.nav{display:flex;align-items:center;margin-right:-.7rem;font-size:.875rem;font-weight:500;letter-spacing:.02em}.nav__panel{display:flex;align-items:center;gap:clamp(.5rem,1.6vw,1.25rem)}.nav a{display:inline-block;padding:.4rem .7rem;transition:background .3s var(--snap),color .3s var(--snap)}.nav a:hover,.nav a:focus-visible{background:var(--ink);color:var(--void)}.js .home .nav{pointer-events:none}.js .home .nav.is-in{pointer-events:auto}.burger{display:none;background:none;border:0;padding:0;color:inherit;cursor:pointer}.burger__lines{position:relative;display:block;width:28px;height:11px;margin:auto}.burger__lines span{position:absolute;left:0;width:100%;height:1px;background:currentColor;transition:transform .4s var(--ease)}.burger__lines span:first-child{top:0}.burger__lines span:last-child{bottom:0}[aria-expanded=true] .burger__lines span:first-child{transform:translateY(5px) rotate(45deg)}[aria-expanded=true] .burger__lines span:last-child{transform:translateY(-5px) rotate(-45deg)}@media (max-width: 47.9375rem){.js .burger{position:fixed;top:calc(var(--hpad) + (60px - 44px) / 2);right:calc(var(--gutter) - 8px);display:block;width:44px;height:44px;background:var(--void)}.js .nav__panel{position:fixed;inset:0;z-index:-1;display:grid;align-content:center;justify-items:start;gap:clamp(.25rem,1.5vh,.75rem);padding:0 var(--gutter);background:var(--void);touch-action:none;opacity:0;visibility:hidden;transition:opacity .35s var(--snap),visibility 0s linear .35s}.js .nav__panel.is-open{opacity:1;visibility:visible;transition:opacity .4s var(--snap),visibility 0s}.js .nav__panel a{font-size:clamp(2.5rem,13vw,4rem);font-weight:800;font-stretch:125%;letter-spacing:-.035em;line-height:.84;text-transform:uppercase;padding:.25rem .7rem;opacity:0;transform:translateY(.75rem);transition:opacity .3s var(--snap),transform .4s var(--ease),background .3s var(--snap),color .3s var(--snap)}.js .nav__panel.is-open a{opacity:1;transform:none;transition-delay:var(--d, 0ms)}.js .nav__panel.is-open a:nth-child(1){--d: 80ms}.js .nav__panel.is-open a:nth-child(2){--d: .16s}.js .nav__panel.is-open a:nth-child(3){--d: .24s}.js .nav__panel.is-open a:nth-child(4){--d: .32s}}body.is-menu-open{overflow:hidden}.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;grid-template-rows:1fr auto;padding:clamp(8rem,18vh,12rem) var(--gutter) clamp(2rem,5vh,3.5rem)}.hero__title{align-self:center;font-size:clamp(3rem,13.2vw,12.5rem);max-width:100%}.hero__line{display:block}.word{display:inline-block}.word__in{display:block;will-change:transform,opacity}.js .word__in{opacity:0;transform:scale(1.3)}.js .is-revealed .word__in{opacity:1;transform:scale(1);transition:transform .4s cubic-bezier(.18,.89,.32,1.12),opacity .16s linear;transition-delay:var(--d, 0ms)}.hero__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}.hero__lede{margin-left:auto;max-width:30ch;font-size:clamp(.9375rem,1.15vw,1.125rem);color:var(--mute);text-align:right}.hero__lede b{color:var(--ink);font-weight:500}.scroll{display:flex;align-items:center;gap:.875rem;font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}.scroll{transition:color .3s var(--snap)}.scroll:hover,.scroll:focus-visible{color:var(--ink)}.scroll__rail{position:relative;display:block;width:1px;height:64px;background:var(--rule);overflow:hidden}.scroll__rail:after{content:"";position:absolute;inset-inline:0;top:0;height:40%;background:var(--ink);animation:fall 2.4s var(--snap) infinite}@media (max-width: 47.9375rem){.hero__foot{flex-wrap:nowrap;align-items:center;gap:1.5rem}.scroll{gap:0}.scroll__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}}@keyframes fall{0%{transform:translateY(-100%)}to{transform:translateY(250%)}}.services__head{padding:clamp(4rem,12vh,9rem) var(--gutter) clamp(2rem,6vh,4rem)}.services__head h2{font-size:clamp(2rem,6vw,5rem);max-width:18ch}.services__grid{display:grid;gap:clamp(1rem,2vw,1.75rem);grid-template-columns:minmax(0,1fr);padding:0 var(--gutter) clamp(4rem,10vh,7rem)}.service{position:relative;isolation:isolate;display:grid;grid-template-rows:auto auto 1fr auto;gap:clamp(1.5rem,3vw,2.25rem);--pad: clamp(1.75rem, 3vw, 2.5rem);padding:var(--pad);border:1px solid var(--rule)}.service__name{font-size:clamp(1.75rem,2.4vw,2.25rem);max-width:100%}.service__body{display:grid;gap:clamp(1.5rem,3vh,2rem);align-content:start}.service__lede{font-size:clamp(1rem,1.1vw,1.125rem);line-height:1.45;max-width:var(--measure)}.service__more{justify-self:start;margin-left:-.7rem;padding:.4rem .7rem;font-size:.875rem;font-weight:500;letter-spacing:.02em;transition:background .3s var(--snap),color .3s var(--snap)}.service__more:hover,.service__more:focus-visible{background:var(--ink);color:var(--void)}.service__link{color:inherit;text-decoration:none}.service__link:after{content:"";position:absolute;inset:0;z-index:1}.service__link:focus-visible{outline:none}.service:has(.service__link:focus-visible){outline:2px solid var(--ink);outline-offset:4px}.service__more{position:relative;z-index:2}@media (hover: hover) and (pointer: fine){.service{transition:border-color .3s var(--snap)}.service:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle calc(var(--glow-size) / 2) at var(--cx, 50%) var(--cy, 50%),var(--glow-stops));opacity:0;transition:opacity .3s var(--snap)}.service:hover{border-color:var(--ink)}.service:hover .service__more{background:var(--ink);color:var(--void)}.service:hover:before{opacity:var(--glow-strength, 1)}}.fx{display:none}#service-web{--focus: 56% 40%;--dur: 2.8s}#service-apps{--focus: 59% 45%;--dur: 3.2s}#service-ai{--focus: 50% 45%;--dur: 2.4s}#service-strategy{--focus: 51% 43%;--dur: 2.6s}@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference){.media--card :is(img,.fx){transform-origin:var(--focus, 50% 50%);transition:scale 1.8s var(--ease);animation:card-drift 11s ease-in-out infinite alternate paused}.media--card .fx{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;opacity:0;transition:opacity .8s var(--ease),scale 1.8s var(--ease)}.fx *{animation-play-state:paused}.fx-sweep{animation:fx-sweep var(--dur) linear infinite paused}.fx-flare{opacity:.4;animation:fx-flare var(--dur) var(--snap) infinite paused;animation-delay:calc((var(--at, 0) - 1) * var(--dur))}.fx-tab{opacity:.15;animation:fx-tab calc(var(--dur) * 1.5) ease-in-out infinite paused;animation-delay:calc((var(--i, 0) / 3 - 1) * var(--dur) * 1.5)}.fx-blink{animation:fx-blink var(--rate, 1.9s) steps(1,end) infinite paused;animation-delay:calc(var(--at, 0) * var(--rate, 1.9s) * -1)}.fx-blink:nth-child(3n+1){--rate: 1.3s}.fx-blink:nth-child(3n+2){--rate: 3.1s}.fx-pulse{stroke-dasharray:.18 2;stroke-dashoffset:.18;animation:fx-pulse var(--dur) linear infinite paused;animation-delay:calc((var(--at, 0) - 1) * var(--dur))}.fx-drift{animation:fx-drift 14s ease-in-out infinite alternate paused}.fx-drift--b{animation-duration:19s;animation-direction:alternate-reverse}.fx-flicker{animation:fx-flicker 5.3s steps(1,end) infinite paused}.service:hover .media--card :is(img,.fx){scale:1.06}.service:hover .media--card .fx{opacity:1}.service:hover .media--card :is(img,.fx,.fx *){animation-play-state:running}}@keyframes card-drift{0%{translate:0 0}to{translate:-1.2% .6%}}@keyframes fx-sweep{0%{translate:0 0}to{translate:0 470px}}@keyframes fx-flare{0%{opacity:1}28%{opacity:.4}88%{opacity:.4}to{opacity:1}}@keyframes fx-tab{0%,30%{opacity:1}40%{opacity:.15}90%{opacity:.15}to{opacity:1}}@keyframes fx-blink{0%{opacity:0}62%{opacity:1}70%{opacity:0}84%{opacity:.7}88%{opacity:0}}@keyframes fx-pulse{0%{stroke-dashoffset:.18}to{stroke-dashoffset:-1}}@keyframes fx-drift{0%{translate:0 0}50%{translate:40px -45px}to{translate:-25px -80px}}@keyframes fx-flicker{0%{opacity:1}18%{opacity:.7}19%{opacity:1}21%{opacity:.85}22%{opacity:1}57%{opacity:.8}58%{opacity:1}83%{opacity:.6}84%{opacity:1}86%{opacity:.9}87%{opacity:1}}@media (min-width: 48rem){.services__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 75rem){.services__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.service{--pad: clamp(1.25rem, 1.8vw, 1.75rem);gap:clamp(1.1rem,1.6vw,1.5rem)}.service__name{font-size:clamp(1.25rem,1.6vw,1.625rem)}.service__lede{font-size:.9375rem}.service__more{font-size:.8125rem}}.page__head,.page__body,.page__next{max-width:74rem;margin-inline:auto}.page__head{padding:clamp(8rem,18vh,12rem) var(--gutter) clamp(2rem,6vh,3.5rem);text-align:center}.page__eyebrow{margin-bottom:clamp(1rem,3vh,1.75rem);font-size:.875rem;letter-spacing:.02em;color:var(--mute)}.page__eyebrow a,.page__intro a{border-bottom:1px solid var(--rule)}.page__eyebrow a:hover,.page__intro a:hover{color:var(--ink);border-bottom-color:var(--ink)}.page__title{font-size:clamp(2.125rem,8.5vw,7rem)}.page__intro{margin:clamp(1.5rem,4vh,2.5rem) auto 0;font-size:clamp(1.0625rem,1.5vw,1.4375rem);line-height:1.45;max-width:46ch}.page__body{display:grid;gap:clamp(3.5rem,10vh,7rem);grid-template-columns:minmax(0,1fr);padding:clamp(3rem,8vh,5rem) var(--gutter)}.block{display:grid;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;grid-template-columns:minmax(0,1fr);grid-template-areas:"media" "text"}.block--text{grid-template-areas:"text"}.block__text{grid-area:text;display:grid;gap:1rem;align-content:center}.block__title{font-size:clamp(1.25rem,2vw,1.625rem);font-weight:600;letter-spacing:-.01em}.block__body{line-height:1.55;color:var(--mute);max-width:46ch}.page__next{display:grid;gap:clamp(1rem,3vh,1.5rem);padding:clamp(2rem,6vh,4rem) var(--gutter) clamp(3rem,8vh,5rem);border-top:1px solid var(--rule);text-align:center}.page__next .page__links{justify-content:center}.contact--slim{text-align:center}.contact--slim .cta{margin-left:0}.page__cta{font-size:clamp(1.0625rem,1.5vw,1.4375rem)}.page__links{display:flex;flex-wrap:wrap;gap:.25rem clamp(.5rem,2vw,1.5rem);font-size:.9375rem}.page__links a,.cta{display:inline-block;margin-left:-.7rem;padding:.4rem .7rem;transition:background .3s var(--snap),color .3s var(--snap)}.page__links a:hover,.page__links a:focus-visible,.cta:hover,.cta:focus-visible{background:var(--ink);color:var(--void)}.contact.contact--slim{min-height:0;padding-block:clamp(3rem,10vh,6rem) clamp(1.25rem,3vh,2rem)}@media (min-width: 60rem){.block{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"media text"}.block:nth-child(2n){grid-template-areas:"text media"}.block.block--text{grid-template-columns:minmax(0,1fr);grid-template-areas:"text"}}.contact{position:relative;z-index:1;min-height:100vh;min-height:100svh;display:grid;align-content:center;gap:clamp(1.5rem,3.4vh,2.5rem);padding:clamp(3rem,6.8vh,5rem) var(--gutter) clamp(1.25rem,3vh,2rem);background:var(--void);border-top:1px solid var(--rule)}.contact__title{font-size:clamp(2.25rem,7.5vw,6.5rem)}.form{display:grid;gap:clamp(1.15rem,2.8vh,1.85rem)}.field{position:relative;display:grid}.field label{font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);transition:color .3s var(--snap)}.field:focus-within label{color:var(--ink)}.field input,.field textarea{width:100%;appearance:none;background:transparent;border:0;border-bottom:1px solid var(--rule);border-radius:0;padding:.65em 0 .5em;color:var(--ink);font:inherit;font-size:clamp(1.15rem,2.8vw,1.9rem);font-weight:500;letter-spacing:-.01em;outline:none}.field textarea{resize:none;overflow:hidden;min-height:1.6em}.field input::placeholder,.field textarea::placeholder{color:var(--rule)}.field:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--snap)}.field:focus-within:after{transform:scaleX(1)}.field input:focus-visible,.field textarea:focus-visible{outline:none}.trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.turnstile{min-height:65px;margin-top:clamp(1rem,3vh,2rem)}.send{width:100%;margin-top:clamp(.35rem,1.4vh,1rem);padding:clamp(.9rem,2.4vh,1.5rem) 1rem;background:var(--void);color:var(--ink);border:1px solid var(--ink);border-radius:0;font:inherit;font-size:clamp(1.75rem,5.5vw,3.75rem);font-weight:800;font-stretch:125%;letter-spacing:-.02em;line-height:1;text-transform:uppercase;cursor:pointer;transition:background .35s var(--snap),color .35s var(--snap)}.send:hover,.send:focus-visible{background:var(--ink);color:var(--void)}.send[disabled]{opacity:.45;cursor:progress}.note{padding:.9rem 1.1rem;border:1px solid var(--rule);font-size:.9375rem}.note--ok{border-color:var(--ink)}.contact__foot{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;justify-content:space-between;padding-top:clamp(1.5rem,4vh,2.5rem);border-top:1px solid var(--rule);font-size:.8125rem;color:var(--mute)}.contact__company{font-style:normal;line-height:1.6}@media (max-height: 800px) and (min-width: 48rem){.contact__title{font-size:clamp(2.25rem,5.5vw,4.25rem)}.field input,.field textarea{font-size:clamp(1.05rem,2vw,1.5rem)}.send{font-size:clamp(1.5rem,3.6vw,2.75rem)}}.media{position:relative;aspect-ratio:var(--ratio, 16 / 9);overflow:hidden}.media img{width:100%;height:100%;object-fit:cover}.media--todo{display:grid;place-items:center;padding:1.25rem;border:1px solid var(--rule);text-align:center}.media--todo:before{content:"";position:absolute;inset:0;opacity:.35;background:linear-gradient(to bottom right,transparent calc(50% - .5px),var(--rule) calc(50% - .5px),var(--rule) calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(to bottom left,transparent calc(50% - .5px),var(--rule) calc(50% - .5px),var(--rule) calc(50% + .5px),transparent calc(50% + .5px))}.media--todo:after{content:"";position:absolute;inset:0;background:radial-gradient(circle closest-side,var(--glow-stops));opacity:.8}.media__meta{position:relative;z-index:1;display:grid;gap:.5rem;justify-items:center;max-width:34ch}.media__file{font-size:.8125rem;font-weight:500;letter-spacing:.02em;color:var(--ink)}.media__ratio{font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}.media__brief{font-size:.8125rem;line-height:1.45;color:var(--mute)}.media--card{margin:calc(var(--pad) * -1) calc(var(--pad) * -1) 0;border-bottom:1px solid var(--rule)}.media--card.media--todo{border-width:0 0 1px}.media--lead{margin:clamp(2rem,5vh,3rem) auto 0;border:1px solid var(--rule)}@media (min-width: 60rem){.media--lead{max-width:52rem}}.media--block{grid-area:media;border:1px solid var(--rule)}.form-wrap{position:relative}.js .form-wrap.is-posting .form{transform:translateY(26px) scale(.94);opacity:0;pointer-events:none;transition:transform .5s var(--ease),opacity .38s linear}.js .form-wrap.is-sent .form{visibility:hidden}.posted{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:clamp(1.25rem,3vh,2rem);opacity:0;pointer-events:none}.js .form-wrap.is-posting .posted{opacity:1;transition:opacity .3s linear}.posted__stage{display:grid;place-items:center}.posted__stage>*{grid-area:1 / 1}.posted__slot{display:block;width:clamp(7rem,22vw,11rem);height:2px;background:var(--ink);transform:scaleX(0);transition:transform .42s var(--ease)}.is-posting .posted__slot{transform:scaleX(1)}.is-sent .posted__slot{transform:scaleX(0);transition:transform .34s var(--snap)}.posted__tick{width:clamp(3.75rem,9vh,4.5rem);height:clamp(3.75rem,9vh,4.5rem)}.posted__tick circle,.posted__tick path{fill:none;stroke:var(--ink);stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.posted__ring{stroke-dasharray:164;stroke-dashoffset:164;transform:rotate(-90deg);transform-origin:center}.posted__check{stroke-dasharray:36;stroke-dashoffset:36}.is-sent .posted__ring{stroke-dashoffset:0;transition:stroke-dashoffset .6s var(--ease)}.is-tick .posted__check{stroke-dashoffset:0;transition:stroke-dashoffset .38s var(--ease)}.posted__label{max-width:26ch;text-align:center;text-wrap:balance;font-size:clamp(1rem,1.3vw,1.1875rem);line-height:1.45;letter-spacing:.01em;color:var(--ink);opacity:0;transform:translateY(10px)}.is-done .posted__label{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}.js .reveal{opacity:0;transform:translateY(28px)}.js .reveal.is-in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d, 0ms)}.js .service.reveal.is-in{transition:opacity .9s var(--ease),transform .9s var(--ease),border-color .3s var(--snap);transition-delay:var(--d, 0ms),var(--d, 0ms),0ms}@media (hover: hover) and (pointer: fine){.magnet{transform:translate3d(var(--mx, 0px),var(--my, 0px),0);transition:transform .45s var(--ease),background .3s var(--snap),color .3s var(--snap)}.magnet.is-pulling{transition:transform .12s linear,background .3s var(--snap),color .3s var(--snap)}}@media (prefers-reduced-motion: reduce){.logo__svg *{animation:none!important}.scroll__rail:after{animation:none;transform:translateY(60%)}.js .word__in{transform:none;opacity:1}.js .logo{transform:none!important}.js .nav,.js .hero__foot{opacity:1!important}.js .reveal{opacity:1;transform:none}.magnet{transform:none!important}.js .nav__panel,.js .nav__panel a{transform:none!important;transition-delay:0s!important}.glow{transition:none}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
