@font-face{font-family:Albert Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/albert-sans-latin-ext-400-normal.CK6y59xR.woff2)format("woff2"),url(/_astro/albert-sans-latin-ext-400-normal.DEC9K0b4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Albert Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/albert-sans-latin-400-normal.1PQZqV1o.woff2)format("woff2"),url(/_astro/albert-sans-latin-400-normal.CesMP4Nj.woff)format("woff");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:Albert Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/albert-sans-latin-ext-600-normal.C7nfSnWt.woff2)format("woff2"),url(/_astro/albert-sans-latin-ext-600-normal.DJOKJsr0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Albert Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/albert-sans-latin-600-normal.C_5W882s.woff2)format("woff2"),url(/_astro/albert-sans-latin-600-normal.gYdudiP1.woff)format("woff");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{--ink:#000;--green:#46654b;--card:#e6e6e6;--rule:#3a3a3a;--page-width:1188px;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#fff;font-family:Albert Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#fff;min-width:320px;margin:0}h1,h2,h3,p{margin:0;font-weight:400}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--green);outline-offset:4px}img{max-width:100%;height:auto;display:block}.skip-link{z-index:10;border:1px solid var(--ink);background:#fff;padding:.75rem 1rem;position:absolute;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.page,.site-header{width:min(100% - 2.5rem, var(--page-width));margin:0 auto}.site-header{justify-content:space-between;align-items:center;gap:2rem;min-height:88px;display:flex}.brand{width:108px}.site-nav,.site-footer nav{gap:2.25rem;display:flex}.site-nav a,.site-footer a{font-size:1rem;line-height:1.5;position:relative}.site-nav a:after{content:"";background:currentColor;width:14px;height:2px;transition:transform .18s;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)scaleX(0)}.site-nav a[aria-current=page]:after,.site-nav a:hover:after{transform:translate(-50%)scaleX(1)}.hero{padding:clamp(5rem,11vw,10rem) 0 clamp(5rem,11vw,10.5rem)}.hero h1{color:var(--green);font-size:clamp(2.5rem,5.2vw,3.75rem);line-height:1.06}.hero h1 span{display:block}.intro{max-width:776px;padding-bottom:clamp(4rem,8vw,7.5rem)}.intro h2{max-width:600px;margin-bottom:1.25rem;font-size:clamp(1.5rem,2.4vw,1.75rem);line-height:1.3}.intro p{font-size:1rem;line-height:1.47}.work{gap:3rem;display:grid}.project{background:var(--card);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:3rem;min-height:595px;padding:3rem 0 3rem 3rem;display:grid;overflow:hidden}.project-copy{max-width:540px}.project-copy h3{margin-bottom:1rem;font-size:1.5rem;line-height:1.35}.project-copy p{font-size:1rem;line-height:1.47}.project-media{justify-content:center;display:flex}.device{width:100%;position:relative}.device img{background:#fff;width:100%}.device--phone{background:#0f0f0f;border-radius:34px;width:min(100%,220px);padding:10px}.device--phone img{border-radius:24px}.device--laptop{background:#0f0f0f;border-radius:14px 14px 0 0;margin-bottom:14px;padding:10px 10px 12px}.device--laptop:after{content:"";background:linear-gradient(#2a2a2a,#0f0f0f);border-radius:0 0 12px 12px;height:14px;position:absolute;top:100%;left:-6%;right:-6%}.device--desktop{background:#0f0f0f;border-radius:10px;margin-bottom:72px;padding:12px 12px 40px}.device--desktop:after{content:"";background:linear-gradient(#1a1a1a,#2e2e2e);width:24%;height:72px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.project--laptop .project-media{justify-content:flex-end}.project--laptop .device--laptop{border-top-right-radius:0;width:calc(100% - 2.5rem)}.project--laptop .device--laptop:after{border-bottom-right-radius:0;left:-2.5rem;right:0}.project--desktop{padding-right:3rem}.project:hover h3{text-underline-offset:5px;text-decoration:underline 1px}strong{font-weight:600}.about-intro{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:start;gap:clamp(2.5rem,8vw,10rem);padding-top:clamp(2.5rem,5vw,3.75rem);display:grid}.team{margin:0}.team img{width:min(100%,570px)}.team figcaption{text-align:center;width:min(100%,570px);margin-top:1.75rem;font-size:1rem}.about-copy h1,.capabilities h2{font-size:1.75rem;line-height:1.3}.about-copy h1{margin-bottom:1.5rem}.about-copy p,.about-copy li,.capabilities p{font-size:1rem;line-height:1.47}.about-copy ul{margin:1.5rem 0 0;padding-left:3rem}.capabilities{grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem;padding-top:clamp(4rem,8vw,7.5rem);display:grid}.capabilities h2{margin-bottom:1.5rem;font-size:clamp(1.5rem,2.4vw,1.75rem)}.case-hero{grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);align-items:center;gap:3rem;padding:clamp(3rem,7vw,5.5rem) 0 clamp(3rem,6vw,5rem);display:grid}.case-hero h1{max-width:776px;color:var(--green);margin-bottom:2rem;font-size:clamp(2.5rem,5.2vw,3.75rem);line-height:1.06}.case-hero p{max-width:640px;font-size:1rem;line-height:1.47}.case-hero__media{justify-content:center;display:flex}.case-hero__media>img{width:100%;box-shadow:0 12px 40px #0000001f}.case-hero__media--phone .device--phone{width:min(100%,210px)}.case-section{padding-top:clamp(4rem,8vw,6rem)}.case-section h2{margin-bottom:1.5rem;font-size:clamp(1.5rem,2.4vw,1.75rem);line-height:1.3}.case-section h3{margin:0 0 1rem;font-size:1.5rem;font-weight:400;line-height:1.3}.case-section p,.case-section li{font-size:1rem;line-height:1.47}.case-section p+p,.case-section p+ul,.case-section ul+p,.case-section p+h3,.case-section ul+h3{margin-top:1.25rem}.case-section p+h3,.case-section ul+h3{margin-top:2.5rem}.case-section ul{margin:0;padding-left:3rem}.case-section li ul{margin-top:0;padding-left:3rem;list-style:circle}.case-section a{text-underline-offset:3px;text-decoration:underline}.case-narrow{max-width:776px}.case-center{max-width:776px;margin-left:auto;margin-right:auto}.case-cols{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:3rem;display:grid}.case-cols--media{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);align-items:center}.case-cols--media-wide{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:center}.rule-heading{text-align:center;align-items:center;gap:1.75rem;display:flex}.case-section .rule-heading{margin-bottom:3rem}.rule-heading:before,.rule-heading:after{background:var(--ink);content:"";flex:1 1 0;height:2px}.figure{margin:0}.figure>img{width:100%}.figure .device--phone{width:min(100%,300px);margin:0 auto}.figure .device--laptop{width:82%;margin-left:auto;margin-right:auto}.figure figcaption{text-align:center;margin-top:1.5rem;font-size:1rem;line-height:1.47}.figure--wide{margin-top:3rem}.zoomable{cursor:zoom-in;display:block}.zoomable:focus-visible{outline:2px solid var(--green);outline-offset:4px}.zoomable img{transition:opacity .18s}.zoomable:hover img{opacity:.88}.carousel__slide .zoomable{width:100%}.lightbox{cursor:zoom-out;background:0 0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:clamp(1rem,4vw,3rem)}.lightbox[open]{justify-content:center;align-items:center;animation:.22s ease-out lightbox-in;display:flex}.lightbox::backdrop{backdrop-filter:blur(10px);background:#0009}.lightbox__figure{flex-direction:column;align-items:center;gap:1rem;max-width:100%;max-height:100%;margin:0;display:flex}.lightbox__image{object-fit:contain;filter:drop-shadow(0 4px 20px #00000080);background:#fff;width:auto;max-width:100%;max-height:calc(100dvh - 8rem)}.lightbox__caption{color:#fff;text-align:center;font-size:1rem;line-height:1.47}.lightbox__caption:empty{display:none}.lightbox__close{width:44px;height:44px;color:var(--ink);cursor:pointer;font:inherit;background:#ffffffeb;border:0;border-radius:50%;place-items:center;font-size:1.75rem;line-height:1;display:grid;position:fixed;top:1rem;right:1rem}.lightbox__close:focus-visible{outline-offset:3px;outline:2px solid #fff}@keyframes lightbox-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.steps{grid-template-columns:repeat(var(--step-count), minmax(0, 1fr));counter-reset:none;margin:0;padding:0;list-style:none;display:grid}.steps li{text-align:center;flex-direction:column;align-items:center;gap:1.75rem;padding:0 .5rem;display:flex;position:relative}.steps li+li:before{background:var(--ink);content:"";height:1px;position:absolute;top:37px;left:calc(46px - 50%);right:calc(50% + 46px)}.steps__number{border:1px solid var(--ink);border-radius:50%;place-items:center;width:60px;height:60px;font-size:1.5rem;display:grid}.case-section .steps__label{max-width:10rem;font-size:1.125rem;line-height:1.5}.carousel{max-width:928px;margin:3rem auto 0;padding:0 88px;position:relative}.carousel__track{scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.carousel__track::-webkit-scrollbar{display:none}.carousel__track:focus-visible{outline:2px solid var(--green);outline-offset:4px}.carousel__slide{scroll-snap-align:start;flex:0 0 100%;justify-content:center;align-items:center;margin:0;display:flex}.carousel__slide img{object-fit:contain;width:100%;max-height:520px}.carousel__button{background:var(--card);width:44px;height:44px;color:var(--ink);cursor:pointer;font:inherit;border:0;border-radius:4px;place-items:center;font-size:1.25rem;display:grid;position:absolute;top:calc(50% - 22px);transform:translateY(-50%)}.carousel__button:hover{background:#d6d6d6}.carousel__button:focus-visible{outline:2px solid var(--green);outline-offset:2px}.carousel__button--prev{left:0}.carousel__button--next{right:0}.carousel__dots{background:var(--card);border-radius:999px;gap:.5rem;width:max-content;margin:1.5rem auto 0;padding:.6rem 1rem;display:flex}.carousel__dots span{background:#aaa;border-radius:50%;width:8px;height:8px}.carousel__dots span.is-active{background:#555}.prototype{margin-top:3rem}.prototype iframe{aspect-ratio:16/10;border:1px solid var(--card);width:100%;display:block}.prototype p{text-align:center;margin-top:1.25rem}.more-work{padding-top:clamp(5rem,9vw,7.5rem)}.more-work h2{text-align:center;margin-bottom:3rem;font-size:1.75rem;line-height:1.3}.more-work__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem;max-width:824px;margin:0 auto;display:grid}.more-work__media{justify-content:center;align-items:center;height:300px;margin-bottom:1.5rem;display:flex}.more-work__media .device--phone{border-radius:22px;width:140px;padding:7px}.more-work__media .device--phone img{border-radius:16px}.more-work__media .device--laptop{width:82%}.more-work__media .device--desktop{width:86%;margin-bottom:40px;padding-bottom:20px}.more-work__media .device--desktop:after{height:40px}.more-work h3{margin:0 0 .75rem;font-size:1.375rem;font-weight:400;line-height:1.35}.more-work p{font-size:.92rem;line-height:1.5}.more-work__item:hover h3{text-underline-offset:5px;text-decoration:underline 1px}.contact{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:3rem;padding-top:clamp(2.5rem,5vw,3.75rem);display:grid}.contact h1{margin-bottom:1.5rem;font-size:1.75rem;line-height:1.3}.contact-copy p{font-size:1rem;line-height:1.47}.contact-copy a{text-underline-offset:3px;text-decoration:underline}.contact-form{gap:1.75rem;display:grid}.contact-form label{gap:.6rem;font-size:1rem;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--ink);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:6px;padding:1rem}.contact-form textarea{resize:vertical;min-height:260px}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--green);outline-offset:1px}.contact-form button{border:2px solid var(--ink);color:var(--ink);cursor:pointer;font:inherit;background:#fff;border-radius:6px;justify-self:start;padding:.85rem 1.4rem;font-weight:600}.contact-form button:hover{background:var(--ink);color:#fff}.contact-form button:focus-visible{outline:2px solid var(--green);outline-offset:3px}.contact-form button:disabled{cursor:progress;opacity:.6}.contact-honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact-status:empty{display:none}.contact-status{border-radius:6px;padding:.9rem 1rem;font-size:.95rem;line-height:1.5}.contact-status[data-state=success]{color:var(--green);background:#e8efe9}.contact-status[data-state=error]{color:#a12a2a;background:#fbeaea}.site-footer{border-top:1px solid var(--rule);margin-top:clamp(5rem,9vw,7.5rem);padding:3rem 0 4rem}.site-footer a:hover{text-underline-offset:4px;text-decoration:underline}@media (width<=800px){.project,.project--desktop{grid-template-columns:1fr;gap:2rem;min-height:0;padding:2rem}.project--laptop{padding-right:0}.project--laptop .device--laptop{width:calc(100% - 1.5rem)}.project--laptop .device--laptop:after{left:-1.5rem}.device--desktop{margin-bottom:48px;padding-bottom:24px}.device--desktop:after{height:48px}.work{gap:1.5rem}.about-intro,.capabilities{grid-template-columns:1fr}.capabilities{gap:2.5rem}.about-copy ul{padding-left:1.5rem}.case-hero,.case-cols,.case-cols--media,.case-cols--media-wide,.contact,.more-work__grid{grid-template-columns:1fr}.case-hero__media>img{max-width:420px}.case-section ul,.case-section li ul{padding-left:1.5rem}.steps{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));row-gap:2rem}.steps li+li:before{display:none}.carousel{padding:0}.carousel__button{top:auto;bottom:-6px;transform:none}.prototype iframe{aspect-ratio:3/4}}@media (width<=640px){.page,.site-header{width:calc(100% - 2rem)}.site-header{min-height:72px}.site-nav,.site-footer nav{gap:1.5rem}.project,.project--desktop{padding:1.5rem}.project--laptop{padding-right:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
