:root{--blue:#00d4ff;--green:#00c896;--gradient:linear-gradient(135deg, var(--blue), var(--green));--bg:#fff;--bg-card:#f5f8fa;--bg-elevated:#fff;--text:#171a1c;--text-muted:#55606a;--border:#e1e8ec;--shadow:0 4px 16px #171a1c14;--success:#00c896;--error:#ff5d6c;--star:#ffc93c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#14151a;--bg-card:#1d1f26;--bg-elevated:#23252d;--text:#f2f5f7;--text-muted:#a7b0b8;--border:#2c2f38;--shadow:0 4px 20px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3{margin:0;line-height:1.2}button{cursor:pointer;font-family:inherit;font-size:1rem}a{color:inherit}img{max-width:100%}.app-shell{flex-direction:column;flex:1;width:100%;max-width:720px;margin:0 auto;padding:0 20px 32px;display:flex}.btn{border:none;border-radius:16px;padding:16px 28px;font-size:1.1rem;font-weight:700;transition:transform .15s,box-shadow .15s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--gradient);color:#0a0a0f;box-shadow:var(--shadow)}.btn-secondary{background:var(--bg-card);color:var(--text);border:2px solid var(--border)}.btn-block{width:100%;display:block}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--bg-card);box-shadow:var(--shadow);border-radius:20px;padding:20px}.top-nav{justify-content:space-between;align-items:center;width:100%;max-width:720px;margin:0 auto;padding:16px 20px;display:flex}.top-nav__brand{align-items:center;gap:10px;font-size:1.2rem;font-weight:800;display:flex}.top-nav__actions{gap:8px;display:flex}.icon-btn{background:var(--bg-card);border:2px solid var(--border);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;display:flex}.progress-bar{background:var(--border);border-radius:999px;height:12px;overflow:hidden}.progress-bar__fill{background:var(--gradient);border-radius:999px;height:100%;transition:width .3s}.stars{gap:4px;font-size:1.4rem;display:flex}.stars .dim{opacity:.25}.streak-badge{background:var(--bg-card);border:2px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-weight:700;display:inline-flex}.app-footer{text-align:center;color:var(--text-muted);padding:12px 16px 20px;font-size:.8rem}.app-footer a{color:var(--text-muted);text-decoration:underline}@media (width<=480px){.app-shell{padding:0 14px 24px}}.home-hero{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:40px 0;display:flex}.home-logo{width:120px;height:120px;box-shadow:var(--shadow);border-radius:28px}.home-title{background:var(--gradient);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:800}.home-slogan{color:var(--text-muted);max-width:360px;font-size:1.2rem}.home-actions{flex-direction:column;gap:12px;width:100%;max-width:320px;margin-top:12px;display:flex}.home-footnote{color:var(--text-muted);font-size:.95rem}.modules-grid{flex-direction:column;gap:14px;margin-top:8px;display:flex}.module-card{text-align:left;background:var(--bg-card);width:100%;box-shadow:var(--shadow);color:inherit;border:none;border-radius:20px;align-items:center;gap:16px;padding:18px;text-decoration:none;display:flex}.module-card__icon{background:var(--bg-elevated);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:2rem;display:flex}.module-card__body{flex-direction:column;flex:1;gap:6px;display:flex}.module-card__title{font-size:1.15rem;font-weight:700}.module-card__desc{color:var(--text-muted);font-size:.95rem}.module-card--soon{opacity:.6}.module-card__badge{background:var(--border);border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:.8rem}.module-header{align-items:center;gap:16px;margin-bottom:8px;display:flex}.module-header__icon{font-size:2.4rem}.lesson-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:14px;margin-top:20px;display:grid}.lesson-pill{background:var(--bg-card);box-shadow:var(--shadow);color:inherit;border:none;border-radius:18px;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;text-decoration:none;display:flex}.lesson-pill__glyph{font-size:1.6rem;font-weight:800}.lesson-pill__stars{font-size:.85rem}.lesson-pill--done{border:2px solid var(--green);background:linear-gradient(160deg,#00d4ff26,#00c89626)}.flashcard{text-align:center;flex-direction:column;align-items:center;gap:18px;padding:32px 20px;display:flex}.flashcard__big{font-size:5rem;font-weight:800}.flashcard__emoji{font-size:4.5rem}.flashcard__word{font-size:1.8rem;font-weight:700}.lsm-placeholder{border:3px dashed var(--border);width:100%;max-width:260px;color:var(--text-muted);border-radius:18px;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;font-size:.95rem;display:flex}.lsm-placeholder__icon{font-size:2rem}.exercise{flex-direction:column;gap:24px;padding:12px 0 24px;display:flex}.exercise__prompt{text-align:center;font-size:1.3rem;font-weight:700}.exercise__subject{flex-direction:column;align-items:center;gap:8px;display:flex}.exercise__subject-emoji{font-size:4rem}.exercise__subject-word{font-size:2rem;font-weight:800}.options-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.option-btn{border:3px solid var(--border);background:var(--bg-card);border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:72px;padding:18px 10px;font-size:1.3rem;font-weight:700;display:flex}.option-btn--correct{border-color:var(--success);background:#00c89626}.option-btn--wrong{border-color:var(--error);background:#ff5d6c26}.blanks-row{flex-wrap:wrap;justify-content:center;gap:8px;font-size:2rem;font-weight:800;display:flex}.blank-slot{border-bottom:4px solid var(--border);text-transform:uppercase;justify-content:center;align-items:center;width:44px;height:52px;display:flex}.blank-slot--filled{border-color:var(--blue)}.tiles-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.tile{background:var(--bg-elevated);box-shadow:var(--shadow);text-transform:uppercase;border:none;border-radius:12px;width:48px;height:52px;font-size:1.4rem;font-weight:800}.tile:disabled{opacity:.3}.answer-strip{flex-wrap:wrap;justify-content:center;gap:6px;min-height:56px;display:flex}.answer-strip__slot{border:3px dashed var(--border);text-transform:uppercase;border-radius:12px;justify-content:center;align-items:center;width:44px;height:52px;font-size:1.3rem;font-weight:800;display:flex}.exercise__feedback{text-align:center;min-height:1.4em;font-size:1.05rem;font-weight:600}.exercise__feedback--wrong{color:var(--error)}.exercise__feedback--correct{color:var(--success)}.result-screen{text-align:center;flex-direction:column;align-items:center;gap:18px;padding:40px 0;display:flex}.result-stars{font-size:3rem}.result-title{font-size:1.6rem;font-weight:800}.profile-form{flex-direction:column;gap:14px;max-width:340px;margin:0 auto;display:flex}.profile-input{border:2px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:14px;padding:14px 16px;font-size:1.1rem}.profile-summary{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:20px 0;display:flex}.confetti-layer{pointer-events:none;z-index:300;position:fixed;inset:0;overflow:hidden}.confetti-piece{opacity:.95;border-radius:2px;width:8px;height:14px;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards;position:absolute;top:-14px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)translate(0)rotate(0)}to{transform:translateY(110vh) translateX(var(--drift)) rotate(var(--rotate));opacity:.15}}.xp-toast{background:var(--gradient);color:#0a0a0f;box-shadow:var(--shadow);z-index:320;pointer-events:none;border-radius:999px;padding:10px 20px;font-size:1.1rem;font-weight:800;animation:1.1s forwards xp-pop;position:fixed;top:84px;left:50%}@keyframes xp-pop{0%{opacity:0;transform:translate(-50%)translateY(10px)scale(.8)}15%{opacity:1;transform:translate(-50%)translateY(0)scale(1.08)}30%{transform:translate(-50%)translateY(0)scale(1)}75%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-22px)scale(.95)}}.league-badge{border:2px solid var(--league-color,var(--border));background:color-mix(in srgb, var(--league-color,var(--border)) 15%, transparent);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.95rem;font-weight:700;display:inline-flex}.league-badge--sm{padding:4px 8px;font-size:1rem}.league-badge--lg{padding:10px 18px;font-size:1.1rem}.league-badge__emoji{font-size:1.2em}.celebration-overlay{z-index:400;background:#0a0a0fb8;justify-content:center;align-items:center;padding:20px;animation:.25s overlay-fade-in;display:flex;position:fixed;inset:0}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.celebration-card{background:var(--bg-card);text-align:center;width:100%;max-width:340px;box-shadow:var(--shadow);border-radius:24px;flex-direction:column;align-items:center;gap:12px;padding:36px 28px;animation:.5s cubic-bezier(.34,1.56,.64,1) celebration-pop;display:flex}@keyframes celebration-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.celebration-emoji{font-size:4.5rem;animation:1s infinite celebration-bounce}@keyframes celebration-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.achievement-toast{background:var(--bg-elevated);border:2px solid var(--star);box-shadow:var(--shadow);z-index:350;text-align:left;max-width:90vw;color:var(--text);border-radius:18px;align-items:center;gap:12px;padding:12px 18px;font-family:inherit;animation:.4s achievement-slide-in;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}@keyframes achievement-slide-in{0%{opacity:0;transform:translate(-50%)translateY(-24px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.achievement-toast__emoji{font-size:2rem}.achievement-toast__body{flex-direction:column;gap:2px;font-size:.95rem;display:flex}.daily-goal-card{flex-direction:column;gap:10px;width:100%;margin-top:16px;display:flex}.daily-goal-card__header{justify-content:space-between;align-items:center;font-weight:700;display:flex}.daily-goal-card__edit{color:var(--blue);background:0 0;border:none;font-size:.9rem;font-weight:700}.daily-goal-card__count{color:var(--text-muted);margin:0;font-size:.95rem}.daily-goal-card__met{color:var(--success);margin:0;font-size:.9rem;font-weight:600}.daily-goal-options{gap:8px;display:flex}.daily-goal-option{border:2px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:12px;flex:1;padding:8px 0;font-weight:700}.daily-goal-option--active{border-color:var(--blue);background:color-mix(in srgb, var(--blue) 15%, transparent)}.xp-breakdown{background:var(--bg-card);border-radius:16px;flex-direction:column;gap:6px;width:100%;max-width:320px;padding:16px 20px;display:flex}.xp-breakdown__row{color:var(--text-muted);justify-content:space-between;font-size:.95rem;display:flex}.xp-breakdown__row--total{color:var(--text);border-top:2px solid var(--border);margin-top:4px;padding-top:8px;font-size:1.15rem;font-weight:800}.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.achievement-card{text-align:center;background:var(--bg-card);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:16px 10px;display:flex}.achievement-card--locked{opacity:.4}.achievement-card__emoji{font-size:2rem}.achievement-card__title{font-size:.9rem;font-weight:700}.achievement-card__desc{color:var(--text-muted);font-size:.8rem}.leaderboard{flex-direction:column;gap:8px;display:flex}.leaderboard__row{background:var(--bg-card);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.leaderboard__row--me{border:2px solid var(--blue)}.leaderboard__rank{text-align:center;width:24px;color:var(--text-muted);font-weight:800}.leaderboard__name{flex:1;font-weight:600}.leaderboard__xp{color:var(--blue);font-weight:800}
