section{position:relative}.sec-head{gap:24px;display:grid}.sec-head--split{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:24px 48px}.sec-head--split>div{justify-items:start;gap:28px;display:grid}.w{display:inline-block}.hero{padding-top:calc(var(--nav-space) + clamp(16px, 4vw, 56px))}.hero-particles{pointer-events:none;width:100%;height:100svh;position:absolute;top:0;left:0}.ground{z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero-head{justify-items:start;display:grid;position:relative}.hero-pill{margin-bottom:clamp(24px,3vw,36px)}.hero-title{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(2.75rem,.9rem + 6vw,7rem);font-weight:650;line-height:.98}.hero-title .accent{color:#b9bebd;display:block}.hero-row{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:28px 24px;width:100%;margin-top:clamp(28px,3.2vw,44px);display:grid}.hero-lead{max-width:48ch;color:var(--ink-2);letter-spacing:-.015em;text-wrap:pretty;grid-column:1/span 6;font-size:clamp(1.0625rem,1rem + .35vw,1.3125rem);line-height:1.5}.hero-ctas{flex-wrap:wrap;grid-column:8/-1;justify-self:end;gap:10px;display:flex}.hero-stage{height:100svh;margin-top:clamp(48px,6vw,88px);position:relative}.hero-frame{clip-path:inset(0 var(--side) 0 var(--side) round var(--r-card));position:absolute;inset:0;overflow:hidden}.hero-layer{aspect-ratio:auto;position:absolute;inset:0}.hero-massing{clip-path:inset(0 0 0 50%)}.hero-layer[data-ph]:after{top:var(--nav-space);bottom:auto;left:calc(var(--side) + 20px);max-width:34%}.hero-massing[data-ph]:after{right:calc(var(--side) + 20px);left:auto}.hero-scan{background:var(--accent-ink);width:2px;box-shadow:0 0 0 1px rgb(var(--accent-rgb) / .4), 0 0 24px 4px rgb(var(--accent-rgb) / .4);margin-left:-1px;position:absolute;top:0;bottom:0;left:50%}.hero-hud{right:calc(var(--side) + 20px);bottom:24px;left:calc(var(--side) + 20px);justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute}.hero-built{font-variant-numeric:tabular-nums;gap:4px}.hero-built [data-built]{text-align:right;min-width:3ch}.js:not(.no-motion) .hero-head>*{opacity:0;animation:.6s 2.5s forwards hero-fallback}@keyframes hero-fallback{to{opacity:1}}.clients{padding-top:clamp(72px,9vw,128px)}.clients-title{padding-inline:var(--gutter);color:var(--ink-3);text-align:center;margin-bottom:28px;font-size:15px;font-weight:450}.marquee{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.marquee-track{flex:none;gap:14px;padding-right:14px;animation:48s linear infinite marquee;display:flex}@media (hover:hover) and (pointer:fine){.marquee:hover .marquee-track{animation-play-state:paused}}@keyframes marquee{to{transform:translate(-100%)}}.logo-slot{border:1px dashed var(--line-2);border-radius:var(--r-media);width:196px;height:84px;color:var(--ink-3);flex:none;place-items:center;font-size:13px;display:grid}@media (prefers-reduced-motion:reduce){.marquee{justify-content:center;-webkit-mask-image:none;mask-image:none}.marquee-track{padding-inline:var(--gutter);flex-wrap:wrap;justify-content:center;animation:none}.marquee-track[aria-hidden]{display:none}}.eco{padding-top:var(--sec)}.eco-intro{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px clamp(32px,5vw,96px);padding-bottom:clamp(64px,8vw,120px);display:grid}.eco-intro .pill{justify-self:start}.eco-intro .h2{grid-row:2}.statement{letter-spacing:-.035em;text-wrap:pretty;grid-area:1/2/span 2;align-self:end;font-size:clamp(1.625rem,1rem + 1.9vw,2.875rem);font-weight:300;line-height:1.18}.stack{--stack-top:calc(var(--nav-space) - 6px);--stack-step:18px;gap:32px;display:grid}.stack-anchor{height:0;scroll-margin-top:calc(var(--stack-top) + var(--i) * var(--stack-step));margin-bottom:-32px;display:block}.stack-card{top:calc(var(--stack-top) + var(--i) * var(--stack-step));height:min(calc(100svh - var(--stack-top) - 96px), 720px);min-height:560px;position:sticky}.stack-inner{border-radius:var(--r-card);background:radial-gradient(70% 60% at 0% 0%, rgb(var(--accent-rgb) / .1), transparent 62%), var(--night);height:100%;color:var(--night-ink);outline:1px solid var(--edge);outline-offset:-1px;transform-origin:50% 0;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,3vw,48px);padding:14px 14px 14px clamp(24px,3.4vw,52px);display:grid;position:relative;box-shadow:0 40px 80px -40px #000000b3}.stack-inner:after{content:"";border-radius:inherit;opacity:var(--shade,0);pointer-events:none;background:#000;position:absolute;inset:0}.stack-copy{flex-direction:column;align-items:flex-start;min-height:0;padding-block:clamp(14px,2.2vw,34px);display:flex}.stack-meta{color:var(--night-ink-2);align-items:center;gap:12px;display:flex}.stack-name{color:var(--night-ink);letter-spacing:-.02em;font-size:16px;font-weight:500}.stack-meta .chip{margin-left:4px}.stack-title{letter-spacing:-.03em;text-wrap:balance;margin-top:clamp(20px,2.6vw,36px);font-size:clamp(1.75rem,1rem + 1.75vw,3rem);font-weight:650;line-height:1.04}.stack-body{max-width:44ch;color:var(--night-ink-2);margin-top:18px;font-size:16.5px;line-height:1.55}.chips{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.chips li{border:1px solid var(--night-line);height:32px;color:var(--night-ink);border-radius:999px;align-items:center;padding:0 13px;font-size:13.5px;display:inline-flex}.stack-copy .btn{margin-top:auto}.stack-copy .chips{margin-bottom:28px}.stack-media{aspect-ratio:auto;border-radius:var(--r-media);height:100%}.eco-foot{color:var(--ink-2);letter-spacing:-.015em;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 24px;padding-top:clamp(56px,7vw,96px);font-size:18px;display:flex}.ind{padding-top:var(--sec)}.ind-pin{isolation:isolate;min-height:100svh;padding-top:calc(var(--nav-space) - 24px);flex-direction:column;justify-content:center;gap:36px;display:flex;position:relative;overflow-x:auto}.js:not(.no-motion) .ind-pin{overflow:hidden}.ind-rail{width:max-content;padding-inline:var(--side);will-change:transform;align-items:stretch;gap:20px;display:flex}.ind-intro{flex-direction:column;flex:none;justify-content:flex-end;align-items:flex-start;gap:24px;width:min(460px,36vw);padding-right:clamp(16px,3vw,56px);display:flex}.ind-intro .h2{font-size:clamp(2rem,1rem + 2.3vw,3.25rem)}.ind-track{gap:20px;display:flex}.ind-card{--card-w:clamp(272px, 23vw, 344px);width:var(--card-w);flex-direction:column;flex:none;gap:10px;display:flex}.ind-card .ph{height:min(calc(var(--card-w) * 1.22), 50svh);aspect-ratio:auto;border-radius:var(--r-media);margin-bottom:10px}.ind-card .mono{color:var(--ink-3)}.ind-card p:last-child{color:var(--ink-2);font-size:15.5px;line-height:1.55}.ind-progress{height:2px}.ind-progress span{background:var(--accent);transform-origin:0;border-radius:2px;height:100%;display:block;transform:scaleX(0)}.svc{padding-top:var(--sec)}.bento{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin-top:clamp(48px,6vw,80px);display:grid}.cell{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);flex-direction:column;padding:10px;display:flex;position:relative;overflow:hidden}.cell-media{border-radius:var(--r-media);aspect-ratio:16/10;transition:transform .9s var(--ease-out)}.cell-copy{align-content:start;gap:8px;padding:20px 14px 14px;display:grid}.cell-copy p{color:var(--ink-2);font-size:15.5px;line-height:1.55}@media (hover:hover) and (pointer:fine){.cell:hover .cell-media{transform:scale(1.025)}}#service-rendering{grid-area:span 2/1/auto/span 7}#service-animation,#service-360{grid-column:8/-1}#service-xr{grid-column:1/span 4}#service-capture{grid-column:5/span 4}#service-custom{grid-column:9/-1}.cell--hero{color:#f4f5f7;border:0;justify-content:flex-end;min-height:560px;padding:0}.cell--hero .cell-media{aspect-ratio:auto;border-radius:0;position:absolute;inset:0}.cell--hero .cell-media[data-ph]:after{top:16px;bottom:auto}.cell--hero .cell-copy{background:linear-gradient(#0000,#07080ab8);padding:120px 32px 32px;position:relative}.cell--hero .h3{letter-spacing:-.02em;font-size:clamp(1.5rem,1.1rem + 1vw,2.125rem)}.cell--hero .cell-copy p{color:#f4f5f7c7;max-width:46ch}.cell--row{flex-direction:row;align-items:stretch}.cell--row .cell-media{aspect-ratio:auto;flex:none;width:44%}.cell--row .cell-copy{align-content:center;padding:16px 20px}.cell--accent{background:radial-gradient(90% 70% at 100% 0%, #ffffff47, transparent 60%), linear-gradient(160deg, var(--accent), #2f9a4a);color:var(--accent-ink);border:0;gap:0;padding:clamp(24px,2.4vw,32px)}.cell--accent .mono{color:#0d1011b3}.cell-title{letter-spacing:-.025em;margin-top:14px;font-size:clamp(1.5rem,1.1rem + .9vw,2rem);font-weight:650;line-height:1.08}.cell-list{margin-top:auto;padding-top:24px;display:grid}.cell-list li{color:#0d1011c7;border-top:1px solid #0d10112e;padding-block:12px;font-size:14.5px;line-height:1.45}.cell-list strong{color:var(--accent-ink);margin-bottom:2px;font-size:16px;font-weight:650;display:block}.process{padding-top:var(--sec)}.process-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 24px;display:grid}.process-head{top:var(--nav-space);grid-column:1/span 5;align-self:start;justify-items:start;gap:24px;display:grid;position:sticky}.steps{grid-column:7/-1;gap:16px;padding-left:44px;display:grid;position:relative}.steps-rail{background:var(--line);border-radius:2px;width:2px;position:absolute;top:40px;bottom:40px;left:11px}.steps-rail span{border-radius:inherit;background:var(--accent);transform-origin:50% 0;position:absolute;inset:0}.step{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);gap:10px;padding:clamp(24px,2.6vw,36px);display:grid;position:relative}.step:before{content:"";border:2px solid var(--line-2);background:var(--bg);border-radius:999px;width:16px;height:16px;transition:background-color .3s,border-color .3s;position:absolute;top:38px;left:-40px}.step.is-on:before{border-color:var(--accent);background:var(--accent)}.step-num{color:var(--accent-text)}.step p{max-width:52ch;color:var(--ink-2);font-size:16px;line-height:1.6}.tech{isolation:isolate;border-radius:var(--r-card);outline:1px solid var(--edge);outline-offset:-1px;background:var(--night);color:var(--night-ink);grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:40px clamp(32px,4vw,64px);margin-top:clamp(80px,9vw,136px);padding:clamp(28px,4vw,56px);display:grid;position:relative;overflow:hidden}.tech:before{content:"";z-index:-1;background:radial-gradient(520px circle at var(--mx,85%) var(--my,0%), rgb(var(--accent-rgb) / .16), transparent 62%);transition:opacity .4s;position:absolute;inset:0}.tech-head{align-content:start;gap:16px;display:grid}.tech-title{letter-spacing:-.03em;font-size:clamp(1.75rem,1.1rem + 1.6vw,2.75rem);font-weight:650;line-height:1.04}.tech-head p{max-width:34ch;color:var(--night-ink-2)}.tech-grid{border-radius:var(--r-media);background:var(--night-line);grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.tech-grid li{background:#141718db;align-content:start;gap:8px;padding:clamp(20px,2vw,28px);display:grid}.tech-grid strong{letter-spacing:-.02em;margin-top:12px;font-size:17px;font-weight:500}.tech-grid span:last-child{color:var(--night-ink-2);font-size:14.5px;line-height:1.5}.tech-ico{background:var(--night-3);width:40px;height:40px;color:var(--accent);border-radius:999px;place-items:center;display:grid}.tech-ico .i{width:20px;height:20px}.work{padding-top:var(--sec)}.anchor-alias{scroll-margin-top:var(--nav-space);position:absolute;top:0}.work-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(40px,4vw,56px) 24px;margin-top:clamp(48px,6vw,80px);display:grid}.proj{grid-column:8/-1}.proj--lead{grid-area:span 2/1/auto/span 7}.proj-link{gap:20px;display:grid}.proj--lead .proj-link{grid-template-rows:minmax(0,1fr) auto;height:100%}.proj--lead .proj-media{aspect-ratio:auto;height:100%;min-height:0}.proj-media{border-radius:var(--r-card)}.proj-copy{justify-items:start;gap:8px;display:grid}.proj-copy p:last-child{max-width:46ch;font-size:15.5px}.quotes{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);grid-template-columns:auto minmax(0,1fr);gap:28px clamp(24px,3vw,48px);margin-top:clamp(72px,8vw,120px);padding:clamp(28px,4vw,56px);display:grid}.quotes-mark{background:var(--accent);width:64px;height:64px;color:var(--accent-ink);border-radius:999px;place-items:center;display:grid}.quotes-mark .i{width:28px;height:28px}.quotes-slides{display:grid}.quote{opacity:0;visibility:hidden;filter:blur(4px);grid-area:1/1;align-content:start;gap:28px;transition:opacity .4s,filter .4s,visibility 0s linear .4s;display:grid}.quote.is-active{opacity:1;visibility:visible;filter:none;transition:opacity .4s,filter .4s,visibility}.quote blockquote{letter-spacing:-.035em;text-wrap:balance;max-width:30ch;font-size:clamp(1.5rem,1rem + 1.6vw,2.5rem);font-weight:300;line-height:1.2}.quote figcaption{align-items:center;gap:12px;font-size:15px;display:flex}.quote-avatar{background:var(--surface-2);border-radius:999px;width:40px;height:40px}.quotes-ctrl{grid-column:2;align-items:center;gap:8px;display:flex}.quotes-tabs{gap:6px;margin-right:auto;display:flex}.q-tab{width:28px;height:24px;position:relative}.q-tab:before{content:"";background:var(--line-2);border-radius:2px;height:2px;transition:background-color .2s;position:absolute;top:50%;left:0;right:0}.q-tab[aria-selected=true]:before{background:var(--accent)}.round-btn{border:1px solid var(--line-2);width:48px;height:48px;transition:border-color .2s ease, background-color .2s ease, transform .16s var(--ease-out);border-radius:999px;place-items:center;display:grid}.round-btn:active{transform:scale(.95)}.round-btn .i{width:18px;height:18px}@media (hover:hover) and (pointer:fine){.round-btn:hover{border-color:var(--ink)}}.contact{padding-top:var(--sec);padding-bottom:clamp(56px,7vw,96px)}.contact-card{isolation:isolate;border-radius:calc(var(--r-card) + 8px);outline:1px solid var(--edge);outline-offset:-1px;background:var(--night);color:var(--night-ink);grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px clamp(32px,5vw,88px);padding:clamp(28px,5vw,72px);display:grid;position:relative;overflow:hidden}.contact-card:before{content:"";z-index:-1;background:radial-gradient(55% 70% at 100% 0%, rgb(var(--accent-rgb) / .2), transparent 70%), radial-gradient(45% 55% at 0% 100%, rgb(var(--accent-rgb) / .08), transparent 70%);position:absolute;inset:0}.contact-card ::selection{background:var(--accent-light);color:var(--night)}.contact-card :focus-visible{outline-color:var(--accent-light)}.contact-intro{align-content:start;gap:24px;display:grid}.contact .h2{font-size:clamp(2.5rem,1.2rem + 3.6vw,4.75rem)}.contact .lead,.contact .tbd{color:var(--night-ink-2)}.contact-details{border-top:1px solid var(--night-line);gap:16px;margin-top:12px;padding-top:28px;display:grid}.contact-details div{grid-template-columns:88px 1fr;gap:16px;display:grid}.contact-details dt{color:var(--night-ink-2);font-size:14px}.contact-details dd{font-size:16px}.footer{overflow:hidden}.footer-top{border-top:1px solid var(--line);grid-template-columns:minmax(0,4fr) repeat(4,minmax(0,2fr));gap:40px 24px;padding-top:48px;display:grid}.footer-brand{align-content:start;gap:18px;padding-right:clamp(0px,3vw,48px);display:grid}.footer-brand p{max-width:40ch;color:var(--ink-2);font-size:14.5px;line-height:1.6}.footer-col h2{color:var(--ink-3);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px;font-size:12px;font-weight:450}.footer-col ul{gap:8px;display:grid}.footer-col a{color:var(--ink-2);font-size:14.5px;transition:color .15s}@media (hover:hover) and (pointer:fine){.footer-col a:hover{color:var(--ink)}}.footer-bottom{color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:clamp(48px,6vw,80px);font-size:13.5px;display:flex}.footer-legal{gap:24px;display:flex}.footer-mark{color:var(--ink);letter-spacing:-.045em;text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;margin:clamp(16px,3vw,40px) 0 -.08em;font-size:19.4vw;font-weight:700;line-height:.8}@media (width<=1023.98px){.sec-head--split{grid-template-columns:1fr}.hero-lead,.hero-ctas{grid-column:1/-1;justify-self:start}.hero-stage{height:82svh}.hero-layer[data-ph]:after{max-width:44%}.eco-intro{grid-template-rows:none;grid-template-columns:1fr}.eco-intro .h2,.statement{grid-area:auto/1}.stack{gap:20px}.stack-anchor{scroll-margin-top:var(--nav-space);margin-bottom:-20px}.stack-card{height:auto;min-height:0;position:relative;top:auto}.stack-inner{grid-template-columns:1fr;gap:8px;padding:10px 10px 24px}.stack-media{aspect-ratio:4/3;order:-1;height:auto}.stack-copy{padding:20px 14px 0}.stack-copy .btn{margin-top:0}.ind-pin{min-height:0;padding-top:0}.ind-rail{width:auto;padding:0;display:block}.ind-intro{width:auto;padding:0 var(--gutter) 40px}.ind-track{padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);scroll-snap-type:x mandatory;scrollbar-width:none;overflow-x:auto}.ind-track::-webkit-scrollbar{display:none}.ind-card{--card-w:min(76vw, 320px);scroll-snap-align:start}.ind-progress{display:none}#service-rendering,#service-animation,#service-360,#service-xr,#service-capture,#service-custom{grid-area:auto/span 6}#service-rendering,#service-custom{grid-column:1/-1}.cell--hero{min-height:440px}.cell--row{flex-direction:column}.cell--row .cell-media{aspect-ratio:16/10;width:auto}.cell--row .cell-copy{padding:20px 14px 14px}.process-head{grid-column:1/-1;position:static}.steps{grid-column:1/-1}.tech{grid-template-columns:1fr}.proj,.proj--lead{grid-area:auto/1/auto/-1}.proj--lead .proj-link{height:auto}.proj--lead .proj-media{aspect-ratio:4/3;height:auto}.contact-card{grid-template-columns:1fr}.footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1/-1}}@media (width<=639.98px){.hero-ctas .btn{flex:auto}.hero-stage{height:76svh}.hero-layer[data-ph]:after,.hero-hud .chip:not(.hero-built){display:none}.hero-hud{justify-content:center}.logo-slot{width:150px;height:68px}#service-animation,#service-360,#service-xr,#service-capture{grid-column:1/-1}.steps{padding-left:32px}.steps-rail{left:7px}.step:before{left:-32px}.tech-grid,.quotes{grid-template-columns:1fr}.quotes-ctrl{grid-column:1}.footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column}}
