/* btn-fx.css — shared button motion for every page. Load LAST (after desktop-fit.css).
   Motion only: sizes, colours and layout are untouched.
   Modelled on the Network Tools buttons: smooth hover lift, press-in, click ripple (see btn-fx.js).

   It also settles older per-page rules that disagreed with each other:
   - transition:all / transition:transform only (shadow and colour snapped)  -> one shared transition list
   - hover lifts of -1px, -2px and -3px, and scale(1.03)                   -> one -2px lift
   - hover glows that were weaker than the resting shadow                    -> one stronger glow
   - no press feedback on most buttons                                       -> scale(.97) (.92 for icon buttons)
   transform / box-shadow / transition use !important on purpose so those older rules cannot win. */

:is(
  button:not(.copy),
  input[type=button],
  input[type=submit],
  [role=button],
  .fx-btn,
  .btn-primary,
  .btn-outline,
  .btn-see-more,
  .btn-share,
  .btn-send,
  .btn-modal-primary,
  .btn-modal-secondary,
  .btn-add-item,
  .btn-edit,
  .btn-danger,
  .btn-publish,
  .btn-skill-edit,
  .btn-skill-delete,
  .btn-skill-publish,
  .nav-cta,
  .nav-cta-mobile,
  .nav-social-icon,
  .footer-social,
  .social-btn,
  .mob-social,
  .speed-btn,
  .panel-btn,
  .mini-btn,
  .res-toggle,
  .list-back,
  .modal-close,
  .sc-x,
  .pwa-install-btn,
  .pwa-dismiss-btn,
  .img-pick-btn,
  .img-clear-btn,
  .reorder-move-btn,
  #theme-toggle,
  #blog-admin-fab,
  #export-data-fab,
  #admin-logout-fab,
  #seo-check-fab,
  .hamburger
){
  -webkit-tap-highlight-color:transparent;
  transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,background-color .2s ease,color .2s ease,border-color .2s ease,filter .2s ease,opacity .2s ease!important;
}
.fx-rel{position:relative}

/* hover: lift (pointer devices only, so touch screens never get a stuck hover) */
@media (hover:hover){
  :is(
    .fx-btn,
  .btn-primary,
  .btn-outline,
  .btn-see-more,
  .btn-share,
  .btn-send,
  .btn-modal-primary,
  .btn-modal-secondary,
  .btn-add-item,
  .btn-edit,
  .btn-danger,
  .btn-publish,
  .btn-skill-edit,
  .btn-skill-delete,
  .btn-skill-publish,
  .nav-cta,
  .nav-cta-mobile,
  .nav-social-icon,
  .footer-social,
  .social-btn,
  .mob-social,
  .speed-btn,
  .panel-btn,
  .mini-btn,
  .pwa-install-btn,
  .pwa-dismiss-btn,
  .img-pick-btn,
  .img-clear-btn
  ):not(:disabled):not([aria-disabled="true"]):hover{transform:translateY(-2px)!important}
  :is(
    .fx-btn.p,
  .btn-primary,
  .btn-send,
  .btn-modal-primary,
  .btn-add-item,
  .nav-cta,
  .pwa-install-btn
  ):not(:disabled):not([aria-disabled="true"]):hover{box-shadow:0 14px 32px rgba(29,78,216,.38)!important;filter:brightness(1.06)}
}

/* press */
:is(
  button:not(.copy),
  input[type=button],
  input[type=submit],
  [role=button],
  .fx-btn,
  .btn-primary,
  .btn-outline,
  .btn-see-more,
  .btn-share,
  .btn-send,
  .btn-modal-primary,
  .btn-modal-secondary,
  .btn-add-item,
  .btn-edit,
  .btn-danger,
  .btn-publish,
  .btn-skill-edit,
  .btn-skill-delete,
  .btn-skill-publish,
  .nav-cta,
  .nav-cta-mobile,
  .nav-social-icon,
  .footer-social,
  .social-btn,
  .mob-social,
  .speed-btn,
  .panel-btn,
  .mini-btn,
  .res-toggle,
  .list-back,
  .modal-close,
  .sc-x,
  .pwa-install-btn,
  .pwa-dismiss-btn,
  .img-pick-btn,
  .img-clear-btn,
  .reorder-move-btn,
  #theme-toggle,
  #blog-admin-fab,
  #export-data-fab,
  #admin-logout-fab,
  #seo-check-fab,
  .hamburger
):not(:disabled):not([aria-disabled="true"]):active{transform:scale(.97)!important}
:is(
  .nav-social-icon,
  .footer-social,
  .social-btn,
  .mob-social,
  .hamburger,
  .modal-close,
  .sc-x,
  #theme-toggle,
  #blog-admin-fab,
  #export-data-fab,
  #admin-logout-fab,
  #seo-check-fab,
  .reorder-move-btn
):not(:disabled):not([aria-disabled="true"]):active{transform:scale(.92)!important}

/* ripple: a clipped layer inside the button, so the button's own overflow and layout never change */
.fx-rw{position:absolute;inset:0;display:block;border-radius:inherit;overflow:hidden;pointer-events:none}
.fx-rip{position:absolute;display:block;border-radius:50%;background:currentColor;opacity:.28;transform:scale(0);animation:fxrip .6s ease-out forwards}
@keyframes fxrip{to{transform:scale(1);opacity:0}}

@media (prefers-reduced-motion:reduce){
  :is(
    button:not(.copy),
  input[type=button],
  input[type=submit],
  [role=button],
  .fx-btn,
  .btn-primary,
  .btn-outline,
  .btn-see-more,
  .btn-share,
  .btn-send,
  .btn-modal-primary,
  .btn-modal-secondary,
  .btn-add-item,
  .btn-edit,
  .btn-danger,
  .btn-publish,
  .btn-skill-edit,
  .btn-skill-delete,
  .btn-skill-publish,
  .nav-cta,
  .nav-cta-mobile,
  .nav-social-icon,
  .footer-social,
  .social-btn,
  .mob-social,
  .speed-btn,
  .panel-btn,
  .mini-btn,
  .res-toggle,
  .list-back,
  .modal-close,
  .sc-x,
  .pwa-install-btn,
  .pwa-dismiss-btn,
  .img-pick-btn,
  .img-clear-btn,
  .reorder-move-btn,
  #theme-toggle,
  #blog-admin-fab,
  #export-data-fab,
  #admin-logout-fab,
  #seo-check-fab,
  .hamburger
  ){transition-duration:.01ms!important}
  :is(
    button:not(.copy),
  input[type=button],
  input[type=submit],
  [role=button],
  .fx-btn,
  .btn-primary,
  .btn-outline,
  .btn-see-more,
  .btn-share,
  .btn-send,
  .btn-modal-primary,
  .btn-modal-secondary,
  .btn-add-item,
  .btn-edit,
  .btn-danger,
  .btn-publish,
  .btn-skill-edit,
  .btn-skill-delete,
  .btn-skill-publish,
  .nav-cta,
  .nav-cta-mobile,
  .nav-social-icon,
  .footer-social,
  .social-btn,
  .mob-social,
  .speed-btn,
  .panel-btn,
  .mini-btn,
  .res-toggle,
  .list-back,
  .modal-close,
  .sc-x,
  .pwa-install-btn,
  .pwa-dismiss-btn,
  .img-pick-btn,
  .img-clear-btn,
  .reorder-move-btn,
  #theme-toggle,
  #blog-admin-fab,
  #export-data-fab,
  #admin-logout-fab,
  #seo-check-fab,
  .hamburger
  ):hover,:is(
    button:not(.copy),
  input[type=button],
  input[type=submit],
  [role=button],
  .fx-btn,
  .btn-primary,
  .btn-outline,
  .btn-see-more,
  .btn-share,
  .btn-send,
  .btn-modal-primary,
  .btn-modal-secondary,
  .btn-add-item,
  .btn-edit,
  .btn-danger,
  .btn-publish,
  .btn-skill-edit,
  .btn-skill-delete,
  .btn-skill-publish,
  .nav-cta,
  .nav-cta-mobile,
  .nav-social-icon,
  .footer-social,
  .social-btn,
  .mob-social,
  .speed-btn,
  .panel-btn,
  .mini-btn,
  .res-toggle,
  .list-back,
  .modal-close,
  .sc-x,
  .pwa-install-btn,
  .pwa-dismiss-btn,
  .img-pick-btn,
  .img-clear-btn,
  .reorder-move-btn,
  #theme-toggle,
  #blog-admin-fab,
  #export-data-fab,
  #admin-logout-fab,
  #seo-check-fab,
  .hamburger
  ):active{transform:none!important}
  .fx-rw{display:none}
}
