/* Editorial desktop motion. Layout, type, content and mobile styles are unchanged. */
@media(min-width:1001px){
 :root{--ease-out:cubic-bezier(.23,1,.32,1);--motion-quick:160ms;--motion-enter:300ms}
 .motion-reveal{opacity:0;transform:translateY(8px);transition:opacity var(--motion-enter) var(--ease-out),transform var(--motion-enter) var(--ease-out)}
 .motion-reveal.is-visible{opacity:1;transform:none}
 .motion-reveal:focus-within{opacity:1;transform:none;transition:none}
 /* Fixed geometry; only the existing background layer fades between states. */
 .header,.header .wordmark,.header .languages a{transition:none}
 .header::before{transition:opacity 200ms var(--ease-out)}
 .project-card,.project-caption h3,.project-caption p{transform:none}
 .project-media img{transform:scale(1);transition:transform 250ms var(--ease-out)}
 .project-caption{transition:opacity 180ms var(--ease-out)}
 .past-thumb img,.case-gallery .image-open img{transition:transform 200ms var(--ease-out);transform:scale(1)}
 .button{transition:opacity 180ms var(--ease-out),transform 160ms var(--ease-out)}
 .button:active{transform:scale(.985);transition-duration:100ms}
 .desktop-nav a,.languages a,.direct-email a,.footer-bottom a{transition:opacity 160ms var(--ease-out)}
 .social-icon:not(.is-unavailable) svg{transition:transform 160ms var(--ease-out)}
 .gallery-controls button,.viewer-controls button,.viewer-close,.play-symbol{transition:opacity 160ms var(--ease-out)}
 .gallery-controls button:active{opacity:.65}
 /* Retain the established thin focus line; keyboard focus is immediate. */
 input:focus,textarea:focus{outline:none;border-bottom-color:var(--red);box-shadow:0 1px 0 var(--red)}
 input:focus-visible,textarea:focus-visible{box-shadow:0 2px 0 var(--red)}
 .button:focus-visible,.project-card:focus-visible .project-media img,.past-thumb:focus-visible img,.case-gallery .image-open:focus-visible img{transform:none;transition:none}
 .project-card:focus-visible .project-caption{transition:none}
 .past-thumb:focus-visible .play-symbol{transform:none}
 .viewer-content{animation:desktop-media-in 200ms var(--ease-out) both}
 @keyframes desktop-media-in{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
 html[data-motion-input=keyboard] .motion-reveal{opacity:1;transform:none;transition:none}
 html[data-motion-input=keyboard] .viewer-content{animation:none}
 html[data-motion-input=keyboard] .header::before{transition:none}
 html[data-motion-input=keyboard] .button:active{transform:none;transition:none}
}
@media(min-width:1001px) and (hover:hover) and (pointer:fine){
 .project-card:hover .project-media img{transform:scale(1.025)}
 .past-thumb:hover img,.case-gallery .image-open:hover img{transform:scale(1.02);transition:transform 200ms var(--ease-out)}
 .button:hover{opacity:.92}
 .desktop-nav a:hover,.languages a:not([aria-current=page]):hover,.direct-email a:hover,.footer-bottom a:hover{opacity:.75}
 .social-icon:not(.is-unavailable):hover svg{transform:translateY(-1px)}
 .gallery-controls button:hover,.viewer-controls button:hover,.viewer-close:hover{opacity:.75}
 .past-thumb:hover .play-symbol,.image-open:hover .play-symbol{transform:none;opacity:1}
}
@media(min-width:1001px) and (prefers-reduced-motion:reduce){
 .motion-reveal,.motion-reveal.is-visible{opacity:1;transform:none;transition:none}
 .project-card .project-media img,.past-thumb img,.case-gallery .image-open img,.social-icon svg,.button,.play-symbol{transform:none!important;transition:none!important}
 .viewer-content{animation:none}
}
