body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glow{0%,to{box-shadow:0 0 20px #9333ea4d}50%{box-shadow:0 0 30px #9333ea99}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideUp{animation:slideUp .4s ease-out}.animate-slideDown{animation:slideDown .4s ease-out}.animate-slideInLeft{animation:slideInLeft .4s ease-out}.animate-slideInRight{animation:slideInRight .4s ease-out}.animate-scaleIn{animation:scaleIn .3s ease-out}.animate-shake{animation:shake .5s ease-in-out}.animate-pulse-slow{animation:pulse 3s ease-in-out infinite}.animate-bounce-slow{animation:bounce 2s infinite}.animate-glow{animation:glow 2s ease-in-out infinite}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#eee;border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#9543c6,#b344ac,#d13d91);border-radius:10px;border:2px solid oklch(.95 0 0);-webkit-transition:background .2s;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#8019b3,#9a2497,#b51c79)}.spinner{border:4px solid oklch(.9 0 0);border-top:4px solid oklch(.55 .2 310);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}.loading-dots{display:inline-flex;gap:.25rem}.loading-dots span{width:.5rem;height:.5rem;background:currentColor;border-radius:50%;animation:bounce 1.4s infinite ease-in-out}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.gradient-purple-pink{background:linear-gradient(135deg,#9543c6,#b344ac,#d13d91)}.gradient-purple-pink-reverse{background:linear-gradient(135deg,#d13d91,#b344ac,#9543c6)}.gradient-text-purple-pink{background:linear-gradient(135deg,#9543c6,#b344ac,#d13d91);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.card-hover{transition:transform .3s ease,box-shadow .3s ease}.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.glass{background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.glass-dark{background:#0000001a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.focus-ring{transition:box-shadow .15s ease-in-out}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px #9543c64d}.btn-gradient{background:linear-gradient(135deg,#9543c6,#b344ac,#d13d91);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}.btn-gradient:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.btn-gradient:hover:before{left:100%}.btn-gradient:hover{transform:translateY(-2px);box-shadow:0 10px 20px #9543c64d}.btn-gradient:active{transform:translateY(0)}
