/* Transforms preserve the existing prop rotation; no form-field motion. */
@media(prefers-reduced-motion:no-preference) {
 .canvas .bm-heading-entered::before {transform-origin:left;animation:bm-heading-line .5s cubic-bezier(.22,1,.36,1) both;}
 .canvas #projects .project-cover img {transition:transform .45s cubic-bezier(.22,1,.36,1);}
 .canvas #projects .project-meta .bm-icon,.canvas #services .service-action .bm-icon {transition:transform .22s ease,color .22s ease;}
 .canvas #contact .contact-prop {animation:bm-prop-float 7s ease-in-out infinite alternate;animation-play-state:paused;}
 .canvas #contact .contact-prop-brand {animation-duration:8.5s;animation-delay:-3s;}
 .canvas #contact .contact-prop-cursor {animation-duration:6.5s;animation-delay:-2s;}
 .canvas #contact.bm-motion-visible .contact-prop {animation-play-state:running;}
 .canvas #contact:not(.bm-motion-visible) .contact-portrait::before {animation-play-state:paused;}
 .bm-motion-paused .canvas #contact .contact-prop,.is-contact-editing .canvas #contact .contact-prop {animation-play-state:paused;}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .canvas #projects .project-cover:hover img {transform:scale(1.025);}
 .canvas #projects .project-card:hover .project-meta .bm-icon,.canvas #services .service:hover .service-action .bm-icon {transform:translate(3px,-3px);}
}
@keyframes bm-heading-line {from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes bm-prop-float {from{translate:0 0}to{translate:0 -9px}}
@media(max-width:740px) { .canvas #contact .contact-prop {animation:none;} }
@media(prefers-reduced-motion:reduce) {
 .canvas #contact .contact-prop,.canvas .bm-heading-entered::before {animation:none;}
}
