@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2) format("woff2"),url(./nunito-cyrillic-ext-600-normal-vnfu4DTE.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:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-cyrillic-600-normal-DJGQ2h05.woff2) format("woff2"),url(./nunito-cyrillic-600-normal-BUjmtIuu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-vietnamese-600-normal-BY8O6Cug.woff2) format("woff2"),url(./nunito-vietnamese-600-normal-DO1RqFw5.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:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-ext-600-normal-Dd9Zuxh1.woff2) format("woff2"),url(./nunito-latin-ext-600-normal-BKUpuB78.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:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(./nunito-latin-600-normal-Cd0eNu1l.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(./nunito-cyrillic-ext-800-normal-pjRatrRO.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(./nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(./nunito-vietnamese-800-normal-Dz0hZPb5.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(./nunito-latin-ext-800-normal-CDcxIxx8.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-cyrillic-ext-900-normal-BLeVovcl.woff2) format("woff2"),url(./nunito-cyrillic-ext-900-normal-DKFql_-q.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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-cyrillic-900-normal-CWPcV0_V.woff2) format("woff2"),url(./nunito-cyrillic-900-normal-Dr1fjxoU.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-vietnamese-900-normal-D6LWQAy_.woff2) format("woff2"),url(./nunito-vietnamese-900-normal-WV2-fBew.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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-latin-ext-900-normal-Dllsvgjo.woff2) format("woff2"),url(./nunito-latin-ext-900-normal-CTBZd6bf.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:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-latin-900-normal-BVB1fGs6.woff2) format("woff2"),url(./nunito-latin-900-normal-CVn49sIn.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: #fff6e3;--bg-sky-top: #a8dcff;--bg-sky-bottom: #e6f6ff;--grass: #8fd16a;--grass-dark: #5fae45;--surface: #ffffff;--surface-2: #fffaf0;--ink: #2b2a4c;--ink-soft: #5d5b7d;--muted: #b9b6cf;--border: #e9dfc8;--primary: #2e9bf0;--primary-dark: #1f78c4;--go: #3dbe6b;--go-dark: #2a9652;--sun: #ffc93c;--sun-dark: #e0a514;--coral: #ff7a59;--coral-dark: #e0573a;--grape: #8e6cf0;--grape-dark: #6b4ccf;--pink: #ff8fc1;--diamond: #29b6f6;--star: #ffb400;--focus: #1f78c4;--paper: #fffdf7;--paper-line: #a9c7e8;--paper-line-strong: #6f9fd6;--paper-slant: #dbe7f5;--font: "Nunito", "Arial Rounded MT Bold", system-ui, sans-serif;--fs-s: 16px;--fs-m: 20px;--fs-l: 28px;--fs-xl: 40px;--fs-xxl: 64px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--r-s: 14px;--r-m: 22px;--r-l: 32px;--r-pill: 999px;--clay: 0 6px 0 rgba(43, 42, 76, .16), 0 14px 24px rgba(43, 42, 76, .12), inset 0 3px 0 rgba(255, 255, 255, .55);--clay-pressed: 0 2px 0 rgba(43, 42, 76, .16), 0 6px 10px rgba(43, 42, 76, .1), inset 0 3px 0 rgba(255, 255, 255, .4);--card-shadow: 0 8px 0 rgba(43, 42, 76, .08), 0 18px 30px rgba(43, 42, 76, .1);--btn: 76px;--btn-s: 60px;--t-fast: .14s;--t-ui: .22s;--t-slow: .38s;--ease: cubic-bezier(.2, .8, .2, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--ink);font-family:var(--font);font-weight:800;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}input,textarea,select{-webkit-user-select:text;user-select:text;font:inherit}#app{position:fixed;inset:0;overflow:hidden}button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation}.ico{display:inline-flex;width:1em;height:1em;line-height:0}.ico svg{width:100%;height:100%}.emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",system-ui,sans-serif;font-weight:400;line-height:1}:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.screen{position:absolute;inset:0;display:flex;flex-direction:column;padding:calc(var(--s3) + var(--safe-t)) calc(var(--s4) + var(--safe-r)) calc(var(--s3) + var(--safe-b)) calc(var(--s4) + var(--safe-l));animation:screen-in var(--t-slow) var(--ease) both}@keyframes screen-in{0%{opacity:0;transform:translateY(12px) scale(.99)}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-width:var(--btn);height:var(--btn);padding:0 var(--s4);border-radius:var(--r-m);box-shadow:var(--clay);font-size:var(--fs-l);transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),filter var(--t-fast)}.btn .ico{font-size:40px}.btn:active{transform:translateY(4px) scale(.97);box-shadow:var(--clay-pressed)}.btn-s{min-width:var(--btn-s);height:var(--btn-s);border-radius:var(--r-s);padding:0 var(--s3);font-size:var(--fs-m)}.btn-s .ico{font-size:32px}.btn-l{min-width:92px;height:92px;border-radius:var(--r-l)}.btn-l .ico{font-size:50px}.btn-white{background:var(--surface);color:var(--ink)}.btn-primary{background:var(--primary);color:#fff}.btn-go{background:var(--go);color:#fff}.btn-sun{background:var(--sun);color:var(--ink)}.btn-coral{background:var(--coral);color:#fff}.btn-grape{background:var(--grape);color:#fff}.btn.on{outline:4px solid var(--sun)}.btn.dim{opacity:.7}.btn-big{height:88px;padding:0 var(--s6);border-radius:var(--r-l);font-size:var(--fs-l);font-weight:900}.btn-big .ico{font-size:44px}.pulse{animation:pulse 1.6s var(--ease) infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.bob{animation:bob 2.6s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-10px) rotate(-2deg)}}.topbar{display:flex;align-items:center;gap:var(--s3);min-height:64px;z-index:5}.topbar .title{margin:0;font-size:var(--fs-xl);font-weight:900;letter-spacing:.5px}.currency{margin-left:auto;display:flex;gap:var(--s2)}.pill{display:inline-flex;align-items:center;gap:6px;height:52px;padding:0 var(--s4) 0 var(--s2);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--clay);font-size:var(--fs-l);font-variant-numeric:tabular-nums;cursor:pointer}.pill .ico{font-size:36px}.gem{color:var(--diamond)}.st{color:var(--star)}.pill.bump{animation:bump .5s var(--ease-bounce)}@keyframes bump{40%{transform:scale(1.25)}}.mascot svg{width:100%;height:100%;display:block}.bubble{position:relative;max-width:340px;padding:var(--s3) var(--s4);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--card-shadow);font-size:var(--fs-m);line-height:1.25;opacity:0;transform:translateY(8px) scale(.96);transition:opacity var(--t-ui) var(--ease),transform var(--t-ui) var(--ease);pointer-events:none}.bubble.show{opacity:1;transform:none}.splash{align-items:center;justify-content:center;gap:var(--s5);background:radial-gradient(circle at 50% 120%,var(--grass) 0 32%,transparent 32.2%),linear-gradient(var(--bg-sky-top),var(--bg-sky-bottom))}.splash-sun{position:absolute;top:6%;right:8%;width:120px;height:120px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 18px #ffc93c40,0 0 0 40px #ffc93c1f;animation:spin 30s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.logo{margin:0;display:flex;flex-direction:column;align-items:center;line-height:.95;font-size:clamp(44px,9vmin,92px);font-weight:900;color:var(--ink)}.logo span:last-child{color:var(--coral)}.splash-mascot{width:110px;height:165px}.splash-btn{min-width:260px}.profiles-screen{align-items:center;justify-content:center;gap:var(--s5);background:linear-gradient(var(--bg-sky-top),var(--bg-sky-bottom))}.profiles-head .mascot{width:80px;height:120px}.profiles{display:flex;gap:var(--s5);flex-wrap:wrap;justify-content:center}.profile-card{width:200px;height:250px;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--clay);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:var(--s3);transition:transform var(--t-fast) var(--ease)}.profile-card:active{transform:scale(.96)}.profile-card .avatar2d{width:150px;height:180px}.profile-name{font-size:var(--fs-l);font-weight:900}.profile-card.add{justify-content:center;background:#fff9;border:4px dashed var(--primary);box-shadow:none}.profile-card.add .ico{font-size:90px;color:var(--primary)}.new-profile{display:flex;flex-direction:column;align-items:center;gap:var(--s4);min-width:min(440px,80vw)}.new-profile h2{margin:0;font-size:var(--fs-xl)}.hint{margin:0;color:var(--ink-soft);font-weight:600;font-size:var(--fs-s);text-align:center;line-height:1.35}.name-input{width:100%;height:64px;border-radius:var(--r-m);border:3px solid var(--border);padding:0 var(--s4);font-size:var(--fs-l);font-weight:800;color:var(--ink);background:var(--surface-2)}.genders{display:flex;gap:var(--s4)}.gender{width:110px;height:110px;border-radius:var(--r-l);background:var(--surface-2);box-shadow:var(--clay);border:4px solid transparent}.gender .ico{font-size:84px}.gender.sel{border-color:var(--go)}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#2b2a4c6b;animation:fade var(--t-ui) both;padding:var(--s4)}.modal.out{animation:fade var(--t-ui) reverse both}@keyframes fade{0%{opacity:0}}.modal-card{position:relative;max-width:92vw;max-height:92vh;overflow:auto;padding:var(--s6);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--card-shadow);animation:pop-in var(--t-slow) var(--ease-bounce) both}.modal-x{position:absolute;top:var(--s3);right:var(--s3)}@keyframes pop-in{0%{transform:scale(.7);opacity:0}}.hub{padding:0;background:linear-gradient(var(--bg-sky-top) 0%,var(--bg-sky-bottom) 62%,var(--grass) 62.1%,var(--grass-dark) 100%)}.hub-top{padding:calc(var(--s3) + var(--safe-t)) calc(var(--s4) + var(--safe-r)) 0 calc(var(--s4) + var(--safe-l))}.hello{font-size:var(--fs-l);font-weight:900}.sky{position:absolute;inset:0 0 40%;pointer-events:none}.cloud{position:absolute;width:160px;height:46px;border-radius:40px;background:#fff;opacity:.9;animation:drift 40s linear infinite}.cloud:before,.cloud:after{content:"";position:absolute;background:#fff;border-radius:50%}.cloud:before{width:70px;height:70px;left:22px;top:-34px}.cloud:after{width:54px;height:54px;left:78px;top:-24px}.c1{top:18%;left:-10%}.c2{top:34%;left:40%;animation-duration:55s;transform:scale(.7)}.c3{top:12%;left:70%;animation-duration:65s}@keyframes drift{to{translate:60vw 0}}.town{position:absolute;left:0;right:0;bottom:30%;display:flex;justify-content:center;align-items:flex-end;gap:clamp(12px,3vw,40px);padding:0 var(--s4)}.house{position:relative;width:clamp(120px,16vw,190px);display:flex;flex-direction:column;align-items:center;transition:transform var(--t-fast) var(--ease)}.house:active{transform:scale(.95)}.house .roof{width:0;height:0;border-left:calc(clamp(120px,16vw,190px)/2 + 12px) solid transparent;border-right:calc(clamp(120px,16vw,190px)/2 + 12px) solid transparent;border-bottom:clamp(56px,7vw,84px) solid var(--c);filter:brightness(.85)}.house .walls{position:relative;width:100%;aspect-ratio:1 / .85;background:var(--c);border-radius:0 0 var(--r-m) var(--r-m);box-shadow:var(--clay);display:grid;place-items:start center;padding-top:10%}.house-ico .ico,.house-ico{font-size:clamp(44px,6vw,72px);color:#fff}.house-emoji{font-size:clamp(40px,5.5vw,64px)}.door{position:absolute;bottom:0;width:30%;height:38%;background:#2b2a4c40;border-radius:40px 40px 0 0}.house-name{margin-top:var(--s2);padding:4px var(--s3);border-radius:var(--r-pill);background:#ffffffd9;font-size:var(--fs-m)}.house.locked .walls,.house.locked .roof{filter:grayscale(.55) brightness(.95)}.house>.lock{position:absolute;bottom:50px;font-size:44px;color:#fff;filter:drop-shadow(0 3px 0 rgba(0,0,0,.2))}.main-house{width:clamp(150px,21vw,250px);animation:bob 3s ease-in-out infinite}.main-house .roof{border-left-width:calc(clamp(150px,21vw,250px)/2 + 14px);border-right-width:calc(clamp(150px,21vw,250px)/2 + 14px)}.hub-hero{position:absolute;left:calc(var(--s5) + var(--safe-l));bottom:calc(var(--s3) + var(--safe-b));display:flex;align-items:flex-end;gap:var(--s3)}.hub-avatar{width:clamp(110px,14vw,170px);height:clamp(140px,18vw,210px)}.hub-nav{position:absolute;right:calc(var(--s5) + var(--safe-r));bottom:calc(var(--s4) + var(--safe-b));display:flex;gap:var(--s3)}.parent-btn{position:absolute;left:50%;bottom:calc(var(--s2) + var(--safe-b));translate:-50% 0;width:48px;height:48px;border-radius:50%;color:#2b2a4c73;display:grid;place-items:center}.parent-btn .ico{font-size:28px}.hold-ring{position:absolute;inset:0;border-radius:50%;border:4px solid var(--go);clip-path:inset(0 100% 0 0)}.parent-btn.holding .hold-ring{animation:hold var(--hold, 3s) linear forwards}@keyframes hold{to{clip-path:inset(0 0 0 0)}}.daily{display:flex;flex-direction:column;align-items:center;gap:var(--s4);min-width:320px}.streak{display:flex;gap:6px;color:var(--star);font-size:36px}.chest{position:relative;width:180px;height:140px}.chest-box{position:absolute;bottom:0;left:0;right:0;height:90px;border-radius:12px;background:linear-gradient(#b5651d,#8d4a12);box-shadow:inset 0 -10px #00000026,var(--clay)}.chest-lid{position:absolute;top:10px;left:-6px;right:-6px;height:52px;border-radius:40px 40px 8px 8px;background:linear-gradient(#d07a2a,#a85a17);transform-origin:10% 100%;transition:transform .5s var(--ease-bounce);z-index:2}.chest.open .chest-lid{transform:rotate(-35deg) translateY(-20px)}.chest:not(.open){animation:wiggle 1.4s ease-in-out infinite}.chest-prize{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-xl)}.chest-prize .ico{font-size:52px}.chest-prize .emoji{font-size:60px}.map{background:linear-gradient(#e6f6ff,#fff6e3)}.map-scroll{flex:1;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:var(--s3) var(--s2) var(--s7)}.map-section{margin-bottom:var(--s5)}.map-title{display:inline-block;margin:0 0 var(--s3);padding:var(--s1) var(--s4);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--card-shadow);font-size:var(--fs-l)}.sec-warmup .map-title{color:var(--go-dark)}.sec-letters .map-title{color:var(--coral-dark)}.sec-words .map-title{color:var(--grape-dark)}.map-path{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s3);padding:0 var(--s2)}.node{position:relative;width:96px;height:96px;border-radius:50%;background:var(--surface);box-shadow:var(--clay);display:grid;place-items:center;transition:transform var(--t-fast) var(--ease)}.node:active{transform:scale(.92)}.node.wave-1{translate:0 14px}.node.wave-3{translate:0 -8px}.node-label{font-size:54px;font-weight:900;line-height:1;color:var(--ink);margin-top:-6px}.node-label.up{color:var(--primary-dark)}.node-label.word{font-size:30px}.node.done{background:#f1ffe9}.node.locked{background:#ecebf3;box-shadow:0 4px #2b2a4c1a}.node.locked .node-label{color:var(--muted)}.node>.lock{position:absolute;right:-2px;bottom:-2px;font-size:30px;color:var(--muted);background:#fff;border-radius:50%;padding:4px}.node.current{outline:6px solid var(--sun);animation:pulse 1.4s ease-in-out infinite}.node .stars.mini{position:absolute;bottom:-10px}.node .here{position:absolute;top:-34px;right:-26px;width:44px;height:54px;pointer-events:none}.node .here .avatar2d{width:100%;height:100%}.shake{animation:wiggle .4s ease-in-out 2}@keyframes wiggle{25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.stars{display:inline-flex;gap:2px;color:var(--star)}.stars .off{color:#e2dbc4}.stars.mini .ico{font-size:22px;filter:drop-shadow(0 1px 0 rgba(0,0,0,.15))}.stars.big .ico{font-size:64px}.stars.pop .ico{animation:pop-in .5s var(--ease-bounce) both}.stars.pop .ico:nth-child(2){animation-delay:.15s}.stars.pop .ico:nth-child(3){animation-delay:.3s}.lesson{position:absolute;inset:0;display:flex;flex-direction:column;padding:calc(var(--s2) + var(--safe-t)) calc(var(--s3) + var(--safe-r)) calc(var(--s2) + var(--safe-b)) calc(var(--s3) + var(--safe-l));background:#f6efe0}.lesson-top{min-height:60px;gap:var(--s4)}.step-dots{display:flex;gap:var(--s2);margin:0 auto}.step-dots .dot{width:44px;height:44px;border-radius:50%;background:#e8e1cf;color:#b8ad92;display:grid;place-items:center;transition:transform var(--t-ui) var(--ease)}.step-dots .dot .ico{font-size:24px}.step-dots .dot.done{background:var(--go);color:#fff}.step-dots .dot.now{background:var(--sun);color:var(--ink);transform:scale(1.2);box-shadow:var(--clay)}.lesson-main{flex:1;min-height:0;display:grid;grid-template-columns:auto 1fr minmax(170px,21%);gap:var(--s3);padding-top:var(--s2)}.lesson.lefty .lesson-main{grid-template-columns:minmax(170px,21%) 1fr auto}.lesson.lefty .tools{order:3}.lesson.lefty .side{order:1}.tools{display:flex;flex-direction:column;gap:var(--s3);align-items:center}.crayons{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding:var(--s2);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--card-shadow)}.crayon{width:44px;height:30px;border-radius:8px 16px 16px 8px;background:var(--c);box-shadow:inset 0 -4px #0000002e;transition:transform var(--t-fast) var(--ease)}.crayon.sel{transform:translate(8px) scale(1.1);outline:3px solid var(--sun)}.board-wrap{position:relative;min-width:0;min-height:0;border-radius:var(--r-l);overflow:hidden;box-shadow:var(--card-shadow),inset 0 0 0 4px #fff;background:var(--paper)}.board{position:absolute;inset:0}.board .layer{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.board-overlay{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center}.board-overlay.catch{pointer-events:auto}.step-stars{padding:var(--s4) var(--s6);border-radius:var(--r-l);background:#ffffffeb;box-shadow:var(--card-shadow)}.step-stars .ico{font-size:70px}.chips{position:absolute;top:var(--s3);left:50%;translate:-50% 0;display:flex;gap:var(--s2);pointer-events:none}.chip{display:flex;align-items:center;gap:var(--s2);padding:4px var(--s3) 4px 4px;border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--card-shadow);font-size:var(--fs-m);animation:pop-in var(--t-slow) var(--ease-bounce) both}.chip .mini{background:#fff8e6;border-radius:50%}.chip.assoc .emoji{font-size:42px;padding:4px}.tut-controls{position:absolute;left:50%;bottom:var(--s3);translate:-50% 0;display:flex;align-items:center;gap:var(--s2);padding:var(--s2);border-radius:var(--r-l);background:#ffffffeb;box-shadow:var(--card-shadow);transition:opacity var(--t-ui),transform var(--t-ui) var(--ease)}.tut-controls.hidden{opacity:0;transform:translateY(20px);pointer-events:none}.go-btn{margin-left:var(--s3)}.side{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--s3);min-height:0}.side-card{width:100%;padding:var(--s3);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--card-shadow);display:flex;flex-direction:column;align-items:center;cursor:pointer}.big-glyph{font-size:clamp(56px,9vh,96px);font-weight:900;line-height:1;color:var(--coral)}.side-card .word{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-m)}.side-card .word .emoji{font-size:40px}.side-avatar{flex:1;min-height:0;width:100%;display:flex;align-items:flex-end;justify-content:center}.lesson-avatar{width:min(100%,170px);height:min(100%,210px)}.lesson-bubble{position:absolute;bottom:52%;right:0;left:auto;width:100%;font-size:17px}.sparkle{position:absolute;pointer-events:none;width:0;height:0}.sparkle .ico{position:absolute;font-size:26px;color:var(--sun);animation:spark .8s var(--ease) forwards}.sparkle .ico:nth-child(2){--dx: -30px;--dy: -26px;color:var(--pink)}.sparkle .ico:nth-child(1){--dx: 28px;--dy: -30px}.sparkle .ico:nth-child(3){--dx: 4px;--dy: 30px;color:var(--primary)}@keyframes spark{0%{transform:translate(-50%,-50%) scale(.2);opacity:1}to{transform:translate(calc(-50% + var(--dx, 0px)),calc(-50% + var(--dy, 0px))) scale(1.2) rotate(90deg);opacity:0}}.avatar2d svg{width:100%;height:100%;overflow:visible;display:block}.avatar2d.idle .av-body{animation:breathe 2.8s ease-in-out infinite;transform-origin:50% 100%}@keyframes breathe{50%{transform:scaleY(1.015)}}.avatar2d .av-eyes{animation:blink 4.5s infinite;transform-origin:50% 29px;transform-box:view-box}@keyframes blink{0%,95%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}.avatar2d .av-pet{animation:hop 1.4s ease-in-out infinite}@keyframes hop{50%{transform:translateY(-4px)}}.avatar2d.cheer svg{animation:cheer .8s var(--ease-bounce)}@keyframes cheer{40%{transform:translateY(-24px) scale(1.05)}}.avatar2d.nod svg{animation:nod .5s var(--ease)}@keyframes nod{50%{transform:translateY(-8px)}}.avatar2d.dance svg{animation:dance 1.5s var(--ease)}@keyframes dance{15%{transform:translateY(-20px) rotate(-8deg)}30%{transform:translateY(0) rotate(0)}45%{transform:translateY(-20px) rotate(8deg)}60%{transform:translateY(0) scaleX(-1)}80%{transform:translateY(-16px) scaleX(-1)}}.reward{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s4);background:#fff6e3f0;backdrop-filter:blur(4px);animation:fade var(--t-ui) both;padding:var(--s4)}.reward-stage{display:flex;align-items:center;gap:var(--s5)}.reward-avatar{width:clamp(130px,18vw,210px);height:clamp(160px,22vw,260px)}.reward-card{display:flex;flex-direction:column;align-items:center;gap:var(--s3);padding:var(--s5) var(--s6);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--card-shadow);min-width:300px;animation:pop-in var(--t-slow) var(--ease-bounce) both}.reward-glyph{font-size:84px;line-height:1;font-weight:900;color:var(--coral)}.reward-gems{display:flex;align-items:center;gap:6px;font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.reward-gems .ico{font-size:56px}.reward-sticker{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s4);border-radius:var(--r-pill);background:#fff3c4;font-size:var(--fs-m)}.reward-sticker .emoji{font-size:44px}.pop-late{animation:pop-in .5s var(--ease-bounce) 1.1s both}.goal{display:flex;align-items:center;gap:var(--s2);width:100%}.goal-item{font-size:36px}.goal-bar{flex:1;height:18px;border-radius:var(--r-pill);background:#eee8d6;overflow:hidden}.goal-fill{height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--diamond),var(--primary));transition:width 1s var(--ease)}.goal-gem{display:flex;align-items:center;gap:2px;font-size:var(--fs-m)}.goal-gem .ico{font-size:26px}.reward-actions{display:flex;gap:var(--s4);align-items:center}.milestone{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;gap:var(--s5);background:#2b2a4c8c;animation:fade var(--t-ui) both}.milestone.out{animation:fade .4s reverse both}.medal,.milestone-item{font-size:140px;animation:pop-in .6s var(--ease-bounce) both}.milestone-num{font-size:120px;font-weight:900;color:#fff;text-shadow:0 6px 0 rgba(0,0,0,.2)}.confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:60}.fly-gem{position:fixed;z-index:61;width:40px;height:40px;color:var(--diamond);pointer-events:none}.wardrobe{background:linear-gradient(#efe9ff,#fff6e3)}.wardrobe-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(260px,40%) 1fr;gap:var(--s4);padding-top:var(--s2)}.stage-wrap{position:relative;border-radius:var(--r-l);background:radial-gradient(circle at 50% 75%,#fff 0 35%,#e5ddff 70%);box-shadow:var(--card-shadow);overflow:hidden}.wardrobe-stage{position:absolute;inset:0 0 90px;display:grid;place-items:center}.wardrobe-2d{width:60%;height:80%}.avatar3d-canvas{display:block;cursor:grab}.buy-bar{position:absolute;left:0;right:0;bottom:var(--s3);display:flex;justify-content:center;gap:var(--s3)}.shop{display:flex;flex-direction:column;min-height:0;gap:var(--s3)}.slot-tabs{display:flex;gap:var(--s2);overflow-x:auto;touch-action:pan-x;padding:4px 4px 10px;scrollbar-width:none}.tab{flex:none;width:66px;height:66px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--clay);font-size:36px;display:grid;place-items:center}.tab.sel{background:var(--grape);transform:translateY(-3px)}.item-grid{flex:1;overflow-y:auto;touch-action:pan-y;display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:var(--s3);align-content:start;padding:4px 4px var(--s5)}.item-card{position:relative;aspect-ratio:1;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--clay);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:4px solid transparent}.item-card.r-rare{background:linear-gradient(#fff,#e9f6ff)}.item-card.r-epic{background:linear-gradient(#fff,#f1e9ff)}.item-card.r-legend{background:linear-gradient(#fff,#fff1c9)}.item-card.worn{border-color:var(--go)}.item-card.trying{border-color:var(--sun)}.item-icon{font-size:48px;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.item-colors{display:flex;gap:3px}.item-colors i{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #00000026}.item-price{display:flex;align-items:center;gap:2px;font-size:var(--fs-m);color:var(--ink-soft)}.item-price.can{color:var(--primary-dark)}.item-price .ico{font-size:22px}.item-tag{position:absolute;top:6px;right:6px;width:30px;height:30px;border-radius:50%;background:var(--go);color:#fff;display:grid;place-items:center}.item-tag .ico{font-size:20px}.swatch-row{grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2)}.swatch-label{width:110px;font-size:var(--fs-m)}.swatch{width:58px;height:58px;border-radius:50%;background:var(--c);box-shadow:var(--clay);border:4px solid #fff}.swatch.sel{outline:4px solid var(--go)}.album{background:linear-gradient(#fff3c4,#fff6e3)}.album-tabs{display:flex;gap:var(--s2);padding:var(--s2) 4px var(--s3);overflow-x:auto;touch-action:pan-x}.album-tab{flex:none;min-width:84px;height:72px;padding:0 var(--s3);border-radius:var(--r-m);background:var(--bg, #fff);box-shadow:var(--clay);display:flex;align-items:center;gap:var(--s2)}.album-tab .emoji{font-size:38px}.album-tab .count{font-size:var(--fs-s);color:var(--ink-soft)}.album-tab.sel{outline:4px solid var(--grape)}.album-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--s3)}.sticker-grid{flex:1;overflow-y:auto;border-radius:var(--r-l);background:var(--bg);padding:var(--s5);display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--s4);align-content:start}.sticker{aspect-ratio:1;border-radius:28px;background:#fff;box-shadow:var(--clay);display:grid;place-items:center}.sticker .emoji{font-size:64px}.sticker.missing{background:#ffffff80;box-shadow:inset 0 0 0 4px #2b2a4c1f}.sticker.missing .emoji{filter:grayscale(1) brightness(.2);opacity:.13}.wiggle{animation:wiggle .5s ease-in-out}.scene-board{position:relative;flex:1;min-height:0;border-radius:var(--r-l);overflow:hidden;background:linear-gradient(#a8dcff 0 60%,#8fd16a 60%);box-shadow:var(--card-shadow)}.scene-sun{position:absolute;top:8%;right:8%;width:90px;height:90px;border-radius:50%;background:var(--sun)}.scene-hill{position:absolute;bottom:30%;width:60%;height:40%;border-radius:50% 50% 0 0;background:#7cc35a}.scene-hill.h1{left:-10%}.scene-hill.h2{right:-15%;height:32%;background:#6fb94f}.placed{position:absolute;translate:-50% -50%;font-size:calc(70px * var(--s, 1));font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;touch-action:none;cursor:grab;filter:drop-shadow(0 4px 0 rgba(0,0,0,.15));transition:transform var(--t-fast)}.placed.drag{transform:scale(1.2);z-index:3}.scene-tray{display:flex;gap:var(--s2);overflow-x:auto;touch-action:pan-x;padding:var(--s2);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--card-shadow);min-height:92px}.tray-sticker{flex:none;width:72px;height:72px;font-size:48px;border-radius:var(--r-m);background:var(--surface-2);font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.tray-empty{margin:auto;font-size:40px}.my-letters{background:linear-gradient(#e6f6ff,#fff6e3)}.letters-grid{flex:1;overflow-y:auto;touch-action:pan-y;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s4);padding:var(--s3) 4px var(--s6);align-content:start}.letter-card{position:relative;aspect-ratio:.9;border-radius:var(--r-l);background:var(--paper) repeating-linear-gradient(transparent 0 33px,#d3e2f3 33px 35px);box-shadow:var(--clay);display:flex;flex-direction:column;align-items:center;justify-content:center}.letter-card .stars{position:absolute;bottom:8px}.compare{display:flex;align-items:center;justify-content:center}.cmp-two{display:flex;align-items:center;gap:var(--s4)}.cmp{position:relative;border-radius:var(--r-l);background:var(--paper);box-shadow:var(--card-shadow)}.cmp.best{outline:5px solid var(--sun)}.cmp-tag{position:absolute;top:-14px;left:-14px;width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:var(--fs-m)}.cmp.best .cmp-tag{background:var(--sun);color:var(--ink)}.cmp-arrow{font-size:56px;color:var(--go)}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s4)}.empty-emoji{font-size:90px}.onboarding{background:linear-gradient(var(--bg-sky-top),var(--bg-sky-bottom))}.onboarding .topbar{justify-content:flex-end}.onb-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:var(--s6)}.onb-stage .lesson{position:absolute;inset:0;border-radius:var(--r-l)}.onb-mascot{width:130px;height:195px}.grip-svg{width:min(46vw,420px);height:auto}.grip .finger{transition:transform var(--t-ui) var(--ease-bounce),fill var(--t-ui);transform-box:fill-box;transform-origin:center}.grip .finger.lit{fill:var(--go);transform:scale(1.18)}.grip .fnum{font:900 26px var(--font);fill:#fff;text-anchor:middle}.onb-buttons{display:flex;gap:var(--s5)}.onb-buttons .btn{transition:transform var(--t-ui) var(--ease-bounce)}.onb-buttons .spot{transform:scale(1.35);outline:6px solid var(--sun)}.onb-go{position:absolute;bottom:var(--s5)}.onb-bubble{position:absolute;left:50%;bottom:calc(var(--s3) + var(--safe-b));translate:-50% 0;max-width:70%;text-align:center}.parent,.parent-gate{background:#f5f3fb;font-weight:700}.gate-card{margin:auto;padding:var(--s6);border-radius:var(--r-l);background:#fff;box-shadow:var(--card-shadow);text-align:center}.gate-card p{font-size:var(--fs-xl);margin:0 0 var(--s5)}.gate-opts{display:grid;grid-template-columns:repeat(2,140px);gap:var(--s3)}.gate-opt{font-size:var(--fs-xl)}.parent-tabs{display:flex;gap:var(--s2);margin:var(--s3) 0}.ptab{padding:var(--s3) var(--s5);border-radius:var(--r-pill);background:#fff;box-shadow:var(--card-shadow);font-size:var(--fs-m)}.ptab.sel{background:var(--ink);color:#fff}.parent-body{flex:1;overflow-y:auto;touch-action:pan-y;padding-bottom:var(--s6)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s3);margin-bottom:var(--s4)}.kpi{display:flex;flex-direction:column;padding:var(--s4);border-radius:var(--r-m);background:#fff;box-shadow:var(--card-shadow)}.kpi b{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.kpi span{color:var(--ink-soft);font-size:var(--fs-s)}.ptable{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r-m);overflow:hidden;font-size:var(--fs-m)}.ptable th,.ptable td{padding:10px var(--s3);text-align:left;border-bottom:1px solid #ece9f5}.ptable th{background:#f0eef8;font-size:var(--fs-s);color:var(--ink-soft)}.ptable td.num{font-variant-numeric:tabular-nums}.ptable tr.muted td{color:var(--muted)}.glyph-cell{font-size:26px;font-weight:900}.settings-view,.data-view{display:flex;flex-direction:column;gap:var(--s3);max-width:860px}.set-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s3) var(--s4);border-radius:var(--r-m);background:#fff;box-shadow:var(--card-shadow)}.set-label{display:flex;flex-direction:column;font-size:var(--fs-m)}.set-label small{font-size:14px;color:var(--ink-soft);font-weight:600}.seg{display:flex;flex-wrap:wrap;gap:6px}.seg-btn{min-height:48px;padding:0 var(--s4);border-radius:var(--r-pill);background:#f0eef8;font-size:var(--fs-s)}.seg-btn.sel{background:var(--primary);color:#fff}.set-row input[type=range]{width:260px;accent-color:var(--primary)}.warn{padding:var(--s4);border-radius:var(--r-m);background:#fff3c4;font-weight:600;line-height:1.4}.data-actions{display:flex;flex-wrap:wrap;gap:var(--s3)}.data-actions .btn-big{height:64px;font-size:var(--fs-m)}.data-actions .btn-big .ico{font-size:30px}.hidden-file{display:none}.break{display:flex;flex-direction:column;align-items:center;gap:var(--s4)}.break-mascot{width:120px;height:180px}.editor{background:#f5f3fb}.ed-top{flex-wrap:wrap}.ed-select{height:52px;font-size:var(--fs-m);border-radius:var(--r-s)}.ed-status{font-size:var(--fs-s);color:var(--ink-soft)}.ed-main{flex:1;min-height:0;display:grid;grid-template-columns:1fr 360px;gap:var(--s3)}.ed-board{position:relative;border-radius:var(--r-m);overflow:hidden;box-shadow:var(--card-shadow)}.ed-side{display:flex;flex-direction:column;gap:var(--s2);min-height:0;overflow-y:auto}.ed-list{margin:0;padding-left:24px}.ed-list li{display:flex;align-items:center;gap:6px;margin-bottom:6px;border-left:6px solid var(--c);padding-left:6px;font-size:14px}.ed-hint{flex:1;height:40px;border-radius:10px;border:2px solid var(--border);padding:0 8px}.ed-out{width:100%;font-family:ui-monospace,monospace;font-size:12px;border-radius:10px}.rotate-hint{display:none}@media (orientation: portrait) and (max-width: 1100px){.rotate-hint{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s5);background:linear-gradient(var(--bg-sky-top),var(--bg-sky-bottom))}.rotate-phone{font-size:120px;color:var(--ink);animation:rotate-phone 2.2s var(--ease) infinite}.rotate-mascot{width:90px;height:135px}}@keyframes rotate-phone{0%,20%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}@media (max-height: 520px){:root{--btn: 60px;--btn-s: 50px;--fs-l: 22px;--fs-xl: 30px;--fs-m: 17px}.btn .ico{font-size:32px}.btn-s .ico{font-size:26px}.btn-l{min-width:68px;height:68px}.btn-l .ico{font-size:38px}.btn-big{height:64px;padding:0 var(--s4)}.btn-big .ico{font-size:32px}.topbar{min-height:52px}.pill{height:42px}.pill .ico{font-size:28px}.step-dots .dot{width:34px;height:34px}.step-dots .dot .ico{font-size:18px}.lesson-main{grid-template-columns:auto 1fr minmax(120px,18%);gap:var(--s2)}.tools{gap:var(--s2)}.crayons{flex-direction:row;flex-wrap:wrap;width:60px;gap:4px;padding:4px}.crayon{width:24px;height:22px}.crayon.sel{transform:scale(1.15)}.side-card .word{display:none}.lesson-bubble,.chip{font-size:14px}.chip .mini{width:40px!important;height:40px!important}.node{width:76px;height:76px}.node-label{font-size:42px}.profile-card{width:150px;height:190px}.profile-card .avatar2d{width:110px;height:130px}.reward-card{padding:var(--s3) var(--s5);gap:var(--s2)}.reward-glyph{font-size:54px}.stars.big .ico{font-size:44px}.reward-sticker .emoji{font-size:32px}.splash-mascot{width:70px;height:105px}.hub-avatar{width:90px;height:110px}.town{bottom:32%}.house-name{font-size:14px}.tab{width:54px;height:54px;font-size:28px}.item-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.item-icon{font-size:36px}.tut-controls{bottom:var(--s2);padding:4px;gap:4px}.go-btn{margin-left:4px}.sticker .emoji{font-size:44px}.sticker-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));padding:var(--s3)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
