*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--purple-50:#faf5ff;--purple-100:#f3e8ff;--purple-200:#e9d5ff;--purple-300:#d8b4fe;--purple-400:#c084fc;--purple-500:#a855f7;--purple-600:#9333ea;--purple-700:#7e22ce;--purple-800:#6b21a8;--purple-900:#581c87;--white:#fff;--gray-50:#fafafa;--gray-100:#f5f5f5;--gray-200:#e5e5e5;--gray-300:#d4d4d4;--gray-500:#737373;--gray-700:#404040;--gray-900:#171717;--green-500:#22c55e;--red-500:#ef4444;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 12px rgba(0,0,0,.08);--shadow-lg:0 8px 24px rgba(0,0,0,.12);--radius:16px;--radius-sm:10px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,var(--purple-50) 0,var(--white) 40%,var(--purple-100) 100%);min-height:100vh;color:var(--gray-900);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--purple-300);border-radius:3px}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scalePop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes confetti{0%{transform:translateY(0) rotate(0deg);opacity:1}to{transform:translateY(-60px) rotate(1turn);opacity:0}}@keyframes checkmark{0%{transform:scale(0) rotate(-45deg);opacity:0}50%{transform:scale(1.2) rotate(0deg);opacity:1}to{transform:scale(1) rotate(0deg);opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes cardEnter{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.card-enter{animation:cardEnter .45s cubic-bezier(.22,1,.36,1) both}.fade-in{animation:fadeIn .4s ease-out both}.slide-up{animation:slideUp .5s ease-out both}.spinner{width:40px;height:40px;border:4px solid var(--purple-200);border-top-color:var(--purple-600);border-radius:50%;animation:spin .8s linear infinite;margin:80px auto}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--gray-900);color:#fff;padding:12px 24px;border-radius:999px;font-size:14px;font-weight:500;z-index:1000;animation:slideUp .3s ease-out,fadeIn .3s ease-out 2s reverse forwards;box-shadow:var(--shadow-lg)}button{cursor:pointer}button,input,textarea{border:none;font-family:inherit}input,textarea{outline:none}