@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Outfit:wght@400;500;600;700;800;900&display=swap";:root{--color-bg-dark: #0a0e27;--color-bg-darker: #050814;--color-bg-card: #131829;--color-bg-elevated: #1a2035;--color-primary: #00f0ff;--color-secondary: #ff00ff;--color-tertiary: #ffff00;--color-success: #00ff88;--color-warning: #ffaa00;--color-danger: #ff3366;--color-text-primary: #ffffff;--color-text-secondary: #a0aec0;--color-text-muted: #6b7280;--gradient-primary: linear-gradient(135deg, #00f0ff 0%, #0088ff 100%);--gradient-secondary: linear-gradient(135deg, #ff00ff 0%, #ff0088 100%);--gradient-rainbow: linear-gradient(135deg, #00f0ff 0%, #ff00ff 50%, #ffff00 100%);--gradient-success: linear-gradient(135deg, #00ff88 0%, #00cc66 100%);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--font-primary: "Inter", -apple-system, sans-serif;--font-display: "Outfit", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--font-size-5xl: 3rem;--border-width: 3px;--border-color: #00f0ff;--border-radius: 0;--shadow-brutal-sm: 4px 4px 0 var(--color-primary);--shadow-brutal-md: 6px 6px 0 var(--color-primary);--shadow-brutal-lg: 8px 8px 0 var(--color-primary);--shadow-brutal-xl: 12px 12px 0 var(--color-primary);--glass-bg: rgba(19, 24, 41, .75);--glass-border: rgba(255, 255, 255, .1);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .4);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.68, -.55, .265, 1.55);--z-base: 1;--z-elevated: 10;--z-modal: 100;--z-toast: 1000}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-primary);font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-primary);background:var(--color-bg-dark);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 50%,rgba(0,240,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,0,255,.1) 0%,transparent 50%),radial-gradient(circle at 40% 20%,rgba(255,255,0,.05) 0%,transparent 50%);z-index:-1;animation:bgShift 20s ease-in-out infinite}@keyframes bgShift{0%,to{opacity:1}50%{opacity:.7}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-3xl)}h4{font-size:var(--font-size-2xl)}h5{font-size:var(--font-size-xl)}h6{font-size:var(--font-size-lg)}p{margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-secondary)}.text-gradient{background:var(--gradient-rainbow);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-muted{color:var(--color-text-muted)}.kinetic-text{display:inline-block;animation:kinetic .6s cubic-bezier(.68,-.55,.265,1.55)}@keyframes kinetic{0%{transform:scale(.5) rotate(-5deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.container{max-width:1400px;margin:0 auto;padding:0 var(--spacing-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.grid{display:grid;gap:var(--spacing-lg)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media(max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.transition-all{transition:all var(--transition-base)}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-brutal-lg)}.hover-glow{position:relative;transition:all var(--transition-base)}.hover-glow:before{content:"";position:absolute;inset:-2px;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-base);z-index:-1;filter:blur(10px)}.hover-glow:hover:before{opacity:.5}.spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--color-bg-darker)}::-webkit-scrollbar-thumb{background:var(--gradient-primary);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}button:focus-visible,a:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}@media(max-width:1024px){:root{--font-size-5xl: 2.5rem;--font-size-4xl: 2rem;--font-size-3xl: 1.75rem}}@media(max-width:768px){:root{--font-size-5xl: 2rem;--font-size-4xl: 1.75rem;--font-size-3xl: 1.5rem}.container{padding:0 var(--spacing-md)}}.loading-screen{position:fixed;inset:0;background:var(--color-bg-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xl);z-index:9999;transition:opacity .5s ease-out}.loading-screen.hidden{opacity:0;pointer-events:none}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:var(--bg-primary)}.auth-card{background:var(--bg-secondary);border:3px solid var(--border-color);box-shadow:var(--shadow-brutal);padding:var(--spacing-xl);max-width:450px;width:100%}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-header h1{font-size:2rem;margin-bottom:var(--spacing-sm);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-header p{color:var(--text-secondary)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-weight:600;font-size:.9rem;color:var(--text-primary)}.form-group input{padding:var(--spacing-md);background:var(--bg-primary);border:2px solid var(--border-color);border-radius:0;color:var(--text-primary);font-size:1rem;transition:all var(--transition-base)}.form-group input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #5856d61a}.form-group small{font-size:.8rem;color:var(--text-secondary)}.error-message{padding:var(--spacing-md);background:#ef44441a;border:2px solid var(--error-color);color:var(--error-color);font-size:.9rem;display:none}.error-message:not(:empty){display:block}.auth-footer{margin-top:var(--spacing-lg);text-align:center}.auth-footer p{margin-bottom:var(--spacing-sm);color:var(--text-secondary)}.auth-footer a{color:var(--accent-primary);text-decoration:none;font-weight:600;transition:all var(--transition-base)}.auth-footer a:hover{color:var(--accent-secondary);text-decoration:underline}.demo-note{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:2px solid var(--border-color);font-size:.9rem}.btn-loader{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);font-family:var(--font-display);font-size:var(--font-size-base);font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:var(--border-width) solid;background:transparent;cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.btn:before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--transition-fast)}.btn:hover:before{opacity:.1}.btn:active{transform:translate(4px,4px)}.btn-primary{color:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-brutal-sm)}.btn-primary:hover{box-shadow:var(--shadow-brutal-md)}.btn-secondary{color:var(--color-secondary);border-color:var(--color-secondary);box-shadow:4px 4px 0 var(--color-secondary)}.btn-success{color:var(--color-success);border-color:var(--color-success);box-shadow:4px 4px 0 var(--color-success)}.btn-neon{color:var(--color-bg-dark);background:var(--gradient-primary);border-color:var(--color-primary);box-shadow:var(--shadow-brutal-md);position:relative}.btn-neon:after{content:"";position:absolute;inset:-2px;background:var(--gradient-primary);opacity:0;filter:blur(15px);z-index:-1;transition:opacity var(--transition-base)}.btn-neon:hover:after{opacity:.8}.btn-small{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.btn-large{padding:var(--spacing-lg) var(--spacing-2xl);font-size:var(--font-size-lg)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.card{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:var(--border-width) solid var(--glass-border);padding:var(--spacing-xl);position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0;background:var(--gradient-rainbow);opacity:0;transition:opacity var(--transition-base);pointer-events:none}.card:hover:before{opacity:.03}.card-brutal{background:var(--color-bg-card);border:var(--border-width) solid var(--color-primary);box-shadow:var(--shadow-brutal-md);transition:all var(--transition-base);padding:var(--spacing-lg)}.card-brutal:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-brutal-lg)}.card-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--glass-border)}.card-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xs)}.card-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.quest-card{background:var(--color-bg-card);border:var(--border-width) solid var(--color-primary);box-shadow:var(--shadow-brutal-md);padding:var(--spacing-xl);cursor:pointer;transition:all var(--transition-base);position:relative}.quest-card:after{content:"";position:absolute;top:0;right:0;width:100px;height:100px;background:var(--gradient-primary);opacity:.1;clip-path:polygon(100% 0,0 0,100% 100%)}.quest-card:hover{transform:translate(-3px,-3px);box-shadow:10px 10px 0 var(--color-primary)}.quest-card.locked{opacity:.6;cursor:not-allowed;border-color:var(--color-text-muted);box-shadow:6px 6px 0 var(--color-text-muted)}.quest-difficulty{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;border:2px solid;margin-bottom:var(--spacing-md)}.quest-difficulty.easy{color:var(--color-success);border-color:var(--color-success)}.quest-difficulty.medium{color:var(--color-warning);border-color:var(--color-warning)}.quest-difficulty.hard{color:var(--color-danger);border-color:var(--color-danger)}.quest-xp{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-primary);font-weight:600}.badge-container{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.badge{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-bg-card);border:var(--border-width) solid var(--color-tertiary);box-shadow:4px 4px 0 var(--color-tertiary);transition:all var(--transition-bounce);position:relative}.badge.earned{border-color:var(--color-success);box-shadow:4px 4px 0 var(--color-success)}.badge.locked{opacity:.4;filter:grayscale(100%)}.badge-icon{font-size:var(--font-size-4xl);filter:drop-shadow(0 0 10px currentColor)}.badge-name{font-size:var(--font-size-sm);font-weight:700;text-align:center}.badge-rarity{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.1em}.badge-rarity.common{color:var(--color-text-secondary)}.badge-rarity.rare{color:var(--color-primary)}.badge-rarity.epic{color:var(--color-secondary)}.badge-rarity.legendary{background:var(--gradient-rainbow);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.progress{width:100%;height:30px;background:var(--color-bg-darker);border:var(--border-width) solid var(--color-primary);position:relative;overflow:hidden}.progress-bar{height:100%;background:var(--gradient-primary);transition:width var(--transition-slow);position:relative;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:700;color:var(--color-bg-dark)}.progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-xp{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-primary);z-index:1;text-shadow:0 2px 4px rgba(0,0,0,.8)}.leaderboard{background:var(--color-bg-card);border:var(--border-width) solid var(--color-primary);box-shadow:var(--shadow-brutal-lg)}.leaderboard-header{padding:var(--spacing-lg);background:var(--gradient-primary);color:var(--color-bg-dark);border-bottom:var(--border-width) solid var(--color-primary)}.leaderboard-tabs{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-darker);border-bottom:var(--border-width) solid var(--color-primary)}.leaderboard-tab{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:2px solid var(--color-text-muted);color:var(--color-text-muted);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.leaderboard-tab.active{border-color:var(--color-primary);color:var(--color-primary);box-shadow:3px 3px 0 var(--color-primary)}.leaderboard-list{list-style:none}.leaderboard-item{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--glass-border);transition:all var(--transition-fast)}.leaderboard-item:hover{background:#00f0ff0d}.leaderboard-item.current-user{background:#00f0ff1a;border-left:4px solid var(--color-primary)}.leaderboard-rank{font-size:var(--font-size-2xl);font-weight:900;font-family:var(--font-display)}.leaderboard-rank.top-1{color:gold}.leaderboard-rank.top-2{color:silver}.leaderboard-rank.top-3{color:#cd7f32}.leaderboard-user{display:flex;align-items:center;gap:var(--spacing-md)}.leaderboard-avatar{width:40px;height:40px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-weight:700;border:2px solid var(--color-primary)}.leaderboard-name{font-weight:600}.leaderboard-score{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary)}.modal-overlay{position:fixed;inset:0;background:#050814e6;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-lg);animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-bg-card);border:var(--border-width) solid var(--color-primary);box-shadow:var(--shadow-brutal-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:var(--spacing-xl);border-bottom:var(--border-width) solid var(--glass-border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:var(--font-size-2xl);margin:0}.modal-close{width:32px;height:32px;background:transparent;border:2px solid var(--color-text-secondary);color:var(--color-text-secondary);font-size:var(--font-size-xl);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{border-color:var(--color-danger);color:var(--color-danger)}.modal-body{padding:var(--spacing-xl)}.modal-footer{padding:var(--spacing-xl);border-top:var(--border-width) solid var(--glass-border);display:flex;gap:var(--spacing-md);justify-content:flex-end}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:600;color:var(--color-text-secondary)}.form-input{width:100%;padding:var(--spacing-md);background:var(--color-bg-darker);border:var(--border-width) solid var(--color-primary);color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--font-size-base);transition:all var(--transition-fast)}.form-input:focus{outline:none;box-shadow:var(--shadow-brutal-sm)}.form-input::placeholder{color:var(--color-text-muted)}.form-select{width:100%;padding:var(--spacing-md);background:var(--color-bg-darker);border:var(--border-width) solid var(--color-primary);color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--font-size-base);cursor:pointer}.form-checkbox{width:20px;height:20px;border:2px solid var(--color-primary);background:var(--color-bg-darker);cursor:pointer}.skill-tree{padding:var(--spacing-2xl);position:relative;min-height:600px}.skill-node{position:absolute;width:80px;height:80px;background:var(--color-bg-card);border:var(--border-width) solid var(--color-primary);box-shadow:var(--shadow-brutal-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-bounce)}.skill-node:hover{transform:scale(1.1);box-shadow:var(--shadow-brutal-md)}.skill-node.unlocked{border-color:var(--color-success);box-shadow:4px 4px 0 var(--color-success)}.skill-node.locked{opacity:.4;border-color:var(--color-text-muted);cursor:not-allowed}.skill-node-icon{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xs)}.skill-node-name{font-size:var(--font-size-xs);text-align:center;font-weight:700}.skill-connection{stroke:var(--color-primary);stroke-width:3;fill:none;opacity:.3}.skill-connection.unlocked{opacity:1;stroke:var(--color-success)}.toast-container{position:fixed;top:var(--spacing-xl);right:var(--spacing-xl);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--spacing-md)}.toast{background:var(--color-bg-card);border:var(--border-width) solid;box-shadow:var(--shadow-brutal-md);padding:var(--spacing-md) var(--spacing-lg);min-width:300px;animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast.success{border-color:var(--color-success)}.toast.error{border-color:var(--color-danger)}.toast.info{border-color:var(--color-primary)}.toast.warning{border-color:var(--color-warning)}.toast-title{font-weight:700;margin-bottom:var(--spacing-xs)}.toast-message{font-size:var(--font-size-sm);color:var(--color-text-secondary)}
