/* Static dimensions; animated properties are exclusively transform and opacity. */
button{position:relative;overflow:hidden;transition:transform 150ms ease-out}
button:active:not(:disabled){transform:scale(.97)}
.motion-ripple{position:absolute;inset:0;border-radius:inherit;background:currentColor;pointer-events:none}
.motion-ghost{position:fixed!important;margin:0!important;z-index:1000;pointer-events:none;overflow:hidden;transform-origin:top left}
.motion-number{position:relative;color:transparent!important}
.motion-counter{position:absolute;inset:0;color:var(--text,#f4f0ff);background:var(--card,#1A1625);pointer-events:none;white-space:nowrap}
.motion-up::after,.motion-down::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:4px;animation:motion-flash 220ms ease-out}
.motion-up::after{background:#2dd4bf33}.motion-down::after{background:#ff959f33}
#live-price{position:relative}
.motion-skeleton{display:block;overflow:hidden;position:relative;min-height:64px}
.motion-skeleton-line{display:block;height:12px;margin:8px 0;border-radius:6px;background:#a78bfa22}
.motion-skeleton-line:nth-child(2){max-width:80%}.motion-skeleton-line:nth-child(3){max-width:60%}
.motion-skeleton::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#a78bfa22,transparent);animation:motion-shimmer 1200ms ease-out infinite}
.vita-sheet[open]{animation:motion-sheet 280ms cubic-bezier(.2,.9,.3,1.12)}
.motion-thinking{display:inline-flex;gap:5px;margin-left:8px}.motion-thinking span{width:5px;height:5px;border-radius:50%;background:currentColor;animation:motion-dot 750ms ease-out infinite}.motion-thinking span:nth-child(2){animation-delay:100ms}.motion-thinking span:nth-child(3){animation-delay:200ms}
#live-chart{position:relative}
.motion-chart-cover{position:absolute;inset:0;background:#1A1625;transform-origin:right;pointer-events:none;z-index:3}
.motion-check{display:inline-block;margin-left:8px;color:#2dd4bf;pointer-events:none}
@keyframes motion-flash{from{opacity:1}to{opacity:0}}
@keyframes motion-shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes motion-sheet{from{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes motion-message{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes motion-dot{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-3px);opacity:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-counter,.motion-chart-cover,.motion-ghost,.motion-ripple{display:none!important}.motion-number{color:inherit!important}}
