:root{--text:#6b6156;--text-h:#241c14;--bg:#fffaf3;--bg-card:#fff;--border:#ece2d3;--code-bg:#f4efe4;--accent:#ff6b4a;--accent-2:#0d9488;--accent-bg:#ff6b4a1a;--accent-border:#ff6b4a80;--accent-2-bg:#0d94881a;--accent-2-border:#0d948880;--success:#16a34a;--success-bg:#16a34a1f;--danger:#e11d48;--danger-bg:#e11d481f;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--shadow-card:0 10px 30px #241c1414;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#c9beae;--text-h:#f7f1e6;--bg:#201a15;--bg-card:#2a2119;--border:#3b2f24;--code-bg:#2a221a;--accent:#ff8a6b;--accent-2:#2dd4bf;--accent-bg:#ff8a6b26;--accent-border:#ff8a6b80;--accent-2-bg:#2dd4bf26;--accent-2-border:#2dd4bf80;--success:#4ade80;--success-bg:#4ade801f;--danger:#f87171;--danger-bg:#f871711f;--shadow-card:0 10px 30px #00000059}}body{margin:0}#root{box-sizing:border-box;flex-direction:column;min-height:100svh;display:flex}h1,h2{color:var(--text-h);font-weight:700}h1{margin:0 0 4px;font-size:30px}h2{margin:0 0 8px;font-size:18px}p{margin:0}button{font:inherit;cursor:pointer}.app{box-sizing:border-box;flex:1;justify-content:center;align-items:center;padding:24px 16px;display:flex}.app-inner{flex-direction:column;gap:16px;width:100%;max-width:620px;display:flex}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:0 4px;display:flex}.brand{cursor:pointer;color:var(--text-h);background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:18px;font-weight:800;display:flex}.brand-mark{font-size:24px;line-height:1}.brand-text{flex-direction:column;align-items:flex-start;line-height:1.2;display:flex}.brand-name{font-size:18px;font-weight:800}.brand-tagline{color:var(--text);opacity:.7;font-size:11px;font-weight:500}.topbar-actions{color:var(--text);flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.topbar-user{font-size:14px}.nav-cta{background:var(--accent);color:#fff;border:none;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:700;transition:transform .15s;box-shadow:0 4px 12px #ff6b4a4d}.nav-cta:hover{transform:translateY(-1px)}.nav-pill{border:1px solid var(--accent-2-border);background:var(--bg-card);color:var(--accent-2);border-radius:999px;align-items:center;gap:5px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.nav-pill:hover{background:var(--accent-2-bg)}.nav-pill-soft{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}.nav-pill-soft:hover{background:var(--accent-bg);filter:brightness(.97)}.streak-badge{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent);cursor:default;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:14px;font-weight:800;display:inline-flex}.card{border:1px solid var(--border);border-radius:var(--radius-lg);box-sizing:border-box;background:var(--bg-card);width:100%;box-shadow:var(--shadow-card);flex-direction:column;gap:16px;padding:32px;display:flex}.subtitle{color:var(--text);margin-bottom:8px}.field-group{text-align:left;flex-direction:column;gap:10px;display:flex}.field-label{color:var(--text-h);margin:0;font-size:14px;font-weight:700}label{text-align:left;color:var(--text-h);flex-direction:column;gap:6px;font-size:15px;display:flex}select,input[type=number],input[type=text],textarea{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-h);padding:8px 10px}textarea{resize:vertical}.card>button,.feedback button{border-radius:var(--radius-md);background:var(--accent);color:#fff;border:none;padding:12px 18px;font-weight:700;transition:transform .15s}.card>button:hover,.feedback button:hover{transform:translateY(-1px)}.card>button.link{color:var(--accent);background:0 0;padding:0;font-weight:500;text-decoration:underline;transform:none}.card>button.link:hover{transform:none}.cta-button{border-radius:var(--radius-md);background:var(--accent);color:#fff;border:none;align-self:flex-start;padding:12px 18px;font-weight:700;transition:transform .15s;box-shadow:0 8px 20px #ff6b4a4d}.cta-button:hover{transform:translateY(-1px)}.link{color:var(--accent);cursor:pointer;font-weight:500;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.pill-group{flex-wrap:wrap;gap:8px;display:flex}.pill{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:999px;align-items:center;gap:6px;padding:9px 14px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.pill-icon{font-size:16px}.pill.selected{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.topic-card{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);color:var(--text-h);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.topic-card.selected{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);transform:translateY(-2px)}.topic-icon{font-size:26px}@media (width<=480px){.topic-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.topic-card{gap:4px;padding:10px 6px;font-size:11px}.topic-icon{font-size:20px}}.level-ladder{flex-wrap:wrap;gap:8px;display:flex}.level-step{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);min-width:72px;color:var(--text-h);flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 6px;transition:all .15s;display:flex}.level-step.selected{border-color:var(--accent-2);background:var(--accent-2-bg);color:var(--accent-2)}.level-code{font-size:15px;font-weight:800}.level-name{text-transform:uppercase;letter-spacing:.04em;opacity:.85;font-size:10px}.count-field{max-width:200px}.tutorial-list{text-align:left;flex-direction:column;gap:14px;display:flex}.tutorial-item{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);padding:14px 16px}.tutorial-item-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.tutorial-item-header .tutorial-kind{margin:0}.tutorial-kind{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-2);margin:0 0 4px;font-size:12px;font-weight:700}.tutorial-explanation{color:var(--text-h);margin:0;font-size:15px}.guide-practice-button{border-radius:var(--radius-md);background:var(--accent);color:#fff;border:none;margin-top:10px;padding:8px 14px;font-size:13px;font-weight:700;transition:transform .15s}.guide-practice-button:hover{transform:translateY(-1px)}.leaderboard-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.leaderboard-list li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:flex}.leaderboard-list li.own-row{border-color:var(--accent);background:var(--accent-bg)}.leaderboard-rank{color:var(--accent-2);min-width:32px;font-weight:800}.leaderboard-name{color:var(--text-h);text-align:left;flex:1;font-weight:600}.leaderboard-score{font-size:13px}.donate-message{text-align:left;color:var(--text);flex-direction:column;gap:12px;font-size:15px;display:flex}.donate-signature{color:var(--text-h);font-weight:600}.donate-button{text-align:center;text-decoration:none;display:inline-block}.donation-methods{flex-direction:column;gap:14px;display:flex}.donation-method{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.donation-method-header{color:var(--text-h);align-items:center;gap:8px;font-weight:700;display:flex}.donation-method-icon{font-size:18px}.donation-method-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.donation-alias-button{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-h);background:0 0;padding:8px 12px;font-size:14px;font-weight:600}.donation-alias-button:hover{background:var(--accent-bg);transform:none}.error{color:var(--danger)}.pool-notice{border-radius:var(--radius-sm);background:var(--accent-bg);border-left:3px solid var(--accent-border);color:var(--text-h);text-align:left;padding:10px 14px;font-size:14px}.signup-promo-banner{border-radius:var(--radius-sm);background:var(--accent-bg);border-left:3px solid var(--accent-border);text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.signup-promo-banner p{color:var(--text-h);margin:0;font-size:14px}.signup-promo-banner .cta-button{flex-shrink:0;margin-top:0}.weak-spot-banner{border-radius:var(--radius-sm);background:var(--accent-bg);border-left:3px solid var(--accent-border);text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.weak-spot-banner p{color:var(--text-h);margin:0;font-size:14px}.weak-spot-banner .guide-practice-button{flex-shrink:0;margin-top:0}.mistakes-banner{border-radius:var(--radius-sm);background:var(--accent-bg);border-left:3px solid var(--accent-border);text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.mistakes-banner p{color:var(--text-h);margin:0;font-size:14px}.mistakes-banner .guide-practice-button{flex-shrink:0;margin-top:0}.progress-wrap{flex-direction:column;gap:6px;display:flex}.progress-bar{background:var(--border);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:999px;height:100%;transition:width .35s}.progress{color:var(--text);text-align:left;font-size:14px}.translation-block{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.translation-toggle{font-size:14px}.translation-text{box-sizing:border-box;border-radius:var(--radius-sm);background:var(--accent-2-bg);border-left:3px solid var(--accent-2-border);width:100%;color:var(--text-h);text-align:left;padding:10px 14px;font-size:15px}.context{text-align:left;border-left:3px solid var(--accent-border);background:var(--accent-bg);white-space:pre-wrap;border-radius:6px;padding:12px 16px}button.speak-button{color:var(--accent);cursor:pointer;font-weight:500;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.context button.speak-button{margin-top:8px;display:block}.exercise-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.topic-badge{color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.kind{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-2);background:var(--accent-2-bg);border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:12px;font-weight:700}.sentence{text-align:left;color:var(--text-h);font-size:20px}.options{flex-direction:column;gap:10px;display:flex}.options button{text-align:left;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);color:var(--text-h);padding:13px 16px;transition:all .15s}.options button:not(:disabled):hover{border-color:var(--accent)}.options button:disabled{cursor:default}.options button.correct{border-color:var(--success);background:var(--success-bg);color:var(--success);animation:.4s pop}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.04)}70%{transform:scale(.99)}to{transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.options button.correct,.correct-text,.celebration-emoji{animation:none}}.options button.incorrect{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.feedback{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.correct-text{color:var(--success);font-size:17px;font-weight:700;animation:.35s rise}.incorrect-text{color:var(--danger);font-weight:700}.explanation-text{background:var(--accent-bg);border-left:3px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--text-h);text-align:left;padding:10px 14px;font-size:15px}.celebration{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.celebration-emoji{font-size:52px;line-height:1.1;animation:.45s rise}.score-block{border-radius:var(--radius-md);background:var(--accent-bg);border:1px solid var(--accent-border);flex-direction:column;align-items:center;gap:2px;padding:16px;display:flex}.score{color:var(--accent);font-size:40px;font-weight:800;line-height:1.1}.score-pct{color:var(--text);font-size:14px}.by-kind ul{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.by-kind li{color:var(--text);flex-direction:column;gap:5px;font-size:14px;display:flex}.by-kind-header{justify-content:space-between;display:flex}.by-kind-bar{background:var(--border);border-radius:999px;width:100%;height:6px;overflow:hidden}.by-kind-fill{background:var(--accent-2);border-radius:999px;height:100%}.streak{color:var(--text);font-size:14px}.streak-highlight{border-radius:var(--radius-sm);background:var(--accent-2-bg);border:1px solid var(--accent-2-border);color:var(--text-h);text-align:center;padding:10px 14px;font-weight:600}.signup-motivation{border-radius:var(--radius-sm);background:var(--accent-2-bg);border-left:3px solid var(--accent-2-border);color:var(--text-h);text-align:left;padding:10px 14px;font-size:14px}.history-list{flex-direction:column;gap:8px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.history-list li{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);text-align:left;flex-direction:column;gap:2px;padding:10px 12px;font-size:13px;display:flex}.history-list li span:first-child{color:var(--text-h);font-weight:600}
