:root{--ink:#18202d;--muted:#667085;--paper:#fbfcfe;--card:rgba(255,255,255,.91);--line:#e7eaf0;--accent:#6c63ff;--accent-2:#00b894;--danger:#e74c3c;--warning:#f5a623;--shadow:0 18px 50px rgba(27,36,54,.12)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:#f5f7fb;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.page-shell{min-height:100dvh;padding:24px;position:relative;overflow-x:hidden;isolation:isolate}.page-shell:before{content:"";background:radial-gradient(circle at 10% 10%,#fff 0,transparent 32%),linear-gradient(135deg,#eef3ff,#fff7ed 50%,#edfdf8)}.bg-layer,.page-shell:before{position:fixed;inset:0;z-index:0}.bg-layer{background-position:50%;background-size:cover;background-repeat:no-repeat;opacity:1;filter:none}.container{width:min(1120px,100%);margin:0 auto;position:relative;z-index:1}.topbar{justify-content:space-between;gap:16px;margin-bottom:20px}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px;font-weight:850;letter-spacing:-.02em}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--ink);color:white}.brand-mark,.card{box-shadow:var(--shadow)}.card{background:var(--card);border:1px solid rgba(255,255,255,.82);border-radius:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero{padding:28px}.course-grid,.profile-grid,.stat-grid{display:grid;grid-gap:18px;gap:18px}.profile-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px}.profile-card{padding:24px;min-height:170px;display:flex;flex-direction:column;justify-content:space-between;transition:.18s ease}.profile-card:hover{transform:translateY(-3px);box-shadow:0 24px 60px rgba(27,36,54,.16)}.avatar{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:26px;background:#f0efff}.muted{color:var(--muted)}.btn{border:0;border-radius:14px;padding:12px 18px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--ink);color:white}.btn-accent{background:var(--accent);color:white}.btn-soft{background:#f1f3f7;color:var(--ink)}.btn-danger{background:#fff0ee;color:#b42318}.course-grid{grid-template-columns:1fr;margin-top:22px}.course-card{padding:24px;display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:18px;gap:18px}.progress-track{height:12px;background:#edf0f5;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#9b8cff);border-radius:999px}.progress-big{font-size:42px;font-weight:900;letter-spacing:-.04em}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:750;background:#f3f4f7}.exercise-stage{width:min(880px,100%);margin:0 auto;position:relative;z-index:1;min-height:calc(100dvh - 48px);display:flex;flex-direction:column;justify-content:flex-start}.exercise-stage .topbar{margin-bottom:12px}.exercise-card{padding:24px;position:relative;overflow:hidden;margin:auto 0}.exercise-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.exercise-counter{margin-top:6px;font-size:14px}.question{font-size:clamp(25px,3.5vw,40px);line-height:1.18;font-weight:900;letter-spacing:-.03em;margin:10px 0 16px}.answer-input{width:100%;border:2px solid #dde2ea;border-radius:18px;padding:15px 18px;font-size:23px;font-weight:800;outline:none;background:white}.answer-input:focus{border-color:var(--accent);box-shadow:0 0 0 5px rgba(108,99,255,.1)}.check-row{display:flex;justify-content:flex-end;margin-top:10px}.feedback{margin-top:16px;border-radius:18px;padding:18px}.feedback.bad{background:#fff3f1;border:1px solid #ffd6d0}.feedback.good{background:#edfbf6;border:1px solid #c4f0df}.answer-line{display:flex;gap:8px;align-items:flex-start;margin:7px 0;flex-wrap:wrap}.answer-wrong{color:#c0392b;font-weight:900}.answer-correct{color:#08795d;font-weight:900}.explanation{margin-top:12px;border-top:1px solid rgba(0,0,0,.08);padding-top:12px;line-height:1.5}.explanation details{margin-top:8px}.result-overlay{position:absolute;inset:14px;z-index:20;border-radius:22px;display:flex;align-items:center;justify-content:center;gap:18px;padding:24px;animation:popIn .18s ease-out;box-shadow:0 24px 80px rgba(0,0,0,.18)}.result-overlay.success{background:linear-gradient(145deg,#19c987,#0ea66f);color:white;text-align:left}.result-overlay strong{font-size:clamp(30px,6vw,56px);letter-spacing:-.04em}.result-icon{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:rgba(255,255,255,.22);font-size:48px;font-weight:950}.result-content{width:min(610px,100%)}.result-answer{font-size:20px;font-weight:800;opacity:.95;margin-top:4px}@keyframes popIn{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.block-summary{text-align:center;padding:32px;position:relative;overflow:hidden}.summary-score{font-size:64px;font-weight:950;letter-spacing:-.05em;margin:8px 0}.summary-actions,.summary-pills{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:14px 0}.progress-note{max-width:560px;margin:14px auto;background:#f0efff;border-radius:14px;padding:12px 14px;color:#5147d9;font-weight:700}.celebration-icon{font-size:56px;margin-bottom:8px;animation:bounce .7s ease both}@keyframes bounce{0%{transform:translateY(-30px) scale(.7);opacity:0}60%{transform:translateY(6px) scale(1.12);opacity:1}to{transform:translateY(0) scale(1)}}.celebration{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.celebration span{position:absolute;left:calc((var(--i) * 37) % 100 * 1%);top:-8%;font-size:18px;color:hsl(calc(var(--i) * 47),80%,58%);animation:fall calc(2.6s + (var(--i) % 4) * .35s) linear infinite;animation-delay:calc((var(--i) % 8) * -.3s)}@keyframes fall{to{transform:translateY(115vh) rotate(2turn)}}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:20px 0}.stat{padding:18px}.stat strong{display:block;font-size:28px}.table-wrap{overflow:auto;border-radius:18px;border:1px solid var(--line);background:white}table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:12px 14px;text-align:left;border-bottom:1px solid #eef0f4;vertical-align:top}th{background:#fafbfc;position:-webkit-sticky;position:sticky;top:0;z-index:1;text-transform:uppercase;letter-spacing:.04em;color:#667085}.status,th{font-size:12px}.status{font-weight:850;padding:5px 8px;border-radius:999px;display:inline-block}.status.mastered{background:#eaf9f2;color:#08795d}.status.learning{background:#f0efff;color:#5147d9}.status.review{background:#fff4de;color:#9a6700}.status.new{background:#f2f4f7;color:#475467}.parent-controls{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0;align-items:center}select{border:1px solid #d8dde6;border-radius:12px;padding:10px 12px;background:white}@media (max-width:760px){.page-shell{padding:10px 12px 14px}.course-card,.profile-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.exercise-stage{min-height:calc(100dvh - 24px)}.exercise-stage .topbar{margin-bottom:8px}.exercise-stage .topbar .btn{padding:9px 12px;font-size:14px}.exercise-card{padding:16px;border-radius:20px;margin:0}.exercise-meta{margin-bottom:10px}.exercise-counter{font-size:12px}.sound-btn{padding:8px 10px}.question{font-size:clamp(22px,6.5vw,30px);line-height:1.13;margin:8px 0 12px}.answer-input{font-size:19px;padding:13px 14px;border-radius:15px}.check-row .btn{padding:10px 16px}.result-overlay{inset:8px;padding:18px;gap:12px;border-radius:18px}.result-icon,.result-overlay strong{font-size:34px}.result-icon{width:58px;height:58px}.result-overlay.error{display:block}.result-overlay.error .result-icon{margin:0 auto 10px}.result-content{text-align:left}.block-summary{padding:24px 18px}.summary-score{font-size:54px}}.feedback-page{padding:26px;width:min(760px,100%);margin:auto 0}.feedback-header{display:flex;align-items:center;gap:16px}.feedback-x{width:64px;height:64px;border-radius:50%;background:#fff0ee;color:#d92d20;display:grid;place-items:center;font-size:40px;font-weight:900;flex:0 0 auto}.feedback-title{font-size:38px;font-weight:950;letter-spacing:-.04em}.feedback-answers{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin:20px 0}.feedback-answers>div{background:#f7f8fa;border-radius:16px;padding:14px;font-size:18px}.feedback-answers strong{display:block;font-size:26px;margin-top:3px}.why-card{background:#fff8f6;border:1px solid #ffd8d2;border-radius:18px;padding:16px 18px;line-height:1.5}.why-card h3{margin:0 0 6px;font-size:24px}.why-card p{margin:6px 0 12px}.feedback-continue{margin-top:16px}@media (max-width:760px){.feedback-page{padding:18px;margin:0}.feedback-title{font-size:30px}.feedback-x{width:52px;height:52px;font-size:32px}.feedback-answers{grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.feedback-answers>div{padding:10px;font-size:14px}.feedback-answers strong{font-size:21px}.why-card{padding:13px 14px;font-size:15px}.why-card h3{font-size:20px}.feedback-continue{width:100%}}.feedback-sentence{margin:18px 0 12px;padding:15px 16px;border-radius:16px;background:#f2f4f8}.feedback-sentence span{display:block;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:850;color:var(--muted);margin-bottom:5px}.feedback-sentence strong{display:block;font-size:20px;line-height:1.35}.translation-box{margin:12px 0;padding:12px 14px;border-radius:14px;background:#eef7ff;border:1px solid #d6eaff}.translation-box p{margin:6px 0 0}.feedback-continue:disabled{opacity:.65;cursor:wait}@media (max-width:760px){.feedback-sentence{margin:12px 0 10px;padding:12px}.feedback-sentence strong{font-size:17px}.why-card details{margin-top:8px}}.verb-forms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin:14px 0}.verb-forms>div{background:#f3f5f8;border-radius:14px;padding:10px 12px;text-align:center}.verb-forms span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;margin-bottom:3px}.verb-forms b,.verb-forms strong{display:block;font-size:22px;font-weight:950}.success-content{min-width:min(520px,72vw)}.verb-forms-success{margin-top:14px}.verb-forms-success>div{background:rgba(255,255,255,.17)}.verb-forms-success span{color:rgba(255,255,255,.78)}.verb-forms-success b{color:white}@media (max-width:760px){.verb-forms{gap:6px}.verb-forms>div{padding:8px 7px;border-radius:12px}.verb-forms span{font-size:9px}.verb-forms b,.verb-forms strong{font-size:17px}.success-content{min-width:0;width:100%}.verb-forms-success{grid-template-columns:1fr 1fr 1fr}}.grammar-help-link{display:inline-block;margin-top:8px;font-size:13px;font-weight:850;color:#5147d9;text-decoration:underline;text-underline-offset:3px}.grammar-help-link-success{color:#fff;opacity:.95}.grammar-help-page{max-width:900px}.grammar-guide h1{font-size:clamp(34px,6vw,58px);margin:12px 0 8px;letter-spacing:-.045em}.grammar-lead{font-size:20px;line-height:1.5;max-width:760px}.grammar-rule-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin:24px 0}.grammar-rule-card{background:#f8f9fc;border:1px solid #e8eaf0;border-radius:20px;padding:20px}.grammar-rule-number{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#18202d;color:white;font-weight:900}.grammar-rule-card h2{margin:10px 0 6px;font-size:26px}.grammar-example{margin-top:12px;padding:12px 14px;background:white;border-radius:14px;line-height:1.45}.grammar-example span{color:var(--muted);font-size:13px;display:block;margin-bottom:2px}.grammar-clue{color:var(--muted);font-size:14px}.grammar-compare,.grammar-memory,.grammar-tip{margin-top:22px;padding:20px;border-radius:20px;background:#fff;border:1px solid #e7eaf0}.memory-line{font-size:20px;margin:8px 0}.compare-row{display:grid;grid-template-columns:120px 1fr;grid-gap:6px 14px;gap:6px 14px;padding:12px 0;border-top:1px solid #eef0f4}.compare-row:first-of-type{border-top:0}.compare-row span{font-weight:850;color:#5147d9}.compare-row small{grid-column:2;color:var(--muted)}.grammar-triplet{display:flex;align-items:center;gap:12px;font-size:22px;margin-top:10px}@media (max-width:760px){.grammar-rule-grid{grid-template-columns:1fr}.grammar-lead{font-size:17px}.compare-row{grid-template-columns:1fr}.compare-row small{grid-column:1}}.exercise-nav{position:relative;z-index:50}.grammar-nav-link{margin-left:auto}.verb-chain{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:12px 0 4px;font-size:22px;line-height:1.2}.verb-chain b,.verb-chain strong{font-weight:950;letter-spacing:-.02em}.verb-chain span{font-weight:900;opacity:.6}.verb-chain-error{color:#4b3fc7;background:#f2f0ff;border:1px solid #ded9ff;border-radius:14px;padding:10px 12px}.verb-chain-success{color:#fff;background:rgba(0,0,0,.14);border-radius:14px;padding:10px 14px}.verb-chain-success b{color:#fff7a8}@media (max-width:760px){.exercise-nav{margin-bottom:8px}.exercise-nav .btn{position:relative;z-index:60}.verb-chain{gap:7px;font-size:18px}}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.choice-option{border:2px solid #dde2ea;background:#fff;color:var(--ink);border-radius:16px;padding:15px 12px;min-height:58px;font-size:21px;font-weight:900;text-align:center;transition:transform .12s ease,border-color .12s ease,background .12s ease,box-shadow .12s ease}.choice-option:hover{transform:translateY(-1px);border-color:#b8b2ff}.choice-option.selected{border-color:var(--accent);background:#f0efff;box-shadow:0 0 0 4px rgba(108,99,255,.1);color:#5147d9}.choice-option:disabled{cursor:default}@media (max-width:760px){.choice-grid{grid-template-columns:1fr;gap:8px}.choice-option{min-height:48px;padding:11px 12px;font-size:18px;border-radius:14px}}.result-answer-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}.pronounce-btn{border:0;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:850;line-height:1;display:inline-flex;align-items:center;gap:5px}.pronounce-btn-success{background:rgba(255,255,255,.2);color:white}.pronounce-btn-error{margin-top:8px;background:#eaf4ff;color:#275d8c}@media (max-width:760px){.pronounce-btn{padding:7px 9px;font-size:12px}.result-answer-row{gap:7px}}.page-shell:before{background:transparent}.block-summary,.exercise-card,.feedback-page{background:rgba(255,255,255,.94)}@media (max-width:760px){.bg-layer{background-position:50%}}