/* SWARMMING Motion System v1.2 */
:root{--sw-motion-fast:160ms;--sw-motion-base:280ms;--sw-motion-slow:700ms;--sw-ease:cubic-bezier(.2,.8,.2,1);--sw-signal:#C7FF2F}
@keyframes sw-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes sw-scale{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes sw-scan{from{transform:translateX(-120%)}to{transform:translateX(120%)}}
@keyframes sw-live{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes sw-glow{0%,100%{text-shadow:none}50%{text-shadow:0 0 22px #c7ff2f66}}
.sw-reveal{opacity:0;animation:sw-rise 700ms var(--sw-ease) forwards}.sw-reveal-2{animation-delay:100ms}.sw-reveal-3{animation-delay:200ms}
.sw-card{transition:transform 280ms var(--sw-ease),box-shadow 280ms var(--sw-ease)}.sw-card:hover{transform:translateY(-4px);box-shadow:0 18px 60px #0002}
.sw-button{position:relative;overflow:hidden;transition:transform 160ms var(--sw-ease)}.sw-button:hover{transform:translateY(-2px)}.sw-button:active{transform:scale(.985)}
.sw-button:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 25%,#fff5 50%,transparent 75%);transform:translateX(-120%)}
.sw-button:hover:after{animation:sw-scan 700ms var(--sw-ease)}.sw-live-dot{animation:sw-live 1.6s ease-in-out infinite}
.sw-number-live{animation:sw-glow 2.4s ease-in-out infinite}.sw-progress-fill{transition:width 900ms var(--sw-ease)}
.sw-modal{animation:sw-scale 280ms var(--sw-ease) both}.sw-toast{animation:sw-rise 360ms var(--sw-ease) both}
.sw-skeleton{background:linear-gradient(90deg,#00000008,#00000012,#00000008);background-size:200% 100%;animation:sw-scan 1.4s linear infinite}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.sw-reveal{opacity:1}}
