:root{--background:#09090b;--foreground:#fcfcfd;--primary:#8b5cf6;--primary-foreground:#fff;--secondary:#3b82f6;--accent:#ec4899;--status-strong:#10b981;--status-developing:#f59e0b;--status-needs-practice:#ef4444;--status-blocked:#64748b;--border:#ffffff1a;--glass-bg:#ffffff08;--radius:.5rem}body{color:var(--foreground);background:var(--background)}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-spin-slow{animation:3s linear infinite spin}.animate-progress-indeterminate{animation:2s ease-in-out infinite progress-indeterminate}@keyframes pulse-slow{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.animate-pulse-slow{animation:8s cubic-bezier(.4,0,.6,1) infinite pulse-slow}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);box-shadow:0 8px 32px #0000004d}*,html,body{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-track{background:0 0}.custom-scrollbar::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:10px}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.primary-gradient{background:linear-gradient(135deg,#8b5cf6 0%,#3b82f6 50%,#ec4899 100%)}.shimmer-progress{position:relative;overflow:hidden}.shimmer-progress:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);width:100%;height:100%;animation:2s infinite shimmer;position:absolute;top:0;left:-100%}@keyframes shimmer{to{left:100%}}@keyframes float-gentle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-float{animation:5s ease-in-out infinite float-gentle}
