@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-cyrillic-ext-400-normal-VNDy5CZS.woff2)format("woff2"),url(/assets/andika-cyrillic-ext-400-normal-BJwze9_g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-cyrillic-400-normal-DYbdP60f.woff2)format("woff2"),url(/assets/andika-cyrillic-400-normal-CIdpN1kB.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-vietnamese-400-normal-afg23LQ3.woff2)format("woff2"),url(/assets/andika-vietnamese-400-normal-Bw99zChb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-latin-ext-400-normal-D580Nkki.woff2)format("woff2"),url(/assets/andika-latin-ext-400-normal-NXfvB_tZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-latin-400-normal-BTFTIZb-.woff2)format("woff2"),url(/assets/andika-latin-400-normal-BK42By1L.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-cyrillic-ext-700-normal-DvCsrHON.woff2)format("woff2"),url(/assets/andika-cyrillic-ext-700-normal-BdIUMeTx.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-cyrillic-700-normal-D404ywHU.woff2)format("woff2"),url(/assets/andika-cyrillic-700-normal-Bzg0mZT8.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-vietnamese-700-normal-CS3rZngu.woff2)format("woff2"),url(/assets/andika-vietnamese-700-normal-CZOGxJjV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-latin-ext-700-normal-Ch3SGZaH.woff2)format("woff2"),url(/assets/andika-latin-ext-700-normal-DBt0PRsd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-latin-700-normal-Dk95f5lc.woff2)format("woff2"),url(/assets/andika-latin-700-normal-CAUSQC6x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lexend-vietnamese-400-normal-DoLa7jNB.woff2)format("woff2"),url(/assets/lexend-vietnamese-400-normal-mPlHoWg5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lexend-latin-ext-400-normal-D38JI5AK.woff2)format("woff2"),url(/assets/lexend-latin-ext-400-normal-D9P7pMo-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lexend-latin-400-normal-CwRJVcUA.woff2)format("woff2"),url(/assets/lexend-latin-400-normal-CHypAkT3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-vietnamese-500-normal-Bos7Oy9U.woff2)format("woff2"),url(/assets/lexend-vietnamese-500-normal-EFAPmUTE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-ext-500-normal-Bo17xs96.woff2)format("woff2"),url(/assets/lexend-latin-ext-500-normal-DbCmXT_D.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-500-normal-Dl-X5nog.woff2)format("woff2"),url(/assets/lexend-latin-500-normal-D9x1QWTH.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-vietnamese-600-normal-Cr1ePs6O.woff2)format("woff2"),url(/assets/lexend-vietnamese-600-normal-BxEVPgxw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-latin-ext-600-normal-hDcqLAH9.woff2)format("woff2"),url(/assets/lexend-latin-ext-600-normal-BXtyp5LP.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-latin-600-normal-DdvlkEkX.woff2)format("woff2"),url(/assets/lexend-latin-600-normal-DSBzZxpA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#edf1f7;--surface:#fff;--ink:#1a2236;--muted:#5d6780;--line:#d5dbe7;--prefix:#2456d6;--suffix:#8a3cc8;--friend:#1c9a52;--right:#1c9a52;--right-soft:#e2f4e9;--wrong:#c8342b;--wrong-soft:#fbe6e4;--tricky:#fcebb5;--font-word:"Andika", "Lexend", system-ui, sans-serif;--font-ui:"Lexend", system-ui, -apple-system, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f131c;--surface:#181e2b;--ink:#e8ecf5;--muted:#9aa4bc;--line:#2a3245;--prefix:#82a2ff;--suffix:#c794f5;--friend:#5ad291;--right:#5ad291;--right-soft:#16301f;--wrong:#f2837a;--wrong-soft:#3a1b19;--tricky:#4a3c12;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font:400 17px/1.5 var(--font-ui);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}button,input,select{font:inherit;color:inherit}button{touch-action:manipulation;cursor:pointer}:focus-visible{outline:3px solid var(--prefix);outline-offset:3px}.app{min-height:100%;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));grid-template-rows:auto 1fr;gap:1rem;max-width:72rem;margin:0 auto;display:grid}.app.centred{grid-template-rows:1fr}.btn{border:1px solid var(--line);background:var(--surface);border-radius:14px;justify-content:center;align-items:center;gap:.55rem;min-height:56px;padding:0 1.25rem;font-size:1.0625rem;font-weight:500;display:inline-flex}.btn svg{width:22px;height:22px}.btn.primary{background:var(--ink);color:var(--surface);border-color:var(--ink);padding:0 2rem}.btn.big{border-radius:18px;min-height:72px;padding:0 3rem;font-size:1.375rem}.btn.danger{border-color:var(--wrong);color:var(--wrong)}.btn:disabled{opacity:.4;cursor:default}.btn[aria-expanded=true]{background:var(--bg);border-color:var(--ink)}.link{color:var(--muted);background:0 0;border:0;min-height:44px;padding:.5rem 0;font-size:.9375rem}.actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.home{text-align:center;place-content:center;justify-items:center;gap:1.5rem;padding:2rem 0;display:grid}.home h1{font:400 clamp(3rem, 9vw, 5rem)/1 var(--font-word);margin:0}.today{max-width:30ch;margin:0;font-size:1.375rem}.progress-line{color:var(--muted);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;padding:.75rem 1rem}.warning{background:var(--wrong-soft);max-width:36ch;color:var(--wrong);border-radius:14px;margin:0;padding:1rem 1.25rem}.tip{max-width:44ch;color:var(--muted);margin:0;font-size:.875rem}.session-top{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;font-size:.9375rem;display:flex}.screen{background:var(--surface);border:1px solid var(--line);-webkit-user-select:none;user-select:none;border-radius:24px;grid-template-rows:1fr auto;gap:1.25rem;min-height:0;padding:1.25rem 1.5rem 1.5rem;display:grid}.card{touch-action:pan-y}.stage{align-content:center;justify-items:center;gap:1.5rem;min-width:0;display:grid}.controls{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.controls .spacer{flex:1}.word{white-space:nowrap;font:400 clamp(2.75rem, 9vw, 5.5rem)/1.1 var(--font-word);padding-bottom:.35em;display:inline-block;position:relative}.word.word-large{font-size:clamp(3.25rem,11vw,7.5rem)}.word .letter{border-radius:.12em;display:inline-block}.word .letter.prefix{color:var(--prefix)}.word .letter.suffix{color:var(--suffix)}.word .letter.hl{background:var(--tricky)}.word svg.marks{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.word svg.marks line,.word svg.marks path{stroke:var(--friend);fill:none;stroke-linecap:round}.legend{flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:46rem;display:flex}.legend-key{background:var(--bg);border-radius:12px;align-items:baseline;gap:.6rem;padding:.5rem .8rem;font-size:.9375rem;display:flex}.legend-key .sample{font:400 1.25rem/1 var(--font-word)}.legend-key .sample.friend{text-decoration:underline;-webkit-text-decoration-color:var(--friend);text-decoration-color:var(--friend);text-underline-offset:5px;text-decoration-thickness:3px}.legend-key .sample.prefix{color:var(--prefix)}.legend-key .sample.suffix{color:var(--suffix)}.legend-key .what{font-weight:600}.legend-key .how{color:var(--muted)}.meaning{background:var(--bg);border-radius:16px;gap:.5rem;width:min(100%,40rem);padding:1rem 1.25rem;display:grid}.meaning p{margin:0}.meaning .def{font-size:1.125rem}.meaning .ex{font-family:var(--font-word);font-size:1.1875rem}.meaning .ru{color:var(--muted)}.prompt{text-align:center;align-content:center;justify-items:center;gap:1.25rem;display:grid}.sentence{font:400 clamp(1.375rem, 3.2vw, 2rem)/1.4 var(--font-word);text-wrap:balance;max-width:34ch;margin:0}.gap{border-bottom:3px solid var(--muted);min-width:4.5em;margin:0 .1em;display:inline-block;transform:translateY(-.15em)}.note{color:var(--muted);min-height:1.5em;margin:0;font-size:.9375rem}.answer{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.4rem;min-height:4.25rem;display:flex}.box{border:2px solid var(--line);background:var(--bg);width:3rem;height:4rem;font:400 2.25rem/1 var(--font-word);border-radius:10px;place-items:center;display:grid}.box.filled{border-color:var(--muted);background:var(--surface)}.box.cursor{border-color:var(--ink)}.free{font:400 clamp(2.5rem, 7vw, 3.5rem)/1.1 var(--font-word);border-bottom:3px solid var(--muted);text-align:center;min-width:8ch;padding:0 .25rem .2rem}.caret{background:var(--ink);vertical-align:-.1em;width:3px;height:.9em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.answer.right .box,.answer.right .free{border-color:var(--right);color:var(--right);background:var(--right-soft)}.lower{align-content:end;gap:1rem;display:grid}.keyboard{gap:.5rem;display:grid}.krow{justify-content:center;gap:.4rem;display:flex}.key{border:1px solid var(--line);background:var(--bg);height:4rem;font:400 1.875rem/1 var(--font-word);box-shadow:0 2px 0 var(--line);border-radius:12px;flex:0 4.25rem}.key:active{box-shadow:none;transform:translateY(2px)}.key.wide{font:500 1rem var(--font-ui);flex-basis:7rem}.pill{border-radius:999px;justify-self:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:600;display:inline-flex}.pill.first{background:var(--right-soft);color:var(--right)}.pill.after{background:var(--tricky);color:var(--ink)}.pill.notyet{background:var(--wrong-soft);color:var(--wrong)}.feedback{text-align:center;justify-items:center;gap:1rem;display:grid}.label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.8125rem;font-weight:600}.diff{justify-items:center;gap:.35rem;display:grid}.cols{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.col{justify-items:center;gap:.3rem;display:grid}.tile{width:2.6rem;height:3.3rem;font:400 2rem/1 var(--font-word);border-radius:9px;place-items:center;display:grid}.tile.ok{color:var(--right);background:var(--right-soft)}.tile.bad{color:var(--wrong);background:var(--wrong-soft)}.tile.hole{border:2px dashed var(--wrong)}.tile.plain{background:var(--bg)}.tile.fix{color:var(--wrong);box-shadow:inset 0 0 0 2px var(--wrong)}.rowlabel{color:var(--muted);font-size:.75rem}.hint{background:var(--bg);border-radius:14px;max-width:40rem;margin:0;padding:.75rem 1.1rem;font-size:1.0625rem}.hint b{font-weight:600}.done{text-align:center;place-content:center;justify-items:center;gap:1.5rem;display:grid}.done h1{font:400 clamp(2.5rem, 7vw, 4rem)/1.1 var(--font-word);margin:0}.tally{flex-wrap:wrap;justify-content:center;gap:1rem;margin:0;display:flex}.tally div{background:var(--bg);border-radius:16px;min-width:10rem;padding:1rem 1.5rem}.tally dt{color:var(--muted);font-size:.9375rem}.tally dd{font:600 2.25rem/1.2 var(--font-ui);font-variant-numeric:tabular-nums;margin:0}.parent{align-content:start;gap:1.25rem;display:grid}.parent header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.parent h1{font:600 1.75rem/1.2 var(--font-ui);margin:0}.parent h2{font:600 1.25rem/1.2 var(--font-ui);margin:0}.parent section{background:var(--surface);border:1px solid var(--line);border-radius:18px;gap:.9rem;padding:1.25rem;display:grid}.parent p{margin:0}.tabs{flex-wrap:wrap;gap:.5rem;display:flex}.tabs [aria-selected=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9375rem}th,td{text-align:left;border-top:1px solid var(--line);vertical-align:top;padding:.5rem .75rem .5rem 0}th{color:var(--muted);font-weight:600}.field{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.field select,.field input[type=range]{max-width:100%;min-height:44px}.field select{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:0 .75rem}.field input[type=checkbox]{width:1.5rem;height:1.5rem;accent-color:var(--ink)}.field input[type=range]{accent-color:var(--ink);width:14rem}.gate{text-align:center;place-content:center;justify-items:center;gap:1rem;display:grid}.gate input{letter-spacing:.5em;text-align:center;border:1px solid var(--line);background:var(--surface);border-radius:14px;width:9rem;min-height:64px;font-size:2rem}.error{color:var(--wrong)}.message{color:var(--right)}@media (width<=44rem){.screen{padding:1rem .75rem}.key{height:3.25rem;font-size:1.5rem}.krow{gap:.25rem}.box{width:2.3rem;height:3.2rem;font-size:1.75rem}.tile{width:1.9rem;height:2.6rem;font-size:1.5rem}}@media (prefers-reduced-motion:reduce){.caret{animation:none}.key:active{transform:none}}
