@keyframes panel-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.panel-in{animation:panel-in var(--dur-base) var(--ease-out) both}@keyframes item-new{0%{opacity:0;box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);transform:translateY(8px)scale(.99)}40%{opacity:1;box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);transform:none}55%{box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent)}to{opacity:1;box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 0%, transparent);transform:none}}.item-new{animation:item-new .7s var(--ease-spring) both}.tab-indicator{transition:transform var(--dur-base) var(--ease-out)}.chat-scroll{scroll-behavior:smooth;overscroll-behavior:contain}
@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.backdrop-in{animation:backdrop-in var(--dur-base) var(--ease-out) both}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}.modal-in{animation:modal-in var(--dur-slow) var(--ease-spring) both}@keyframes badge-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.badge-pop{animation:badge-pop var(--dur-base) var(--ease-spring) both}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.shake{animation:shake .4s var(--ease-out) both}
