/* Motion direction: bold editorial reveals, cinematic cuts, responsive imagery. */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-cut:cubic-bezier(.76,0,.24,1)}
.page-curtain{position:fixed;inset:0;z-index:200;background:var(--ink);color:var(--paper);transform:translateY(101%);pointer-events:none;display:flex;flex-direction:column;justify-content:center;padding:var(--gutter);overflow:hidden}
.curtain-brand{font-family:var(--display);font-size:clamp(80px,16vw,240px);line-height:.82;letter-spacing:-.085em}.curtain-dot{color:#81817b}.curtain-caption{margin-top:35px}.curtain-index{position:absolute;bottom:35px;right:var(--gutter);color:#a4a49e}.is-leaving .page-curtain{pointer-events:auto}
.scroll-progress{position:absolute;bottom:-1px;left:0;height:2px;background:var(--ink);width:100%;transform:scaleX(0);transform-origin:left;pointer-events:none;z-index:2}
.motion-word{display:inline-block;clip-path:inset(-15% -8% -15% -8%);vertical-align:baseline}.motion-word>span{display:inline-block;will-change:transform}.display .motion-word{padding-bottom:.08em;margin-bottom:-.08em}
.motion-ready .hero-art{transform:translate3d(var(--mouse-x,0px),calc(var(--hero-scroll,0px) + var(--mouse-y,0px)),0) rotate(var(--mouse-r,0deg));transition:transform 1.1s var(--ease-out);will-change:transform}.motion-ready .hero-bottom a>span{display:inline-block;animation:scroll-cue 2.4s ease-in-out 2}.motion-ready .hero-art:hover{filter:contrast(1.1)}
@keyframes scroll-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
.parallax-image{transform:translate3d(0,var(--parallax-y,0px),0);will-change:transform}.lab-strip figure.parallax-image{transition:transform .2s linear}
.collabs.is-marquee{grid-template-columns:180px minmax(0,1fr);overflow:hidden}.collab-label{display:flex;flex-direction:column;align-items:start;gap:15px}.marquee-window{min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}.marquee-track{display:flex;width:max-content;animation:collab-travel 34s linear infinite}.marquee-group{display:flex;flex-shrink:0;min-width:var(--marquee-width,0px);justify-content:space-between;align-items:center;gap:52px;padding-right:52px;white-space:nowrap;font-weight:800;font-size:clamp(22px,2.3vw,36px);letter-spacing:-.055em}.marquee-group .small{font-size:16px;line-height:1.1;white-space:normal;min-width:125px}.marquee-toggle{border:1px solid var(--line);background:transparent;padding:5px 9px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.03em}.marquee-toggle:hover{background:var(--ink);color:var(--paper)}.is-marquee:hover .marquee-track,.is-marquee:focus-within .marquee-track,.is-marquee.is-paused .marquee-track{animation-play-state:paused}@keyframes collab-travel{to{transform:translateX(-50%)}}
.project-card .media{isolation:isolate}.project-card .media img{transition:transform 1.2s var(--ease-out),filter .7s}.project-card .media:hover img{transform:scale(1.085)}.project-card .media:after,.lab-card .media:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#0005);opacity:0;transition:opacity .4s;pointer-events:none}.project-card .media:hover:after,.lab-card .media:hover:after{opacity:1}.project-card .media .tag{z-index:3;transition:transform .5s var(--ease-out),opacity .5s}.project-card .media:hover .tag{transform:translateY(5px)}.project-card .media .project-open{z-index:3;transition:transform .55s var(--ease-out),background .3s,color .3s}.project-card .media:hover .project-open{transform:rotate(45deg);background:var(--paper);color:var(--ink)}.project-info h3 a{background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .5s var(--ease-out);padding-bottom:5px}.project-card:hover h3 a{background-size:100% 1px}
.hover-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .45s;z-index:1}.hover-preview.is-playing{opacity:1}.lab-card .play-circle{z-index:3}.project-cursor{position:fixed;top:0;left:0;width:94px;height:94px;border-radius:50%;background:var(--paper);color:var(--ink);z-index:80;display:grid;place-content:center;text-align:center;font:10px/1.6 var(--mono);text-transform:uppercase;pointer-events:none;opacity:0;scale:.6;transition:opacity .2s,scale .35s var(--ease-out);will-change:transform}.project-cursor.is-visible{opacity:1;scale:1}.project-cursor span{font-size:22px}.has-project-cursor,.has-project-cursor *{cursor:none!important}
.button{position:relative;transition:background .3s,color .3s,transform .65s var(--ease-out),box-shadow .4s;transform:translate(var(--magnet-x,0px),var(--magnet-y,0px));overflow:hidden}.button:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#fff2 50%,transparent 80%);transform:translateX(-120%);transition:transform .8s var(--ease-out);pointer-events:none}.button:hover:after{transform:translateX(120%)}.button:hover .arrow{transform:translate(3px,-3px) rotate(45deg)}.text-link .arrow{transition:transform .5s var(--ease-out)}.cta-arrow{transition:transform .7s var(--ease-out),background .3s,color .3s}.cta-main:hover .cta-arrow{transform:rotate(45deg)}.cta-main h2{transition:transform .7s var(--ease-out)}.cta-main:hover h2{transform:translateX(10px)}.next-project{position:relative;overflow:hidden}.next-project h2{transition:transform .7s var(--ease-out)}.next-project:hover h2{transform:translateX(18px)}
.service-line{position:relative;isolation:isolate;transition:color .4s,padding .6s var(--ease-out)}.service-line:before{content:'';position:absolute;inset:0 calc(-1 * var(--gutter));background:var(--ink);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease-out)}.service-line:hover,.service-line:focus-visible{color:var(--paper)}.service-line:hover:before,.service-line:focus-visible:before{transform:scaleY(1)}.service-line:hover p{color:#bbb}.service-line:hover>.arrow{transform:rotate(45deg)}.process article,.value,.chapter{transition:transform .5s var(--ease-out)}.process article:hover,.value:hover{transform:translateY(-8px)}.chapter:hover{transform:translateX(7px)}.field label{transition:color .3s,transform .3s;display:block}.field:focus-within label{transform:translateX(5px)}.faq details{overflow:hidden}.faq summary:after{transition:transform .3s}.faq details[open] summary:after{transform:rotate(180deg)}
.menu-toggle span{transition:transform .45s var(--ease-out)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@media(max-width:850px){.menu-open{overflow:hidden}.motion-ready .mobile-nav{display:flex!important;position:absolute;top:100%;left:0;right:0;height:calc(100dvh - 70px);flex-direction:column;justify-content:center;gap:clamp(8px,2vh,22px);background:var(--ink);color:var(--paper);padding:30px var(--gutter) 80px;border:0;clip-path:inset(0 0 100%);visibility:hidden;transition:clip-path .65s var(--ease-cut),visibility 0s .65s;overflow-y:auto}.motion-ready .mobile-nav.open{clip-path:inset(0);visibility:visible;transition:clip-path .65s var(--ease-cut)}.motion-ready .mobile-nav a{font-family:var(--display);font-size:clamp(26px,7vw,54px);letter-spacing:-.055em;text-transform:uppercase;line-height:1.1;padding:6px 0;transform:translateY(30px);opacity:0;transition:transform .65s var(--ease-out),opacity .4s}.motion-ready .mobile-nav.open a{transform:translateY(0);opacity:1;transition-delay:calc(.15s + var(--menu-i,0) * .055s)}.collabs.is-marquee{grid-template-columns:1fr;gap:24px}.collab-label{flex-direction:row;align-items:center;justify-content:space-between}.collab-label>.mono br{display:none}.marquee-group{gap:35px;padding-right:35px}.project-cursor{display:none}}
@media(prefers-reduced-motion:reduce){.page-curtain,.project-cursor{display:none!important}.motion-ready .hero-art,.parallax-image,.button,.cta-main:hover h2,.next-project:hover h2,.process article:hover,.value:hover,.chapter:hover{transform:none!important}.motion-word>span{will-change:auto}.marquee-track{animation:none!important;transform:none!important;width:auto}.marquee-group{flex-wrap:wrap;gap:20px 30px;padding:0;white-space:normal}.marquee-group[aria-hidden=true],.marquee-toggle{display:none}.marquee-window{mask-image:none}.hover-preview{display:none}.has-project-cursor,.has-project-cursor *{cursor:auto!important}}
