.haptic-btn-enhanced{transform-origin:50%;isolation:isolate;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.haptic-btn-enhanced:hover:not(:disabled){transform:translateY(-1px)scale(1.01)}.haptic-btn-enhanced:active:not(:disabled),.haptic-btn-enhanced.haptic-btn-pressed{transition:transform 80ms ease-out;transform:scale(.95)}.haptic-btn-enhanced:before{content:"";opacity:0;z-index:1;pointer-events:none;background:radial-gradient(circle,#ffffff80 0%,#fff0 70%);border-radius:50%;width:0;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.haptic-btn-enhanced:after{content:"";border-radius:inherit;opacity:0;z-index:0;pointer-events:none;border:2px solid #ffffff4d;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.8)}.haptic-btn-enhanced.haptic-btn-pressed:before{animation:.4s ease-out forwards hapticBtnRipple}.haptic-btn-enhanced.haptic-btn-pressed:after{animation:.35s ease-out forwards hapticBtnWave}@keyframes hapticBtnRipple{0%{opacity:.7;width:0;height:0}to{opacity:0;width:200%;height:200%}}@keyframes hapticBtnWave{0%{opacity:.4;border-width:2px;transform:translate(-50%,-50%)scale(.8)}to{opacity:0;border-width:1px;transform:translate(-50%,-50%)scale(1.15)}}.haptic-btn-enhanced.haptic-btn-bouncing{animation:.25s cubic-bezier(.68,-.55,.265,1.55) hapticBtnBounce}@keyframes hapticBtnBounce{0%{transform:scale(.95)}60%{transform:scale(1.03)}to{transform:scale(1)}}.haptic-btn-enhanced.haptic-btn-pressed{box-shadow:0 0 12px 3px #3b82f640}.haptic-card-enhanced{transform-origin:50%;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.haptic-card-enhanced:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.haptic-card-enhanced:active,.haptic-card-enhanced.haptic-card-pressed{transition:transform 80ms ease-out;transform:scale(.98)}.haptic-card-enhanced:before{content:"";opacity:0;z-index:1;pointer-events:none;background:radial-gradient(circle,#3b82f626 0%,#3b82f600 70%);border-radius:50%;width:0;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.haptic-card-enhanced.haptic-card-pressed:before{animation:.5s ease-out forwards hapticCardRipple}@keyframes hapticCardRipple{0%{opacity:.8;width:0;height:0}to{opacity:0;width:300%;height:300%}}.haptic-card-enhanced.haptic-card-bouncing{animation:.25s cubic-bezier(.68,-.55,.265,1.55) hapticCardBounce}@keyframes hapticCardBounce{0%{transform:scale(.98)}60%{transform:scale(1.01)}to{transform:scale(1)}}.haptic-btn{transform-origin:50%;isolation:isolate;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.haptic-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.haptic-btn:active:not(:disabled),.haptic-btn.haptic-btn-pressed{transition:transform 80ms ease-out;transform:scale(.96)}.haptic-btn:before{content:"";opacity:0;z-index:1;pointer-events:none;background:radial-gradient(circle,#fff6 0%,#fff0 70%);border-radius:50%;width:0;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.haptic-btn.haptic-btn-pressed:before{animation:.4s ease-out forwards hapticRipple}@keyframes hapticRipple{0%{opacity:.6;width:0;height:0}to{opacity:0;width:200%;height:200%}}.flip-btn-enhanced{transform-origin:50%;isolation:isolate;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.flip-btn-enhanced:hover:not(:disabled){transform:translateY(-2px)scale(1.02);box-shadow:0 8px 20px #3b82f64d}.flip-btn-enhanced:active:not(:disabled),.flip-btn-enhanced.flip-btn-pressed{transition:transform 80ms ease-out;transform:scale(.94)}.flip-btn-enhanced:before{content:"";opacity:0;z-index:1;pointer-events:none;background:radial-gradient(circle,#ffffff80 0%,#fff0 70%);border-radius:50%;width:0;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.flip-btn-enhanced:after{content:"";opacity:0;z-index:0;pointer-events:none;border:2px solid #fff6;border-radius:12px;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.8)}.flip-btn-enhanced.flip-btn-pressed:before{animation:.5s ease-out forwards flipRipple}.flip-btn-enhanced.flip-btn-pressed:after{animation:.4s ease-out forwards flipWaveRing}@keyframes flipRipple{0%{opacity:.7;width:0;height:0}to{opacity:0;width:250%;height:250%}}@keyframes flipWaveRing{0%{opacity:.5;border-width:2px;transform:translate(-50%,-50%)scale(.8)}to{opacity:0;border-width:1px;transform:translate(-50%,-50%)scale(1.3)}}.flip-btn-enhanced.flip-btn-bouncing{animation:.25s cubic-bezier(.68,-.55,.265,1.55) flipBounce}@keyframes flipBounce{0%{transform:scale(.94)}60%{transform:scale(1.04)}to{transform:scale(1)}}.flip-btn-enhanced.flip-btn-pressed{box-shadow:0 0 15px 5px #3b82f666}
