:root{--color-red: #FF6B6B;--color-teal: #4ECDC4;--color-blue: #45B7D1;--color-orange: #FFA07A;--color-green: #98D8C8;--color-purple: #DDA0DD;--color-yellow: #FFD93D;--color-pink: #FF69B4;--color-lime: #6BCB77;--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-warm: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-cool: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);--gradient-sunset: linear-gradient(135deg, #fa709a 0%, #fee140 100%);--gradient-ocean: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);--gradient-candy: linear-gradient(135deg, #f5af19 0%, #f12711 100%);--gradient-forest: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);--gradient-card: linear-gradient(145deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.05) 100%);--glass-bg: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .15);--glass-hover: rgba(255, 255, 255, .15);--glass-active: rgba(255, 255, 255, .2);--shadow-soft: 0 8px 32px rgba(0, 0, 0, .3);--shadow-glow: 0 0 20px rgba(78, 205, 196, .3);--shadow-card: 0 4px 16px rgba(0, 0, 0, .2);--font-display: "Fredoka", sans-serif;--font-body: "Nunito", sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);color:#fff;overflow-x:hidden;min-height:100vh;background:#1a0533;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700}#three-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}#three-bg canvas{display:block}#app{position:relative;z-index:1;min-height:100vh}#page-container{min-height:100vh}#loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:1000;background:linear-gradient(135deg,#1a0533,#0d0d2b);transition:opacity .8s ease,transform .8s ease}#loading-screen.hidden{opacity:0;transform:scale(1.1);pointer-events:none}.loading-content{text-align:center}.loading-logo{font-size:80px;animation:float 2s ease-in-out infinite,pulse 1s ease-in-out infinite;margin-bottom:var(--space-lg)}.loading-title{font-family:var(--font-display);font-size:3rem;background:linear-gradient(135deg,var(--color-yellow),var(--color-pink),var(--color-teal));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-sm)}.loading-subtitle{font-size:1.1rem;opacity:.7;margin-bottom:var(--space-xl)}.loading-bar{width:200px;height:6px;background:#ffffff1a;border-radius:var(--radius-full);margin:0 auto;overflow:hidden}.loading-bar-fill{width:0%;height:100%;background:var(--gradient-sunset);border-radius:var(--radius-full);transition:width .3s ease;animation:loadingProgress 2s ease-in-out forwards}.screen{display:none;min-height:100vh;padding:var(--space-lg);animation:fadeIn .5s ease forwards}.screen.active{display:flex;flex-direction:column;align-items:center}.glass-card{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-soft);transition:var(--transition-normal)}.glass-card:hover{background:var(--glass-hover);transform:translateY(-2px);box-shadow:var(--shadow-soft),var(--shadow-glow)}.btn{font-family:var(--font-display);font-size:1.1rem;font-weight:600;padding:var(--space-md) var(--space-xl);border:none;border-radius:var(--radius-full);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);transition:var(--transition-bounce);position:relative;overflow:hidden;color:#fff;text-decoration:none;user-select:none;-webkit-user-select:none}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn:hover:before{left:100%}.btn:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 10px 30px #0000004d}.btn:active{transform:translateY(0) scale(.98)}.btn-primary{background:var(--gradient-primary);box-shadow:0 4px 15px #667eea66}.btn-success{background:var(--gradient-forest);box-shadow:0 4px 15px #11998e66}.btn-danger{background:var(--gradient-candy);box-shadow:0 4px 15px #f1271166}.btn-warm{background:var(--gradient-warm);box-shadow:0 4px 15px #f5576c66}.btn-cool{background:var(--gradient-cool);box-shadow:0 4px 15px #4facfe66}.btn-sunset{background:var(--gradient-sunset);box-shadow:0 4px 15px #fa709a66}.btn-lg{font-size:1.4rem;padding:var(--space-lg) var(--space-2xl)}.btn-sm{font-size:.9rem;padding:var(--space-sm) var(--space-md)}.btn-icon{width:50px;height:50px;padding:0;border-radius:50%;font-size:1.3rem}.btn-icon.large{width:70px;height:70px;font-size:1.8rem}.btn-ghost{background:transparent;border:2px solid var(--glass-border);color:#fff}.btn-ghost:hover{background:var(--glass-hover);border-color:#ffffff4d}.input-field{font-family:var(--font-body);font-size:1.1rem;padding:var(--space-md) var(--space-lg);background:var(--glass-bg);border:2px solid var(--glass-border);border-radius:var(--radius-md);color:#fff;width:100%;transition:var(--transition-normal);outline:none}.input-field:focus{border-color:var(--color-teal);background:var(--glass-hover);box-shadow:0 0 20px #4ecdc433}.input-field::placeholder{color:#fff6}.letter-display{font-family:var(--font-display);font-size:8rem;font-weight:700;text-align:center;background:linear-gradient(135deg,var(--color-yellow),var(--color-pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none;animation:popIn .5s cubic-bezier(.34,1.56,.64,1) forwards;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.letter-display.correct{background:linear-gradient(135deg,var(--color-lime),var(--color-teal));-webkit-background-clip:text;background-clip:text;animation:correctBounce .5s ease}.letter-display.wrong{background:linear-gradient(135deg,var(--color-red),var(--color-orange));-webkit-background-clip:text;background-clip:text;animation:shake .5s ease}.mic-button{width:80px;height:80px;border-radius:50%;border:3px solid var(--glass-border);background:var(--glass-bg);color:#fff;font-size:2rem;cursor:pointer;transition:var(--transition-bounce);position:relative;display:flex;align-items:center;justify-content:center}.mic-button:hover{transform:scale(1.1);border-color:var(--color-teal)}.mic-button.listening{border-color:var(--color-red);background:#ff6b6b33;animation:micPulse 1.5s ease-in-out infinite}.mic-button .ripple{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid var(--color-red);opacity:0;animation:rippleExpand 1.5s ease-out infinite}.mic-button .ripple:nth-child(2){animation-delay:.5s}.mic-button .ripple:nth-child(3){animation-delay:1s}.stars-display{display:flex;gap:var(--space-sm);justify-content:center}.star{font-size:2rem;transition:var(--transition-bounce);filter:grayscale(1) brightness(.3)}.star.earned{filter:none;animation:starEarn .5s cubic-bezier(.34,1.56,.64,1) forwards}.star.earned:nth-child(2){animation-delay:.2s}.star.earned:nth-child(3){animation-delay:.4s}.progress-bar{width:100%;height:12px;background:#ffffff1a;border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .5s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}.level-card{background:var(--glass-bg);border:2px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);cursor:pointer;transition:var(--transition-bounce);text-align:center;position:relative;overflow:hidden}.level-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(transparent,rgba(255,255,255,.05),transparent 30%);animation:rotate 4s linear infinite;opacity:0;transition:opacity .3s}.level-card:hover:before{opacity:1}.level-card:hover{transform:translateY(-5px) scale(1.02);border-color:#ffffff4d;box-shadow:var(--shadow-soft),var(--shadow-glow)}.level-card.locked{opacity:.4;cursor:not-allowed;filter:grayscale(.5)}.level-card.locked:hover{transform:none;box-shadow:none}.level-card .level-icon{font-size:3rem;margin-bottom:var(--space-sm);display:block}.level-card .level-name{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin-bottom:var(--space-xs)}.level-card .level-desc{font-size:.85rem;opacity:.7}.level-card .lock-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.syllable-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:var(--space-md);width:100%;max-width:600px}.syllable-item{background:var(--glass-bg);border:2px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;font-family:var(--font-display);font-size:1.3rem;font-weight:600;cursor:pointer;transition:var(--transition-bounce);position:relative}.syllable-item:hover{transform:scale(1.1);border-color:var(--color-teal);background:var(--glass-hover)}.syllable-item.completed{border-color:var(--color-lime);background:#6bcb7726}.syllable-item.completed:after{content:"✓";position:absolute;top:-4px;right:-4px;background:var(--color-lime);color:#1a1a2e;width:20px;height:20px;border-radius:50%;font-size:.7rem;display:flex;align-items:center;justify-content:center;font-weight:700}.group-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);margin-top:var(--space-xl)}.group-header h3{font-family:var(--font-display);font-size:1.2rem;color:var(--color-yellow)}.group-header .line{flex:1;height:2px;background:linear-gradient(90deg,var(--color-yellow),transparent);border-radius:var(--radius-full)}.result-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .3s ease}.result-card{background:var(--gradient-card);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-3xl);text-align:center;max-width:400px;width:90%;animation:popIn .5s cubic-bezier(.34,1.56,.64,1) forwards}.result-card .result-emoji{font-size:5rem;margin-bottom:var(--space-md);animation:float 2s ease-in-out infinite}.result-card .result-title{font-size:1.8rem;margin-bottom:var(--space-sm);background:linear-gradient(135deg,var(--color-yellow),var(--color-pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.result-card .result-score{font-size:1.1rem;opacity:.8;margin-bottom:var(--space-lg)}.result-card .result-actions{display:flex;gap:var(--space-md);justify-content:center;flex-wrap:wrap}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);width:100%;max-width:1200px;margin:0 auto}.app-header .logo{font-family:var(--font-display);font-size:1.5rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:var(--space-sm);transition:var(--transition-normal)}.app-header .logo:hover{transform:scale(1.05)}.app-header .header-actions{display:flex;gap:var(--space-sm);align-items:center}.avatar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin:var(--space-lg) 0}.avatar-option{width:60px;height:60px;border-radius:50%;background:var(--glass-bg);border:3px solid var(--glass-border);display:flex;align-items:center;justify-content:center;font-size:2rem;cursor:pointer;transition:var(--transition-bounce)}.avatar-option:hover{transform:scale(1.15);border-color:var(--color-teal)}.avatar-option.selected{border-color:var(--color-yellow);background:#ffd93d26;box-shadow:0 0 15px #ffd93d4d}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-md);width:100%;max-width:800px}.badge-card{background:var(--glass-bg);border:2px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-md);text-align:center;transition:var(--transition-bounce)}.badge-card:hover{transform:translateY(-3px)}.badge-card.earned{border-color:var(--color-yellow);background:#ffd93d14}.badge-card.locked{opacity:.4}.badge-card .badge-icon{font-size:2.5rem;margin-bottom:var(--space-sm);display:block}.badge-card.locked .badge-icon{filter:grayscale(1) brightness(.5)}.badge-card .badge-name{font-family:var(--font-display);font-size:.85rem;font-weight:600}.pin-container{display:flex;gap:var(--space-md);justify-content:center;margin:var(--space-xl) 0}.pin-digit{width:55px;height:65px;background:var(--glass-bg);border:2px solid var(--glass-border);border-radius:var(--radius-md);color:#fff;font-family:var(--font-display);font-size:1.8rem;text-align:center;outline:none;transition:var(--transition-normal)}.pin-digit:focus{border-color:var(--color-teal);box-shadow:0 0 15px #4ecdc44d}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md);width:100%;max-width:800px}.stat-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center}.stat-card .stat-value{font-family:var(--font-display);font-size:2.5rem;font-weight:700;background:var(--gradient-sunset);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card .stat-label{font-size:.85rem;opacity:.7;margin-top:var(--space-xs)}.page-content{width:100%;max-width:900px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;align-items:center}.page-title{font-family:var(--font-display);font-size:2rem;text-align:center;margin-bottom:var(--space-lg);background:linear-gradient(135deg,var(--color-yellow),var(--color-pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-subtitle{text-align:center;opacity:.7;margin-bottom:var(--space-xl);font-size:1.05rem}.exam-counter{font-family:var(--font-display);font-size:1.1rem;opacity:.7;margin-bottom:var(--space-md)}.exam-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);width:100%;max-width:400px;margin-top:var(--space-xl)}.exam-option{background:var(--glass-bg);border:2px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center;font-family:var(--font-display);font-size:1.5rem;font-weight:600;cursor:pointer;transition:var(--transition-bounce)}.exam-option:hover{transform:scale(1.05);border-color:var(--color-teal);background:var(--glass-hover)}.exam-option.correct{border-color:var(--color-lime);background:#6bcb7733;animation:correctBounce .5s ease}.exam-option.wrong{border-color:var(--color-red);background:#ff6b6b33;animation:shake .5s ease}.transcript-display{min-height:40px;padding:var(--space-md) var(--space-lg);background:var(--glass-bg);border:2px dashed var(--glass-border);border-radius:var(--radius-md);text-align:center;font-family:var(--font-display);font-size:1.2rem;color:#fff9;transition:var(--transition-normal);margin:var(--space-md) 0;width:100%;max-width:400px}.transcript-display.active{border-color:var(--color-teal);color:#fff;background:#4ecdc41a}.lesson-controls{display:flex;gap:var(--space-lg);align-items:center;justify-content:center;margin-top:var(--space-xl);flex-wrap:wrap}.levels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-lg);width:100%;max-width:900px}.breadcrumb{display:flex;align-items:center;gap:var(--space-sm);font-size:.9rem;opacity:.7;margin-bottom:var(--space-lg);width:100%;max-width:900px}.breadcrumb span{cursor:pointer;transition:var(--transition-fast)}.breadcrumb span:hover{opacity:1;color:var(--color-teal)}.breadcrumb .sep{cursor:default}.breadcrumb .sep:hover{color:inherit}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);background:#000c;color:#fff;font-size:.8rem;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:var(--transition-fast)}.tooltip:hover:after{opacity:1}.emoji-hint{font-size:4rem;margin:var(--space-md) 0;animation:float 3s ease-in-out infinite}.feedback-message{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-family:var(--font-display);font-size:1.1rem;text-align:center;animation:popIn .3s ease forwards;margin:var(--space-md) 0}.feedback-message.correct{background:#6bcb7733;border:1px solid var(--color-lime);color:var(--color-lime)}.feedback-message.wrong{background:#ff6b6b33;border:1px solid var(--color-red);color:var(--color-red)}.home-mascot-area{margin:var(--space-2xl) 0;position:relative;width:200px;height:200px}.home-welcome{font-family:var(--font-display);font-size:2.5rem;text-align:center;margin-bottom:var(--space-sm)}.home-tagline{text-align:center;font-size:1.2rem;opacity:.8;margin-bottom:var(--space-2xl)}@media(max-width:768px){.loading-title{font-size:2.2rem}.page-title{font-size:1.6rem}.letter-display{font-size:5rem}.home-welcome{font-size:1.8rem}.levels-grid{grid-template-columns:repeat(2,1fr)}.syllable-grid{grid-template-columns:repeat(auto-fill,minmax(65px,1fr))}.exam-options{grid-template-columns:1fr 1fr}.badges-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.stats-grid{grid-template-columns:1fr 1fr}.btn-lg{font-size:1.1rem;padding:var(--space-md) var(--space-xl)}.result-card{padding:var(--space-xl)}.app-header .logo{font-size:1.2rem}}@media(max-width:480px){.levels-grid,.stats-grid,.exam-options{grid-template-columns:1fr}.avatar-grid{grid-template-columns:repeat(4,1fr)}.page-content{padding:var(--space-md)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@keyframes correctBounce{0%{transform:scale(1)}30%{transform:scale(1.2)}50%{transform:scale(.95)}70%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes micPulse{0%,to{box-shadow:0 0 #ff6b6b66}50%{box-shadow:0 0 0 15px #ff6b6b00}}@keyframes rippleExpand{0%{transform:scale(1);opacity:.6}to{transform:scale(2.5);opacity:0}}@keyframes starEarn{0%{transform:scale(0) rotate(-180deg);filter:none}50%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loadingProgress{0%{width:0%}50%{width:60%}80%{width:85%}to{width:100%}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.text-center{text-align:center}.text-left{text-align:left}.w-full{width:100%}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.flex-wrap{flex-wrap:wrap}.hidden{display:none!important}.opacity-70{opacity:.7}
