:root{--bg:#e4f1ff;--surface:#fff;--ink:#2a1a48;--muted:#6a5e86;--line:#d3e2f4;--grape:#5b2e8c;--pom:#e23b55;--pom-dark:#b8243d;--sun:#ffc531;--sun-dark:#e0a300;--mint:#1fb386;--mint-dark:#13875f;--mint-soft:#ddf7ee;--pom-soft:#ffe3e8;--hill1:#a4db86;--hill2:#72c36b;--blob-edge:#2a1a4824;--word-color:var(--grape);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#131634;--surface:#1e2250;--ink:#f3efff;--muted:#aba5d3;--line:#2f3572;--mint-soft:#113d35;--pom-soft:#44182a;--hill1:#27523a;--hill2:#1c4030;--blob-edge:#ffffff38;--word-color:var(--sun)}}:root[data-theme=dark]{--bg:#131634;--surface:#1e2250;--ink:#f3efff;--muted:#aba5d3;--line:#2f3572;--mint-soft:#113d35;--pom-soft:#44182a;--hill1:#27523a;--hill2:#1c4030;--blob-edge:#ffffff38;--word-color:var(--sun)}*,:before,:after{box-sizing:border-box}html{height:100%}body{background:var(--bg);min-height:100%;color:var(--ink);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.45;overflow-x:hidden}.ka{font-family:Noto Sans Georgian,Sylfaen,DejaVu Sans,sans-serif;font-weight:800}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}button:focus-visible{outline:3px solid var(--grape);outline-offset:3px}button:disabled{cursor:default}.hills{z-index:0;pointer-events:none;width:100%;height:140px;position:fixed;bottom:0;left:0;right:0}.wrap{z-index:1;max-width:540px;padding:calc(var(--safe-top) + 16px) calc(var(--safe-right) + 16px) 170px calc(var(--safe-left) + 16px);margin:0 auto;position:relative}.wrap.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100vh;padding-bottom:120px;display:flex}.card{background:var(--surface);border:2px solid var(--line);border-radius:24px;max-width:420px;padding:20px 22px}.card h2{margin:6px 0;font-size:24px}.card p{margin:6px 0}.card .ka.big{color:var(--word-color);font-size:28px;display:block}.muted{color:var(--muted)}.strong{font-weight:800}.emoji{font-size:var(--s,64px);line-height:1}.blob{width:var(--s,64px);height:var(--s,64px);background:var(--c);border:3px solid var(--blob-edge);border-radius:46% 54% 52% 48%/55% 45%;display:inline-block;box-shadow:inset -6px -8px #00000014}.pic-img{width:var(--s,64px);height:var(--s,64px);object-fit:contain}.hello{align-items:flex-end;gap:10px;margin:6px 0 14px;display:flex}.mascot{flex:none}.mascot.bounce{animation:.6s bounce}@keyframes bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-16px)rotate(-6deg)}70%{transform:translateY(0)rotate(4deg)}}.bubble{background:var(--surface);border:2px solid var(--line);border-radius:22px 22px 22px 6px;margin-bottom:26px;padding:12px 16px}.bubble .ka{color:var(--word-color);font-size:22px;display:block}.bubble small{color:var(--muted);font-size:14px}.jar{background:var(--surface);border:2px solid var(--line);border-radius:26px;align-items:center;gap:14px;padding:14px 18px;display:flex}.jar svg{flex:none;width:64px;height:64px}.jar b{font-size:34px;font-weight:900;line-height:1}.jar-unit{font-weight:800}.jar .sub{color:var(--muted);font-size:15px}.week{justify-content:space-between;margin:14px 2px;display:flex}.day{background:var(--surface);border:2px dashed var(--line);width:38px;height:38px;color:var(--muted);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid}.day.done{background:var(--sun);border:2px solid var(--sun-dark);color:#4a3200}.day.today{border-style:solid;border-color:var(--grape);color:var(--ink)}.path{flex-direction:column;gap:14px;margin-top:10px;display:flex}.step{position:relative}.step+.step:before{content:"";border-left:4px dotted var(--line);height:18px;position:absolute;top:-16px;left:34px}.num{border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:16px;font-weight:900;line-height:1;display:grid}.part{color:var(--muted);white-space:nowrap}.lsn{background:var(--surface);border:2px solid var(--line);text-align:left;border-radius:22px;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 16px;display:flex}.lsn .ic{--s:34px;flex:none;display:flex}.lsn .ic .emoji{font-size:30px}.lsn .t{flex:1;min-width:0;font-size:18px;font-weight:800;line-height:1.2}.lsn.done .num,.lsn.fold .num,.lsn.review .num{background:var(--mint);color:#fff;font-size:20px}.lsn.lock{background:0 0;border-style:dashed}.lsn.lock .num{border:2px dashed var(--line);color:var(--muted)}.lsn.lock .ic{filter:grayscale();opacity:.35}.lsn.lock .t{color:var(--muted)}.lock-i{width:24px;height:24px;color:var(--muted);flex:none}.lsn.fold{background:var(--mint-soft);border-color:var(--mint-soft)}.lsn.fold .chev{color:var(--muted);flex:none;font-size:22px;font-weight:900}.lsn.review{border-color:var(--pom)}.more{color:var(--muted);padding:2px 0 0 60px;font-size:16px;font-weight:800}.mini-play{background:var(--pom);color:#fff;box-shadow:0 3px 0 var(--pom-dark);border-radius:14px;flex:none;padding:10px 16px;font-size:14px;font-weight:900;line-height:1}.mini-play:disabled{background:var(--muted);box-shadow:0 3px #4a4466}.cur{background:var(--surface);border:2px solid var(--line);border-radius:26px;flex-direction:column;gap:14px;padding:16px;display:flex}.cur-h{align-items:center;gap:12px;display:flex}.num.now{background:var(--pom);color:#fff}.cur .ic{--s:56px;flex:none;display:flex}.cur-t{flex:1;min-width:0}.cur-t b{font-size:26px;font-weight:900;line-height:1.1;display:block}.cur-t small{color:var(--muted);margin-top:4px;font-size:15px;font-weight:800;display:block}.cur .prog{flex:none}.soon{text-align:center;color:var(--muted);font-size:15px;font-weight:800}.play{background:var(--pom);color:#fff;width:100%;min-height:64px;box-shadow:0 6px 0 var(--pom-dark);border-radius:22px;justify-content:center;align-items:center;gap:10px;padding:12px 18px;font-size:26px;font-weight:900;line-height:1.1;display:flex}.play:disabled{background:var(--muted);box-shadow:0 6px #4a4466}.cur.all{text-align:center;align-items:center}.cur.all b{font-size:26px;font-weight:900;line-height:1.1}.cur.all small{color:var(--muted);margin-top:-8px;font-size:15px;font-weight:800}.learned{text-align:center;color:var(--muted);margin-top:18px;font-weight:700}.stickers{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.stk{background:var(--surface);border:2px solid var(--line);--s:28px;border-radius:14px;place-items:center;width:48px;height:48px;display:grid}.stk .blob{border-width:2px}.stk.lock{filter:grayscale();opacity:.35}.notice{left:50%;bottom:calc(var(--safe-bottom) + 24px);z-index:30;background:var(--ink);color:var(--bg);text-align:center;border-radius:16px;max-width:90vw;padding:12px 18px;font-weight:800;position:fixed;transform:translate(-50%)}.lesson{z-index:20;background:var(--bg);padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 16px) calc(var(--safe-left) + 16px);flex-direction:column;display:flex;position:fixed;inset:0}.lbar{align-items:center;gap:12px;width:100%;max-width:540px;margin:0 auto;display:flex}.x{background:var(--surface);border:2px solid var(--line);width:56px;height:56px;color:var(--muted);border-radius:50%;font-size:20px;font-weight:900}.prog{background:var(--surface);border:2px solid var(--line);border-radius:10px;flex:1;height:14px;overflow:hidden}.prog i{background:var(--mint);border-radius:10px;width:0;height:100%;transition:width .3s;display:block}.minijar{align-items:center;gap:4px;font-size:18px;font-weight:900;display:flex}.minijar svg{width:34px;height:34px}.stage{flex-direction:column;flex:1;justify-content:center;gap:16px;width:100%;max-width:540px;margin:0 auto;padding:10px 0;display:flex;overflow-y:auto}.prompt{text-align:center;color:var(--muted);margin:0;font-size:20px;font-weight:800}.pic{background:var(--surface);border:3px solid var(--line);--s:96px;border-radius:50%;flex:none;place-items:center;width:170px;height:170px;margin:0 auto;display:grid}.pic .blob{--s:118px}.word{text-align:center}.word .ka{color:var(--word-color);font-size:54px;line-height:1.2;display:block}.word .tr{color:var(--muted);font-size:18px;font-weight:700}.speak{background:var(--sun);width:84px;height:84px;box-shadow:0 5px 0 var(--sun-dark);border-radius:50%;flex:none;place-items:center;margin:0 auto;display:grid}.speak svg{width:40px;height:40px}.speak.sm{width:56px;height:56px;box-shadow:0 3px 0 var(--sun-dark);margin:0}.speak.sm svg{width:24px;height:24px}.speak.playing{animation:.5s 2 pulse}@keyframes pulse{50%{transform:scale(1.12)}}.grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tile{aspect-ratio:1;background:var(--surface);border:3px solid var(--line);box-shadow:0 5px 0 var(--line);--s:64px;border-radius:26px;place-items:center;display:grid}.tile .blob{--s:min(96px, 60%)}.glyph{color:var(--word-color);text-align:center}.glyph.l{font-size:calc(var(--s,64px) * 1.25);line-height:1}.pic.txt{border-radius:26px;width:100%;max-width:360px;padding:0 16px;container-type:inline-size}.pic.txt .glyph.w{text-wrap:balance;font-size:min(54px,15cqi);line-height:1.2}.tile.txt{padding:6px;container-type:inline-size}.tile .glyph.w{text-wrap:balance;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none;font-size:13cqi;line-height:1.15}.stk .glyph.l{line-height:1}.stk.txt{width:auto;min-width:48px;padding:0 12px}.stk .glyph.w{white-space:nowrap;font-size:18px;line-height:1}.anchor{background:var(--surface);border:2px solid var(--line);--s:34px;border-radius:22px;justify-content:center;align-items:center;gap:10px;margin:0 auto;padding:8px 18px;display:flex}.anchor .ka{color:var(--ink);font-size:28px;line-height:1.2}.anchor .ka b{color:var(--word-color);font-weight:800}.anchor small{color:var(--muted);font-size:16px;font-weight:700}.opts{flex-direction:column;gap:12px;display:flex}.opt{align-items:center;gap:12px;display:flex}.opt .ans{text-align:left;background:var(--surface);border:3px solid var(--line);min-height:56px;box-shadow:0 5px 0 var(--line);border-radius:22px;flex:1;padding:14px 18px}.opt .ans .ka{font-size:28px;line-height:1.2;display:block}.opt .ans small{color:var(--muted);font-weight:700}.grid-wrap{position:relative}.dim{opacity:.35;pointer-events:none}.reveal{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.reveal .pic{box-shadow:0 10px 20px var(--blob-edge)}.ok{border-color:var(--mint)!important;background:var(--mint-soft)!important;box-shadow:0 5px 0 var(--mint)!important}.bad{animation:.35s shake;border-color:var(--pom)!important;background:var(--pom-soft)!important}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.next{background:var(--mint);color:#fff;width:100%;min-height:56px;box-shadow:0 5px 0 var(--mint-dark);border-radius:22px;padding:18px;font-size:22px;font-weight:900;display:block}.next:active:not(:disabled){box-shadow:0 2px 0 var(--mint-dark);transform:translateY(3px)}.next:disabled{opacity:.6}.toast{text-align:center;justify-content:center;align-items:center;gap:10px;width:100%;max-width:540px;min-height:48px;margin:0 auto;font-size:20px;font-weight:900;display:flex}.toast.good{color:var(--mint)}.toast.try{color:var(--pom)}.toast.offline{color:var(--muted);font-size:17px}.retry{border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;min-height:44px;padding:8px 14px;font-weight:800}.coin{z-index:40;background:var(--sun);border:3px solid var(--sun-dark);color:#5a3d00;pointer-events:none;border-radius:50%;place-items:center;width:34px;height:34px;font-size:16px;font-weight:900;transition:transform .7s cubic-bezier(.5,-.3,.6,1),opacity .7s;display:grid;position:fixed}.done-screen{text-align:center}.done-screen h2{margin:0;font-size:30px}.done-screen p{margin:8px 0 0}.big-num{color:var(--sun-dark);font-size:56px;font-weight:900}@media (orientation:landscape) and (height<=620px){.pic{--s:68px;width:120px;height:120px}.pic .blob{--s:84px}.word .ka{font-size:42px}.speak{width:64px;height:64px}.grid{grid-template-columns:repeat(4,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
