@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/archivo-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground:#faf8f4;--ink:#16130f;--muted:#5f594f;--line:#e2dcd1;--surface:#f1ede5;--accent:#a8431c;--accent-soft:#f4e7df;--on-ink-body:#c9c1b6;--on-ink-mono:#b8afa3;--on-ink-rule:#4a4239;--on-ink-hairline:#2c2721;--on-ink-footer:#8f887d;--logo-grey:#6b655c;--font-sans:"Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--container:1200px;--gutter:clamp(20px, 4vw, 32px);--section-y:clamp(56px, 8vw, 88px);--portrait-w:285;--portrait-h:339;--portrait-max-w:230px;--radius-media:10px;--radius-portrait:12px;--radius-pill:999px;--transition:.15s ease}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px;overflow-x:hidden}body{background:var(--ground);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}img,svg,canvas,video{max-width:100%;display:block}h1,h2,h3,p,blockquote,figure,ul{margin:0}ul{padding:0;list-style:none}::selection{background:var(--ink);color:var(--ground)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip-link{left:var(--gutter);z-index:100;background:var(--accent);color:#fff;font:500 14px var(--font-sans);border-radius:var(--radius-pill);padding:10px 16px;text-decoration:none;position:absolute;top:8px;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.container{max-width:var(--container);padding:var(--section-y) var(--gutter);margin-inline:auto}.section{border-top:1px solid var(--line)}.section--surface{background:var(--surface)}.section--ink{background:var(--ink);color:var(--ground)}.split{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(36px,5vw,56px);display:grid}.split--tight{gap:clamp(28px,4vw,40px)}.label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px;font-weight:500}.section--ink .label{color:var(--on-ink-mono)}.h1{letter-spacing:-.05em;text-wrap:balance;max-width:17ch;font-size:clamp(40px,6.4vw,88px);font-weight:800;line-height:1.02}.h2{letter-spacing:-.045em;text-wrap:balance;font-size:clamp(30px,3.4vw,46px);font-weight:800;line-height:1.08}.h3-offer{letter-spacing:-.04em;max-width:12ch;font-size:clamp(24px,2.4vw,32px);font-weight:800;line-height:1.1}.h3-project{letter-spacing:-.045em;font-size:clamp(28px,3vw,40px);font-weight:800;line-height:1}.lead{color:var(--muted);text-wrap:pretty;max-width:62ch;font-size:clamp(17px,1.5vw,21px);font-weight:400;line-height:1.6}.body{color:var(--muted);text-wrap:pretty;max-width:62ch;font-size:17px;font-weight:400;line-height:1.68}.body--ink{color:var(--ink)}.sublabel{font-family:var(--font-mono);letter-spacing:.02em;color:var(--muted);max-width:26ch;font-size:13px;font-weight:400;line-height:1.6}.link-accent{color:var(--accent);border-bottom:1px solid var(--accent);text-decoration:none}.wordmark{color:inherit;flex-direction:column;align-self:flex-start;gap:3px;text-decoration:none;display:flex}.wordmark__text{font-weight:800;font-size:var(--wordmark-size,21px);letter-spacing:-.055em;line-height:1}.wordmark__rule{background:currentColor;height:4px}.header{z-index:60;background:var(--ground);border-bottom:1px solid var(--line);position:sticky;top:0}.header__inner{max-width:var(--container);padding:18px var(--gutter);justify-content:space-between;align-items:center;gap:24px;margin-inline:auto;display:flex}.nav{align-items:center;gap:clamp(16px,2.4vw,28px);display:flex}.nav__link{color:var(--ink);transition:color var(--transition);white-space:nowrap;font-size:14px;font-weight:500;text-decoration:none}.nav__link:hover{color:var(--accent)}@media (width<=599px){.nav__link{display:none}.nav__link--cta{display:inline-block}}.cta{color:#fff;background:var(--accent);border-radius:var(--radius-pill);transition:background var(--transition);white-space:nowrap;padding:16px 30px;font-size:16px;font-weight:500;text-decoration:none;display:inline-block}.cta:hover{background:var(--ink)}.cta--sm{padding:10px 18px;font-size:14px}.hero{padding-block:clamp(72px,10vw,120px) clamp(64px,8vw,96px)}.hero .label{margin-bottom:clamp(28px,4vw,40px)}.hero__lead{margin-top:clamp(28px,3.5vw,36px)}.hero__actions{flex-wrap:wrap;gap:14px;margin-top:clamp(32px,4.5vw,44px);display:flex}.quote{flex-direction:column;gap:44px;display:flex}.quote__text{letter-spacing:-.035em;color:var(--ground);text-wrap:pretty;text-indent:-.42em;width:66%;max-width:66ch;font-size:clamp(22px,2.9vw,40px);font-weight:400;line-height:1.28}@media (width<=899px){.quote__text{width:100%}.quote{gap:32px}}.quote__footer{align-items:baseline;gap:16px;display:flex}.quote__dash{background:var(--on-ink-body);flex:none;width:36px;height:3px;transform:translateY(-6px)}.quote__attribution{flex-direction:column;gap:5px;display:flex}.quote__name{letter-spacing:-.01em;color:var(--ground);font-size:16px;font-weight:600}.quote__role{font-family:var(--font-mono);letter-spacing:.04em;color:var(--on-ink-mono);font-size:12px;font-weight:400}.offers{background:var(--line);border-block:1px solid var(--line);flex-direction:column;gap:1px;margin-top:clamp(40px,6vw,64px);display:flex}.offer{background:var(--surface);padding-block:clamp(32px,4.5vw,44px)}.offer__head{align-items:flex-start;gap:20px;display:flex}.offer__num{font-family:var(--font-mono);color:var(--accent);padding-top:9px;font-size:12px;font-weight:500}.offer__title{flex-direction:column;gap:14px;display:flex}.offer__body{flex-direction:column;gap:20px;max-width:62ch;display:flex}.projects__title{margin-block:24px clamp(44px,6vw,72px)}.project{flex-direction:column;gap:clamp(28px,3.5vw,36px);padding-block:clamp(48px,6vw,72px);display:flex}.project:first-of-type{padding-top:0}.project:last-of-type{padding-bottom:0}.project+.project{border-top:1px solid var(--line)}.project__head{align-items:start}.project__id{flex-direction:column;gap:16px;display:flex}.project__url{font-family:var(--font-mono);letter-spacing:.02em;color:var(--accent);transition:border-color var(--transition);border-bottom:1px solid #0000;align-self:flex-start;align-items:center;gap:8px;font-size:13px;font-weight:400;text-decoration:none;display:inline-flex}.project__url:hover{border-bottom-color:var(--accent)}.tech{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px 32px;display:grid}.tech li{font-family:var(--font-mono);color:var(--muted);border-top:1px solid var(--line);padding-top:8px;font-size:13px;font-weight:400;line-height:1.7}.media{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.media__cell{min-width:0;margin:0}.media__cell[data-span="6"]{grid-column:span 6}.media__cell[data-span="3"]{grid-column:span 3}.media__cell[data-span="2"]{grid-column:span 2}@media (width<=1099px){.media__cell[data-span="2"]{grid-column:span 3}}@media (width<=759px){.media__cell{grid-column:span 6!important}}.media__trigger{cursor:zoom-in;border-radius:var(--radius-media);background:0 0;border:0;width:100%;padding:0;display:block}.media__trigger img{aspect-ratio:16/10;object-fit:cover;object-position:top center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-media);width:100%;height:auto}.media__cell[data-shape=portrait] .media__trigger img{aspect-ratio:9/16}.media__caption{font-family:var(--font-mono);letter-spacing:.02em;color:var(--muted);margin:10px 2px 0;font-size:12px;font-weight:400;line-height:1.5}.lightbox{z-index:90;cursor:zoom-out;background:#0c0a08e0;border:0;justify-content:center;align-items:center;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:4vmin;display:flex;position:fixed;inset:0}.lightbox::backdrop{background:0 0}.lightbox[hidden]{display:none}.lightbox__img{object-fit:contain;border-radius:6px;max-width:100%;max-height:100%;box-shadow:0 24px 80px #00000073}.lightbox__close{color:#fff;width:40px;height:40px;font:400 18px var(--font-mono);cursor:pointer;transition:background var(--transition);background:#ffffff1f;border:0;border-radius:20px;position:fixed;top:20px;right:24px}.lightbox__close:hover{background:#ffffff3d}.clients__row{grid-template-columns:minmax(110px,160px) 1fr;align-items:center;gap:24px 40px;display:grid}.clients__row--startups{border-bottom:1px solid var(--line);padding-bottom:36px}.clients__row--enterprise{padding-top:36px}.clients__label{font-family:var(--font-mono);letter-spacing:.1em;color:var(--muted);font-size:12px;font-weight:500}.clients__marks{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:20px clamp(16px,2.6vw,44px);display:flex}.clients__marks img{width:var(--logo-w);object-fit:contain;min-width:0;height:auto;transform:translateY(var(--logo-shift,0));flex:0 auto}@media (width<=899px){.clients__row{grid-template-columns:1fr;gap:16px}.clients__marks{justify-content:flex-start}}@media (width<=559px){.clients__marks{grid-template-columns:repeat(3,1fr);place-items:center start;gap:20px clamp(12px,4vw,24px);display:grid}.clients__marks img{width:min(var(--logo-w), 100%)}}.about__grid{align-items:stretch}.about__col{flex-direction:column;gap:28px;height:100%;min-height:0;display:flex}.portrait{min-height:0;aspect-ratio:var(--portrait-w) / var(--portrait-h);width:auto;max-width:var(--portrait-max-w);max-height:calc(var(--portrait-max-w) * var(--portrait-h) / var(--portrait-w));border-radius:var(--radius-portrait);background:var(--line);flex:1 1 0;align-self:flex-start;position:relative;overflow:hidden}@media (width<=699px){.portrait{flex:none;align-self:stretch;width:100%}}.portrait img{object-fit:contain;object-position:center;filter:grayscale()contrast(1.06);opacity:.7;width:100%;height:100%}.portrait canvas{object-fit:contain;object-position:center;opacity:.35;mix-blend-mode:multiply;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.contact{padding-block:clamp(72px,9vw,104px)}.contact__title{letter-spacing:-.05em;max-width:14ch;margin-block:24px 32px;font-size:clamp(34px,4.6vw,64px);font-weight:800;line-height:1.04}.contact__lead{color:var(--on-ink-body);text-wrap:pretty;max-width:58ch;margin-bottom:clamp(36px,5vw,48px);font-size:clamp(17px,1.5vw,20px);font-weight:400;line-height:1.65}.contact__links{flex-wrap:wrap;align-items:center;gap:14px 28px;display:flex}.contact__link{letter-spacing:-.03em;color:var(--ground);border-bottom:2px solid var(--on-ink-rule);transition:border-color var(--transition);overflow-wrap:anywhere;padding-bottom:4px;font-size:clamp(20px,2.4vw,30px);font-weight:500;text-decoration:none}.contact__link:hover{border-bottom-color:var(--ground)}.contact__dot{color:#6a6258;font-size:20px}@media (width<=479px){.contact__dot{display:none}}.footer{background:var(--ink);color:var(--on-ink-footer);border-top:1px solid var(--on-ink-hairline)}.footer__inner{max-width:var(--container);padding:28px var(--gutter);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-inline:auto;display:flex}.footer__meta{flex-wrap:wrap;align-items:center;gap:10px 24px;display:flex}.footer__strapline,.footer__link{font-family:var(--font-mono);font-size:12px;font-weight:400}.footer__link{color:var(--ground);border-bottom:1px solid var(--on-ink-rule);transition:border-color var(--transition);text-decoration:none}.footer__link:hover{border-bottom-color:var(--ground)}.js [data-reveal]{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(18px)}.js [data-reveal].is-revealed{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transition:none;transform:none}}
