/* Presentation adapters for the shared motion kit. Only transform and opacity move. */
.tool-enter { animation-delay: var(--tool-motion-delay, 0ms); }
.tool-enter.m-rise { animation-duration: 320ms; }
button.m-press, label.opt.m-press, .drop.m-press, .file-button.m-press, .cta a.m-press {
  transition: transform 150ms var(--m-ease);
}
/* Touch users receive press feedback without sticky hover lift. Disabled controls stay still. */
@media (hover: hover) and (pointer: fine) {
  button.m-press:enabled:hover, label.opt.m-press:hover, .drop.m-press:hover,
  .file-button.m-press:hover, .cta a.m-press:hover { transform: translateY(-2px); }
}
@media (hover: none) {
  .m-press:hover { transform: none; }
}
button.m-press:enabled:active, label.opt.m-press:active, .drop.m-press:active,
.file-button.m-press:active, .cta a.m-press:active { transform: scale(.98); }
button.m-press:disabled { transform: none; }
.tool-loading { display: inline-flex; gap: 1px; margin-inline-start: 8px; vertical-align: middle; }
@media (prefers-reduced-motion: reduce) {
  .tool-enter { animation: none !important; }
  button.m-press, label.opt.m-press, .drop.m-press, .file-button.m-press, .cta a.m-press,
  button.m-press:enabled:hover, label.opt.m-press:hover, .drop.m-press:hover,
  .file-button.m-press:hover, .cta a.m-press:hover,
  button.m-press:enabled:active, label.opt.m-press:active, .drop.m-press:active,
  .file-button.m-press:active, .cta a.m-press:active {
    transition: none !important;
    transform: none !important;
  }
}
