/* 全站按鈕的按壓回饋：按下下沉、放開彈回（刀 1023-E，卡 WORK-BUTTON-PRESS-FEEDBACK）。

   整條規則（含 :active）包在 :where() 裡，specificity 是 0：
   元件自己寫的 transform（定位、既有的 :active 縮放）與 transition 一律優先，
   這裡只補在「沒有自己的按壓回饋」的按鈕上，不會蓋掉任何既有樣式。
   用 translateY 不用 scale：kana／words 頁的動態設計明文禁止 scale（tests/public_words_page.test.js）。

   排除：停用中的按鈕；以及本身用 transform 定位、拖曳或做動畫的按鈕
   （.cv-phone-answer-knob 拖曳接聽、.cv-dock-end-btn 用 translateY(-50%) 置中、
   .record-btn translateZ 與脈動動畫、.mh-kumo-fab 浮動鍵、.listen-play-btn／.listen-shadow-rec-btn 呼吸動畫）。

   系統開「減少動態效果」時整條不生效。
   iOS Safari 要有 touchstart 監聽 :active 才會觸發，由各頁 <body ontouchstart=""> 補上。 */
:root {
    --press-depth: 2px;
    --press-down-duration: 80ms;
    --press-down-easing: cubic-bezier(.2, 0, 0, 1);
    --press-release-duration: 180ms;
    --press-release-easing: cubic-bezier(.34, 1.56, .64, 1);
}

@media (prefers-reduced-motion: no-preference) {
    :where(button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"],
           a.button, a.plan-cta, a.nav-link-solid, a.fx-control):where(:not(
           :disabled, [aria-disabled="true"],
           .cv-phone-answer-knob, .cv-dock-end-btn, .record-btn, .mh-kumo-fab, .listen-play-btn, .listen-shadow-rec-btn)) {
        transition: transform var(--press-release-duration) var(--press-release-easing);
    }
    :where(button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"],
           a.button, a.plan-cta, a.nav-link-solid, a.fx-control):where(:not(
           :disabled, [aria-disabled="true"],
           .cv-phone-answer-knob, .cv-dock-end-btn, .record-btn, .mh-kumo-fab, .listen-play-btn, .listen-shadow-rec-btn)):where(:active) {
        transform: translateY(var(--press-depth));
        transition-duration: var(--press-down-duration);
        transition-timing-function: var(--press-down-easing);
    }
}
