:root{--tuf-primary:#863bff;--tuf-primary-2:#7e14ff;--tuf-accent:#47bfff;--tuf-primary-bg:#863bff14;--tuf-primary-border:#863bff40;--tuf-bg:#f6f5fb;--tuf-bg-grad:radial-gradient(1200px 600px at 80% -10%, #863bff1a, transparent 60%), radial-gradient(900px 500px at -10% 110%, #47bfff1a, transparent 55%)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--tuf-bg);background-image:var(--tuf-bg-grad);background-attachment:fixed;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.tuf-brand-font{letter-spacing:-.01em;font-family:Space Grotesk,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sweep-shine{0%{background-position:-150% 0}to{background-position:250% 0}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.tuf-fade-in{animation:.6s cubic-bezier(.22,1,.36,1) both fade-in}.tuf-slide-in{animation:.5s cubic-bezier(.22,1,.36,1) both slideInLeft}.tuf-logo-text{background:linear-gradient(90deg, var(--tuf-primary) 0%, var(--tuf-accent) 50%, var(--tuf-primary) 100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:4s linear infinite sweep-shine}.ant-card,.ant-btn,.ant-menu-item{transition:background-color .2s,border-color .2s,box-shadow .2s,transform .2s}
