/* Quiet interaction feedback; motion stays brief and respects device preferences. */
.button,.nav-cta,.carousel-arrow,.round-link,.text-link,.admin-link{transform:translateZ(0);transition:transform .22s cubic-bezier(.2,.75,.25,1),box-shadow .22s ease,background-color .22s ease,color .22s ease,border-color .22s ease}
@media(hover:hover){
  .button:hover,.nav-cta:hover,.carousel-arrow:hover,.round-link:hover{transform:translateY(-2px)}
  .button-dark:hover,.nav-cta:hover{box-shadow:0 8px 20px color-mix(in srgb,var(--theme-dark,#2e1d35) 18%,transparent)}
  .service-card:hover .service-icon{transform:rotate(8deg) scale(1.07)}
  .service-detail-card:hover .text-link span,.artistry-gallery-foot .button:hover span{transform:translate(3px,-2px)}
  .training-list-item{transition:background .2s ease,padding .2s ease}
  .training-list-item:hover{padding-inline:8px;background:color-mix(in srgb,var(--theme-wash,#f6edf5) 75%,transparent)}
}
.button:active,.nav-cta:active,.carousel-arrow:active,.round-link:active{transform:translateY(0) scale(.98);box-shadow:none}
.button:focus-visible,.nav-cta:focus-visible,.carousel-arrow:focus-visible,.round-link:focus-visible,.text-link:focus-visible{outline-offset:4px}
.portfolio-card img{transition:transform .65s cubic-bezier(.2,.75,.25,1),filter .4s ease}
@media(hover:hover){.portfolio-card:hover img{transform:scale(1.045)}}
.menu-toggle{transition:transform .22s ease,color .22s ease}
.menu-toggle[aria-expanded="true"]{transform:rotate(90deg)}
.main-nav.open{transform-origin:top center;animation:nav-drop .2s ease both}
@keyframes nav-drop{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
.form-submit[aria-busy="true"]{cursor:wait;opacity:.88}
.form-submit[aria-busy="true"]::after{content:"";width:13px;height:13px;margin-left:10px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:submit-spin .7s linear infinite}
@keyframes submit-spin{to{transform:rotate(360deg)}}
.form-status:not(:empty){animation:status-arrive .24s ease both}
.form-website-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.turnstile-widget{margin:12px 0;min-height:65px}
@keyframes status-arrive{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(hover:none){.service-card:active,.portfolio-card:active{transform:scale(.99)}}
@media(prefers-reduced-motion:reduce){
  .main-nav.open,.form-status:not(:empty){animation:none}
  .form-submit[aria-busy="true"]::after{animation:none}
  .menu-toggle,.training-list-item{transition:none}
}

