@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-latin-900-normal-BVB1fGs6.woff2)format("woff2"),url(/assets/nunito-latin-900-normal-CVn49sIn.woff)format("woff")}@font-face{font-family:Amiri;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/amiri-arabic-400-normal-D0NIBXga.woff2)format("woff2"),url(/assets/amiri-arabic-400-normal-C_1DQziU.woff)format("woff")}:root{--green:#58cc02;--green-dark:#58a700;--green-light:#d7ffb8;--green-text:#58a700;--blue:#1cb0f6;--blue-dark:#1899d6;--blue-light:#ddf4ff;--red:#ff4b4b;--red-dark:#ea2b2b;--red-light:#ffdfe0;--gold:#ffc800;--gold-dark:#e5a400;--orange:#ff9600;--purple:#ce82ff;--purple-dark:#a568cc;--ink:#3c3c3c;--muted:#777;--faint:#afafaf;--line:#e5e5e5;--bg:#fff;--soft:#f7f7f7;--r:16px;color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:Nunito,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);margin:0}body{overscroll-behavior:none;min-height:100dvh}button{font:inherit;color:inherit}#app{max-width:560px;min-height:100dvh;margin:0 auto;position:relative}.btn{--c:var(--green);--cd:var(--green-dark);border-radius:var(--r);background:var(--c);color:#fff;letter-spacing:.8px;text-transform:uppercase;width:100%;min-height:50px;box-shadow:0 4px 0 var(--cd);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:16px;font-weight:800;transition:transform 80ms,box-shadow 80ms,filter .15s;display:inline-flex}.btn:hover{filter:brightness(1.06)}.btn:active:not(:disabled){box-shadow:0 0 0 var(--cd);transform:translateY(4px)}.btn:disabled{--c:var(--line);--cd:#d0d0d0;color:var(--faint);cursor:default;filter:none}.btn.red{--c:var(--red);--cd:var(--red-dark)}.btn.blue{--c:var(--blue);--cd:var(--blue-dark)}.btn.ghost{--c:#fff;--cd:var(--line);color:var(--blue);border:2px solid var(--line)}.icon-btn{cursor:pointer;color:var(--faint);background:0 0;border:0;padding:6px;display:inline-flex}.icon-btn:hover{color:var(--muted)}.topbar{z-index:20;border-bottom:2px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:10px 16px;display:flex;position:sticky;top:0}.course-flag{color:var(--muted);align-items:center;gap:8px;font-weight:900;display:flex}.course-flag .flag{background:var(--blue);color:#fff;letter-spacing:.5px;width:38px;height:28px;box-shadow:0 3px 0 var(--blue-dark);border-radius:8px;place-items:center;font-size:13px;font-weight:900;display:grid}.stat{align-items:center;gap:5px;font-size:17px;font-weight:900;display:flex}.stat.fire{color:var(--orange)}.stat.fire.off{color:var(--faint);filter:grayscale()}.stat.xp{color:var(--gold-dark)}.stats{gap:16px;display:flex}.unit-banner{border-radius:var(--r);color:#fff;background:var(--uc);box-shadow:0 4px 0 var(--ucd);justify-content:space-between;align-items:center;gap:12px;margin:16px;padding:16px 18px;display:flex}.unit-banner small{letter-spacing:.6px;opacity:.85;text-transform:uppercase;font-size:13px;font-weight:800;display:block}.unit-banner h2{margin:2px 0 0;font-size:20px;font-weight:900}.unit-banner p{opacity:.9;margin:4px 0 0;font-size:14px;font-weight:700}.guide-btn{color:#fff;cursor:pointer;letter-spacing:.5px;text-transform:uppercase;background:0 0;border:2px solid #ffffff73;border-radius:14px;flex:none;align-items:center;gap:6px;padding:10px 12px;font-size:13px;font-weight:900;display:flex;box-shadow:0 3px #00000026}.u-green{--uc:var(--green);--ucd:var(--green-dark);--ul:var(--green-light)}.u-blue{--uc:var(--blue);--ucd:var(--blue-dark);--ul:var(--blue-light)}.u-purple{--uc:var(--purple);--ucd:var(--purple-dark);--ul:#f4e6ff}.u-orange{--uc:var(--orange);--ucd:#cd7900;--ul:#ffe8c7}.path{flex-direction:column;align-items:center;gap:36px;padding:56px 0 34px;display:flex;position:relative}.node-wrap{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.node-wrap.open{z-index:30}.node{cursor:pointer;background:var(--uc);width:72px;height:66px;box-shadow:0 8px 0 var(--ucd);color:#fff;border:0;border-radius:50%;place-items:center;transition:transform .1s,box-shadow .1s;display:grid;position:relative}.node:active{box-shadow:0 2px 0 var(--ucd);transform:translateY(6px)}.node svg{width:34px;height:34px}.node.locked{background:var(--line);color:#b0b0b0;cursor:default;box-shadow:0 8px #c9c9c9}.node.done{background:var(--gold);box-shadow:0 8px 0 var(--gold-dark)}.node.current:before{content:"";border:6px solid var(--line);border-top-color:var(--uc);border-right-color:var(--uc);border-radius:50%;position:absolute;inset:-10px;transform:rotate(-20deg)}.start-bubble{white-space:nowrap;color:var(--uc);border:2px solid var(--line);letter-spacing:.6px;text-transform:uppercase;z-index:2;background:#fff;border-radius:12px;padding:9px 14px;font-weight:900;animation:1.2s ease-in-out infinite bob;position:absolute;bottom:calc(100% + 16px)}.start-bubble:after{content:"";filter:drop-shadow(0 2px 0 var(--line));border:9px solid #0000;border-top-color:#fff;position:absolute;top:100%;left:50%;transform:translate(-50%)}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.path-mascot{width:120px;animation:3s ease-in-out infinite float;position:absolute;top:120px}@keyframes float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-8px)rotate(2deg)}}.unit-gap{color:var(--faint);align-items:center;gap:14px;margin:8px 16px 0;font-weight:800;display:flex}.unit-gap:before,.unit-gap:after{content:"";background:var(--line);flex:1;height:2px}.pop{z-index:10;border-radius:var(--r);background:var(--uc);color:#fff;width:min(280px,100vw - 24px);box-shadow:0 4px 0 var(--ucd);padding:16px;animation:.18s ease-out popIn;position:absolute;top:calc(100% + 18px)}.pop:before{content:"";left:calc(50% + var(--arrow,0px));background:var(--uc);border-radius:3px;width:18px;height:18px;position:absolute;top:-9px;transform:translate(-50%)rotate(45deg)}.pop h3{margin:0;font-size:18px;font-weight:900}.pop p{opacity:.9;margin:4px 0 14px;font-weight:700}.pop .btn{--c:#fff;--cd:#0000002e;color:var(--uc)}.pop.locked{background:var(--soft);color:var(--muted);box-shadow:0 4px 0 var(--line);border:2px solid var(--line)}.pop.locked:before{background:var(--soft);border-left:2px solid var(--line);border-top:2px solid var(--line)}.pop.locked .btn{--c:var(--line);--cd:#d0d0d0;color:var(--faint)}@keyframes popIn{0%{opacity:0;transform:scale(.92)translateY(-6px)}}.bottom-nav{z-index:40;border-top:2px solid var(--line);padding:8px 0 calc(8px + env(safe-area-inset-bottom));background:#fff;justify-content:space-around;display:flex;position:sticky;bottom:0}.bottom-nav a{color:var(--faint);border:2px solid #0000;border-radius:12px;place-items:center;padding:8px 18px;display:grid}.bottom-nav a.on{border-color:var(--blue);background:var(--blue-light);color:var(--blue)}.sheet-bg{z-index:50;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:560px;max-height:85dvh;padding:22px 18px calc(24px + env(safe-area-inset-bottom));background:#fff;border-radius:22px 22px 0 0;animation:.25s ease-out up;overflow:auto}.sheet h2{margin:0 0 4px;font-size:22px;font-weight:900}.sheet .muted{color:var(--muted);margin:0 0 16px;font-weight:700}.rule{border:2px solid var(--line);border-radius:var(--r);margin-bottom:10px;padding:12px 14px}.rule small{color:var(--muted);font-size:13px;font-weight:800}.rule b{color:var(--blue);margin:2px 0;font-size:18px;font-weight:900;display:block}.rule i{color:var(--ink);font-style:normal;font-weight:700}@keyframes fade{0%{opacity:0}}@keyframes up{0%{transform:translateY(100%)}}.lesson{flex-direction:column;min-height:100dvh;display:flex}#body{flex-direction:column;flex:1;display:flex}#body>.lesson-body{flex:1}#body.frozen{pointer-events:none}.lesson-top{align-items:center;gap:14px;padding:18px 16px 6px;display:flex}.progress{background:var(--line);border-radius:99px;flex:1;height:16px;position:relative;overflow:hidden}.progress i{transform-origin:0;background:var(--green);border-radius:99px;width:100%;height:100%;transition:transform .45s cubic-bezier(.3,1.4,.6,1);display:block;position:relative;transform:scaleX(0)}.progress i:after{content:"";background:#ffffff59;border-radius:9px;height:4px;position:absolute;top:4px;left:8px;right:8px}.combo{color:var(--orange);letter-spacing:.5px;pointer-events:none;font-weight:900;animation:.9s ease-out forwards comboPop;position:absolute;top:44px;left:50%;transform:translate(-50%)}@keyframes comboPop{0%{opacity:0;transform:translate(-50%,6px)scale(.8)}20%{opacity:1;transform:translate(-50%)scale(1.1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)}}.lesson-body{flex-direction:column;flex:1;padding:18px 16px 24px;animation:.28s ease-out slideIn;display:flex}@keyframes slideIn{0%{opacity:0;transform:translate(24px)}}.q-label{margin:6px 0 18px;font-size:22px;font-weight:900;line-height:1.25}.new-word{color:var(--purple);letter-spacing:.6px;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:4px;font-size:13px;font-weight:900;display:flex}.speaker-row{align-items:flex-end;gap:10px;margin-bottom:18px;display:flex}.speaker-row .mascot{flex:none;width:92px}.bubble{border:2px solid var(--line);border-radius:14px;align-items:center;gap:8px;margin-bottom:26px;padding:12px 14px;font-size:18px;font-weight:700;display:flex;position:relative}.bubble:before{content:"";border-left:2px solid var(--line);border-bottom:2px solid var(--line);background:#fff;width:16px;height:16px;position:absolute;bottom:14px;left:-10px;transform:rotate(45deg)}.bubble .word{border-bottom:2px dashed var(--line)}.say-btn{background:var(--blue);color:#fff;width:40px;height:40px;box-shadow:0 3px 0 var(--blue-dark);cursor:pointer;border:0;border-radius:12px;flex:none;place-items:center;display:grid}.say-btn:active{box-shadow:none;transform:translateY(3px)}.say-btn svg{width:22px;height:22px}.listen-btns{justify-content:center;gap:16px;margin:4px 0 26px;display:flex}.listen-btns .say-btn{width:110px;height:110px;box-shadow:0 6px 0 var(--blue-dark);border-radius:22px}.listen-btns .say-btn svg{width:54px;height:54px}.listen-btns .say-btn.slow{border-radius:18px;align-self:flex-end;width:72px;height:72px}.listen-btns .say-btn.slow svg{width:34px;height:34px}.answer-line{border-bottom:2px solid var(--line);background:repeating-linear-gradient(transparent 0 56px, var(--line) 56px 58px);flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:118px;margin-bottom:26px;padding:6px 0 10px;display:flex}.bank{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tile{border:2px solid var(--line);box-shadow:0 2px 0 var(--line);cursor:pointer;background:#fff;border-radius:12px;min-height:44px;padding:8px 13px;font-size:17px;font-weight:700;animation:.18s ease-out tileIn}.tile:active{box-shadow:none;transform:translateY(2px)}.tile.ghost{background:var(--line);color:#0000;box-shadow:none;cursor:default;animation:none}@keyframes tileIn{0%{opacity:0;transform:scale(.6)}}.choices{gap:12px;display:grid}.choice{text-align:left;border:2px solid var(--line);border-radius:var(--r);width:100%;box-shadow:0 4px 0 var(--line);cursor:pointer;background:#fff;align-items:center;gap:14px;padding:14px 16px;font-size:17px;font-weight:700;transition:transform 80ms;display:flex}.choice .k{border:2px solid var(--line);width:30px;height:30px;color:var(--faint);border-radius:9px;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid}.choice:active{box-shadow:none;transform:translateY(4px)}.choice.sel{background:var(--blue-light);color:var(--blue-dark);border-color:#84d8ff;box-shadow:0 4px #84d8ff}.choice.sel .k{color:var(--blue);border-color:#84d8ff}.gap-sentence{margin-bottom:26px;font-size:22px;font-weight:800;line-height:1.6}.gap-slot{border-bottom:3px solid var(--ink);text-align:center;min-width:90px;color:var(--blue);display:inline-block}.pairs{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pairs .choice{text-align:center;justify-content:center;min-height:60px;font-size:16px}.pairs .choice.ok{border-color:var(--green-light);color:#a5ed6e;box-shadow:0 4px 0 var(--green-light);cursor:default;background:#fff;animation:.5s forwards okFade}.pairs .choice.bad{background:var(--red-light);color:var(--red-dark);border-color:#ffb2b2;animation:.35s shake;box-shadow:0 4px #ffb2b2}@keyframes okFade{0%{border-color:var(--green);color:var(--green-text);transform:scale(1.04)}to{opacity:.55}}.type-box{border:2px solid var(--line);border-radius:var(--r);background:var(--soft);width:100%;min-height:140px;font:inherit;resize:none;color:var(--ink);padding:14px;font-size:18px;font-weight:700}.type-box:focus{background:#fff;border-color:#84d8ff;outline:none}.lesson-foot{border-top:2px solid var(--line);padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#fff;position:sticky;bottom:0}.lesson-foot.ok{background:var(--green-light);border-color:#0000}.lesson-foot.bad{background:var(--red-light);border-color:#0000}.fb{align-items:flex-start;gap:12px;margin-bottom:14px;animation:.22s ease-out up;display:none}.lesson-foot.ok .fb,.lesson-foot.bad .fb{display:flex}.fb .badge{background:#fff;border-radius:50%;flex:none;place-items:center;width:54px;height:54px;display:grid}.fb .badge svg{width:30px;height:30px}.lesson-foot.ok .fb{color:var(--green-text)}.lesson-foot.ok .badge{color:var(--green)}.lesson-foot.bad .fb{color:var(--red-dark)}.lesson-foot.bad .badge{color:var(--red)}.fb h3{margin:4px 0 2px;font-size:22px;font-weight:900}.fb p{margin:0;font-size:16px;font-weight:700}.fb .why{color:var(--ink);opacity:.8;margin-top:4px;font-size:15px}.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.finish{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px 18px;display:flex}.finish .mascot{width:170px;animation:.7s ease-out 2 jump}@keyframes jump{40%{transform:translateY(-26px)rotate(-4deg)}}.finish h1{color:var(--gold-dark);margin:18px 0 22px;font-size:30px;font-weight:900}.cards{gap:12px;width:100%;margin-bottom:34px;display:flex}.card{border-radius:var(--r);border:2px solid var(--cc);background:var(--cc);flex:1;animation:.35s ease-out backwards popIn;overflow:hidden}.card:nth-child(2){animation-delay:.15s}.card:nth-child(3){animation-delay:.3s}.card small{color:#fff;letter-spacing:.6px;text-transform:uppercase;padding:6px 4px;font-size:12px;font-weight:900;display:block}.card b{color:var(--cc);background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:4px;padding:14px 4px;font-size:22px;font-weight:900;display:flex}.c-gold{--cc:var(--gold)}.c-blue{--cc:var(--blue)}.c-green{--cc:var(--green)}.finish .btn{max-width:420px}canvas.confetti{pointer-events:none;z-index:60;position:fixed;inset:0}@media (width>=700px){body{background:var(--soft)}#app{box-shadow:0 0 0 2px var(--line);background:#fff}}.tab-page{min-height:calc(100dvh - 130px);padding-bottom:24px}.bottom-nav a{gap:2px;font-size:11px;font-weight:800;text-decoration:none}.bottom-nav a span{line-height:1}.bottom-nav svg{width:26px;height:26px}.stat.sync{color:var(--faint);font-size:14px}.empty{text-align:center;padding:48px 24px}.empty .mascot{width:140px}.empty h2{margin:12px 0 6px;font-weight:900}.empty p{color:var(--muted);font-weight:700}.loading{text-align:center;color:var(--faint);padding:60px;font-weight:800}.sec-title{align-items:baseline;gap:8px;margin:26px 16px 12px;font-size:20px;font-weight:900;display:flex}.sec-title small{color:var(--faint);font-size:15px}.hint{color:var(--muted);margin:18px 16px;font-size:14px;font-weight:700}.unit-shut .unit-banner{filter:grayscale(.85);opacity:.75}.unit-lock{color:var(--muted);justify-content:center;align-items:center;gap:6px;margin:4px 16px 10px;font-size:15px;font-weight:900;display:flex}.jump.off{color:var(--faint);margin-bottom:10px}.jump{color:var(--uc);text-transform:uppercase;letter-spacing:.4px;justify-content:center;align-items:center;gap:6px;margin:-4px 16px 0;font-size:14px;font-weight:900;text-decoration:none;display:flex}.node.chest{border-radius:22px;width:78px}.node.chest.locked{color:#b8955a;background:#f1e3c1;box-shadow:0 8px #d9c38f}.node.chest.current{background:var(--gold);box-shadow:0 8px 0 var(--gold-dark)}.finish h1.retry{color:var(--orange)}.finish-note{color:var(--muted);max-width:360px;margin:-10px 0 24px;font-weight:700}.welcome{min-height:100dvh;padding:32px 22px calc(28px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;justify-content:space-between;display:flex}.welcome-hero{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.hero-mascot{width:190px;animation:3s ease-in-out infinite float}.welcome h1{color:var(--green);letter-spacing:-.5px;margin:14px 0 6px;font-size:36px;font-weight:900}.welcome p{color:var(--muted);max-width:320px;margin:0 auto;font-size:18px;font-weight:700}.welcome-actions{gap:14px;display:grid}.teacher-link{color:var(--blue);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:14px;font-weight:900;text-decoration:none}.form-page{padding:18px 20px 40px}.form-page .back{color:var(--faint);font-size:26px;font-weight:900}.form-page h1{margin:12px 0 6px;font-size:26px;font-weight:900}.form-page .muted{color:var(--muted);margin:0 0 20px;font-weight:700}.form-page form,.t-new{gap:14px;display:grid}label{color:var(--muted);gap:6px;font-size:14px;font-weight:800;display:grid}input,select{font:inherit;color:var(--ink);border:2px solid var(--line);background:var(--soft);border-radius:14px;padding:14px;font-size:17px;font-weight:700}input:focus,select:focus{background:#fff;border-color:#84d8ff;outline:none}.form-err{color:var(--red);min-height:1em;margin:0;font-weight:800}.league-head{text-align:center;padding:22px 16px 8px}.trophy-badge{background:var(--gold);color:#fff;width:74px;height:74px;box-shadow:0 5px 0 var(--gold-dark);border-radius:22px;place-items:center;margin:0 auto;display:grid}.trophy-badge svg{width:42px;height:42px}.league-head h1{margin:14px 0 4px;font-size:24px;font-weight:900}.league-head p{color:var(--muted);margin:0;font-weight:700}.class-goal{border:2px solid var(--line);border-radius:var(--r);margin:18px 16px;padding:16px}.cg-top{justify-content:space-between;margin-bottom:10px;font-weight:800;display:flex}.cg-top span{color:var(--muted)}.class-goal p{color:var(--muted);margin:10px 0 0;font-size:14px;font-weight:700}.progress.big{height:20px}.progress.big i,.quest .progress i{transform-origin:0;width:100%}.board{margin:0;padding:0 8px;list-style:none}.board li{border-radius:14px;align-items:center;gap:12px;padding:10px 12px;font-weight:800;display:flex}.board li.me{background:var(--blue-light);color:var(--blue-dark)}.board .rank{text-align:center;width:30px;color:var(--muted);font-weight:900}.board .medal{color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;font-size:14px;font-weight:900;display:grid}.medal.m1{background:var(--gold)}.medal.m2{background:#b5c4cf}.medal.m3{background:#e0a06b}.board .av{background:var(--soft);border-radius:50%;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}.board .av svg,.t-av svg{width:120%;margin-top:18%}.board b{flex:1}.board .xp{color:var(--muted)}.quest-hero{border-radius:var(--r);background:var(--purple);color:#fff;box-shadow:0 4px 0 var(--purple-dark);justify-content:space-between;align-items:center;gap:12px;margin:16px;padding:18px;display:flex}.quest-hero h1{margin:0;font-size:24px;font-weight:900}.quest-hero p{opacity:.92;margin:6px 0 0;font-weight:700}.quest-hero .mascot{flex:none;width:92px}.quests{gap:12px;margin:0 16px;display:grid}.quest{border:2px solid var(--line);border-radius:var(--r);align-items:center;gap:14px;padding:14px;display:flex}.quest .q-ic{width:44px;height:44px;color:var(--gold-dark);background:#fff4cc;border-radius:12px;flex:none;place-items:center;display:grid}.quest .q-ic svg{width:26px;height:26px}.quest .q-main{flex:1;gap:8px;display:grid}.quest .progress{height:18px;position:relative}.quest .progress i{background:var(--gold)}.quest .progress em{color:var(--muted);place-items:center;font-size:12px;font-style:normal;font-weight:900;display:grid;position:absolute;inset:0}.quest.ok .progress i{background:var(--green)}.quest .q-done{width:26px;color:var(--green)}.mini-stats{grid-template-columns:1fr 1fr;gap:12px;margin:0 16px;display:grid}.mini-stats div,.stat-grid div{border:2px solid var(--line);border-radius:var(--r);padding:14px}.mini-stats b,.stat-grid b{font-size:24px;font-weight:900;display:block}.mini-stats small,.stat-grid small{color:var(--muted);font-weight:700}.prof-head{align-items:center;gap:16px;padding:22px 16px 6px;display:flex}.prof-avatar{background:var(--soft);border:3px solid var(--line);border-radius:50%;flex:none;place-items:center;width:96px;height:96px;display:grid;overflow:hidden}.prof-avatar svg{width:118%;margin-top:16%}.prof-head h1{margin:0;font-size:26px;font-weight:900}.prof-head p{color:var(--muted);margin:4px 0 0;font-weight:700}.skins{gap:10px;padding:0 16px;display:flex;overflow-x:auto}.skin{border:2px solid var(--line);cursor:pointer;width:66px;height:66px;box-shadow:0 3px 0 var(--line);background:#fff;border-radius:18px;flex:none;padding:4px}.skin.on{border-color:var(--blue);box-shadow:0 3px 0 var(--blue);background:var(--blue-light)}.skin svg{width:100%;height:100%}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;margin:0 16px;display:grid}.stat-grid .si{place-items:center;width:30px;height:30px;display:inline-grid}.si svg{width:26px;height:26px}.si.fire{color:var(--orange)}.si.xp{color:var(--gold-dark)}.si.blue{color:var(--blue)}.si.green{color:var(--green)}.badges{grid-template-columns:repeat(2,1fr);gap:12px;margin:0 16px;display:grid}.badge-card{border:2px solid var(--line);border-radius:var(--r);color:var(--faint);filter:grayscale();opacity:.7;gap:2px;padding:12px;display:grid}.badge-card.ok{color:var(--ink);filter:none;opacity:1}.badge-card span{background:var(--line);color:#fff;border-radius:12px;place-items:center;width:36px;height:36px;margin-bottom:4px;display:grid}.badge-card.ok span{background:var(--gold);box-shadow:0 3px 0 var(--gold-dark)}.badge-card span svg{width:22px;height:22px}.badge-card b{font-weight:900}.badge-card small{color:var(--muted);font-weight:700}.voices{gap:10px;margin:0 16px 20px;display:grid}.voice{border:2px solid var(--line);border-radius:var(--r);cursor:pointer;align-items:center;gap:12px;padding:12px;display:flex}.voice.on{background:var(--blue-light);border-color:#84d8ff}.voice div{flex:1}.voice b{font-weight:900;display:block}.voice small{color:var(--muted);font-weight:700}.voice .tick{width:24px;color:var(--blue)}.btn.danger{color:var(--red);width:calc(100% - 32px);margin:8px 16px 0}.btn.small{width:auto;min-height:40px;padding:0 14px;font-size:13px}.teacher{padding:16px 16px 40px}#app:has(.teacher){max-width:1040px}.t-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.t-brand{align-items:center;gap:12px;display:flex}.t-brand .mascot{width:56px}.t-brand h1{margin:0;font-size:22px;font-weight:900}.t-brand p{color:var(--muted);margin:0;font-weight:700}.t-tabs{gap:8px;margin:18px 0;display:flex;overflow-x:auto}.t-tabs button{border:2px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:14px;flex:none;padding:8px 14px;font-weight:900}.t-tabs button small{color:var(--muted);font-size:12px;font-weight:700;display:block}.t-tabs button.on{border-color:var(--blue);background:var(--blue-light);color:var(--blue-dark)}.t-tabs em{background:var(--red);color:#fff;border-radius:99px;margin-left:4px;padding:1px 7px;font-size:12px;font-style:normal}.t-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.t-cards div{border:2px solid var(--line);border-radius:var(--r);padding:14px}.t-cards small,.t-cards span{color:var(--muted);font-weight:700;display:block}.t-cards b{font-size:28px;font-weight:900;display:block}.t-cards b.code{color:var(--blue);letter-spacing:3px}.t-table{border-collapse:collapse;width:100%;font-size:15px;font-weight:700}.t-table th{text-align:left;color:var(--muted);border-bottom:2px solid var(--line);padding:8px;font-size:13px}.t-table td{border-bottom:1px solid var(--line);padding:8px}.t-table td:first-child{align-items:center;gap:8px;font-weight:900;display:flex}.t-table td.warn{color:var(--orange)}.t-av{background:var(--soft);border-radius:50%;place-items:center;width:32px;height:32px;display:inline-grid;overflow:hidden}.t-act{white-space:nowrap}.t-act button{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-weight:900}.t-act button[data-del]{color:var(--red)}.t-add{gap:10px;margin-top:14px;display:flex}.t-add input{flex:1}.pin-card{border-radius:var(--r);border:2px solid var(--gold);background:#fff4cc;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:14px;display:flex}.pin-card small{color:var(--gold-dark);font-weight:800}.pin-card p{margin:4px 0 0;font-weight:700}.pin-card .pin{letter-spacing:4px;color:var(--ink);font-size:22px}.t-hard{gap:8px;margin:0;padding:0;list-style:none;display:grid}.t-hard li{border:2px solid var(--line);border-radius:14px;gap:12px;padding:10px 12px;display:flex}.t-hard b{color:var(--red);font-weight:900}.t-hard span{font-weight:800;display:block}.t-hard small{color:var(--muted);font-weight:700}.t-new{max-width:420px}.t-new h2{margin:0;font-weight:900}.t-review{gap:10px;display:grid}.rv{border:2px solid var(--line);border-radius:var(--r);justify-content:space-between;gap:14px;padding:12px 14px;display:flex}.rv small{color:var(--muted);font-weight:700}.rv p{margin:4px 0 8px;font-weight:800}.rv-ans{gap:4px;display:grid}.rv .given{color:var(--blue-dark);font-weight:900}.rv .exp{color:var(--muted);font-size:14px;font-weight:700}.rv-btn{align-content:center;gap:8px;display:grid}.muted{color:var(--muted);font-weight:700}.speaker{flex-direction:column;flex:none;align-items:center;gap:2px;display:flex}.speaker .portrait{background:var(--soft);border:2px solid var(--line);border-radius:50%;width:84px;height:84px}.speaker small{color:var(--muted);font-size:12px;font-weight:900}.choices.grid2{grid-template-columns:1fr 1fr}.choices.grid2 .choice{justify-content:center;font-size:20px}.syllables{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:8px;display:flex}.syl{border:2px solid var(--line);box-shadow:0 4px 0 var(--line);cursor:pointer;background:#fff;border-radius:14px;padding:16px 18px;font-size:24px;font-weight:900}.syl.sel{background:var(--blue-light);color:var(--blue-dark);border-color:#84d8ff;box-shadow:0 4px #84d8ff}.syllables .dot{color:var(--faint);font-size:24px;font-weight:900}.type-box.short{min-height:80px}.reading{border:2px solid var(--line);border-radius:var(--r);background:var(--soft);max-height:46dvh;margin-bottom:14px;padding:12px 16px;overflow:auto}.reading h4{margin:0 0 6px;font-size:17px;font-weight:900}.reading p{margin:0 0 6px;font-size:16px;font-weight:700;line-height:1.5}.q-sub{margin:0 0 12px;font-size:18px;font-weight:900}.seg{border:2px solid var(--line);background:var(--soft);border-radius:16px;gap:4px;margin:14px 16px 6px;padding:4px;display:flex}.seg a{text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-radius:12px;flex:1;padding:9px 0;font-size:14px;font-weight:900;text-decoration:none}.seg a.on{color:var(--blue);box-shadow:0 2px 0 var(--line);background:#fff}.pickers{flex-direction:column;gap:8px;margin:10px 16px 4px;display:flex}.chips{gap:8px;display:flex;overflow-x:auto}.chip{border:2px solid var(--line);font:inherit;color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;flex:none;padding:7px 14px;font-size:14px;font-weight:800}.chip.on{background:var(--blue-light);color:var(--blue-dark);border-color:#84d8ff}.track-note{color:var(--muted);margin:6px 20px 0;font-size:14px;font-weight:700}.sem-head{color:var(--ink);align-items:center;gap:12px;margin:28px 16px 4px;font-size:18px;font-weight:900;display:flex}.sem-head:after{content:"";background:var(--line);border-radius:3px;flex:1;height:3px}.node.next-pulse{animation:1.2s ease-out 2 next-pulse}@keyframes next-pulse{0%{box-shadow:0 8px 0 var(--ucd), 0 0 0 0 #58cc028c}to{box-shadow:0 8px 0 var(--ucd), 0 0 0 22px #58cc0200}}@media (prefers-reduced-motion:reduce){.node.next-pulse{animation:none}}.chapter-head{letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:22px 16px 0;font-size:13px;font-weight:900}.resume{border-radius:var(--r);background:var(--uc);color:#fff;box-shadow:0 4px 0 var(--ucd);justify-content:space-between;align-items:center;gap:12px;margin:12px 16px 0;padding:12px 16px;text-decoration:none;display:flex}.resume small{text-transform:uppercase;opacity:.85;letter-spacing:.5px;font-size:12px;font-weight:800;display:block}.resume b{font-size:18px;font-weight:900;display:block}.resume span{opacity:.9;font-size:14px;font-weight:700}.resume svg{flex:none;width:34px;height:34px}.mistakes{border:2px solid var(--line);border-radius:var(--r);box-shadow:0 4px 0 var(--line);color:inherit;background:#fff;align-items:center;gap:12px;margin:14px 16px 0;padding:12px 14px;text-decoration:none;display:flex}.mistakes .mascot{flex:none;width:64px}.mistakes b{font-size:17px;font-weight:900;display:block}.mistakes span{color:var(--muted);font-size:14px;font-weight:700}.mistakes.off{box-shadow:none}.prac-grid{grid-template-columns:1fr 1fr;gap:10px;margin:0 16px;display:grid}.prac{border:2px solid var(--line);border-radius:var(--r);box-shadow:0 4px 0 var(--line);color:inherit;background:#fff;flex-direction:column;gap:2px;padding:12px;text-decoration:none;display:flex}.prac:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.prac.off{opacity:.5;box-shadow:none}.prac b{margin-top:6px;font-size:16px;font-weight:900}.prac small{color:var(--muted);font-size:13px;font-weight:700;line-height:1.3}.prac-ic{color:#fff;border-radius:12px;place-items:center;width:42px;height:42px;font-size:16px;font-weight:900;display:grid}.p-grammar{background:var(--purple)}.p-vocab{background:var(--green)}.p-translate{background:var(--blue)}.p-listening{background:var(--orange)}.p-reading{background:#ff4b4b}.p-pron{background:#2b70c9;font-size:14px}.review-note{opacity:.8;margin-top:4px!important;font-size:13px!important}.cast{grid-template-columns:repeat(2,1fr);gap:10px;margin:0 16px 20px;display:grid}.cast-card{text-align:center;border:2px solid var(--line);border-radius:var(--r);flex-direction:column;align-items:center;gap:2px;padding:12px 8px;display:flex}.cast-card .portrait{background:var(--soft);border-radius:50%;width:84px;height:84px}.cast-card b{margin-top:4px;font-size:16px;font-weight:900}.cast-card small{color:var(--muted);font-size:12px;font-weight:700;line-height:1.3}.grade-pick{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.center{text-align:center}.place-toggle{grid-template-columns:1fr 1fr;gap:10px;display:grid}.place-toggle button{text-align:left;border:2px solid var(--line);box-shadow:0 4px 0 var(--line);font:inherit;color:var(--muted);cursor:pointer;background:#fff;border-radius:16px;align-items:center;gap:10px;padding:10px 12px;display:flex}.place-toggle button b{color:var(--ink);font-size:16px;font-weight:900;display:block}.place-toggle button small{font-size:12px;font-weight:700;display:block}.place-toggle button.on{background:var(--blue-light);color:var(--blue-dark);border-color:#84d8ff;box-shadow:0 4px #84d8ff}.place-toggle button.on b{color:var(--blue-dark)}.daily{border-radius:var(--r);color:inherit;background:#fff4e5;border:2px solid #ffd59e;align-items:center;gap:12px;margin:12px 16px 0;padding:12px 14px;text-decoration:none;display:flex}.daily.done{background:var(--soft);border-color:var(--line)}.daily-ic{background:var(--orange);color:#fff;border-radius:14px;flex:none;place-items:center;width:44px;height:44px;display:grid}.daily.done .daily-ic{background:var(--green)}.daily small{text-transform:uppercase;letter-spacing:.5px;color:#cd7900;font-size:12px;font-weight:800;display:block}.daily.done small{color:var(--muted)}.daily b{font-size:16px;font-weight:900}.daily-go{background:var(--orange);color:#fff;text-transform:uppercase;border-radius:12px;margin-left:auto;padding:8px 14px;font-size:14px;font-weight:900;box-shadow:0 3px #cd7900}.week{border-radius:var(--r);background:var(--uc);color:#fff;box-shadow:0 4px 0 var(--ucd);margin:12px 16px 0;padding:14px 16px}.week small{text-transform:uppercase;letter-spacing:.5px;opacity:.9;font-size:12px;font-weight:800}.week h3{margin:2px 0 0;font-size:20px;font-weight:900}.week>p{opacity:.9;margin:2px 0 10px;font-size:14px;font-weight:700}.week-bars{gap:6px;margin-bottom:12px;display:grid}.week-bars div{grid-template-columns:64px 1fr 40px;align-items:center;gap:8px;font-size:14px;font-weight:800;display:grid}.week-bars i{background:#ffffff4d;border-radius:6px;height:12px;position:relative;overflow:hidden}.week-bars i:after{content:"";transform-origin:0;transform:scaleX(var(--p));background:#fff;border-radius:6px;position:absolute;inset:0}.week-bars b{text-align:right}.btn.white{--c:#fff;--cd:#0000002e;color:var(--ucd);width:100%;font-size:15px}.week-done{margin:0;font-weight:800}.intro{align-items:center;gap:10px;margin:12px 16px 0;display:flex}.intro .portrait{background:var(--soft);border-radius:50%;flex:none;width:56px;height:56px}.intro .bubble{flex:1}.intro .bubble b{font-size:15px;font-weight:800;display:block}.intro .bubble small{color:var(--muted);margin-top:2px;font-size:13px;font-weight:700;display:block}.intro .say-btn{flex:none;width:44px;height:44px}.node-kind{color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:12px;padding:2px 8px;font-size:12px;font-weight:800}.path.short{gap:30px}.home-unit .unit-banner{background-image:repeating-linear-gradient(135deg,#0000 0 14px,#ffffff14 14px 28px)}.home-note{color:var(--muted);text-align:center;margin:10px 16px 0;font-size:14px;font-weight:700}.intro .bubble{margin-bottom:0;padding:8px 12px;display:block}.t-week{border:2px solid var(--line);border-radius:var(--r);margin-top:16px;padding:14px}.t-week label{gap:4px;min-width:0;display:grid}.t-week small{color:var(--muted);font-weight:700}.t-week select{width:100%;min-width:0;font:inherit;border:2px solid var(--line);background:var(--soft);border-radius:12px;max-width:100%;margin-top:6px;padding:10px;font-weight:700}.sj{color:#fff;border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-size:14px;font-weight:900;display:grid}.sj-en{background:var(--blue);box-shadow:0 3px 0 var(--blue-dark)}.sj-mat{background:var(--orange);box-shadow:0 3px #cc7a00}.course-flag .flag.all{background:var(--green);box-shadow:0 3px 0 var(--green-dark)}.course-flag .flag.mat{background:var(--orange);box-shadow:0 3px #cc7a00}.m-frac{vertical-align:middle;text-align:center;flex-direction:column;margin:0 2px;font-size:.9em;line-height:1.05;display:inline-flex}.m-frac>span:first-child{border-bottom:2px solid;padding:0 3px 1px}.m-frac>span:last-child{padding:1px 3px 0}.m-root>span{border-top:2px solid;margin-left:1px;padding:0 2px}sup{font-size:.65em;line-height:0}.m-label{font-variant-numeric:lining-nums}.m-q{border:2px solid var(--line);border-radius:var(--r);background:var(--soft);margin:6px 0 16px;padding:14px 16px;font-size:18px;font-weight:800;line-height:1.45}.speaker-row .bubble .m-frac{font-size:.95em}.fig{flex-wrap:wrap;justify-content:center;gap:10px;margin:4px 0 18px;display:flex}.fig-svg{width:100%;height:auto;font-family:Nunito,system-ui,sans-serif}.fig-table{border-collapse:separate;border-spacing:0;border:2px solid var(--line);border-radius:12px;min-width:60%;font-size:15px;font-weight:800;overflow:hidden}.fig-table th{background:var(--blue-light);color:var(--blue-dark);padding:8px 12px}.fig-table td{text-align:center;border-top:2px solid var(--line);padding:8px 12px}.fig-table td+td,.fig-table th+th{border-left:2px solid var(--line)}.learn-card{background:#fff8ec;border:2px solid #ffc56b;border-radius:20px;padding:18px 18px 8px;box-shadow:0 4px #ffd99a}.learn-card small{color:#cc7a00;text-transform:uppercase;letter-spacing:.6px;align-items:center;gap:6px;font-size:13px;font-weight:900;display:inline-flex}.learn-card h2{margin:6px 0 12px;font-size:22px;line-height:1.25}.learn-card p{margin:0 0 10px;font-size:18px;font-weight:700;line-height:1.5}.learn-card .fig{background:#fff;border-radius:14px;padding:8px}.learn-card .more{border-top:2px dashed #ffd99a;margin:4px 0 12px;padding-top:8px}.learn-card .more summary{cursor:pointer;color:#cc7a00;padding:6px 0;font-size:16px;font-weight:900}.learn-card .more p{font-size:17px}.q-img{aspect-ratio:1;background:#fff;border-radius:18px;width:min(100%,240px);margin:0 auto 14px;display:block}.vocab-card{border:2px solid var(--line);box-shadow:0 4px 0 var(--line);text-align:center;border-radius:20px;padding:16px 18px}.vocab-card small{color:var(--purple-dark);text-transform:uppercase;letter-spacing:.6px;align-items:center;gap:6px;font-size:13px;font-weight:900;display:inline-flex}.vocab-img{aspect-ratio:1;border-radius:18px;width:min(100%,260px);margin:8px auto 6px;display:block}.vocab-word{justify-content:center;align-items:center;gap:12px;display:flex}.vocab-word b{font-size:32px;font-weight:900}.vocab-mean{color:var(--muted);margin:2px 0 14px;font-size:20px;font-weight:800}.vocab-ex{text-align:left;background:var(--soft);border-radius:14px;align-items:center;gap:12px;padding:10px 12px;display:flex}.vocab-ex div{flex-direction:column;gap:2px;display:flex}.vocab-ex b{font-size:17px}.vocab-ex span{color:var(--muted);font-weight:700}.vocab-note{color:var(--muted);text-align:left;margin:12px 0 0;font-size:15px;font-weight:700}.say-btn.small{width:36px;height:36px}.img-choices{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.img-choice{border:2px solid var(--line);border-radius:var(--r);box-shadow:0 4px 0 var(--line);cursor:pointer;background:#fff;padding:8px}.img-choices.three{grid-template-columns:repeat(3,1fr);gap:8px}.img-choice img{aspect-ratio:1;border-radius:12px;width:100%;display:block}.img-choice:active{box-shadow:none;transform:translateY(4px)}.img-choice.sel{background:var(--blue-light);border-color:#84d8ff;box-shadow:0 4px #84d8ff}.num-line{justify-content:center;align-items:center;gap:10px;margin:6px 0 18px;font-size:22px;font-weight:900;display:flex}.num-box{background:var(--blue-light);min-width:140px;min-height:60px;color:var(--blue-dark);border:2px solid #84d8ff;border-radius:14px;justify-content:center;align-items:center;padding:6px 16px;font-size:28px;font-weight:900;display:inline-flex;box-shadow:0 3px #84d8ff}.num-box:empty:after{content:"?";color:#84d8ff}.num-box.ok,.blank.ok{border-color:var(--green);background:var(--green-light);color:var(--green-dark);box-shadow:0 3px 0 var(--green)}.num-box.bad,.blank.bad{border-color:var(--red);background:var(--red-light);color:var(--red-dark);box-shadow:0 3px 0 var(--red)}.keypad{grid-template-columns:repeat(4,1fr);align-self:center;gap:10px;width:100%;max-width:380px;margin:0 auto 8px;display:grid}.keypad button{border:2px solid var(--line);min-height:52px;box-shadow:0 3px 0 var(--line);cursor:pointer;background:#fff;border-radius:14px;font-size:22px;font-weight:900}.keypad button.op{background:var(--soft);color:var(--blue-dark);font-size:18px}.keypad button:active{box-shadow:none;transform:translateY(3px)}.frozen .keypad{opacity:.45;pointer-events:none}.fill-lines{border:2px solid var(--line);border-radius:var(--r);margin-bottom:16px;padding:10px 16px}.fill-lines p{margin:8px 0;font-size:20px;font-weight:800;line-height:1.6}.blank{vertical-align:middle;border:2px dashed var(--faint);min-width:64px;min-height:42px;color:var(--blue-dark);cursor:pointer;background:#fff;border-radius:10px;margin:0 3px;padding:2px 10px;font-size:20px;font-weight:900}.blank.on{border:2px solid var(--blue);background:var(--blue-light)}.answer-line.order-v,.bank.order-v{flex-direction:column;align-items:stretch}.answer-line.order-v{background:0 0;min-height:60px}.order-v .tile{text-align:left}.subject-pick{gap:16px;padding:18px 16px 8px;display:grid}.grade-chips{justify-content:center}.sp-hello{align-items:center;gap:12px;display:flex}.sp-hello .mascot{flex:none;width:84px;height:84px}.sp-hello h1{margin:0;font-size:24px;line-height:1.2}.sp-hello p{color:var(--muted);margin:4px 0 0;font-weight:700}.subject-card{--c:var(--blue);--cd:var(--blue-dark);--cl:var(--blue-light);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);color:var(--ink);border-radius:20px;padding:16px;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:block}.subject-card.s-mat{--c:var(--orange);--cd:#cc7a00;--cl:#fff4e0}.subject-card:hover{border-color:var(--c);box-shadow:0 4px 0 var(--cd)}.subject-card:active{box-shadow:none;transform:translateY(4px)}.sc-top{align-items:center;gap:12px;display:flex}.sc-top .sj{border-radius:14px;width:52px;height:52px;font-size:20px}.sc-top h2{margin:0;font-size:22px}.sc-top small{color:var(--muted);font-weight:800}.sc-go{color:var(--c);margin-left:auto;font-size:44px;font-weight:900;line-height:1}.sc-now{background:var(--cl);border-radius:14px;gap:2px;margin:14px 0 10px;padding:10px 12px;display:grid}.sc-now em{text-transform:uppercase;letter-spacing:.5px;color:var(--cd);font-size:12px;font-style:normal;font-weight:900}.sc-now b{font-size:17px}.sc-now span{color:var(--muted);font-size:14px;font-weight:700}.sc-bar{background:var(--line);border-radius:99px;height:12px;overflow:hidden}.sc-bar i{height:100%;width:calc(var(--p) * 100%);background:var(--c);border-radius:99px;min-width:12px;display:block}.sc-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font-size:13px;font-weight:800;display:flex}.sc-drill{color:var(--orange);align-items:center;gap:4px;display:inline-flex}.sc-drill.ok{color:var(--green-dark)}.subject-head{align-items:center;gap:10px;margin:12px 16px 0;display:flex}.subject-head .back-link{color:var(--faint);padding:4px 6px;font-size:26px;font-weight:900;text-decoration:none}.subject-head small{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:800;display:block}.subject-head b{font-size:19px}.subject-head .switch-link{color:var(--blue);text-transform:uppercase;letter-spacing:.4px;margin-left:auto;font-size:13px;font-weight:900;text-decoration:none}.komo .k-all,.komo .k-tail,.komo .k-body,.komo .k-head,.komo .k-eye,.komo .k-pupil,.komo .k-arm{transform-box:fill-box}.komo.alive{cursor:pointer;overflow:visible}.komo.alive .k-eye{transform-origin:50%;animation:4.2s infinite k-blink}.komo.alive .k-pupil{animation:7s ease-in-out infinite k-look}.komo.alive .k-body{transform-origin:bottom;animation:3.2s ease-in-out infinite k-breathe}.komo.alive .k-head{transform-origin:bottom;animation:6s ease-in-out infinite k-nod}.komo.alive .k-tail{transform-origin:0;animation:1.6s ease-in-out infinite k-wag}.komo.alive.k-cheer .k-arm-l{transform-origin:100% 100%;animation:.5s ease-in-out infinite alternate k-wave-l}.komo.alive.k-cheer .k-arm-r{transform-origin:0 100%;animation:.5s ease-in-out infinite alternate k-wave-r}.komo.alive.k-cheer .k-all{transform-origin:bottom;animation:.9s ease-in-out infinite k-hop}.komo.alive.k-sad .k-head{animation:2.4s ease-in-out infinite k-droop}.komo.poke .k-all{transform-origin:bottom;animation:.6s cubic-bezier(.3,1.6,.5,1) k-poke!important}@keyframes k-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes k-look{0%,30%,to{transform:translate(0)}38%,52%{transform:translate(-3px)}60%,74%{transform:translate(3px)}}@keyframes k-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03,.97)}}@keyframes k-nod{0%,to{transform:rotate(0)}40%{transform:rotate(-3deg)}60%{transform:rotate(2deg)}}@keyframes k-wag{0%,to{transform:rotate(-6deg)}50%{transform:rotate(10deg)}}@keyframes k-wave-l{to{transform:rotate(-22deg)}}@keyframes k-wave-r{to{transform:rotate(22deg)}}@keyframes k-hop{0%,to{transform:translateY(0)scale(1)}15%{transform:translateY(0)scale(1.06,.92)}45%{transform:translateY(-14px)scale(.96,1.05)}75%{transform:translateY(0)scale(1.04,.95)}}@keyframes k-droop{0%,to{transform:rotate(0)translateY(2px)}50%{transform:rotate(-5deg)translateY(4px)}}@keyframes k-poke{0%{transform:scale(1)}30%{transform:scale(1.12,.86)}60%{transform:translateY(-18px)scale(.94,1.08)rotate(-6deg)}to{transform:none}}.komo-say{z-index:90;border:2px solid var(--line);width:200px;box-shadow:0 4px 0 var(--line);text-align:center;pointer-events:none;background:#fff;border-radius:14px;padding:10px 12px;font-size:14px;font-weight:800;animation:.2s ease-out popIn;position:fixed}.lesson-foot{position:relative}.fb-komo{pointer-events:none;width:78px;animation:.45s cubic-bezier(.3,1.5,.5,1) k-peek;position:absolute;bottom:calc(100% - 6px);right:14px}.fb-komo svg{width:100%;display:block}@keyframes k-peek{0%{opacity:0;transform:translateY(60%)}}.combo .komo{vertical-align:middle;width:34px;margin-right:4px}.finish .komo-stage{place-items:center;display:grid;position:relative}.finish .komo-stage:before{content:"";background:repeating-conic-gradient(#ffe9a8 0 12deg, transparent 12deg 30deg);opacity:.8;border-radius:50%;width:260px;height:260px;animation:12s linear infinite k-rays;position:absolute;-webkit-mask:radial-gradient(circle,#000 35%,#0000 70%);mask:radial-gradient(circle,#000 35%,#0000 70%)}.finish .komo-stage.retry:before{display:none}.finish .komo-stage .mascot{animation:none;position:relative}@keyframes k-rays{to{transform:rotate(360deg)}}.node.current{animation:3.2s ease-in-out infinite k-jiggle}@keyframes k-jiggle{0%,82%,to{transform:rotate(0)}86%{transform:rotate(-7deg)scale(1.04)}90%{transform:rotate(6deg)scale(1.04)}94%{transform:rotate(-3deg)}}@media (prefers-reduced-motion:reduce){.komo.alive *,.komo.poke .k-all,.node.current,.finish .komo-stage:before,.fb-komo{animation:none!important}}.hatch{min-height:100dvh;padding:32px 20px calc(24px + env(safe-area-inset-bottom));text-align:center;background:radial-gradient(circle at 50% 30%,#fff8e1,#fff 60%);flex-direction:column;align-items:center;gap:12px;display:flex}.hatch h1{margin:8px 0 0;font-size:26px;line-height:1.2}.hatch>p{color:var(--muted);max-width:340px;margin:0;font-weight:700}.hatch .btn{max-width:360px;margin-top:auto}.egg-grid{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:380px;margin:14px 0;display:grid}.egg-pick{border:2px solid var(--line);box-shadow:0 4px 0 var(--line);cursor:pointer;color:var(--muted);background:#fff;border-radius:18px;justify-items:center;gap:4px;padding:10px 6px 8px;font-size:13px;font-weight:800;display:grid}.egg-pick .egg-svg{transform-origin:50% 90%;width:64px;animation:2.6s ease-in-out infinite egg-idle}.egg-pick:nth-child(2n) .egg-svg{animation-delay:-1.1s}.egg-pick.on{border-color:var(--orange);color:#cc7a00;background:#fff4e0;box-shadow:0 4px #ffc56b}.egg-pick.on .egg-svg{animation:.9s ease-in-out infinite egg-wobble}@keyframes egg-idle{0%,to{transform:rotate(0)}50%{transform:rotate(3deg)}}@keyframes egg-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.egg-big{cursor:pointer;background:0 0;border:0;width:min(220px,60vw);margin:20px 0 6px;padding:0}.egg-big .egg-svg{transform-origin:50% 92%;width:100%;animation:2s ease-in-out infinite egg-idle}.egg-big.shake1 .egg-svg{animation:.5s ease-in-out egg-shake}.egg-big.shake2 .egg-svg{animation:.4s ease-in-out 2 egg-shake}.egg-big.open .egg-top{transform-box:fill-box;transform-origin:30% 100%;animation:.6s ease-in forwards egg-pop}.egg-big.open .egg-svg{animation:none}@keyframes egg-shake{0%,to{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}}@keyframes egg-pop{to{opacity:0;transform:translate(-30px,-90px)rotate(-50deg)}}.egg-cracks path{stroke-dasharray:80;stroke-dashoffset:80px;animation:.35s ease-out forwards crack-draw}@keyframes crack-draw{to{stroke-dashoffset:0}}.tap-dots{gap:10px;display:flex}.tap-dots i{background:var(--line);border-radius:50%;width:14px;height:14px;transition:background .2s,transform .2s}.tap-dots i.on{background:var(--orange);transform:scale(1.2)}.hatch.born{justify-content:flex-start}.born-stage{width:190px;margin-top:40px;animation:.7s cubic-bezier(.3,1.6,.5,1) born-pop}.born-stage .mascot{width:100%}@keyframes born-pop{0%{opacity:0;transform:translateY(60px)scale(.3)}}.born-bubble{border:2px solid var(--line);max-width:340px;box-shadow:0 4px 0 var(--line);border-radius:18px;gap:4px;padding:14px 16px;animation:.3s ease-out .4s backwards popIn;display:grid;position:relative}.born-bubble:before{content:"";border-left:2px solid var(--line);border-top:2px solid var(--line);background:#fff;width:16px;height:16px;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(45deg)}.born-bubble b{font-size:20px}.born-bubble span{color:var(--muted);font-weight:700}.hatch.born small{color:var(--faint);font-weight:700}@media (prefers-reduced-motion:reduce){.egg-svg,.egg-top,.born-stage{animation:none!important}}.t-add .t-pin{flex:0 0 150px;min-width:0}@media (width<=480px){.t-add{flex-wrap:wrap}.t-add .t-pin{flex:120px}}.t-week .t-unlock{border-top:2px solid var(--line);cursor:pointer;align-items:flex-start;gap:10px;margin-top:12px;padding-top:12px;display:flex}.t-unlock input{width:20px;height:20px;accent-color:var(--orange);flex:none;margin-top:2px}.t-unlock span{gap:2px;display:grid}.tab-page.pop-room{padding-bottom:240px}.session-banner{z-index:60;background:var(--purple);color:#fff;max-width:440px;box-shadow:0 5px 0 var(--purple-dark);text-align:left;cursor:pointer;border:0;border-radius:18px;align-items:center;gap:12px;margin:0 auto;padding:12px 16px;animation:.3s ease-out slideIn;display:flex;position:fixed;bottom:92px;left:16px;right:16px}.session-banner span{flex-direction:column;display:flex}.session-banner b{font-size:17px}.session-banner small{opacity:.9;font-weight:700}.sess{max-width:640px;min-height:100dvh;margin:0 auto;padding-bottom:32px}.sess-top{border-bottom:2px solid var(--line);align-items:center;gap:12px;padding:12px 16px;display:flex}.sess-top b{flex:1;font-size:18px}.sess-top span{color:var(--purple-dark);font-variant-numeric:tabular-nums;font-weight:900}.sess-phase{gap:6px;padding:12px 16px 0;display:flex;overflow-x:auto}.sess-phase span{background:var(--soft);color:var(--faint);border-radius:999px;flex:none;padding:6px 12px;font-size:13px;font-weight:800}.sess-phase span.on{background:var(--purple);color:#fff}.sess-unit{color:var(--muted);margin:8px 16px 0;font-weight:800}.sess-step{color:var(--faint);text-transform:uppercase;letter-spacing:.5px;margin:4px 16px 0;font-size:13px;font-weight:800}#sbody #act{padding:0 16px}.sess-wait,.sess-sent{text-align:center;color:var(--muted);font-size:17px;font-weight:900}.sess-sent.ok{color:var(--green-dark)}.sess-sent.bad{color:#ea2b2b}.sess-qbar{color:var(--muted);align-items:center;gap:10px;margin:10px 16px 0;font-weight:800;display:flex}.sess-qbar i{background:var(--line);border-radius:99px;flex:1;height:12px;position:relative;overflow:hidden}.sess-qbar i:after{content:"";background:var(--purple);transform-origin:0;transform:scaleX(var(--p));position:absolute;inset:0}.sess-score{border:2px solid var(--line);border-radius:20px;align-items:center;gap:14px;margin:14px 16px;padding:14px;display:flex}.sess-score .mascot{flex:none;width:84px;height:84px}.sess-score div{flex-direction:column;display:flex}.sess-score small{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:800}.sess-score b{color:var(--purple-dark);font-size:40px;font-weight:900;line-height:1.1}.sess-score span{color:var(--muted);font-weight:700}.sess-avg{color:var(--muted);margin:0 16px 8px;font-weight:700}.sess-review{flex-direction:column;gap:8px;margin:0 16px;padding:0;list-style:none;display:flex}.sess-review li{background:var(--soft);border-radius:14px;gap:10px;padding:10px 12px;font-weight:700;display:flex}.sess-review li small{color:var(--muted);margin-top:2px;font-weight:700;display:block}.sess-review li.ok span{color:var(--green-dark)}.sess-review li.bad span{color:#ea2b2b}.quiz-league h2{margin:18px 16px 4px;font-size:20px}.quiz-league h2 small{color:var(--muted);font-size:14px;display:block}.quiz-league p{margin:0 16px 8px}.t-sess{border:2px solid var(--purple);background:#faf3ff;border-radius:18px;flex-direction:column;gap:10px;margin:14px 0;padding:14px 16px;display:flex}.t-sess p{flex-direction:column;margin:0;display:flex}.t-sess p small{color:var(--muted);font-weight:600}.t-sess-new{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.t-sess-new select{border:2px solid var(--line);font:inherit;border-radius:12px;max-width:100%;padding:10px;font-weight:700}.tsess{background:#fff;min-height:100dvh}.tsess-top{border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px 18px;padding:12px 20px;display:flex}.tsess-top #ttitle{flex-direction:column;flex:1;min-width:200px;display:flex}.tsess-top #ttitle b{font-size:20px}.tsess-top #ttitle small{color:var(--muted);font-weight:700}#tphase{flex-wrap:wrap;gap:6px;display:flex}#tphase button{border:2px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:12px;padding:8px 14px;font-weight:800}#tphase button.on{background:var(--purple);border-color:var(--purple);color:#fff}#tphase button.end{color:#ea2b2b}.tsess-materi{grid-template-columns:minmax(0,1fr) 300px;gap:20px;max-width:1200px;margin:0 auto;padding:20px;display:grid}.tsess-card .lesson-body{padding:0;font-size:120%}.tsess-card .learn-card p{font-size:24px}.tsess-card .learn-card h2{font-size:32px}.tsess-card .learn-card .more[open] p,.tsess-card .learn-card .more p{font-size:20px}.tsess-materi aside{flex-direction:column;gap:14px;display:flex}.tsess-nav{justify-content:space-between;align-items:center;gap:10px;font-size:18px;font-weight:900;display:flex}.tsess-nav .btn{width:72px}.tsess-stat{border:2px solid var(--line);border-radius:16px;grid-template-columns:auto 1fr;align-items:baseline;gap:2px 10px;padding:14px;display:grid}.tsess-stat b{font-size:28px;font-weight:900}.tsess-stat b.ok{color:var(--green-dark)}.tsess-stat b.bad{color:#ea2b2b}.tsess-stat span{color:var(--muted);font-weight:700}.tsess-stat ul,.tsess-who{flex-wrap:wrap;grid-column:1/-1;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.tsess-stat li,.tsess-who li{background:var(--soft);color:var(--faint);border-radius:99px;padding:4px 10px;font-size:13px;font-weight:800}.tsess-stat li.ok,.tsess-who li.on{background:var(--green-light);color:var(--green-dark)}.tsess-stat li.bad{color:#ea2b2b;background:#ffdfe0}.tsess-hint{color:#cc7a00;grid-column:1/-1;margin:6px 0 0;font-weight:800}.tsess-msg{flex-direction:column;gap:14px;max-width:900px;margin:0 auto;padding:24px 20px;display:flex}.tsess-msg h2{margin:0;font-size:28px}.tsess-msg label{font-weight:800}.tsess-msg select{font:inherit;border-radius:10px;padding:8px}.tsess-qbtns{flex-wrap:wrap;gap:10px;display:flex}.tsess-results{grid-template-columns:1fr 1fr;gap:24px;max-width:1200px;margin:0 auto;padding:20px;display:grid}.tsess-results h2 small{color:var(--muted);font-size:15px}.tsess-items{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.tsess-items li{background:var(--soft);border-radius:14px;align-items:baseline;gap:12px;padding:10px 12px;font-size:17px;font-weight:700;display:flex}.tsess-items li b{flex:none;width:52px;font-size:20px}.tsess-items li b.ok{color:var(--green-dark)}.tsess-items li b.bad{color:#ea2b2b}.tsess-items small{color:var(--muted);display:block}@media (width<=820px){.tsess-materi,.tsess-results{grid-template-columns:1fr}}.ar{direction:rtl;unicode-bidi:isolate;font-family:Amiri,Noto Naskh Arabic,serif;font-size:1.5em;font-weight:400;line-height:2}.ar.big{text-align:center;margin:6px 0;font-size:42px;line-height:2.1}.ayat-card{text-align:center;background:#f3fbf5;border:2px solid #b9e3c6;border-radius:22px;flex-direction:column;align-items:center;gap:4px;padding:16px 18px;display:flex;box-shadow:0 4px #b9e3c6}.ayat-card small{color:#2f8a4e;text-transform:uppercase;letter-spacing:.6px;font-size:13px;font-weight:900}.ayat-card .latin{color:#2f6f45;margin:6px 0 0;font-size:19px;font-style:italic;font-weight:800}.ayat-card .arti{color:var(--muted);margin:4px 0 0;font-size:18px;font-weight:700}.ar-q{background:#f3fbf5;border-radius:18px;justify-content:center;align-items:center;gap:12px;margin:6px 0 12px;padding:10px 14px;display:flex}.ar-q .ar{font-size:30px}.read-btn{border:2px solid var(--line);color:var(--blue);font:inherit;cursor:pointer;box-shadow:0 3px 0 var(--line);background:#fff;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-bottom:8px;padding:6px 14px 6px 8px;font-size:15px;font-weight:900;display:inline-flex}.read-btn svg{width:22px;height:22px}.choice .ar,.tile .ar{font-size:1.6em}.sj-pai{color:#fff;background:#2fa35a;place-items:center;display:grid}.pai-hello{align-items:center;gap:12px;margin:14px 16px 10px;display:flex}.pai-hello .mascot{flex:none;width:92px;height:92px}.pai-hello h1{margin:0;font-size:24px;line-height:1.2}.pai-hello p{color:var(--muted);margin:4px 0 0;font-size:17px;font-weight:700}.pai-today{background:var(--uc);color:#fff;box-shadow:0 5px 0 var(--ucd);border-radius:22px;grid-template-columns:1fr auto;align-items:center;margin:4px 16px 18px;padding:16px 18px;text-decoration:none;display:grid}.pai-today small{text-transform:uppercase;letter-spacing:.6px;opacity:.9;grid-column:1;font-weight:900}.pai-today b{grid-column:1;font-size:22px}.pai-today span{opacity:.9;grid-column:1;font-weight:700}.pai-today svg{color:#fff;grid-area:1/2/span 3}.dlg-bg{z-index:200;-webkit-backdrop-filter:blur(3px);background:#141e2873;justify-content:center;align-items:flex-end;animation:.18s ease-out dlg-fade;display:flex;position:fixed;inset:0}.dlg{width:100%;max-width:480px;padding:22px 20px calc(20px + env(safe-area-inset-bottom));text-align:center;background:#fff;border-radius:26px 26px 0 0;animation:.26s cubic-bezier(.22,1,.36,1) dlg-up;box-shadow:0 -8px 30px #00000026}.dlg-komo{width:104px;height:104px;box-shadow:0 4px 0 var(--line);background:#fff;border-radius:50%;place-items:center;margin:-64px auto 4px;display:grid}.dlg-komo .mascot{width:88px;height:88px}.dlg h2{margin:6px 0;font-size:23px;line-height:1.25}.dlg p{color:var(--muted);margin:0 4px 18px;font-size:17px;font-weight:700;line-height:1.45}.dlg-btns{flex-direction:column;gap:10px;display:flex}.dlg-btns .btn{width:100%}.dlg-btns .dlg-quiet{box-shadow:none;color:#ea2b2b;background:0 0;border:0}.dlg-bg.out{animation:.18s ease-in reverse forwards dlg-fade}.dlg-bg.out .dlg{animation:.18s ease-in forwards dlg-down}@keyframes dlg-fade{0%{opacity:0}to{opacity:1}}@keyframes dlg-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes dlg-down{to{transform:translateY(100%)}}@media (width>=640px){.dlg-bg{align-items:center}.dlg{border-radius:26px;margin-top:60px}@keyframes dlg-up{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:none}}}@media (prefers-reduced-motion:reduce){.dlg,.dlg-bg{animation:none!important}}.gw{border-bottom:2px dotted var(--faint);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:3px}.gw.on{background:var(--blue-light);border-bottom-color:var(--blue)}.gw:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.gw-tip{background:var(--blue-light);color:var(--blue-dark);text-align:center;border-radius:12px;margin:0 0 10px;padding:8px 12px;font-size:14px;font-weight:800}.gw-pop{z-index:150;background:var(--ink);color:#fff;pointer-events:none;border-radius:12px;max-width:min(280px,100vw - 16px);padding:8px 12px;font-size:15px;font-weight:800;line-height:1.3;animation:.12s ease-out gw-in;position:fixed}.gw-pop:after{content:"";left:var(--arrow,50%);background:var(--ink);width:12px;height:12px;margin-left:-6px;position:absolute;bottom:-6px;transform:rotate(45deg)}.gw-pop.below:after{top:-6px;bottom:auto}@keyframes gw-in{0%{opacity:0;transform:translateY(4px)}}.verb-list-link{border:2px solid var(--line);color:var(--blue);border-bottom-width:4px;border-radius:14px;align-items:center;gap:8px;margin:0 16px 6px;padding:12px 14px;font-weight:800;text-decoration:none;display:flex}.verb-page{padding:12px 16px 32px}.verb-back{color:var(--muted);align-items:center;gap:6px;font-weight:800;text-decoration:none;display:inline-flex}.verb-page h2{margin:12px 0 4px;font-size:24px}.verb-page h3{margin:22px 0 8px;font-size:18px}.verb-page h3 small{color:var(--faint);font-size:14px;font-weight:700}.verb-note{color:var(--muted);margin:0 0 12px;font-weight:700;line-height:1.4}.verb-search{box-sizing:border-box;border:2px solid var(--line);width:100%;font:inherit;background:var(--soft);border-radius:12px;padding:12px 14px;font-weight:700}.verb-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:14px}.verb-table th:nth-child(-n+3){width:22%}.verb-table td{overflow-wrap:anywhere}.verb-table th{background:var(--bg);text-align:left;color:var(--muted);border-bottom:2px solid var(--line);padding:8px 4px;font-size:13px;position:sticky;top:0}.verb-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 4px;font-weight:800}.verb-table td:nth-child(4){color:var(--muted);font-weight:700}.verb-table tbody tr{cursor:pointer}.verb-table tbody tr:active{background:var(--blue-light)}
