:root{--green-950:#0b3d12;--green-700:#1f7a2a;--green-500:#2f8f33;--green-300:#7bbe80;--green-tint:#eef6ef;--ink:#131714;--ink-soft:#5b645c;--paper:#fff;--paper-2:#f7f8f7;--dark:#141815;--line:#e3e6e3;--line-dark:#ffffff1f;--shadow-sm:0 2px 8px #1317140d;--shadow-md:0 14px 34px #13171414;--maxw:1180px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Montserrat,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}::selection{background:var(--green-500);color:#fff}:focus-visible{outline:2px solid var(--green-500);outline-offset:3px}header.site-header{z-index:100;-webkit-backdrop-filter:blur(14px)saturate(160%);backdrop-filter:blur(14px)saturate(160%);border-bottom:1px solid var(--line);background:#ffffffe0;position:sticky;top:0}.nav{height:80px;max-width:var(--maxw);grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;padding:0 32px;display:grid}.nav>.logo{justify-self:start}.nav>.navlinks{justify-self:center}.nav>.nav-right{justify-self:end}.logo{align-items:center;gap:10px;display:flex}.header-logo{object-fit:contain;width:auto;max-width:180px;height:42px;transition:transform .35s cubic-bezier(.2,.7,.3,1);display:block}.logo:hover .header-logo{transform:scale(1.03)}header.site-header.scrolled .header-logo{height:36px}.navlinks{align-items:center;gap:40px;display:flex}.navlinks a{color:var(--ink-soft);padding:6px 0;font-size:14.5px;font-weight:500;transition:color .2s;position:relative}.navlinks a:after{content:"";background:var(--green-500);width:0;height:2px;transition:width .25s;position:absolute;bottom:0;left:0}.navlinks a:hover{color:var(--ink)}.navlinks a:hover:after{width:100%}.navlinks a.active{color:var(--ink);font-weight:600}.navlinks a.active:after{width:100%}.nav-right{align-items:center;gap:16px;display:flex}.nav-cta{background:var(--green-700);color:#fff;white-space:nowrap;border-radius:100px;justify-content:center;align-items:center;padding:12px 22px;font-size:13.5px;font-weight:600;transition:transform .2s,background .2s;display:inline-flex}.nav-cta:hover{background:var(--green-950);transform:translateY(-2px)}.nav-toggle{border:1px solid var(--line);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:none}.nav-toggle svg{width:22px;height:22px;stroke:var(--ink)}.mobile-menu{background:var(--paper);border-top:1px solid var(--line);box-shadow:var(--shadow-md);flex-direction:column;padding:12px 32px 24px;display:none}.mobile-menu a{color:var(--ink-soft);border-bottom:1px solid var(--line);padding:14px 0;font-size:14.5px;font-weight:500}.mobile-menu a.active{color:var(--green-700);font-weight:600}@media (width<=900px){.nav{grid-template-columns:1fr auto;padding:0 20px}.navlinks,.nav-cta{display:none}.nav-right{justify-self:end;margin-left:auto}.nav-toggle,.mobile-menu.open{display:flex}}.hero-main{background:var(--paper);isolation:isolate;padding:110px 0 90px;position:relative;overflow:hidden}.hero-main-bg{z-index:0;position:absolute;inset:0;overflow:hidden}.hero-main-bg img{object-fit:cover;object-position:center 40%;filter:saturate(.92)contrast(1.04);width:100%;height:100%;animation:18s ease-in-out infinite alternate heroZoom;transform:scale(1.04)}.hero-main-wash{background:linear-gradient(105deg,#fffffff7 0%,#fffffff0 38%,#ffffff8c 58%,#ffffff2e 78%,#0738071f 100%),radial-gradient(700px 420px at 88% -10%,#eef6ef59 0%,#0000 70%);position:absolute;inset:0}@keyframes heroZoom{0%{transform:scale(1.04)}to{transform:scale(1.1)}}.hero-main-grid{z-index:1;grid-template-columns:1.05fr .95fr;align-items:center;gap:64px;display:grid;position:relative}.hero-main-grid-solo{grid-template-columns:minmax(0,640px) 1fr;align-items:center;min-height:62vh}.hero-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--green-700);align-items:center;gap:10px;font-size:12px;font-weight:600;display:inline-flex}.hero-eyebrow:before{content:"";background:var(--green-500);width:7px;height:7px;box-shadow:0 0 0 4px var(--green-tint);border-radius:50%}.hero-main h1{letter-spacing:-.025em;color:var(--ink);margin:22px 0 24px;font-size:clamp(40px,4.6vw,62px);font-weight:800;line-height:1.04}.hero-main h1 em{color:var(--green-700);font-style:normal}.hero-main p.lead{color:var(--ink-soft);max-width:500px;margin-bottom:36px;font-size:17.5px;line-height:1.65}.hero-main-actions{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.hero-main-meta{border-top:1px solid #e3e6e3e6;flex-wrap:wrap;gap:34px;margin-top:52px;padding-top:32px;display:flex}.hero-main-meta div b{letter-spacing:-.02em;color:var(--ink);font-size:24px;font-weight:800;display:block}.hero-main-meta div span{color:var(--ink-soft);font-size:12.5px;font-weight:500}.hero-visual{height:500px;position:relative}.hero-panel{border:1px solid #ffffff8c;border-radius:22px;height:100%;position:relative;overflow:hidden;box-shadow:0 24px 60px #1317142e,inset 0 2px #ffffff59}.hero-panel img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform 1s cubic-bezier(.2,.7,.3,1);display:block;transform:scale(1.02)}.hero-panel:hover img{transform:scale(1.07)}.hero-panel-shade{pointer-events:none;background:linear-gradient(160deg,#0738072e 0%,#07380773 100%),radial-gradient(circle at 70% 20%,#2f8f3333,#0000 55%);position:absolute;inset:0}.hero-lattice{z-index:1;opacity:.92;mix-blend-mode:screen;width:100%;height:100%;animation:7s ease-in-out infinite float;position:absolute;inset:0}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.lattice-node{fill:#9fd4a2;animation:.5s backwards pop}.lattice-node.big{fill:#ffffffeb;stroke:#9fd4a2;stroke-width:2.5px}.lattice-line{stroke:#b8e0bb;stroke-width:1.4px;opacity:.75;stroke-dasharray:340;stroke-dashoffset:340px;animation:1.8s cubic-bezier(.2,.7,.3,1) forwards draw}.lattice-line.d2{animation-delay:.15s}.lattice-line.d3{animation-delay:.3s}.lattice-line.d4{animation-delay:.45s}.lattice-line.d5{animation-delay:.6s}.lattice-line.d6{animation-delay:.75s}.n1{animation-delay:.2s}.n2{animation-delay:.4s}.n3{animation-delay:.55s}.n4{animation-delay:.7s}.n5{animation-delay:.85s}.n6{animation-delay:1s}@keyframes draw{to{stroke-dashoffset:0}}@keyframes pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.pulse-ring{fill:none;stroke:#b8e0bb;stroke-width:1.5px;opacity:0;transform-origin:50%;transform-box:fill-box;animation:3.2s ease-out 2s infinite ring}@keyframes ring{0%{opacity:.5;transform:scale(.4)}to{opacity:0;transform:scale(2.4)}}@media (width<=880px){.hero-main-grid,.hero-main-grid-solo{grid-template-columns:1fr;gap:32px;min-height:0}.hero-visual{order:-1;height:280px}.hero-main{padding:56px 0 60px}.hero-main-wash{background:linear-gradient(#ffffff8c 0%,#ffffffeb 42%,#fffffffa 100%)}}@media (width<=560px){.hero-main-actions{flex-direction:column;align-items:stretch}.hero-main-actions .btn{width:100%}}.page-hero{background:var(--paper);isolation:isolate;border-bottom:1px solid var(--line);padding:110px 0 90px;position:relative;overflow:hidden}.page-hero-bg{z-index:0;position:absolute;inset:0;overflow:hidden}.page-hero-bg img{object-fit:cover;object-position:center 40%;filter:saturate(.92)contrast(1.04);width:100%;height:100%;animation:18s ease-in-out infinite alternate heroZoom;transform:scale(1.04)}.page-hero-wash{background:linear-gradient(105deg,#fffffff7 0%,#fffffff0 38%,#ffffff8c 58%,#ffffff2e 78%,#0738071f 100%),radial-gradient(700px 420px at 88% -10%,#eef6ef59 0%,#0000 70%);position:absolute;inset:0}.page-hero-grid{z-index:1;position:relative}.page-hero h1{letter-spacing:-.025em;color:var(--ink);margin:22px 0 24px;font-size:clamp(40px,4.6vw,62px);font-weight:800;line-height:1.04}.page-hero h1 em{color:var(--green-700);font-style:normal}.page-hero p.lead{color:var(--ink-soft);max-width:500px;font-size:17.5px;line-height:1.65}.page-meta{letter-spacing:2px;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:10px;margin-bottom:18px;font-size:11.5px;font-weight:600;display:flex}.page-meta .sep{color:var(--green-500)}@media (width<=880px){.page-hero{padding:56px 0 60px}.page-hero-wash{background:linear-gradient(#ffffff8c 0%,#ffffffeb 42%,#fffffffa 100%)}}@media (prefers-reduced-motion:reduce){.page-hero-bg img{animation:none}}.btn{white-space:nowrap;border-radius:100px;justify-content:center;align-items:center;gap:9px;padding:15px 28px;font-size:14.5px;font-weight:600;transition:transform .2s,background .2s,color .2s,border-color .2s;display:inline-flex}.btn svg{width:16px;height:16px}.btn-primary{background:var(--green-700);color:#fff}.btn-primary:hover{background:var(--green-950);transform:translateY(-2px)}.btn-outline{color:var(--ink);border:1.5px solid var(--line);background:0 0}.btn-outline:hover{border-color:var(--ink);transform:translateY(-2px)}.link-arrow{letter-spacing:.4px;color:var(--green-700);border-bottom:1px solid #1f7a2a59;align-items:center;gap:8px;margin-top:40px;padding-bottom:4px;font-size:13.5px;font-weight:600;transition:gap .2s;display:inline-flex}.link-arrow:hover{gap:14px}.section{background:var(--paper);padding:104px 0}.section.tight{padding:80px 0}.section.tint{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.label-row{align-items:center;gap:16px;margin-bottom:18px;display:flex}.label-text{letter-spacing:3px;text-transform:uppercase;color:var(--green-700);font-size:12.5px;font-weight:700}h2.title{letter-spacing:-.8px;color:var(--ink);max-width:640px;font-size:clamp(28px,3.4vw,44px);font-weight:800;line-height:1.08}p.lede{max-width:620px;color:var(--ink-soft);margin-top:18px;font-size:16px;line-height:1.75}.intro-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;margin-top:56px;display:grid}.intro-quote{background:var(--green-950);color:#fff;border-radius:2px;padding:44px;font-size:19px;font-weight:500;line-height:1.6;position:relative}.intro-quote:before{content:"\"";color:#ffffff29;font-family:Georgia,serif;font-size:80px;font-weight:900;line-height:1;position:absolute;top:8px;left:20px}.intro-quote p{z-index:1;position:relative}.intro-figure{border:1px solid var(--line);background:var(--paper);margin-top:28px;padding:10px}.intro-figure .media{height:260px}.intro-stats{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:32px;display:grid}.intro-stat{background:var(--paper);padding:26px 22px}.intro-stat b{color:var(--ink);letter-spacing:-1px;font-size:30px;font-weight:800;display:block}.intro-stat span{letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:600}@media (width<=860px){.intro-grid{grid-template-columns:1fr;gap:40px}}.media{background:var(--paper-2);position:relative;overflow:hidden}.media img{object-fit:cover;width:100%;height:100%;display:block}.media .media-fallback{text-align:center;background:var(--paper-2);border:1px solid var(--line);color:var(--ink-soft);letter-spacing:2px;text-transform:uppercase;justify-content:center;align-items:center;padding:16px;font-size:11px;font-weight:700;display:flex;position:absolute;inset:0}.media.framed{border:1px solid var(--line)}.media-caption{letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-soft);margin-top:12px;font-size:11.5px;font-weight:700}.vm-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:56px;display:grid}.vm-card{background:var(--paper);padding:52px 44px;position:relative;overflow:hidden}.vm-mark{color:var(--green-tint);-webkit-user-select:none;user-select:none;font-size:120px;font-weight:900;line-height:1;position:absolute;top:4px;right:22px}.vm-card h3{letter-spacing:2.5px;text-transform:uppercase;color:var(--green-700);margin-bottom:18px;font-size:13px;font-weight:700}.vm-card p{color:var(--ink);z-index:1;max-width:380px;font-size:23px;font-weight:600;line-height:1.4;position:relative}@media (width<=760px){.vm-grid{grid-template-columns:1fr}}.values-row{background:var(--line);border:1px solid var(--line);border-top:none;grid-template-columns:repeat(5,1fr);gap:1px;margin-top:1px;display:grid}.value-item{background:var(--paper);border-top:3px solid var(--green-500);padding:28px 24px 36px}.value-item h4{color:var(--ink);margin-bottom:8px;font-size:14px;font-weight:700}.value-item p{color:var(--ink-soft);font-size:13px;line-height:1.6}@media (width<=900px){.values-row{grid-template-columns:1fr 1fr}}@media (width<=520px){.values-row{grid-template-columns:1fr}}.services-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:56px;display:grid}.service-card{background:var(--paper);flex-direction:column;gap:14px;min-height:220px;padding:0 32px 38px;transition:background .25s;display:flex}.service-card:hover{background:#fbfcfb}.service-card .media{height:160px;margin:0 -32px 6px}.service-card .code{background:var(--green-tint);min-width:42px;height:24px;color:var(--green-700);letter-spacing:1px;border-radius:100px;justify-content:center;align-self:flex-start;align-items:center;padding:0 10px;font-size:11.5px;font-weight:800;display:inline-flex}.service-card h4{color:var(--ink);font-size:17px;font-weight:700}.service-card p{color:var(--ink-soft);font-size:14px;line-height:1.65}@media (width<=900px){.services-grid{grid-template-columns:1fr 1fr}}@media (width<=600px){.services-grid{grid-template-columns:1fr}}.split{grid-template-columns:1fr 1fr;align-items:center;gap:64px;margin-top:56px;display:grid}.split.reverse .split-media{order:-1}.split-media .media{height:380px}.split h3{color:var(--ink);letter-spacing:-.5px;margin-bottom:14px;font-size:25px;font-weight:800}.split p{color:var(--ink-soft);margin-bottom:14px;font-size:15px;line-height:1.75}.split ul{margin-top:20px;list-style:none}.split ul li{color:var(--ink-soft);border-top:1px solid var(--line);padding:10px 0 10px 26px;font-size:14px;position:relative}.split ul li:before{content:"";background:var(--green-500);width:8px;height:8px;position:absolute;top:17px;left:0;transform:rotate(45deg)}@media (width<=860px){.split{grid-template-columns:1fr;gap:36px}.split.reverse .split-media{order:0}}.why-list{flex-direction:column;margin-top:48px;display:flex}.why-item{border-top:1px solid var(--line);grid-template-columns:120px 1fr;gap:32px;padding:30px 0;display:grid}.why-list .why-item:last-child{border-bottom:1px solid var(--line)}.why-num{color:var(--green-700);letter-spacing:1px;font-size:15px;font-weight:800}.why-item h4{color:var(--ink);margin-bottom:8px;font-size:19px;font-weight:700}.why-item p{color:var(--ink-soft);max-width:680px;font-size:14.5px;line-height:1.7}@media (width<=640px){.why-item{grid-template-columns:1fr;gap:8px}}.team-grid{grid-template-columns:1fr;gap:28px;margin-top:56px;display:grid}.team-card{background:var(--paper);border:1px solid var(--line);grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:stretch;display:grid;overflow:hidden}.team-card .media{background:var(--paper-2);align-self:stretch;height:auto;min-height:360px}.team-card .media img{object-fit:contain;object-position:center center;width:100%;height:100%}.team-card-placeholder .media{background:#eef2ee;place-items:center;display:grid}.team-card-placeholder .media img{object-fit:contain;object-position:center;width:42%;height:auto;max-height:180px;transform:none}.team-card-placeholder:hover .media img{transform:none}.team-card .body{flex-direction:column;justify-content:center;padding:36px 40px 40px;display:flex}.team-card h3{color:var(--ink);letter-spacing:-.02em;font-size:24px;font-weight:800}.team-card .role{letter-spacing:2px;text-transform:uppercase;color:var(--green-700);margin:8px 0 16px;font-size:12px;font-weight:700}.team-card p{color:var(--ink-soft);margin-bottom:12px;font-size:14.5px;line-height:1.75}.team-card p:last-child{margin-bottom:0}.team-card .creds{color:var(--ink-soft);border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:18px;font-size:12.5px;font-weight:600}@media (width<=820px){.team-card{grid-template-columns:1fr}.team-card .media{aspect-ratio:4/5;min-height:0;max-height:420px}.team-card .body{padding:28px 26px 32px}.team-card h3{font-size:21px}}.clients-strip{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0}.clients-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-top:32px;display:flex}.client-logo{opacity:.72;justify-content:center;align-items:center;height:52px;transition:opacity .2s;display:inline-flex}.client-logo img{object-fit:contain;filter:grayscale(.15);width:auto;max-width:140px;height:44px;display:block}.client-logo:hover{opacity:1}.tech-showcase{grid-template-columns:2fr 1fr;gap:16px;margin-top:56px;display:grid}.tech-showcase .media{height:300px}.tech-showcase .lead-shot .media{height:616px}.tech-showcase .stack{gap:16px;display:grid}@media (width<=860px){.tech-showcase{grid-template-columns:1fr}.tech-showcase .lead-shot .media{height:280px}}.device-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:48px;display:grid}.device-tile{background:var(--paper);flex-direction:column;gap:12px;padding:0 0 30px;transition:background .25s;display:flex}.device-tile:hover{background:#fbfcfb}.device-tile .media{height:170px}.device-tile h4{color:var(--ink);padding:0 24px;font-size:15px;font-weight:700}.device-tile p{color:var(--ink-soft);padding:0 24px;font-size:13px;line-height:1.6}@media (width<=900px){.device-grid{grid-template-columns:1fr 1fr}}@media (width<=560px){.device-grid{grid-template-columns:1fr}}.stack-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:48px;display:grid}.stack-item{background:var(--paper);border-top:3px solid var(--green-500);padding:34px 30px}.stack-item h4{letter-spacing:2px;text-transform:uppercase;color:var(--green-700);margin-bottom:12px;font-size:13px;font-weight:700}.stack-item p{color:var(--ink-soft);font-size:14px;line-height:1.7}@media (width<=860px){.stack-grid{grid-template-columns:1fr}}.gallery{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:56px;display:grid}.gallery .media{height:200px}.gallery .tall{grid-row:span 2}.gallery .tall .media{height:416px}@media (width<=900px){.gallery{grid-template-columns:1fr 1fr}.gallery .tall .media{height:200px}.gallery .tall{grid-row:span 1}}.cta-band{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0}.cta-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px;display:flex}.cta-band h3{letter-spacing:-.6px;max-width:620px;color:var(--ink);font-size:clamp(22px,2.8vw,32px);font-weight:800;line-height:1.2}.contact-grid{grid-template-columns:1.1fr 1fr;gap:64px;margin-top:56px;display:grid}.office{border-top:1px solid var(--line);padding:28px 0}.office:last-of-type{border-bottom:1px solid var(--line)}.office h4{letter-spacing:2.5px;text-transform:uppercase;color:var(--green-700);margin-bottom:12px;font-size:12.5px;font-weight:700}.office p{color:var(--ink-soft);font-size:15px;line-height:1.7}.office .phone{color:var(--ink);margin-bottom:6px;font-size:19px;font-weight:700;display:block}.contact-form{background:var(--paper-2);border:1px solid var(--line);padding:40px}.contact-form label{letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;font-size:11px;font-weight:700;display:block}.contact-form input,.contact-form textarea,.contact-form select{border:none;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;outline:none;margin-bottom:26px;padding:10px 0;font-family:Montserrat,sans-serif;font-size:15px}.contact-form textarea{resize:none;height:70px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#a4aca5}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-bottom-color:var(--green-500)}.form-note{color:var(--green-700);margin-top:16px;font-size:12.5px;font-weight:600}.map-embed{border:1px solid var(--line);height:260px;margin-top:32px;overflow:hidden}@media (width<=860px){.contact-grid{grid-template-columns:1fr}}footer.site-footer{color:#ffffff8c;background:#073807;padding:56px 0 28px;font-size:12.5px}.footer-top{border-bottom:1px solid var(--line-dark);grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;display:grid}footer.site-footer .footer-brand{align-items:center;margin-bottom:16px;display:inline-flex}footer.site-footer .footer-logo{object-fit:contain;width:auto;max-width:220px;height:52px}footer.site-footer .blurb{max-width:280px;font-size:13px;line-height:1.7}footer.site-footer h5{letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:16px;font-size:11.5px;font-weight:700}footer.site-footer ul{list-style:none}footer.site-footer ul li{margin-bottom:10px}footer.site-footer ul li a{font-size:13px;transition:color .2s}footer.site-footer ul li a:hover{color:#fff}.footer-bottom{flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;display:flex}@media (width<=860px){.footer-top{grid-template-columns:1fr 1fr;row-gap:32px}}@media (width<=520px){.footer-top{grid-template-columns:1fr}}.notfound{background:var(--paper);padding:140px 0 160px}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(18px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}*{animation-duration:.01ms!important;animation-iteration-count:1!important}}.scroll-progress{background:linear-gradient(90deg, var(--green-500), var(--green-700));z-index:200;pointer-events:none;height:3px;transition:width .1s linear;position:fixed;top:0;left:0}header.site-header{transition:box-shadow .3s,background .3s}header.site-header.scrolled{background:#fffffff2;box-shadow:0 8px 30px #13171412}.nav{transition:height .3s}header.site-header.scrolled .nav{height:68px}.page-transition{animation:.5s both pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.stagger>*{opacity:0}.reveal.in .stagger>*{animation:.65s cubic-bezier(.2,.7,.3,1) both fadeUp}.hero-anim>*{animation:.85s cubic-bezier(.2,.7,.3,1) both fadeUp}.hero-main{position:relative}@media (prefers-reduced-motion:reduce){.hero-main-bg img,.hero-lattice{animation:none}}.media img{transition:transform .9s cubic-bezier(.2,.7,.3,1)}.service-card:hover .media img,.device-tile:hover .media img,.gallery .media:hover img,.split-media .media:hover img,.tech-showcase .media:hover img,.intro-figure:hover .media img,.map-embed:hover .media img{transform:scale(1.07)}.service-card,.device-tile{transition:background .25s,transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s;position:relative}.service-card:before,.device-tile:before{content:"";background:var(--green-500);transform-origin:0;z-index:3;height:3px;transition:transform .4s cubic-bezier(.2,.7,.3,1);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.service-card:hover:before,.device-tile:hover:before{transform:scaleX(1)}.service-card:hover,.device-tile:hover{z-index:2;transform:translateY(-4px);box-shadow:0 20px 42px #13171417}.service-card .code{transition:background .25s,color .25s}.service-card:hover .code{background:var(--green-700);color:#fff}.team-card,.gallery .media,.tech-showcase .media,.intro-figure{transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s}.team-card:hover,.gallery .media:hover,.tech-showcase .media:hover,.intro-figure:hover{transform:translateY(-4px);box-shadow:0 22px 44px #13171417}.value-item{transition:background .25s,border-color .25s}.value-item:hover{background:var(--green-tint)}.stack-item{transition:background .25s,transform .35s}.stack-item:hover{background:#fbfcfb;transform:translateY(-3px)}.why-item{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;transition:background .25s}.why-item:hover{background:var(--paper-2)}.why-item h4{transition:color .2s}.why-item:hover h4{color:var(--green-700)}.why-num{transition:transform .3s;display:inline-block}.why-item:hover .why-num{transform:translate(4px)}@keyframes ringOut{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.btn-primary{box-shadow:0 6px 18px #1f7a2a38}.btn-primary:hover{box-shadow:0 14px 30px #1f7a2a47}.btn svg{transition:transform .25s}.btn:hover svg{transform:translate(4px)}.nav-cta{transition:transform .2s,background .2s,box-shadow .2s;box-shadow:0 6px 18px #1f7a2a33}.nav-cta:hover{box-shadow:0 12px 26px #1f7a2a42}.marquee{margin-top:34px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.marquee-track{align-items:center;gap:72px;width:max-content;animation:30s linear infinite marquee;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee .client-logo{white-space:nowrap;flex-shrink:0}.intro-quote{overflow:hidden}.intro-quote:after{content:"";border:1px solid #ffffff1f;border-radius:50%;width:190px;height:190px;position:absolute;bottom:-60px;right:-60px}.cta-band{position:relative;overflow:hidden}.cta-band:after{content:"";pointer-events:none;background:radial-gradient(circle,#2f8f331a,#0000 70%);border-radius:50%;width:380px;height:380px;position:absolute;top:-120px;right:-80px}.link-arrow{transition:gap .2s,color .2s,border-color .2s}.link-arrow:hover{color:var(--green-950);border-color:var(--green-700)}.client-logo{transition:opacity .25s,transform .25s}.client-logo:hover{transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.stagger>*,.hero-anim>*{opacity:1!important;animation:none!important}.marquee-track,.page-transition{animation:none!important}}.reveal.in .stagger>:first-child{animation-delay:60ms}.reveal.in .stagger>:nth-child(2){animation-delay:.12s}.reveal.in .stagger>:nth-child(3){animation-delay:.18s}.reveal.in .stagger>:nth-child(4){animation-delay:.24s}.reveal.in .stagger>:nth-child(5){animation-delay:.3s}.reveal.in .stagger>:nth-child(6){animation-delay:.36s}.reveal.in .stagger>:nth-child(7){animation-delay:.42s}.reveal.in .stagger>:nth-child(8){animation-delay:.48s}.reveal.in .stagger>:nth-child(9){animation-delay:.54s}.reveal.in .stagger>:nth-child(10){animation-delay:.6s}.reveal.in .stagger>:nth-child(11){animation-delay:.66s}.reveal.in .stagger>:nth-child(12){animation-delay:.72s}.reveal.in .stagger>:nth-child(13){animation-delay:.78s}.reveal.in .stagger>:nth-child(14){animation-delay:.84s}.reveal.in .stagger>:nth-child(15){animation-delay:.9s}.reveal.in .stagger>:nth-child(16){animation-delay:.96s}.hero-anim>:first-child{animation-delay:90ms}.hero-anim>:nth-child(2){animation-delay:.18s}.hero-anim>:nth-child(3){animation-delay:.27s}.hero-anim>:nth-child(4){animation-delay:.36s}.hero-anim>:nth-child(5){animation-delay:.45s}.locations-tabs{border-bottom:1px solid var(--line);gap:6px;margin-top:40px;display:flex}.locations-tab{color:var(--ink-soft);align-items:center;gap:10px;padding:14px 24px;font-size:13.5px;font-weight:600;transition:color .2s;display:inline-flex;position:relative}.locations-tab .dot{background:var(--line);border-radius:50%;width:7px;height:7px;transition:background .25s,box-shadow .25s}.locations-tab:hover,.locations-tab.active{color:var(--ink)}.locations-tab.active .dot{background:var(--green-500);box-shadow:0 0 0 4px var(--green-tint)}.locations-tab:after{content:"";background:var(--green-500);height:2px;transition:transform .3s cubic-bezier(.2,.7,.3,1);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.locations-tab.active:after{transform:scaleX(1)}.locations-grid{border:1px solid var(--line);background:var(--paper);border-top:none;grid-template-columns:1.75fr 1fr;animation:.45s both pageIn;display:grid}.map-frame{background:var(--paper-2);min-height:440px;position:relative}.map-frame iframe{border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.location-detail{border-left:1px solid var(--line);flex-direction:column;align-items:flex-start;padding:40px 34px;display:flex}.location-kicker{letter-spacing:2.5px;text-transform:uppercase;color:var(--green-700);font-size:11.5px;font-weight:700}.location-detail h3{letter-spacing:-.6px;color:var(--ink);margin:10px 0 16px;font-size:25px;font-weight:800}.location-address{color:var(--ink-soft);font-size:14.5px;line-height:1.75}.location-contact{width:100%;margin:26px 0 30px}.location-contact>div{border-top:1px solid var(--line);padding:14px 0}.location-contact>div:last-child{border-bottom:1px solid var(--line)}.location-contact dt{letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:5px;font-size:11px;font-weight:700}.location-contact dd{color:var(--ink);font-size:15px;font-weight:600}.location-contact dd a{transition:color .2s}.location-contact dd a:hover{color:var(--green-700)}@media (width<=860px){.locations-grid{grid-template-columns:1fr}.location-detail{border-left:none;border-top:1px solid var(--line);padding:32px 26px}.map-frame{min-height:320px}.locations-tab{padding:14px 16px}}header.site-header{background:var(--paper);padding:0;transition:padding .35s cubic-bezier(.2,.7,.3,1),background .35s,border-color .35s,box-shadow .35s}.nav{border:1px solid #0000;border-radius:0;transition:height .35s cubic-bezier(.2,.7,.3,1),max-width .35s cubic-bezier(.2,.7,.3,1),padding .35s cubic-bezier(.2,.7,.3,1),background .35s,border-color .35s,border-radius .35s,box-shadow .35s}header.site-header.scrolled{box-shadow:none;background:0 0;border-bottom-color:#0000;padding:10px 0}header.site-header.scrolled .nav{height:60px;max-width:calc(var(--maxw) - 48px);-webkit-backdrop-filter:blur(20px)saturate(190%);backdrop-filter:blur(20px)saturate(190%);background:#ffffff8c;border-color:#ffffffbf;border-radius:100px;padding:0 14px 0 26px;box-shadow:inset 0 1px #ffffffb3,0 12px 34px #1317141f}header.site-header.scrolled .nav-cta{padding:10px 20px}header.site-header.scrolled .mobile-menu{-webkit-backdrop-filter:blur(20px)saturate(190%);backdrop-filter:blur(20px)saturate(190%);background:#ffffffbf;border:1px solid #ffffffbf;border-radius:20px;margin:10px 24px 0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){header.site-header.scrolled .nav{background:#fffffff5}}@media (width<=900px){header.site-header.scrolled .nav{max-width:calc(100% - 32px);padding:0 12px 0 20px}}.label-row{gap:14px}.label-mark{background:linear-gradient(90deg, var(--green-700), var(--green-300));transform-origin:0;flex-shrink:0;width:38px;height:2px;display:inline-block;position:relative}.label-mark:before{content:"";background:var(--green-700);width:7px;height:7px;position:absolute;top:50%;right:-4px;transform:translateY(-50%)rotate(45deg)}.reveal.in .label-mark{animation:.75s cubic-bezier(.2,.7,.3,1) both growLine}@keyframes growLine{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.why-marker{background:var(--green-500);width:10px;height:10px;margin-top:8px;transition:transform .35s cubic-bezier(.2,.7,.3,1),background .25s;transform:rotate(45deg)}.why-item:hover .why-marker{background:var(--green-700);transform:rotate(135deg)scale(1.15)}.why-item{grid-template-columns:60px 1fr}@media (width<=640px){.why-item{grid-template-columns:1fr}}.testimonial{border:1px solid var(--line);background:var(--paper);margin-top:48px}.testimonial-card{padding:52px 56px 44px;animation:.55s cubic-bezier(.2,.7,.3,1) both quoteIn;position:relative}@keyframes quoteIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.quote-mark{width:46px;height:34px;fill:var(--green-tint);margin-bottom:22px}.testimonial blockquote{letter-spacing:-.4px;color:var(--ink);max-width:860px;font-size:clamp(19px,2.1vw,26px);font-weight:600;line-height:1.5}.testimonial figcaption{border-top:1px solid var(--line);align-items:center;gap:16px;margin-top:34px;padding-top:28px;display:flex}.testimonial-avatar{border-radius:50%;flex-shrink:0;width:54px;height:54px}.testimonial-avatar .media-fallback{border-radius:50%;font-size:0}.testimonial figcaption b{color:var(--ink);font-size:15px;font-weight:700;display:block}.testimonial figcaption span{color:var(--ink-soft);font-size:13px;font-weight:500}.testimonial-controls{border-top:1px solid var(--line);background:var(--paper-2);justify-content:space-between;align-items:center;gap:20px;padding:18px 56px 20px;display:flex}.testimonial-dots{gap:10px;display:flex}.testimonial-dots .dot{background:var(--line);border-radius:100px;width:28px;height:4px;transition:background .3s,width .3s}.testimonial-dots .dot:hover{background:var(--green-300)}.testimonial-dots .dot.active{background:var(--green-500);width:44px}.testimonial-arrows{gap:10px;display:flex}.testimonial-arrows button{border:1px solid var(--line);background:var(--paper);width:42px;height:42px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;transition:background .25s,color .25s,border-color .25s,transform .25s;display:flex}.testimonial-arrows button svg{width:17px;height:17px}.testimonial-arrows button:hover{background:var(--green-700);border-color:var(--green-700);color:#fff;transform:translateY(-2px)}@media (width<=700px){.testimonial-card{padding:36px 26px 30px}.testimonial-controls{padding:16px 26px}.testimonial-arrows button{width:38px;height:38px}}a.service-card{color:inherit;cursor:pointer;text-decoration:none}.service-more{color:var(--green-700);letter-spacing:.2px;align-items:center;gap:8px;margin-top:auto;padding-top:6px;font-size:13px;font-weight:700;display:inline-flex}.service-more svg{width:14px;height:14px;transition:transform .25s}a.service-card:hover .service-more svg{transform:translate(4px)}a.service-card:focus-visible{outline:2px solid var(--green-500);outline-offset:-2px}.service-detail-grid{grid-template-columns:1.4fr .85fr;align-items:start;gap:56px;display:grid}.service-detail-heading{letter-spacing:-.5px;color:var(--ink);margin:8px 0 28px;font-size:24px;font-weight:800}.service-process{margin-top:56px}.process-steps{flex-direction:column;gap:0;list-style:none;display:flex}.process-steps li{border-top:1px solid var(--line);grid-template-columns:56px 1fr;gap:18px;padding:24px 0;display:grid}.process-steps li:last-child{border-bottom:1px solid var(--line)}.process-mark{letter-spacing:1px;color:var(--green-700);padding-top:4px;font-size:13px;font-weight:800}.process-steps h4{color:var(--ink);margin-bottom:6px;font-size:17px;font-weight:700}.process-steps p{color:var(--ink-soft);font-size:14.5px;line-height:1.7}.service-side{flex-direction:column;gap:16px;display:flex;position:sticky;top:100px}.service-side-card{border:1px solid var(--line);background:var(--paper);padding:28px 26px}.service-side-card h3{letter-spacing:2px;text-transform:uppercase;color:var(--green-700);margin-bottom:16px;font-size:12px;font-weight:700}.service-side-card ul{list-style:none}.service-side-card li{border-top:1px solid var(--line);color:var(--ink-soft);padding:10px 0 10px 20px;font-size:14px;line-height:1.55;position:relative}.service-side-card li:last-child{border-bottom:1px solid var(--line)}.service-side-card li:before{content:"";background:var(--green-500);width:7px;height:7px;position:absolute;top:16px;left:0;transform:rotate(45deg)}.service-side-card.accent{background:var(--paper-2);border-top:3px solid var(--green-500)}.service-side-card.accent p{color:var(--ink-soft);margin-bottom:20px;font-size:14.5px;line-height:1.65}@media (width<=900px){.service-detail-grid{grid-template-columns:1fr;gap:40px}.service-side{position:static}}.page-meta a{color:inherit;transition:color .2s}.page-meta a:hover{color:var(--green-700)}.solution-card-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.solution-cat{letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:700}.project-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:48px;display:grid}.project-tile{background:var(--paper);flex-direction:column;transition:background .25s,transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s;display:flex}.project-tile:hover{z-index:2;background:#fbfcfb;transform:translateY(-4px);box-shadow:0 20px 42px #13171417}.project-tile .media{height:180px}.project-tile:hover .media img{transform:scale(1.07)}.project-tile-body{flex-direction:column;gap:12px;padding:26px 28px 32px;display:flex}.project-tile h4{color:var(--ink);font-size:17px;font-weight:700}.project-tile p{color:var(--ink-soft);font-size:14px;line-height:1.65}.project-tile ul{margin-top:6px;list-style:none}.project-tile li{border-top:1px solid var(--line);color:var(--ink-soft);padding:8px 0 8px 18px;font-size:13px;line-height:1.55;position:relative}.project-tile li:last-child{border-bottom:1px solid var(--line)}.project-tile li:before{content:"";background:var(--green-500);width:6px;height:6px;position:absolute;top:14px;left:0;transform:rotate(45deg)}.feature-list{margin-top:8px;list-style:none}.feature-list li{border-top:1px solid var(--line);color:var(--ink-soft);padding:14px 0 14px 22px;font-size:15px;line-height:1.6;position:relative}.feature-list li:last-child{border-bottom:1px solid var(--line)}.feature-list li:before{content:"";background:var(--green-500);width:8px;height:8px;position:absolute;top:20px;left:0;transform:rotate(45deg)}@media (width<=900px){.project-grid{grid-template-columns:1fr 1fr}}@media (width<=600px){.project-grid{grid-template-columns:1fr}}
