/* Motion direction: immediate feedback, short travel, deliberate settling. */
:root{--motion-out:cubic-bezier(.22,1,.36,1);--motion-settle:cubic-bezier(.16,1,.3,1)}
.button,.header-cta,.menu-toggle,.portfolio-viewer button{transition:transform 160ms var(--motion-out),background-color 160ms ease,color 160ms ease}
.button:active,.header-cta:active,.menu-toggle:active,.portfolio-viewer button:not(:disabled):active{transform:scale(.97)}
.case-link span,.underlink span,.header-cta span,.case-next h2 span,.case-contact>a span{display:inline-block;transition:transform 200ms var(--motion-out)}
.project-cover img{transition:transform 420ms var(--motion-settle)}
.cover-arrow{transition:background-color 160ms ease,scale 160ms var(--motion-out);will-change:auto}
.project-cover:active .cover-arrow{scale:.9}
.mobile-nav{transform-origin:top right}
.menu-toggle span{transition:transform 200ms var(--motion-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)}
.motion-pending{opacity:0;transform:translateY(16px)}
@media(hover:hover) and (pointer:fine){
 .project-cover:hover img{transform:scale(1.018)}
 .card-p71 .project-cover:hover img{transform:none}
 .case-link:hover span,.underlink:hover span,.header-cta:hover span,.case-next a:hover h2 span,.case-contact>a:hover span{transform:translate(2px,-2px)}
 .button:hover{transform:translateY(-1px)}
}
@media(prefers-reduced-motion:no-preference){
 @keyframes editorial-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
 .hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>.hero-intro,.hero-actions,.hero-meta,.hero-visual,.case-intro>.eyebrow,.case-intro>h1,.case-deck,.case-facts{animation:editorial-enter 480ms var(--motion-settle) both}
 .hero-copy>h1,.case-intro>h1{animation-delay:45ms}
 .hero-copy>.hero-intro,.case-deck{animation-delay:90ms}
 .hero-actions,.case-facts{animation-delay:135ms}
 .hero-meta{animation-delay:180ms}
 .hero-visual{animation-duration:600ms;animation-delay:90ms}
 @view-transition{navigation:auto}
 .site-header{view-transition-name:site-header}
 .project-cover{view-transition-name:var(--project-transition)}
 .case-hero>.case-shot{view-transition-name:var(--project-transition)}
 ::view-transition-group(*){animation-duration:380ms;animation-timing-function:var(--motion-settle)}
 ::view-transition-group(root){animation-duration:160ms}
 ::view-transition-old(root){animation:page-fade-out 130ms ease both}
 ::view-transition-new(root){animation:page-fade-in 180ms ease both}
 ::view-transition-group(site-header){animation:none}
 @keyframes page-fade-out{to{opacity:0}}
 @keyframes page-fade-in{from{opacity:0}to{opacity:1}}
}
@media(prefers-reduced-motion:reduce){
 .motion-pending{opacity:1;transform:none}
 .project-cover,.case-hero>.case-shot,.site-header{view-transition-name:none}
 .button:active,.header-cta:active,.menu-toggle:active,.portfolio-viewer button:not(:disabled):active{transform:none}
 .project-cover:active .cover-arrow{scale:1}
}
