/* Restrained motion: one-time entrances in motion.mjs; responses to deliberate interaction here. */
@media (prefers-reduced-motion:no-preference){
  .motion-pending{opacity:0}
  .art-tile{transition:transform .6s cubic-bezier(.2,.7,.2,1),translate .3s ease-out}
  .mini-img{transition:transform .65s cubic-bezier(.16,1,.3,1)}
  .case-small{overflow:hidden}
  .header nav a{position:relative}
  .header nav a::after{content:"";position:absolute;left:0;right:0;bottom:5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
  .header nav a:is(:hover,:focus-visible)::after{transform:scaleX(1)}
  .case-small{transition:translate .3s ease,border-color .3s ease,box-shadow .3s ease}
  .shot{transition:box-shadow .4s ease}
  .shot-img{transition:transform .7s cubic-bezier(.22,1,.36,1)}
  .service-title svg,.circle-arrow,.steps>div>span i{transition:transform .35s cubic-bezier(.22,1,.36,1)}
  .button:active{transform:translateY(1px)}
  .request-dialog[open]{animation:dialog-enter .22s cubic-bezier(.22,1,.36,1)}
  .request-dialog[open]::backdrop{animation:backdrop-enter .2s ease}
  @keyframes dialog-enter{from{opacity:0;translate:0 10px;scale:.99}to{opacity:1;translate:0 0;scale:1}}
  @keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .button:hover{transform:translateY(-2px)}
  .button:active{transform:translateY(0)}
  .case-small:hover{translate:0 -7px;border-color:#a8bbd2;box-shadow:0 20px 40px #0e2e5c16}
  .case-small:hover .mini-img{transform:scale(1.035)}
  .case-big:hover .shot{box-shadow:0 28px 55px #0e2e5c20}
  .case-big:hover .shot-img{transform:scale(1.035)}
  .service:hover .service-title svg{transform:translateY(-3px)}
  .service:hover .circle-arrow{transform:rotate(5deg)}
  .steps>div:hover>span i{transform:translate(3px,-3px)}
}
