@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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #120c2e;--bg2: #1d1550;--panel: #2a2170;--ink: #ffffff;--muted: #b9b3e6;--go: #3cb043;--go-dark: #23752a;--block: #6c5ce7;--block-dark: #4733b8;--vowel: #e53e5c;--vowel-dark: #a3203b;--gold: #ffcf3a;--right: #3cb043;--wrong: #ff8a3d;--read-font: "Andika", "Comic Sans MS", sans-serif;--ui-font: ui-rounded, "SF Pro Rounded", "Nunito", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:radial-gradient(2px 2px at 10% 20%,#fff8,transparent),radial-gradient(2px 2px at 80% 10%,#fff8,transparent),radial-gradient(1.5px 1.5px at 60% 70%,#fff6,transparent),radial-gradient(2px 2px at 30% 85%,#fff6,transparent),radial-gradient(1.5px 1.5px at 90% 60%,#fff8,transparent),radial-gradient(ellipse at top,var(--bg2),var(--bg) 70%);background-attachment:fixed;color:var(--ink);font-family:var(--ui-font);overscroll-behavior:none;font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer;touch-action:manipulation}.screen{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:max(12px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));gap:16px}.row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.btn{background:var(--block);box-shadow:inset -4px -6px 0 var(--block-dark),inset 4px 4px #fff3,0 4px #0006;padding:14px 22px;border-radius:6px;font-weight:800;font-size:20px;min-height:56px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:transform .08s}.btn:active{transform:translateY(3px)}.btn:disabled{opacity:.4}.btn.go{background:var(--go);box-shadow:inset -4px -6px 0 var(--go-dark),inset 4px 4px #fff4,0 4px #0006}.btn.ghost{background:#ffffff1a;box-shadow:inset 0 0 0 3px #fff3}.btn.wrong{background:var(--wrong)}.btn.small{min-height:44px;padding:8px 14px;font-size:18px}.btn.big{font-size:22px;min-width:200px}.btn.huge{font-size:28px;min-height:72px;min-width:220px}.btn.mega{font-size:32px;min-height:96px;min-width:min(520px,90vw);flex-direction:column;gap:2px}.btn.mega small{font-size:18px;font-weight:600;opacity:.85}.pill{background:#0005;border-radius:999px;padding:8px 16px;font-weight:800;font-size:22px}.topbar{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar h2{margin:0}.week{display:flex;align-items:center;gap:4px}.week small{margin-left:8px;color:var(--muted)}.wk{width:34px;height:34px;display:grid;place-items:center;background:#ffffff14;border-radius:4px;font-weight:700;color:var(--muted)}.wk.today{outline:2px solid var(--gold)}.wk.got{background:#ffcf3a33}.parent-btn{font-size:22px}.title{font-size:clamp(32px,6vw,56px);margin:8px 0 0;text-align:center;text-shadow:0 4px 0 #0008}.title span{color:var(--gold)}.galaxy{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;max-width:900px}.planet{width:130px;display:flex;flex-direction:column;align-items:center;gap:6px}.orb{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;font-size:44px;background:radial-gradient(circle at 30% 30%,#ffffff66,var(--c) 45%,#0008);box-shadow:0 0 0 4px #fff2}.planet.current .orb{box-shadow:0 0 0 5px var(--gold),0 0 30px var(--c);animation:bob 2.4s ease-in-out infinite}.planet.locked .orb{filter:grayscale(1) brightness(.5)}.pname{font-weight:800;font-size:15px;text-align:center}.pbar{width:90px;height:8px;background:#fff2;border-radius:4px;overflow:hidden}.pbar div{height:100%;background:var(--gold)}.home-actions{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:auto;margin-bottom:8px}.done-note{color:var(--muted);margin:0}@keyframes bob{50%{transform:translateY(-6px)}}.mission main{flex:1;width:100%;display:flex;justify-content:center}.mission-bar{width:100%;display:flex;align-items:center;gap:16px}.meter{flex:1;height:28px;background:#0006;border-radius:6px;position:relative;box-shadow:inset 0 0 0 3px #fff2}.meter .fill{height:100%;border-radius:6px;background:repeating-linear-gradient(90deg,var(--gold) 0 22px,#f5b400 22px 26px);transition:width .5s}.meter-star{position:absolute;right:-8px;top:-10px;font-size:36px}.step-name{font-weight:800;font-size:22px;display:flex;flex-direction:column;text-align:right}.step-name small{font-size:14px;color:var(--muted);font-weight:600}.game{width:100%;max-width:900px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.prompt{min-height:120px;display:grid;place-items:center;cursor:pointer}.prompt-sound{display:flex;align-items:center;gap:16px;font-size:28px;font-weight:800}.speaker{font-size:56px;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.12)}}.big-word{font-family:var(--read-font);font-size:clamp(64px,12vw,120px);font-weight:700;line-height:1.1;text-shadow:0 4px 0 #0008}.pic{font-size:clamp(64px,11vw,110px);line-height:1}.pic.small{font-size:64px}.choices{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}.choice{background:#ffffff14;border-radius:12px;padding:12px;min-width:140px;min-height:140px;display:grid;place-items:center;box-shadow:inset 0 0 0 4px #fff2;transition:transform .12s,opacity .2s}.choice:active{transform:scale(.95)}.choice.right{box-shadow:inset 0 0 0 6px var(--right),0 0 24px var(--right);animation:pop .35s}.choice.wrong{box-shadow:inset 0 0 0 6px var(--wrong);animation:wobble .4s}.choice.dim{opacity:.35}@keyframes pop{50%{transform:scale(1.12)}}@keyframes wobble{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}.block-tile{font-family:var(--read-font);font-weight:700;font-size:64px;min-width:96px;height:96px;padding:0 14px;display:inline-grid;place-items:center;background:var(--block);color:#fff;border-radius:4px;box-shadow:inset -6px -8px 0 var(--block-dark),inset 6px 6px #fff3;text-shadow:0 3px 0 #0005}.block-tile.vowel{background:var(--vowel);box-shadow:inset -6px -8px 0 var(--vowel-dark),inset 6px 6px #fff3}.block-tile.silent{background:#6b6b8a;box-shadow:inset -6px -8px #45455e,inset 6px 6px #fff2;color:#d8d8e8}.block-tile.big{font-size:84px;min-width:120px;height:120px}.block-tile.mega{font-size:130px;min-width:190px;height:190px}.block-tile.small{font-size:30px;min-width:56px;height:56px}.dots{display:flex;gap:8px}.dot{width:14px;height:14px;border-radius:3px;background:#fff3}.dot.on{background:var(--gold)}.dot.done{background:var(--go)}.hint{color:var(--muted);font-size:22px;font-weight:700}.rail{padding:24px 32px 12px;background:#0004;border-radius:16px;touch-action:none}.tiles-row{display:flex;gap:10px}.tiles-row .block-tile{transition:transform .15s,filter .15s;filter:brightness(.75)}.tiles-row .block-tile.lit{filter:brightness(1.15);transform:translateY(-10px)}.track{position:relative;height:56px;margin-top:10px;border-top:6px dashed #ffffff44}.arrow{position:absolute;top:2px;transform:translate(-50%) rotate(45deg);font-size:40px;transition:left .2s}.reveal{min-height:130px;display:flex;flex-direction:column;align-items:center;gap:16px}.reveal.show{animation:pop .4s}.slots{display:flex;gap:10px}.slot{width:108px;height:108px;border-radius:6px;border:4px dashed #ffffff55;display:grid;place-items:center}.slot.silent{border-style:solid;border-color:transparent}.slots.right .slot{border-color:var(--right)}.slots.wrong .slot{border-color:var(--wrong)}.bank{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;max-width:700px}.tile-btn{min-width:auto;min-height:auto;padding:6px;background:none;box-shadow:none}.tile-btn:disabled{opacity:.2}.read-card{background:#ffffff10;border-radius:20px;padding:24px 32px;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:min(700px,92vw)}.sentence{font-family:var(--read-font);font-size:clamp(36px,6vw,60px);font-weight:700;line-height:1.5;text-align:center}.tok{cursor:pointer}.tok:active{color:var(--gold)}.tag{background:#e53e5c44;padding:4px 12px;border-radius:999px;font-weight:800}.heart-word{display:inline-flex;padding-top:.3em}.heart-part{color:#ff6b88;position:relative;display:inline-block}.heart{position:absolute;top:-.45em;left:50%;transform:translate(-50%);font-size:.35em}.coach-bubble{background:#ffffff1a;padding:8px 18px;border-radius:999px;font-weight:800;font-size:20px}.intro-tile{display:flex;align-items:center;gap:32px}.examples{display:flex;gap:12px}.chip{font-family:var(--read-font);background:#ffffff1a;border-radius:10px;padding:10px 20px;font-size:36px;font-weight:700}.chip.big{font-family:var(--ui-font);font-size:24px}.reward{justify-content:center;text-align:center}.reward h1{font-size:56px;margin:0}.unlock{color:var(--gold);margin:0}.star-burst{font-size:160px;animation:spin-in .8s ease-out}.star-burst.small{font-size:110px}@keyframes spin-in{0%{transform:scale(0) rotate(-180deg)}}.reward-row{display:flex;gap:20px}.reward-box{background:#ffffff14;border-radius:12px;padding:16px 28px;display:flex;flex-direction:column;font-size:20px}.reward-box .big{font-size:44px;font-weight:900}.speed-clear{display:flex;flex-direction:column;gap:10px}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti span{position:absolute;top:-40px;font-size:28px;animation:fall linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(540deg)}}.world-grid{display:grid;width:min(100%,980px,calc((100dvh - 200px) * 14 / 9));aspect-ratio:14 / 9;background:linear-gradient(#0b0820cc,#1d1550cc),radial-gradient(2px 2px at 20% 30%,#fff,transparent);border-radius:8px;box-shadow:inset 0 0 0 3px #fff2;overflow:hidden}.cell{border:1px solid #ffffff0d;padding:0;display:grid}.blk{width:100%;height:100%;display:grid;place-items:center;box-shadow:inset -3px -3px #0004,inset 3px 3px #fff3}.blk-emoji{box-shadow:none;font-size:min(5vw,52px)}.blk-grass{background:linear-gradient(#5fbf3f 0,#5fbf3f 32%,#4a9a2f 32%,#4a9a2f 38%,#8b5a2b 38%)}.blk-dirt{background:radial-gradient(circle at 30% 30%,#6b4420 8%,transparent 9%),radial-gradient(circle at 70% 65%,#6b4420 8%,transparent 9%),#8b5a2b}.blk-stone{background:radial-gradient(circle at 25% 35%,#6e6e6e 10%,transparent 11%),radial-gradient(circle at 70% 70%,#707070 12%,transparent 13%),#8f8f8f}.blk-wood{background:repeating-linear-gradient(0deg,#b8864b 0,#b8864b 22%,#9a6c35 22%,#9a6c35 25%)}.blk-leaves{background:radial-gradient(circle at 30% 30%,#1f6b2a 12%,transparent 13%),radial-gradient(circle at 70% 60%,#1f6b2a 12%,transparent 13%),#2e8b3a}.blk-sand{background:radial-gradient(circle at 40% 40%,#d9c06a 8%,transparent 9%),#ead68c}.blk-glass{background:linear-gradient(135deg,#d6f3ff55 0,#d6f3ff55 30%,#fff9 30%,#fff9 36%,#d6f3ff44 36%);box-shadow:inset 0 0 0 3px #e6f8ffcc}.blk-water{background:linear-gradient(#5b9cf0,#2f6fd0);opacity:.85}.blk-brick{background:linear-gradient(#fff3 0,#fff3 0) 0 48% / 100% 6% no-repeat,linear-gradient(90deg,transparent 47%,#ddd5 47% 53%,transparent 53%),#b5442e}.blk-glow{background:radial-gradient(circle,#fff6b0,#f2c94c);box-shadow:0 0 18px #ffe680,inset -3px -3px #c9a227}.blk-gold{background:linear-gradient(135deg,#fff2a8,#f5c542 40%,#c99a1c)}.blk-lava{background:radial-gradient(circle at 30% 30%,#ffd000 15%,transparent 16%),linear-gradient(#ff7a00,#e03a00)}.blk-obsidian{background:radial-gradient(circle at 60% 40%,#5a2d8a 15%,transparent 16%),#1e1033}.blk-diamond{background:linear-gradient(135deg,#e6fffd,#5ee7e0 40%,#20a8a0);box-shadow:0 0 12px #5ee7e0,inset -3px -3px #1a8b85}.blk-tnt{background:linear-gradient(#d22 0,#d22 30%,#fff 30%,#fff 70%,#d22 70%)}.palette{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:center}.pal{position:relative;width:64px;height:64px;display:grid;place-items:center;background:#ffffff14;border-radius:8px}.pal.sel{box-shadow:0 0 0 4px var(--gold)}.count{position:absolute;right:-6px;bottom:-6px;background:#000a;border-radius:999px;padding:0 7px;font-size:15px;font-weight:800}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center}.sheet-body{width:min(100%,900px);max-height:85vh;overflow:auto;background:var(--panel);border-radius:20px 20px 0 0;padding:16px 20px 32px}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.shop-item{background:#ffffff14;border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px}.shop-item:disabled{opacity:.5}.shop-item.locked{filter:grayscale(1)}.shop-item .name{font-weight:800}.shop-item .price{color:var(--gold);font-weight:800}.bot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;width:100%;max-width:1000px}.bot-card{aspect-ratio:3 / 4;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#ffffff10}.bot-card.hatched{background:linear-gradient(160deg,hsl(var(--h) 70% 55%),hsl(var(--h) 70% 30%));box-shadow:inset 0 0 0 3px #fff4}.bot-card.egg{background:#ffffff1a}.bot-face{font-size:44px}.bot-letter{font-family:var(--read-font);font-weight:700;font-size:40px}.bot-name{font-size:14px;font-weight:700}.parent,.gate{-webkit-user-select:text;user-select:text}.parent-body{width:100%;max-width:960px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{padding:10px 14px;border-radius:8px;font-weight:700;background:#ffffff10}.tab.on{background:var(--block)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.stat{background:#ffffff10;border-radius:12px;padding:14px;display:flex;flex-direction:column;color:var(--muted)}.stat b{color:var(--ink);font-size:28px}.skill-map{display:flex;flex-wrap:wrap;gap:6px}.skill{font-family:var(--read-font);font-weight:700;padding:6px 10px;border-radius:6px;min-width:44px;text-align:center;background:#ffffff14;color:var(--muted)}.skill.learning{background:#f5c54255;color:#fff}.skill.mastered{background:var(--go);color:#fff}.skill.trouble{background:var(--wrong);color:#fff}.legend{color:var(--muted)}.trouble li{margin:6px 0}.log{width:100%;border-collapse:collapse}.log td{padding:6px 8px;border-bottom:1px solid #ffffff1a}.note{background:#ffffff10;padding:12px 16px;border-radius:10px;line-height:1.5}.rec-list{display:flex;flex-direction:column;gap:8px}.rec-row{display:flex;align-items:center;gap:12px;padding:6px;border-radius:10px;background:#ffffff0a}.rec-row.done{background:#3cb04322}.rec-hint{flex:1}.settings select{font-size:20px;padding:10px;border-radius:8px;margin-bottom:12px}.gate{justify-content:center}.gate p{font-size:28px;margin:0}.answer{font-size:40px;font-weight:800;min-width:120px;text-align:center;border-bottom:3px solid #fff5}.keypad{display:grid;grid-template-columns:repeat(4,72px);gap:10px}@media (max-width: 700px){.block-tile{font-size:44px;min-width:68px;height:68px}.block-tile.big{font-size:56px;min-width:78px;height:78px}.slot{width:76px;height:76px}.choice{min-width:100px;min-height:100px}.rail{padding:16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
