:root{--primary: #6C5CE7;--primary-light: #A29BFE;--primary-dark: #5A4BD1;--secondary: #00CEC9;--secondary-light: #55EFC4;--accent: #FDCB6E;--accent-dark: #F39C12;--success: #00B894;--success-light: #55EFC4;--danger: #FF7675;--danger-light: #FFB8B8;--warning: #FFEAA7;--info: #74B9FF;--bg: #F0F0FF;--bg-warm: #FFF8F0;--bg-card: #FFFFFF;--bg-card-hover: #F8F8FF;--text: #2D3436;--text-light: #636E72;--text-muted: #B2BEC3;--text-white: #FFFFFF;--xp-gradient: linear-gradient(135deg, #6C5CE7, #A29BFE);--success-gradient: linear-gradient(135deg, #00B894, #55EFC4);--danger-gradient: linear-gradient(135deg, #FF7675, #FDCB6E);--world-1: #4CAF50;--world-2: #FF9800;--world-3: #9C27B0;--world-4: #2196F3;--shadow-sm: 0 2px 8px rgba(108, 92, 231, .08);--shadow-md: 0 4px 16px rgba(108, 92, 231, .12);--shadow-lg: 0 8px 32px rgba(108, 92, 231, .16);--shadow-glow: 0 0 20px rgba(108, 92, 231, .3);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--font: "Nunito", -apple-system, BlinkMacSystemFont, sans-serif;--transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;font-size:16px}#root{min-height:100vh;display:flex;flex-direction:column}img{max-width:100%;display:block}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border:none;border-radius:var(--radius-md);font-family:var(--font);font-size:16px;font-weight:700;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),background var(--transition);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;min-height:52px}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0) scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--xp-gradient);color:var(--text-white);box-shadow:0 4px 12px #6c5ce74d}.btn-secondary{background:var(--secondary);color:var(--text-white);box-shadow:0 4px 12px #00cec94d}.btn-success{background:var(--success-gradient);color:var(--text-white)}.btn-danger{background:var(--danger);color:var(--text-white)}.btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary-light)}.btn-outline:hover{background:var(--primary);color:#fff}.btn-ghost{background:transparent;color:var(--text-light)}.btn-ghost:hover{background:#6c5ce714}.btn-lg{padding:18px 36px;font-size:18px;min-height:60px;border-radius:var(--radius-lg)}.btn-sm{padding:8px 16px;font-size:14px;min-height:38px;border-radius:var(--radius-sm)}.btn-icon{width:48px;height:48px;padding:0;border-radius:var(--radius-full);font-size:20px}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition)}.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-colored{border-left:5px solid var(--primary)}.input{width:100%;padding:14px 18px;border:2px solid #E0E0E0;border-radius:var(--radius-md);font-family:var(--font);font-size:16px;font-weight:600;color:var(--text);background:var(--bg-card);transition:border-color var(--transition),box-shadow var(--transition);outline:none}.input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #6c5ce726}.input::placeholder{color:var(--text-muted);font-weight:400}.input-lg{padding:18px 22px;font-size:20px;border-radius:var(--radius-lg)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23636E72' fill='none' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:48px}.label{display:block;font-size:14px;font-weight:700;color:var(--text-light);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.progress-bar{height:12px;background:#e8e8f0;border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar-fill{height:100%;border-radius:var(--radius-full);background:var(--xp-gradient);transition:width .5s ease;position:relative}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s ease infinite}.progress-bar-lg{height:20px;border-radius:var(--radius-md)}.progress-bar-lg .progress-bar-fill{border-radius:var(--radius-md)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes correctPop{0%{transform:scale(1)}30%{transform:scale(1.15)}60%{transform:scale(.95)}to{transform:scale(1)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes xpFloat{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-60px) scale(1.3)}}@keyframes starAppear{0%{opacity:0;transform:scale(0) rotate(-180deg)}60%{transform:scale(1.3) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes confettiBurst{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(-200px) rotate(720deg)}}@keyframes glowPulse{0%,to{box-shadow:0 0 8px #6c5ce74d}50%{box-shadow:0 0 24px #6c5ce799}}.animate-fadeIn{animation:fadeIn .3s ease}.animate-slideUp{animation:slideUp .4s ease}.animate-slideDown{animation:slideDown .4s ease}.animate-scaleIn{animation:scaleIn .3s ease}.animate-bounce{animation:bounce .5s ease}.animate-pulse{animation:pulse 2s ease infinite}.animate-shake{animation:shake .4s ease}.animate-correctPop{animation:correctPop .4s ease}.animate-float{animation:float 3s ease infinite}.animate-glow{animation:glowPulse 2s ease infinite}.container{max-width:1200px;margin:0 auto;padding:0 20px}.container-sm{max-width:500px;margin:0 auto;padding:0 20px}.container-md{max-width:800px;margin:0 auto;padding:0 20px}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.gap-8{gap:32px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.p-3{padding:12px}.p-4{padding:16px}.p-6{padding:24px}.text-center{text-align:center}.text-sm{font-size:14px}.text-lg{font-size:18px}.text-xl{font-size:22px}.text-2xl{font-size:28px}.text-3xl{font-size:36px}.text-4xl{font-size:48px}.font-bold{font-weight:700}.font-extra{font-weight:800}.font-black{font-weight:900}.text-primary{color:var(--primary)}.text-secondary{color:var(--secondary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-muted{color:var(--text-muted)}.text-light{color:var(--text-light)}.text-accent{color:var(--accent-dark)}.w-full{width:100%}.h-full{height:100%}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.overflow-hidden{overflow:hidden}.relative{position:relative}.absolute{position:absolute}.sticky{position:sticky}.top-bar{background:var(--bg-card);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;gap:12px}.top-bar-logo{font-size:22px;font-weight:900;background:var(--xp-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.xp-badge{display:flex;align-items:center;gap:8px;background:var(--bg);padding:6px 14px;border-radius:var(--radius-full);font-weight:700;font-size:14px}.coin-badge{display:flex;align-items:center;gap:4px;font-weight:700;color:var(--accent-dark);font-size:15px}.streak-badge{display:flex;align-items:center;gap:4px;font-weight:700;color:var(--danger);font-size:15px}.level-circle{width:36px;height:36px;border-radius:50%;background:var(--xp-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}.avatar-circle{width:40px;height:40px;border-radius:50%;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer}.world-card{border-radius:var(--radius-xl);padding:28px;color:#fff;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition);position:relative;overflow:hidden}.world-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.world-card:after{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%)}.quest-node{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--bg-card);border-radius:var(--radius-lg);cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);border:2px solid transparent;position:relative}.quest-node:hover{transform:translate(4px);box-shadow:var(--shadow-md)}.quest-node.available{border-color:var(--primary-light)}.quest-node.available:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:var(--radius-lg);border:2px solid var(--primary-light);animation:glowPulse 2s ease infinite}.quest-node.completed{border-color:var(--success);background:#f0fff4}.quest-node.locked{opacity:.5;cursor:not-allowed}.quest-node.boss{border-color:var(--accent-dark);background:#fffdf0}.quest-node.boss.completed{background:#fff8e1}.quest-connector{width:3px;height:24px;background:#e0e0e0;margin-left:36px}.quest-connector.completed{background:var(--success)}.quest-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.stars-display{display:flex;gap:2px;font-size:18px}.question-area{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.question-stem{font-size:24px;font-weight:800;text-align:center;margin-bottom:32px;line-height:1.4;max-width:600px}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%;max-width:500px}.option-btn{padding:18px 20px;border:3px solid #E8E8F0;border-radius:var(--radius-lg);background:var(--bg-card);font-family:var(--font);font-size:18px;font-weight:700;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;gap:12px;min-height:64px}.option-btn:hover{border-color:var(--primary);background:#f8f6ff;transform:scale(1.02)}.option-btn:active{transform:scale(.98)}.option-btn.selected{border-color:var(--primary);background:#ede9ff}.option-btn.correct{border-color:var(--success);background:#dffff0;animation:correctPop .4s ease}.option-btn.wrong{border-color:var(--danger);background:#fff0f0;animation:shake .4s ease}.option-letter{width:32px;height:32px;border-radius:50%;background:#f0f0ff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:var(--primary);flex-shrink:0}.option-btn.correct .option-letter{background:var(--success);color:#fff}.option-btn.wrong .option-letter{background:var(--danger);color:#fff}.fill-blank-input{width:200px;padding:18px 24px;border:3px solid #E8E8F0;border-radius:var(--radius-lg);font-family:var(--font);font-size:28px;font-weight:800;text-align:center;color:var(--text);outline:none;transition:border-color var(--transition)}.fill-blank-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #6c5ce726}.xp-float{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;font-weight:900;color:var(--primary);pointer-events:none;animation:xpFloat 1.2s ease forwards;z-index:1000}.session-complete{text-align:center;padding:40px 20px;animation:scaleIn .5s ease}.stars-earned{font-size:56px;display:flex;justify-content:center;gap:8px;margin:24px 0}.stars-earned span{display:inline-block}.stars-earned .star-1{animation:starAppear .5s ease .1s both}.stars-earned .star-2{animation:starAppear .5s ease .3s both}.stars-earned .star-3{animation:starAppear .5s ease .5s both}.hint-card{background:#fffdf0;border:2px solid var(--accent);border-radius:var(--radius-md);padding:16px 20px;margin-top:16px;max-width:500px;animation:slideUp .3s ease}.solution-card{background:#f0fff4;border:2px solid var(--success);border-radius:var(--radius-md);padding:16px 20px;margin-top:16px;max-width:500px;animation:slideUp .3s ease;text-align:left}.stat-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:20px;text-align:center;box-shadow:var(--shadow-sm)}.stat-value{font-size:32px;font-weight:900;color:var(--primary);line-height:1.2}.stat-label{font-size:13px;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.mastery-bar{display:flex;align-items:center;gap:12px;padding:12px 0}.mastery-label{width:140px;font-weight:600;font-size:14px;flex-shrink:0}.mastery-track{flex:1;height:16px;background:#e8e8f0;border-radius:var(--radius-full);overflow:hidden}.mastery-fill{height:100%;border-radius:var(--radius-full);transition:width .6s ease}.mastery-value{width:50px;text-align:right;font-weight:700;font-size:14px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6c5ce7,#a29bfe,#74b9ff);padding:20px}.auth-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:40px;width:100%;max-width:440px;box-shadow:var(--shadow-lg);animation:scaleIn .4s ease}.auth-title{font-size:28px;font-weight:900;text-align:center;margin-bottom:8px}.auth-mascot{font-size:64px;text-align:center;margin-bottom:16px;animation:float 3s ease infinite}.error-msg{background:var(--danger-light);color:#c0392b;padding:12px 16px;border-radius:var(--radius-md);font-size:14px;font-weight:600;margin-bottom:16px;animation:shake .3s ease}@media (max-width: 768px){.option-grid{grid-template-columns:1fr}.grid-4,.grid-3{grid-template-columns:1fr 1fr}.question-stem{font-size:20px}.top-bar{padding:10px 16px}.auth-card{padding:28px 24px}.container{padding:0 16px}.hide-mobile{display:none}}@media (max-width: 480px){.grid-4{grid-template-columns:1fr}.option-grid{gap:10px}.option-btn{padding:14px 16px;font-size:16px;min-height:56px}}
