/* !!!! GENERATED by packages/design-tokens/scripts/build.mjs — DO NOT EDIT !!!!
 * 单源: packages/design-tokens/tokens.json → packages\design-tokens\web\app globals.css @import
 * 重新生成: npm run tokens
 */:root{--motion-fast:120ms;--motion-base:200ms;--motion-slow:300ms;--ease-standard:cubic-bezier(0.215,0.61,0.355,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--press-scale:0.97}.pressable{transition:transform var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard);-webkit-tap-highlight-color:transparent}.pressable:active:not(:disabled){transform:scale(var(--press-scale))}@media (hover:hover){.pressable:hover:not(:disabled){background-color:color-mix(in srgb,currentColor 7%,transparent)}}.animate-in,.animate-out{animation-timing-function:var(--ease-standard)}@keyframes qx-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.qx-skeleton{background-image:linear-gradient(100deg,transparent 25%,color-mix(in srgb,hsl(var(--foreground)) 7%,transparent) 50%,transparent 75%);background-size:200% 100%;background-repeat:no-repeat;animation:qx-shimmer 1.8s var(--ease-standard) infinite}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}