@charset "UTF-8";:root{--primary: #6C5CE7;--primary-light: #A29BFE;--primary-dark: #5341D6;--primary-bg: rgba(108, 92, 231, .08);--success: #00B894;--success-light: #55EFC4;--success-bg: rgba(0, 184, 148, .1);--warning: #FDCB6E;--warning-dark: #E17055;--warning-bg: rgba(253, 203, 110, .15);--error: #FF6B6B;--error-bg: rgba(255, 107, 107, .1);--info: #74B9FF;--info-bg: rgba(116, 185, 255, .1);--xp-gold: #FDCB6E;--xp-glow: rgba(253, 203, 110, .4);--streak-orange: #E17055;--mastery-green: #00B894;--locked-gray: #B2BEC3;--bg-app: #F8F7FF;--bg-gradient: linear-gradient(160deg, #F8F7FF 0%, #EDE9FF 40%, #F0F8FF 100%);--bg-card: #FFFFFF;--bg-overlay: rgba(45, 27, 105, .6);--text-primary: #1A1A2E;--text-secondary: #6B7280;--text-muted: #9CA3AF;--text-inverse: #FFFFFF;--border: #E0DCD6;--border-light: #EBE7E1;--font-display: "Nunito", sans-serif;--font-body: "Plus Jakarta Sans", -apple-system, sans-serif;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-lg: 17px;--text-xl: 22px;--text-2xl: 28px;--text-3xl: 36px;--text-4xl: 48px;--sp-xs: 4px;--sp-sm: 8px;--sp-md: 16px;--sp-lg: 24px;--sp-xl: 32px;--sp-2xl: 48px;--sp-3xl: 64px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .03);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .08);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--t-fast: .15s cubic-bezier(.16, 1, .3, 1);--t-base: .3s cubic-bezier(.16, 1, .3, 1);--t-slow: .5s cubic-bezier(.16, 1, .3, 1);--t-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--touch-target: 48px;--font-scale: 1}.age-6-8{--touch-target: 64px;--font-scale: 1.3}.age-9-12{--touch-target: 48px;--font-scale: 1}.age-13-16{--touch-target: 40px;--font-scale: .9}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-body);color:var(--text-primary);background:var(--bg-app);line-height:1.6;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:calc(var(--text-base) * var(--font-scale))}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:700;line-height:1.2}button{font-family:inherit;cursor:pointer;border:none;outline:none;min-height:var(--touch-target)}a{color:var(--primary);text-decoration:none}img{max-width:100%;display:block}.progress-bar{width:100%;height:10px;background:var(--border-light);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:var(--radius-full);transition:width .6s var(--ease-out)}.progress-fill.success{background:linear-gradient(90deg,var(--success),var(--success-light))}.progress-fill.xp{background:linear-gradient(90deg,var(--xp-gold),#FDE68A)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.badge-primary{background:var(--primary-bg);color:var(--primary)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning-dark)}.badge-error{background:var(--error-bg);color:var(--error)}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes xpPop{0%{opacity:0;transform:translateY(0) scale(.5)}50%{opacity:1;transform:translateY(-20px) scale(1.2)}to{opacity:0;transform:translateY(-40px) scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.animate-in{opacity:0;animation:fadeInUp .6s var(--ease-out) forwards}.animate-in:nth-child(1){animation-delay:.05s}.animate-in:nth-child(2){animation-delay:.1s}.animate-in:nth-child(3){animation-delay:.15s}.animate-in:nth-child(4){animation-delay:.2s}.animate-in:nth-child(5){animation-delay:.25s}.animate-in:nth-child(6){animation-delay:.3s}
