@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(./andika-cyrillic-ext-400-normal-VNDy5CZS.woff2)format("woff2"),url(./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(./andika-cyrillic-400-normal-DYbdP60f.woff2)format("woff2"),url(./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(./andika-vietnamese-400-normal-afg23LQ3.woff2)format("woff2"),url(./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(./andika-latin-ext-400-normal-D580Nkki.woff2)format("woff2"),url(./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(./andika-latin-400-normal-BTFTIZb-.woff2)format("woff2"),url(./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(./andika-cyrillic-ext-700-normal-DvCsrHON.woff2)format("woff2"),url(./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(./andika-cyrillic-700-normal-D404ywHU.woff2)format("woff2"),url(./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(./andika-vietnamese-700-normal-CS3rZngu.woff2)format("woff2"),url(./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(./andika-latin-ext-700-normal-Ch3SGZaH.woff2)format("woff2"),url(./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(./andika-latin-700-normal-Dk95f5lc.woff2)format("woff2"),url(./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}:root{--bg:#faf7f2;--surface:#fff;--ink:#1d2125;--ink-soft:#646a71;--line:#e4ddd1;--line-strong:#d3cabb;--accent:#2c64d8;--accent-soft:#e6eefc;--ok:#2b9a5e;--ok-bg:#e3f3e9;--bad:#cf4d47;--bad-bg:#fbe8e6;--radius:20px;--font:"Andika", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;margin:0}button{color:inherit;cursor:pointer;touch-action:manipulation;font-family:inherit}#root{min-height:100dvh}.screen{max-width:760px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 12px) calc(env(safe-area-inset-right) + 16px) calc(env(safe-area-inset-bottom) + 16px) calc(env(safe-area-inset-left) + 16px);flex-direction:column;margin:0 auto;display:flex}.icon-btn{border:2px solid var(--line);background:var(--surface);border-radius:50%;flex-shrink:0;place-items:center;width:52px;height:52px;display:inline-grid}.icon-btn.subtle{color:var(--ink-soft);background:0 0;border-color:#0000}.icon-btn.big{width:72px;height:72px}.primary-btn{background:var(--accent);color:#fff;border:none;border-radius:50%;place-items:center;width:104px;height:104px;display:grid;box-shadow:0 5px #1f4aa6}.primary-btn:active{transform:translateY(3px);box-shadow:0 2px #1f4aa6}.tile{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 0 var(--line);place-items:center;font-weight:400;line-height:1;transition:background-color .15s,border-color .15s,opacity .15s;display:grid}.tile:active{box-shadow:0 2px 0 var(--line);transform:translateY(2px)}.tile.is-right{background:var(--ok-bg);border-color:var(--ok);box-shadow:0 4px 0 var(--ok);color:#1d6b41}.tile.is-wrong{opacity:.35}.tile.is-wrong-flash{background:var(--bad-bg);border-color:var(--bad)}.topbar{align-items:center;gap:14px;min-height:56px;display:flex}.topbar-title{margin:0;font-size:22px}.progress{background:var(--line);border-radius:99px;flex:1;height:14px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:99px;height:100%;transition:width .4s}.home-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.wordmark{letter-spacing:.5px;margin:0;font-size:30px;font-weight:700}.lesson-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px;padding-bottom:24px;display:grid}.lesson-tile{aspect-ratio:1;background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 0 var(--line);place-items:center;padding:8px;display:grid;position:relative}.lesson-tile:active{box-shadow:0 2px 0 var(--line);transform:translateY(2px)}.lesson-tile.is-wide{aspect-ratio:auto;grid-column:1/-1;min-height:96px}.lesson-title{white-space:nowrap;font-size:40px;line-height:1}.lesson-tile.is-wide .lesson-title{letter-spacing:6px}.lesson-title.small{font-size:22px;letter-spacing:0!important}.lesson-tile.is-current{border-color:var(--accent);box-shadow:0 4px 0 var(--accent);background:var(--accent-soft)}.lesson-tile.is-locked{opacity:.4}.lesson-badge{color:var(--ok);position:absolute;top:8px;right:8px}.lesson-tile.is-locked .lesson-badge{color:var(--ink-soft)}.review-tile{color:var(--ink-soft);justify-content:center;gap:12px;display:flex}.intro .topbar{justify-content:space-between}.intro-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;display:flex}.intro-letter{background:0 0;border:3px solid #0000;border-radius:28px;padding:4px 28px 12px;font-size:clamp(96px,30vw,160px);line-height:1;transition:border-color .15s,background-color .15s}.intro-letter.is-active{border-color:var(--accent);background:var(--accent-soft)}.intro-units{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.unit-card{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);width:clamp(88px,26vw,120px);box-shadow:0 4px 0 var(--line);flex-direction:column;align-items:center;gap:6px;padding:14px 6px 12px;transition:transform .15s,border-color .15s,background-color .15s;display:flex}.unit-card.is-active{border-color:var(--accent);box-shadow:0 4px 0 var(--accent);background:var(--accent-soft);transform:scale(1.06)}.unit-upper{font-size:clamp(40px,11vw,56px);line-height:1}.unit-lower{color:var(--ink-soft);font-size:clamp(34px,9vw,46px);line-height:1}.intro-footer,.result-actions{justify-content:center;align-items:center;gap:24px;padding-top:16px;display:flex}.stage{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:clamp(20px,5vh,40px);padding:12px 0 8px;display:flex}.prompt{flex-direction:column;align-items:center;gap:12px;display:flex}.speak{background:var(--accent);color:#fff;border:none;border-radius:50%;place-items:center;width:108px;height:108px;display:grid;box-shadow:0 5px #1f4aa6}.speak:active{transform:translateY(3px);box-shadow:0 2px #1f4aa6}.speak:disabled{opacity:.5}.speak.is-speaking{animation:1s ease-in-out infinite pulse}.options{gap:14px;width:100%;display:grid}.options-units{grid-template-columns:repeat(2,1fr);max-width:460px}.options-words{grid-template-columns:1fr;max-width:460px}.tile-unit{aspect-ratio:1.35;font-size:clamp(48px,15vw,84px)}.tile-word{letter-spacing:2px;min-height:92px;font-size:clamp(38px,11vw,60px)}.slots{flex-wrap:wrap;justify-content:center;gap:8px 22px;min-height:84px;display:flex}.slot-group{gap:6px;display:flex}.slot{text-align:center;border-bottom:5px solid var(--line-strong);min-width:.95em;height:1.35em;padding:0 4px;font-size:clamp(42px,12vw,68px);line-height:1.3;transition:border-color .15s,color .15s}.slot-wide{min-width:1.9em}.slot.is-next{border-bottom-color:var(--accent);animation:1.1s ease-in-out infinite blink}.slot.is-filled{border-bottom-color:var(--ink)}.slots.is-right .slot{color:var(--ok);border-bottom-color:var(--ok)}.keys{flex-wrap:wrap;justify-content:center;gap:12px;max-width:520px;display:flex}.tile-key{width:clamp(68px,19vw,88px);height:clamp(68px,19vw,88px);font-size:clamp(38px,10vw,50px)}.keys-syllables .tile-key{width:clamp(96px,27vw,128px)}.hunt-count{gap:8px;display:flex}.dot{border:2px solid var(--line-strong);border-radius:50%;width:14px;height:14px}.dot.is-on{background:var(--ok);border-color:var(--ok)}.hunt-grid{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:520px;display:grid}.tile-cell{aspect-ratio:1.3;font-size:clamp(32px,10vw,50px)}@media (width>=600px){.hunt-grid{grid-template-columns:repeat(4,1fr)}}.result-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.result-mark{border-radius:50%;place-items:center;width:168px;height:168px;margin-bottom:16px;display:grid}.result-mark.is-passed{background:var(--ok-bg);color:var(--ok);animation:.5s ease-out pop}.result-mark.is-retry{background:var(--accent-soft);color:var(--accent)}.result-score{margin:0;font-size:44px}.result-note{color:var(--ink-soft);margin:0;font-size:16px}.gate-body,.parents-body{font-size:17px;line-height:1.5}.gate-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.gate-body h2{margin:0 0 4px}.gate-body p{color:var(--ink-soft);margin:0}.gate-question{font-size:40px;color:var(--ink)!important;margin:16px 0 20px!important}.gate-answer{border-bottom:3px solid var(--line-strong);min-width:1.6em;display:inline-block}.keypad{grid-template-columns:repeat(3,76px);gap:10px;display:grid}.key{border:2px solid var(--line);background:var(--surface);border-radius:16px;place-items:center;height:64px;font-size:28px;display:grid}.key:active{background:var(--accent-soft)}.parents-body{padding-bottom:32px}.parents-body section{border-bottom:1px solid var(--line);padding:16px 0}.parents-body section:last-child{border-bottom:none}.parents-body h3{margin:0 0 10px;font-size:17px}.parents-body p{color:var(--ink-soft);margin:0}.segmented{border:2px solid var(--line);background:var(--surface);border-radius:14px;grid-auto-columns:1fr;grid-auto-flow:column;width:100%;max-width:420px;display:grid;overflow:hidden}.segmented button{background:0 0;border:none;padding:10px 6px;font-size:15px}.segmented button+button{border-left:2px solid var(--line)}.segmented button.is-on{background:var(--accent);color:#fff}.toggle{align-items:center;gap:10px;padding:6px 0;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--accent)}.progress-table{border-collapse:collapse;width:100%;font-size:16px}.progress-table th,.progress-table td{text-align:left;border-bottom:1px solid var(--line);padding:6px 4px}.progress-table th{color:var(--ink-soft);font-weight:400}.progress-table td:last-child{color:var(--ok)}.hard-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hard-list li{background:var(--bad-bg);color:var(--ink);border-radius:99px;padding:6px 12px;font-size:15px}.plain-btn,.danger-btn{border:2px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 16px;font-size:16px}.danger-btn{border-color:var(--bad);background:var(--bad);color:#fff}.danger-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.shake{animation:.4s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes blink{50%{border-bottom-color:var(--accent-soft)}}@keyframes pop{0%{transform:scale(.6)}70%{transform:scale(1.08)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.audio-check-note{color:var(--ink-soft);margin:4px 0 16px}.audio-check-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;padding-bottom:32px;display:grid}.audio-chip{border:2px solid var(--line);background:var(--surface);text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.audio-chip strong{font-size:18px;font-weight:400}.audio-chip span{color:var(--ink-soft);font-size:12px}.audio-chip.is-on{border-color:var(--accent);background:var(--accent-soft)}.audio-chip.is-missing{border-style:dashed}
