/* Fisher · movimiento (28/10): transiciones suaves y cortas al cambiar de pantalla y abrir hojas. Respeta "reducir movimiento". */
@keyframes fx-fade{from{opacity:0}to{opacity:1}}
@keyframes fx-sheet{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes fx-pop{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes fx-slide{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.view.active{animation:fx-fade .16s ease-out}
dialog[open]{animation:fx-pop .2s cubic-bezier(.2,.8,.2,1)}
dialog[open]::backdrop{animation:fx-fade .2s ease-out}
dialog.detail-dialog[open]{animation:fx-slide .22s cubic-bezier(.2,.8,.2,1)}
@media(max-width:719px){dialog.sheet-dialog[open],dialog.commercial-dialog[open]{animation:fx-sheet .24s cubic-bezier(.2,.8,.2,1)}}
button,a,summary,select,input,textarea,[role=button]{transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease}
button:active:not(:disabled),a.mail:active,a.call:active,a.whatsapp:active,a.linkedin:active{transform:scale(.97)}
button,a{-webkit-tap-highlight-color:transparent}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
