:root{--gesture-hover-scale:1.05;--gesture-hover-scale-subtle:1.02;--gesture-hover-scale-pronounced:1.1;--gesture-tap-scale:0.95;--gesture-tap-scale-gentle:0.98;--gesture-tap-scale-strong:0.92;--gesture-duration-hover:150ms;--gesture-duration-tap:120ms;--gesture-easing:cubic-bezier(0,0,0.2,1)}.gesture-scale{transition:transform var(--gesture-duration-hover) var(--gesture-easing);will-change:transform}.gesture-scale:hover{transform:scale(var(--gesture-hover-scale))}.gesture-scale:active{transform:scale(var(--gesture-tap-scale));transition-duration:var(--gesture-duration-tap)}.gesture-scale-subtle{transition:transform var(--gesture-duration-hover) var(--gesture-easing);will-change:transform}.gesture-scale-subtle:hover{transform:scale(var(--gesture-hover-scale-subtle))}.gesture-scale-subtle:active{transform:scale(var(--gesture-tap-scale-gentle));transition-duration:var(--gesture-duration-tap)}.gesture-scale-pronounced{transition:transform var(--gesture-duration-hover) var(--gesture-easing);will-change:transform}.gesture-scale-pronounced:hover{transform:scale(var(--gesture-hover-scale-pronounced))}.gesture-scale-pronounced:active{transform:scale(var(--gesture-tap-scale-strong));transition-duration:var(--gesture-duration-tap)}.gesture-tap-only{transition:transform var(--gesture-duration-tap) var(--gesture-easing);will-change:transform}.gesture-tap-only:active{transform:scale(var(--gesture-tap-scale))}.gesture-none{transition:none!important;transform:none!important}@media (prefers-reduced-motion:reduce){.gesture-scale,.gesture-scale-pronounced,.gesture-scale-subtle,.gesture-tap-only{transition:none!important;transform:none!important}}.gesture-scale-pronounced:focus-visible,.gesture-scale-subtle:focus-visible,.gesture-scale:focus-visible{transform:scale(var(--gesture-hover-scale))}