.ai-loader{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--dora-dark-bg);display:flex;align-items:center;justify-content:center;z-index:var(--dora-z-loader)}.ai-spinner{color:var(--dora-accent);font-size:3rem;animation:2s ease-in-out infinite ai-spin}@keyframes ai-spin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.2)}100%{transform:rotate(360deg) scale(1)}}@keyframes float-particle{0%,100%{transform:translateY(0) translateX(0);opacity:.3}25%{transform:translateY(-20px) translateX(10px);opacity:.8}50%{transform:translateY(-40px) translateX(-5px);opacity:1}75%{transform:translateY(-20px) translateX(-10px);opacity:.8}}.animate-in{animation:.8s ease-out forwards slideInUp}@keyframes slideInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.typing-indicator{display:flex;gap:4px;margin-top:8px}.typing-indicator span{width:8px;height:8px;background:var(--accent-ai);border-radius:50%;animation:1.4s infinite typing}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,100%,60%{transform:translateY(0);opacity:.4}30%{transform:translateY(-10px);opacity:1}}@keyframes gradient-shift{0%,100%{filter:hue-rotate(0deg)}50%{filter:hue-rotate(45deg)}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes float-interface{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(1deg)}}@keyframes float-tool{0%,100%{transform:translateY(0);opacity:.7}50%{transform:translateY(-10px);opacity:1}}