/**
 * 按钮起落手感：按下沉、抬手回弹。本机静态，零外链。
 */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
[role="button"],
.left-uni-chip,
.sop-node,
.matter-sel-card,
.g0-pillar-chip,
.rp-qlink,
.rp40-hit,
.bp40-chip,
.bp40-step,
.demo-chip,
.wn-filter {
  transition:
    transform 90ms cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 90ms ease,
    filter 90ms ease;
}

button:not(:disabled):active,
input[type="button"]:not(:disabled):active,
input[type="submit"]:not(:disabled):active,
input[type="reset"]:not(:disabled):active,
[role="button"]:active,
.left-uni-chip:active,
.sop-node:active,
.matter-sel-card:active,
.g0-pillar-chip:active,
.rp-qlink:active,
.rp40-hit:active,
.bp40-chip:active,
.bp40-step:active,
.demo-chip:active,
.wn-filter:active,
.zjs-tactile-down {
  transform: translateY(2px) scale(0.975) !important;
  box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.32) !important;
  filter: brightness(0.9);
}

.zjs-tactile-up {
  transform: translateY(-1px) scale(1.012) !important;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.18) !important;
  filter: brightness(1.04);
}

@media (prefers-reduced-motion: reduce) {
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  [role="button"],
  .zjs-tactile-down,
  .zjs-tactile-up {
    transition-duration: 40ms;
  }
  .zjs-tactile-down {
    transform: translateY(1px) scale(0.99) !important;
  }
  .zjs-tactile-up {
    transform: none !important;
    box-shadow: none !important;
    filter: none;
  }
}
