:root{--night: #141d35;--night-2: #1c2a4a;--night-3: #253862;--line: #34487c;--text: #f5f2ff;--text-dim: #a8b3d8;--ink: #221a33;--ink-soft: #4a3f63;--boom: #ff7a2f;--boom-deep: #cc5316;--sun: #ffd23f;--sun-deep: #d9a800;--mint: #3ddc97;--mint-deep: #1f9e68;--rose: #ff5c7a;--rose-deep: #c93554;--sky: #5cc8ff;--blush: #ff9fb0;--display: "Fredoka", "Assistant", "Arial Rounded MT Bold", system-ui, sans-serif;--body: "Assistant", "Segoe UI", system-ui, sans-serif;--radius: 18px;--press: 5px;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:radial-gradient(1.5px 1.5px at 12% 18%,rgb(255 255 255 / .5),transparent 60%),radial-gradient(1px 1px at 72% 9%,rgb(255 255 255 / .45),transparent 60%),radial-gradient(1.5px 1.5px at 88% 42%,rgb(255 255 255 / .35),transparent 60%),radial-gradient(1px 1px at 30% 64%,rgb(255 255 255 / .35),transparent 60%),radial-gradient(1.2px 1.2px at 55% 85%,rgb(255 255 255 / .3),transparent 60%),radial-gradient(120% 60% at 50% -10%,#23305a 0%,var(--night) 60%) fixed,var(--night);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--sky);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{max-width:560px;margin:0 auto;padding-inline:16px;min-height:100vh;display:flex;flex-direction:column}.app__main{flex:1;min-width:0}.app__credit{padding:18px 0 calc(18px + env(safe-area-inset-bottom,0px));text-align:center;font-size:.8rem;opacity:.65}.dict-row__pills{display:flex;flex-wrap:wrap;gap:6px}.btn{--face: var(--night-3);--edge: var(--line);border:0;border-radius:16px;padding:14px 26px;font-family:var(--display);font-weight:600;font-size:1.1rem;letter-spacing:.02em;background:var(--face);color:var(--text);box-shadow:0 var(--press) 0 var(--edge);cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:active:not(:disabled){transform:translateY(var(--press));box-shadow:0 0 0 var(--edge)}.btn:disabled{--face: var(--night-2);--edge: #172340;color:#5d6a93;cursor:not-allowed}.btn--primary{--face: var(--boom);--edge: var(--boom-deep);color:#fff}.btn--mint{--face: var(--mint);--edge: var(--mint-deep);color:#08321f}.btn--rose{--face: var(--rose);--edge: var(--rose-deep);color:#fff}.btn--ghost{--face: transparent;--edge: transparent;box-shadow:inset 0 0 0 2px var(--line)}.btn--wide{width:100%}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:14px;background:var(--night-2);box-shadow:0 3px #10182d;font-size:1.2rem;cursor:pointer;flex:none}.icon-btn--ghost{background:transparent;box-shadow:none;color:var(--text-dim);font-size:1.4rem}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:12px;background:linear-gradient(var(--night) 70%,transparent);flex-wrap:wrap}.topbar__brand{display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:1.45rem;letter-spacing:-.01em}.topbar__word span{color:var(--boom);display:inline-block;animation:brand-pop 3.6s ease-in-out infinite}.topbar__stats{display:flex;align-items:center;gap:10px}.stat{display:flex;align-items:center;gap:6px;font-family:var(--display);font-weight:600;font-variant-numeric:tabular-nums}.stat--streak .stat__icon{filter:grayscale(1) opacity(.5);font-size:1.25rem}.stat--streak.is-lit .stat__icon{filter:none;animation:flicker 1.6s ease-in-out infinite}.stat--streak.is-lit .stat__value{color:var(--boom)}.level-badge{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:var(--sun);color:var(--ink);font-size:.95rem;box-shadow:0 3px 0 var(--sun-deep)}.level-bar{width:54px;height:10px;border-radius:99px;background:var(--night-3);overflow:hidden}.level-bar span{display:block;height:100%;border-radius:inherit;background:var(--sun);transition:width .6s cubic-bezier(.2,.9,.3,1.2)}.stat__value--small{font-size:.85rem;color:var(--text-dim)}.banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-block:4px 12px;padding:10px 14px;border-radius:14px;background:#5cc8ff1f;border:1px solid rgb(92 200 255 / .35);font-size:.95rem}.banner--warn{background:#ffd23f1f;border-color:#ffd23f66}.banner__action{margin-inline-start:auto;border:0;background:none;color:var(--sky);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.toast{position:fixed;inset-inline:16px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:30;max-width:520px;margin:0 auto;padding:14px 18px;border-radius:16px;background:var(--night-3);box-shadow:0 10px 30px #0006;font-weight:600;animation:toast 2.8s ease both}.state{display:grid;justify-items:center;gap:10px;padding-block:64px;text-align:center}.state h2{margin:0;font-family:var(--display)}.state p{margin:0;color:var(--text-dim)}.state--loading .mascot{animation:bob 1.1s ease-in-out infinite}.dots{display:flex;gap:6px}.dots span{width:10px;height:10px;border-radius:50%;background:var(--boom);animation:dot 1s ease-in-out infinite}.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}.crash{display:grid;justify-items:center;gap:12px;padding:80px 16px;text-align:center}.crash h2{margin:0;font-family:var(--display)}.crash p{margin:0;color:var(--text-dim);max-width:34ch}.path{display:grid;gap:28px;padding-block:8px 64px}.unit{--unit: hsl(var(--hue) 85% 60%);--unit-deep: hsl(var(--hue) 70% 38%);display:grid;gap:22px}.unit__banner{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-radius:var(--radius);background:var(--unit);color:#160f24;box-shadow:0 6px 0 var(--unit-deep)}.unit__eyebrow{margin:0;font-size:.8rem;font-weight:800;letter-spacing:.08em;opacity:.75}.unit__title{margin:0;font-family:var(--display);font-size:1.5rem;line-height:1.15}.unit__subtitle{margin:0;font-weight:600;opacity:.8}.unit__meta{display:grid;justify-items:center;gap:2px}.unit__emoji{font-size:2.2rem;line-height:1}.unit__count{font-family:var(--display);font-weight:600;font-size:.85rem;padding:1px 8px;border-radius:99px;background:#160f2426}.unit__nodes{list-style:none;margin:0;padding:0;display:grid;justify-items:center;gap:20px}.node-wrap{position:relative;display:grid;justify-items:center;gap:4px}.node{width:76px;height:70px;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--unit);box-shadow:0 7px 0 var(--unit-deep);transition:transform .1s ease,box-shadow .1s ease}.node:active{transform:translateY(6px);box-shadow:0 1px 0 var(--unit-deep)}.node__face{font-family:var(--display);font-size:1.8rem;font-weight:700;color:#fff;text-shadow:0 2px 0 rgb(0 0 0 / .2)}.node--done{background:var(--sun);box-shadow:0 7px 0 var(--sun-deep)}.node--done .node__face{color:var(--ink);text-shadow:none}.node--locked{background:var(--night-3);box-shadow:0 7px #17223f}.node--locked .node__face{font-size:1.3rem;opacity:.7}.node--current{animation:node-pulse 1.8s ease-out infinite}.node__label{font-size:.85rem;font-weight:700;color:var(--text-dim)}.node__stars{display:flex;gap:2px;font-size:.9rem;color:var(--night-3)}.node__stars .on{color:var(--sun)}.node-callout{position:absolute;bottom:calc(100% + 4px);display:flex;align-items:center;gap:4px;padding:4px 12px 4px 6px;border-radius:14px;background:var(--text);color:var(--ink);font-family:var(--display);font-weight:600;white-space:nowrap;animation:bob 1.6s ease-in-out infinite;pointer-events:none}.node-callout:after{content:"";position:absolute;top:100%;left:50%;translate:-50% 0;border:8px solid transparent;border-top-color:var(--text)}.node-wrap:has(.node-callout){margin-top:54px}.path__end{display:grid;justify-items:center;gap:8px;text-align:center;color:var(--text-dim)}.path__end p{margin:0;max-width:30ch}.lesson{--unit: hsl(var(--hue) 85% 60%);min-height:100vh;display:flex;flex-direction:column}.lesson__header{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;align-items:center;gap:12px;padding-block:14px}.progress{flex:1;height:16px;border-radius:99px;background:var(--night-3);overflow:hidden}.progress__fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--mint),#7cf0bf);box-shadow:inset 0 -4px #0000001f,inset 0 3px #ffffff59;transition:width .45s cubic-bezier(.2,.9,.3,1.25)}.hearts{display:flex;gap:1px;font-size:1.25rem;color:var(--rose);direction:ltr}.heart{display:inline-block;transition:transform .2s ease}.heart.is-lost{color:var(--night-3);animation:heart-break .5s ease}.lesson__body{flex:1;display:grid;align-content:start;gap:8px;padding-block:8px 180px}.lesson__coach{position:relative;display:flex;align-items:center;gap:10px;min-height:64px}.combo{padding:4px 12px;border-radius:99px;background:linear-gradient(135deg,var(--boom),var(--sun));color:var(--ink);font-family:var(--display);font-weight:700;animation:pop .45s cubic-bezier(.2,1.6,.4,1)}.retry-tag{padding:3px 10px;border-radius:99px;border:1.5px dashed var(--rose);color:var(--rose);font-weight:700;font-size:.85rem}.xp-float{position:absolute;inset-inline-start:70px;top:0;font-family:var(--display);font-weight:700;font-size:1.3rem;color:var(--sun);text-shadow:0 2px 0 var(--ink);pointer-events:none;animation:float-up 1.1s ease-out forwards}.lesson__card.is-shaking{animation:shake .42s ease}.lesson__footer{position:fixed;z-index:10;inset-inline:0;bottom:0;padding:16px 16px calc(20px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,var(--night) 35%)}.lesson__footer>*{display:block;max-width:528px;margin:0 auto}.ex{display:grid;gap:16px;animation:slide-in .35s cubic-bezier(.2,.9,.3,1)}.ex__instruction{margin:0;font-weight:700;color:var(--text-dim);font-size:1.05rem}.ex__prompt{margin:0;font-family:var(--display);font-size:clamp(2rem,8vw,2.6rem);line-height:1.15;text-wrap:balance}.ex__prompt--en{color:var(--sky)}.ex__prompt--sentence{font-size:clamp(1.6rem,6vw,2rem);padding:14px 18px;border-radius:var(--radius);background:var(--night-2);border:2px solid var(--line)}.ex__prompt-row{display:flex;align-items:center;gap:12px}.ex__emoji{font-size:2.6rem;animation:bob 2s ease-in-out infinite}.ex__listen{display:flex;justify-content:center;padding-block:10px}.ex__dictation{display:grid;justify-items:center;gap:12px;padding-block:6px}.ex__meaning{padding:4px 14px;border-radius:99px;background:var(--night-2);color:var(--text-dim);font-weight:700}.ex__hint,.ex__fallback{margin:0;color:var(--text-dim);font-weight:600;text-align:center}.ex__warning{margin:0;color:var(--sun);font-weight:600}.choices{display:grid;gap:12px}.choices--cards{grid-template-columns:repeat(2,minmax(0,1fr))}.choice{position:relative;display:flex;align-items:center;gap:12px;min-height:60px;padding:14px 16px;border:2px solid var(--line);border-radius:var(--radius);background:var(--night-2);box-shadow:0 4px 0 var(--line);font-size:1.15rem;font-weight:700;text-align:start;cursor:pointer;animation:rise .35s cubic-bezier(.2,.9,.3,1.2) both;transition:transform .08s ease,box-shadow .08s ease,border-color .15s ease,background .15s ease}.choices--cards .choice{flex-direction:column;justify-content:center;min-height:132px;text-align:center}.choice:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 0 var(--line)}.choice__key{position:absolute;top:8px;inset-inline-end:10px;font-size:.75rem;color:var(--text-dim);opacity:.6}.choice__emoji{font-size:2.6rem;line-height:1}.choice__label{font-family:var(--display);font-weight:600}.choice.is-selected{border-color:var(--sky);background:#5cc8ff24;box-shadow:0 4px #2f8fc2}.choice.is-selected .choice__emoji{animation:wiggle .4s ease}.choice.is-right{border-color:var(--mint);background:#3ddc9729;box-shadow:0 4px 0 var(--mint-deep);animation:pop .4s ease}.choice.is-wrong{border-color:var(--rose);background:#ff5c7a24;box-shadow:0 4px 0 var(--rose-deep)}.choice.is-dim{opacity:.45}.choice:disabled{cursor:default}.tile{min-height:52px;padding:10px 14px;border:2px solid var(--line);border-radius:14px;background:var(--night-2);box-shadow:0 4px 0 var(--line);font-family:var(--display);font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,opacity .3s ease,border-color .15s ease}.tile:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 0 var(--line)}.tile.is-selected{border-color:var(--sky);background:#5cc8ff24;box-shadow:0 4px #2f8fc2}.tile.is-matched{border-color:var(--mint);color:var(--mint);opacity:.35;animation:pop .35s ease;cursor:default}.tile.is-wrong{border-color:var(--rose);background:#ff5c7a24;animation:shake .4s ease}.match{display:grid;grid-template-columns:1fr 1fr;gap:14px}.match__col{display:grid;gap:10px}.build__answer{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:128px;padding:12px 4px;background-image:repeating-linear-gradient(transparent 0 58px,var(--line) 58px 60px)}.build__placeholder{color:var(--text-dim);opacity:.7;padding:12px 4px}.build__bank{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.build__slot{border-radius:14px;background:var(--night-3)}.tile--placed{animation:pop .25s ease}.tile.is-used{visibility:hidden}.type-input{width:100%;padding:16px 18px;border:2px solid var(--line);border-radius:var(--radius);background:var(--night-2);color:var(--text);font-family:var(--display);font-size:1.4rem;font-weight:600}.type-input:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px #5cc8ff33}.type-input.is-warning{border-color:var(--sun)}.type-input::placeholder{color:#5d6a93}.speak{display:inline-flex;align-items:end;gap:12px}.speak__btn{width:52px;height:52px;display:grid;place-items:center;border:0;border-radius:16px;background:var(--sky);box-shadow:0 5px #2f8fc2;font-size:1.4rem;cursor:pointer;transition:transform .08s ease,box-shadow .08s ease}.speak__btn:active{transform:translateY(5px);box-shadow:0 0 #2f8fc2}.speak__btn--big{width:112px;height:112px;border-radius:30px;font-size:3rem;box-shadow:0 8px #2f8fc2}.speak__btn--slow{width:64px;height:64px;background:var(--night-3);box-shadow:0 5px 0 var(--line);font-size:1.8rem}.speak__btn.is-playing{animation:pulse-ring .7s ease-out}.sheet{position:fixed;inset-inline:0;bottom:0;z-index:20;padding:18px 16px calc(22px + env(safe-area-inset-bottom,0px));animation:sheet-up .3s cubic-bezier(.2,.9,.3,1.1)}.sheet--right{background:#173d36;border-top:3px solid var(--mint)}.sheet--wrong{background:#40213a;border-top:3px solid var(--rose)}.sheet__inner{max-width:528px;margin:0 auto;display:grid;gap:14px}.sheet__text{display:flex;align-items:flex-start;gap:12px}.sheet__badge{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;font-size:1.4rem;font-weight:800;animation:pop .4s cubic-bezier(.2,1.6,.4,1)}.sheet--right .sheet__badge{background:var(--mint);color:#08321f}.sheet--wrong .sheet__badge{background:var(--rose);color:#fff}.sheet__title{margin:0;font-family:var(--display);font-size:1.5rem;font-weight:700}.sheet--right .sheet__title{color:var(--mint)}.sheet--wrong .sheet__title{color:var(--rose)}.sheet__detail,.sheet__hint{margin:0}.sheet__detail strong{font-family:var(--display);font-size:1.15rem}.sheet__hint{color:var(--text-dim);font-size:.9rem}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:16px;background:#080c1ab3;animation:fade .2s ease}.modal__card{width:min(100%,380px);display:grid;justify-items:center;gap:10px;padding:24px;border-radius:24px;background:var(--night-2);text-align:center;animation:pop .3s ease}.modal__card h2{margin:0;font-family:var(--display)}.modal__card p{margin:0;color:var(--text-dim)}.modal__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}.result{position:relative;min-height:100vh;display:grid;justify-items:center;align-content:center;gap:14px;padding-block:32px;text-align:center;overflow:hidden}.result>*{position:relative}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:50}.result__burst{position:absolute;top:6%;width:360px;height:360px;max-width:100%;border-radius:50%;background:repeating-conic-gradient(rgb(255 210 63 / .18) 0 10deg,transparent 10deg 20deg);mask:radial-gradient(circle,#000 25%,transparent 70%);animation:spin 18s linear infinite;pointer-events:none}.result .mascot{animation:boom-in .7s cubic-bezier(.2,1.6,.4,1) both}.result__eyebrow{margin:0;color:var(--text-dim);font-weight:700;letter-spacing:.04em}.result__title{margin:0;font-family:var(--display);font-size:clamp(1.9rem,7vw,2.5rem);line-height:1.1;color:var(--sun)}.result__copy{margin:0;color:var(--text-dim);max-width:32ch}.result__stars{display:flex;gap:10px;direction:ltr}.star{font-size:3rem;color:var(--night-3)}.star.is-on{color:var(--sun);text-shadow:0 4px 0 var(--sun-deep);animation:star-in .5s cubic-bezier(.2,1.6,.4,1) both}.result__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin:8px 0}.result__stat{display:grid;border-radius:16px;overflow:hidden;border:2px solid var(--stat)}.result__stat dt{padding:4px;background:var(--stat);color:var(--ink);font-weight:800;font-size:.85rem}.result__stat dd{margin:0;padding:12px 4px;font-family:var(--display);font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--stat)}.result__stat--xp{--stat: var(--sun)}.result__stat--acc{--stat: var(--mint)}.result__stat--combo{--stat: var(--boom)}.result__levelup{margin:0;padding:8px 18px;border-radius:99px;background:var(--sky);color:var(--ink);font-family:var(--display);font-weight:700;animation:pop .5s 1s cubic-bezier(.2,1.6,.4,1) both}.result__save{margin:0;color:var(--text-dim)}.result__save--error{color:var(--sun)}.mascot{overflow:visible;flex:none}.mascot__spark{transform-origin:76px 9px;animation:spark .5s ease-in-out infinite alternate}.mascot--happy .mascot__body,.mascot--cheer .mascot__body{transform-origin:50px 90px;animation:hop .6s ease}.mascot--sad .mascot__body{transform-origin:50px 90px;animation:droop .6s ease both}.mascot--think .mascot__eyes{animation:blink 4s infinite;transform-origin:50px 50px}.mfx-spin{animation:mfx-spin 12s linear infinite}.mfx-sweep{animation:mfx-sweep 2.6s ease-in-out infinite}.mfx-twinkle{animation:mfx-twinkle 1.6s ease-in-out infinite;transform-box:view-box}.mfx-hue .mascot__skin{animation:mfx-hue 4s linear infinite}.mfx-orbit{animation:mfx-dash 3s linear infinite}.mfx-planet{animation:mfx-spin 5s linear infinite}.mfx-flicker{animation:mfx-flicker .35s ease-in-out infinite alternate}.mfx-ember{animation:mfx-ember 1.8s ease-out infinite}.mfx-float{animation:mfx-float 3s ease-in-out infinite}.mfx-ghost .mascot__skin{opacity:.88}.mfx-wisp{animation:mfx-wisp 1.4s ease-in-out infinite alternate}.mfx-led{animation:mfx-led 1.2s steps(2) infinite}.mfx-blink{animation:mfx-led .9s steps(2) infinite}.mfx-flutter{animation:mfx-flutter .5s ease-in-out infinite alternate}.mfx-mane{animation:mfx-flutter 1.2s ease-in-out infinite alternate}.mfx-glow{animation:mfx-glow 2s ease-in-out infinite}.mfx-bob{animation:mfx-bob 1s ease-in-out infinite alternate}@keyframes mfx-spin{to{transform:rotate(360deg)}}@keyframes mfx-sweep{0%,30%{transform:translate(0) rotate(20deg)}80%,to{transform:translate(120px) rotate(20deg)}}@keyframes mfx-twinkle{0%,to{transform:scale(.3);opacity:.3}50%{transform:scale(1);opacity:1}}@keyframes mfx-hue{to{filter:hue-rotate(360deg)}}@keyframes mfx-dash{to{stroke-dashoffset:-36}}@keyframes mfx-flicker{0%{transform:scaleY(.92) skew(-3deg)}to{transform:scale(1.04,1.06) skew(3deg)}}@keyframes mfx-ember{0%{transform:translateY(0);opacity:1}to{transform:translateY(-26px);opacity:0}}@keyframes mfx-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5%)}}@keyframes mfx-wisp{0%{transform:skew(-6deg)}to{transform:skew(6deg)}}@keyframes mfx-led{50%{opacity:.25}}@keyframes mfx-flutter{0%{transform:rotate(-8deg)}to{transform:rotate(8deg)}}@keyframes mfx-glow{0%,to{filter:drop-shadow(0 0 2px rgba(143,233,255,.5))}50%{filter:drop-shadow(0 0 8px rgba(143,233,255,.95))}}@keyframes mfx-bob{0%{transform:rotate(-10deg)}to{transform:rotate(10deg)}}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}@keyframes wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-12deg) scale(1.1)}60%{transform:rotate(10deg) scale(1.1)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes hop{0%{transform:translateY(0) scale(1)}30%{transform:translateY(-14px) scale(.95,1.06)}60%{transform:translateY(0) scale(1.08,.92)}to{transform:translateY(0) scale(1)}}@keyframes droop{to{transform:translateY(3px) rotate(-6deg)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes spark{0%{transform:scale(.8) rotate(0);opacity:.8}to{transform:scale(1.2) rotate(25deg);opacity:1}}@keyframes flicker{0%,to{transform:scale(1) rotate(-3deg)}50%{transform:scale(1.12) rotate(4deg)}}@keyframes brand-pop{0%,86%,to{transform:scale(1) rotate(0)}90%{transform:scale(1.18) rotate(-4deg)}94%{transform:scale(.96) rotate(2deg)}}@keyframes node-pulse{0%{box-shadow:0 7px 0 var(--unit-deep),0 0 hsl(var(--hue) 85% 60% / .55)}to{box-shadow:0 7px 0 var(--unit-deep),0 0 0 22px hsl(var(--hue) 85% 60% / 0)}}@keyframes pulse-ring{0%{box-shadow:0 5px #2f8fc2,0 0 #5cc8ff99}to{box-shadow:0 5px #2f8fc2,0 0 0 24px #5cc8ff00}}@keyframes heart-break{0%{transform:scale(1.4);color:var(--rose)}50%{transform:scale(.7) rotate(-15deg)}to{transform:scale(1)}}@keyframes float-up{0%{opacity:0;transform:translateY(10px) scale(.8)}20%{opacity:1;transform:translateY(0) scale(1.15)}to{opacity:0;transform:translateY(-40px) scale(1)}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes toast{0%{opacity:0;transform:translateY(20px)}10%,85%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes dot{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-8px);opacity:1}}@keyframes star-in{0%{transform:scale(0) rotate(-90deg)}to{transform:scale(1) rotate(0)}}@keyframes boom-in{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.node.is-shaking{animation:shake .4s ease}@media (max-width: 400px){.topbar__brand{font-size:1.2rem}.level-bar{width:36px}.choices--cards .choice{min-height:116px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.auth{display:grid;gap:16px;padding-block:28px 48px}.auth__hero{display:grid;justify-items:center;gap:4px;text-align:center}.auth__hero .mascot{animation:bob 2.2s ease-in-out infinite}.auth__brand{display:flex;align-items:center;gap:10px;margin:0;font-family:var(--display);font-size:clamp(2.2rem,10vw,3rem);line-height:1}.auth__word span{color:var(--boom)}.auth__tagline{margin:0;color:var(--text-dim);font-weight:600}.auth__card{display:grid;gap:18px;padding:18px;border-radius:24px;background:var(--night-2);border:2px solid var(--line)}.auth__form{display:grid;gap:14px}.auth__done{justify-items:center;text-align:center}.auth__copy,.auth__fine{margin:0;color:var(--text-dim)}.auth__fine{font-size:.85rem;text-align:center}.tabs{display:flex;gap:6px;padding:5px;border-radius:16px;background:var(--night)}.tabs--home{margin-block:4px 16px;background:var(--night-2)}.tab{flex:1;min-height:44px;border:0;border-radius:12px;background:transparent;color:var(--text-dim);font-family:var(--display);font-weight:600;font-size:1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.tab.is-on{background:var(--night-3);color:var(--text);box-shadow:0 3px #10182d}.field{display:grid;gap:6px;margin:0;padding:0;border:0;min-width:0}.field--grow{flex:1}.field__label{font-weight:700;font-size:.95rem;padding:0}.field__input{width:100%;min-width:0;min-height:48px;padding:10px 14px;border:2px solid var(--line);border-radius:14px;background:var(--night);color:var(--text);font:inherit;font-size:1.05rem}.field__input:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px #5cc8ff2e}.field__input.is-invalid{border-color:var(--rose)}.field__error{margin:0;color:var(--rose);font-weight:600;font-size:.9rem}.field__hint{margin:0;min-height:1.2em;color:var(--text-dim);font-size:.85rem}.field__hint--free{color:var(--mint);font-weight:700}.field__hint--taken{color:var(--sun);font-weight:700}.link-btn{justify-self:center;border:0;background:none;color:var(--sky);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:6px}.grade-picker{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}.grade-chip{min-height:44px;border:2px solid var(--line);border-radius:12px;background:var(--night);font-family:var(--display);font-weight:700;font-size:1.15rem;cursor:pointer}.grade-chip--wide{grid-column:1 / -1;font-size:1rem}.grade-chip.is-on{border-color:var(--boom);background:var(--boom);color:#fff;animation:pop .3s ease}.skin-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.skin-chip{display:grid;place-items:center;padding:6px;border:2px solid var(--line);border-radius:16px;background:var(--night);cursor:pointer}.skin-chip.is-on{border-color:var(--sun);background:#ffd23f1f}.avatar-btn{display:grid;place-items:center;padding:0;border:2px solid var(--line);border-radius:50%;background:var(--night-2);cursor:pointer;width:46px;height:46px}.mascot__accessory{dominant-baseline:middle}.board{display:grid;gap:12px;padding-block:4px 48px}.board__head{display:flex;align-items:center;justify-content:space-between}.board__title{margin:0;font-family:var(--display);font-size:1.5rem}.board__note,.board__empty{margin:0;color:var(--text-dim);text-align:center}.board__empty{display:grid;justify-items:center;gap:10px;padding-block:24px}.board__list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.board__row{display:grid;grid-template-columns:36px 44px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:60px;padding:8px 12px;border-radius:16px;background:var(--night-2);border:2px solid transparent;animation:rise .35s ease both}.board__row--skeleton{background:linear-gradient(90deg,var(--night-2),var(--night-3),var(--night-2));background-size:200% 100%;animation:shimmer 1.2s linear infinite}.board__row.is-me{border-color:var(--sun);background:#ffd23f1a}.board__rank{font-family:var(--display);font-weight:700;font-size:1.25rem;text-align:center;font-variant-numeric:tabular-nums}.board__name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board__you{margin-inline-start:6px;padding:1px 8px;border-radius:99px;background:var(--sun);color:var(--ink);font-size:.75rem}.board__xp{font-family:var(--display);font-weight:700;color:var(--sun);font-variant-numeric:tabular-nums;direction:ltr}@keyframes shimmer{to{background-position:-200% 0}}.admin{display:grid;gap:14px;padding-block:12px 64px}.admin__bar{display:flex;align-items:center;gap:10px}.admin__bar .btn{margin-inline-start:auto}.admin__section{display:grid;gap:14px}.btn--small{padding:8px 14px;font-size:.95rem;border-radius:12px;--press: 3px}.pill{display:inline-block;width:fit-content;padding:2px 10px;border-radius:99px;background:var(--night-3);color:var(--text-dim);font-size:.8rem;font-weight:700}.pill--live{background:#3ddc972e;color:var(--mint)}.pill--admin{background:var(--boom);color:#fff}.badge{min-width:22px;height:22px;display:inline-grid;place-items:center;border-radius:99px;background:var(--rose);color:#fff;font-size:.8rem;animation:pop .4s ease}.dict-list,.reset-list,.word-rows{list-style:none;margin:0;padding:0;display:grid;gap:10px}.dict-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;padding:14px;border-radius:18px;background:var(--night-2);border:2px solid var(--line)}.dict-row.is-live{border-color:#3ddc9780}.dict-row__emoji{font-size:2rem;line-height:1}.dict-row__body{display:grid;gap:4px;min-width:0}.dict-row__words{color:var(--text-dim);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.dict-row__actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.dict-row__actions .icon-btn{width:38px;height:38px}.icon-btn:disabled{opacity:.35;cursor:default}.reset-card{display:grid;gap:10px;padding:14px;border-radius:16px;background:var(--night);border:2px solid var(--line);text-align:start}.reset-card p{margin:0}.reset-card--done{border-color:var(--mint);justify-items:center;text-align:center}.reset-card__password,.modal__card .reset-card__password{font-family:var(--display);font-size:2.4rem;font-weight:700;letter-spacing:.15em;color:var(--sun)}.reset-card__actions{display:flex;flex-wrap:wrap;gap:8px}.modal__card--wide{width:min(100%,460px);max-height:90vh;overflow-y:auto}.modal__card .reset-list{width:100%}.editor{display:grid;gap:16px;padding:16px;border-radius:22px;background:var(--night-2);border:2px solid var(--line)}.editor__head,.editor__section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.editor h2,.editor h3{margin:0;font-family:var(--display)}.editor__row{display:flex;gap:10px}.editor__section{display:grid;gap:10px;padding-top:12px;border-top:2px dashed var(--line)}.editor__actions{display:flex;flex-wrap:wrap;gap:10px}.editor__actions .btn{flex:1 1 200px}.emoji-picker{display:flex;flex-wrap:wrap;gap:6px}.emoji-chip{width:44px;height:44px;border:2px solid var(--line);border-radius:12px;background:var(--night);font-size:1.4rem;cursor:pointer}.emoji-chip.is-on{border-color:var(--sun);background:#ffd23f1f}.paste{display:grid;gap:8px}.paste__area{min-height:140px;resize:vertical;line-height:1.5}.word-row{display:grid;grid-template-columns:22px 52px minmax(0,1fr) minmax(0,1fr) 40px;align-items:center;gap:6px}.word-row__n{color:var(--text-dim);font-size:.8rem;text-align:center}.word-row__emoji{text-align:center;padding-inline:4px}.word-row__error{grid-column:3 / -1}.sentence-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px;gap:6px;align-items:center}@media (max-width: 420px){.grade-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.word-row{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 36px}.word-row__n{display:none}.word-row__error{grid-column:1 / -1}.sentence-row{grid-template-columns:minmax(0,1fr) 36px}.sentence-row>.field__input:first-child{grid-column:1 / -1}.topbar__stats{gap:6px}}.logo{flex:none;overflow:visible}.logo__spark{transform-box:fill-box;transform-origin:center;animation:twinkle 1.4s ease-in-out infinite}.logo__bubble{transform-box:fill-box;transform-origin:30% 90%}.topbar__brand:hover .logo__bubble,.auth__brand .logo__bubble{animation:wobble 2.8s ease-in-out infinite}.boot-logo{display:block;animation:boot-in .7s cubic-bezier(.2,1.6,.4,1) both,bob 1.4s .7s ease-in-out infinite}.boot-logo .logo{filter:drop-shadow(0 10px 24px rgb(255 122 47 / .35))}.install{display:flex;align-items:center;gap:12px;margin-block:4px 12px;padding:12px 14px;border:2px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg,#ff7a2f29,#5cc8ff1a),var(--night-2);animation:rise .45s .3s cubic-bezier(.2,.9,.3,1.2) both}.install .logo{animation:wiggle .6s .9s ease both}.install__text{flex:1;min-width:0}.install__text h2{margin:0;font-family:var(--display);font-size:1.05rem}.install__text p{margin:2px 0 0;font-size:.9rem;color:var(--text-dim)}.install__actions{display:flex;align-items:center;gap:4px}.tab-panel{animation:rise .35s cubic-bezier(.2,.9,.3,1) both}.unit__banner{animation:slide-in .45s cubic-bezier(.2,.9,.3,1) both}.node{animation:node-in .5s var(--delay, 0ms) cubic-bezier(.2,1.6,.4,1) backwards}.node.node--current{animation:node-in .5s var(--delay, 0ms) cubic-bezier(.2,1.6,.4,1) backwards,node-pulse 1.8s calc(var(--delay, 0ms) + .5s) ease-out infinite}.node-callout{animation:bob 1.6s ease-in-out infinite,fade .4s .5s ease backwards}.level-bar span{background-image:linear-gradient(110deg,transparent 30%,rgb(255 255 255 / .55) 50%,transparent 70%);background-size:250% 100%;animation:shine 2.8s ease-in-out infinite}.lesson__card{border-radius:var(--radius);transition:box-shadow .3s ease}.lesson__card.is-glowing{animation:glow .9s ease-out}.progress__fill{background-image:linear-gradient(110deg,transparent 35%,rgb(255 255 255 / .45) 50%,transparent 65%),linear-gradient(90deg,var(--mint),#7cf0bf);background-size:250% 100%,100% 100%;animation:shine 2.4s ease-in-out infinite}.lesson__footer .btn--primary:not(:disabled){animation:ready .35s cubic-bezier(.2,1.6,.4,1)}.burst{position:absolute;top:32px;inset-inline-start:32px;width:0;height:0;pointer-events:none;z-index:3}.burst span{position:absolute;width:9px;height:9px;margin:-4.5px;border-radius:3px;background:var(--color);animation:burst .75s cubic-bezier(.1,.8,.3,1) forwards}.burst span:nth-child(odd){border-radius:50%}.burst--big span{width:12px;height:12px;animation-duration:1s}.choices--row{grid-template-columns:1fr 1fr}.choices--row .choice{justify-content:center;min-height:72px;font-size:1.3rem}.tf{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;padding:22px 16px;border:2px solid var(--line);border-radius:var(--radius);background:var(--night-2);animation:flip-in .5s cubic-bezier(.2,.9,.3,1.2) both;transform-origin:center top}.tf__side{display:flex;align-items:center;gap:8px}.tf__word{font-family:var(--display);font-size:clamp(1.8rem,7vw,2.3rem);font-weight:600;color:var(--sky)}.tf__word--he{color:var(--text)}.tf__eq{font-family:var(--display);font-size:1.8rem;color:var(--text-dim)}.tf__reveal{position:absolute;top:-22px;inset-inline-end:-6px;font-size:2.6rem;animation:pop .45s cubic-bezier(.2,1.6,.4,1) both}.blank__he{margin:0;color:var(--text-dim);font-weight:600}.blank__sentence{font-size:clamp(1.6rem,6vw,2rem);line-height:1.6;padding:14px 18px;border-radius:var(--radius);background:var(--night-2);border:2px solid var(--line);color:var(--sky)}.blank__slot{display:inline-block;min-width:3.2em;padding:0 8px;border-bottom:4px dashed var(--line);border-radius:8px;color:var(--text);text-align:center;line-height:1.25}.blank__slot.is-filled{border-bottom-style:solid;border-color:var(--sky);background:#5cc8ff24;animation:drop-in .35s cubic-bezier(.2,1.6,.4,1)}.blank__slot.is-right{border-color:var(--mint);background:#3ddc972e;color:var(--mint);animation:pop .4s ease}.blank__slot.is-wrong{border-color:var(--rose);background:#ff5c7a29;color:var(--rose);animation:shake .4s ease}.spell__slots{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;min-height:60px}.spell__bank{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.letter{width:48px;height:54px;display:grid;place-items:center;padding:0;border:2px solid var(--line);border-radius:12px;background:var(--night-2);box-shadow:0 4px 0 var(--line);font-family:var(--display);font-size:1.6rem;font-weight:600;cursor:pointer;animation:rise .35s cubic-bezier(.2,.9,.3,1.2) both;transition:transform .08s ease,box-shadow .08s ease}.letter:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 0 var(--line)}.letter.is-used{visibility:hidden}.letter--empty{border-style:dashed;background:transparent;box-shadow:none;cursor:default;animation:none}.letter--placed{border-color:var(--sky);background:#5cc8ff24;box-shadow:0 4px #2f8fc2;animation:drop-in .3s cubic-bezier(.2,1.6,.4,1)}.spell__slots.is-solved .letter--placed{border-color:var(--mint);color:var(--mint);background:#3ddc9729;box-shadow:0 4px 0 var(--mint-deep);animation:wave .5s ease both}@media (max-width: 400px){.letter{width:40px;height:48px;font-size:1.35rem}}.say__card{display:grid;justify-items:center;gap:8px;padding:18px 16px;border:2px solid var(--line);border-radius:var(--radius);background:var(--night-2);text-align:center}.say__emoji{font-size:2.8rem;line-height:1;animation:bob 2s ease-in-out infinite}.say__text-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}.say__text--sentence{font-size:clamp(1.5rem,6vw,1.9rem)}.say__mic-wrap{display:grid;justify-items:center;gap:8px}.mic{position:relative;width:96px;height:96px;border:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffb36b,var(--boom) 55%,var(--boom-deep));box-shadow:0 6px #9c3d0e;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,filter .2s ease}.mic:active:not(:disabled){transform:translateY(6px);box-shadow:0 0 #9c3d0e}.mic:disabled{filter:grayscale(.7) brightness(.8);cursor:default}.mic__icon{position:relative;font-size:2.6rem;line-height:1}.mic__ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid var(--boom);opacity:0}.mic.is-listening{background:radial-gradient(circle at 35% 30%,#ff8fa3,var(--rose) 55%,var(--rose-deep));box-shadow:0 6px #8a1f37}.mic.is-listening .mic__icon{animation:throb .9s ease-in-out infinite}.mic.is-listening .mic__ring{border-color:var(--rose);animation:ripple 1.4s ease-out infinite}.mic.is-listening .mic__ring--late{animation-delay:.7s}.mic.is-heard{animation:pop .4s ease}.say__status{margin:0;min-height:1.5em;font-weight:700;color:var(--text-dim);text-align:center}.say__status--listening{color:var(--rose)}.say__status--heard{color:var(--sky);font-family:var(--display);font-size:1.2rem;animation:pop .35s ease}.say__retry{margin:0;font-size:.85rem;color:var(--text-dim)}.say__skip{justify-self:center;border:0;background:none;color:var(--text-dim);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.say--typing{display:grid;gap:12px}.say__fallback{margin:0;padding:10px 14px;border-radius:14px;background:#ffd23f1f;color:var(--sun);font-weight:600;animation:fade .3s ease}@keyframes twinkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.75) rotate(45deg);opacity:.8}}@keyframes wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-5deg) scale(1.03)}40%{transform:rotate(4deg)}60%{transform:rotate(-2deg)}}@keyframes boot-in{0%{transform:scale(.3) rotate(-30deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes node-in{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@keyframes shine{0%{background-position:120% 0,0 0}60%,to{background-position:-120% 0,0 0}}@keyframes glow{0%{box-shadow:0 0 #3ddc978c}to{box-shadow:0 0 0 18px #3ddc9700}}@keyframes ready{0%{transform:scale(.94)}60%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes burst{0%{transform:rotate(var(--angle)) translate(0) scale(1.2);opacity:1}to{transform:rotate(var(--angle)) translate(var(--dist)) scale(.3);opacity:0}}@keyframes flip-in{0%{transform:perspective(600px) rotateX(-70deg);opacity:0}to{transform:perspective(600px) rotateX(0);opacity:1}}@keyframes drop-in{0%{transform:translateY(-14px) scale(.7)}to{transform:translateY(0) scale(1)}}@keyframes wave{0%,to{transform:translateY(0)}40%{transform:translateY(-12px) scale(1.08)}}@keyframes ripple{0%{transform:scale(1);opacity:.8}to{transform:scale(1.7);opacity:0}}@keyframes throb{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.teach__header{flex:1;margin:0;font-family:var(--display);font-weight:700;color:var(--text-dim)}.teach{display:grid;gap:14px}.teach__coach{display:flex;align-items:center;gap:10px}.teach__bubble{padding:8px 14px;border-radius:16px;background:var(--night-2);border:1.5px solid var(--line);font-weight:700}.teach__card{display:grid;justify-items:center;gap:10px;padding:22px 16px;border-radius:24px;background:var(--night-2);border:2px solid hsl(var(--hue) 85% 60% / .55);box-shadow:0 6px #00000040;text-align:center;animation:slide-in .35s cubic-bezier(.2,.9,.3,1)}.teach__title{margin:0;font-family:var(--display);font-size:1.5rem;font-weight:700}.teach__title span{color:var(--sun)}.teach__letter{display:flex;align-items:baseline;gap:18px;font-family:var(--display);font-size:clamp(5rem,28vw,8rem);font-weight:700;line-height:1;color:hsl(var(--hue) 90% 65%);text-shadow:0 6px 0 rgb(0 0 0 / .3);animation:pop .5s cubic-bezier(.2,1.6,.4,1)}.teach__lower{font-size:.6em;color:var(--text)}.teach__word{font-family:var(--display);font-size:clamp(2.6rem,12vw,3.6rem);font-weight:700;color:var(--sky);line-height:1.1}.teach__name{margin:0;font-size:1.2rem;color:var(--text-dim)}.teach__name strong{color:var(--text);font-size:1.35rem}.teach__example{display:flex;align-items:center;gap:10px;margin:0;font-family:var(--display);font-size:1.8rem}.teach__emoji{font-size:2.4rem}.teach__emoji--big{font-size:5rem;line-height:1;animation:pop .5s cubic-bezier(.2,1.6,.4,1)}.teach__mark{background:none;color:var(--sun);text-decoration:underline 3px;text-underline-offset:4px}.teach__dots{display:flex;justify-content:center;flex-wrap:wrap;gap:6px}.teach__dot{width:10px;height:10px;border-radius:50%;background:var(--night-3)}.teach__dot.is-done{background:var(--mint)}.teach__dot.is-on{background:var(--sun);transform:scale(1.3)}.lesson__footer.teach__footer{display:flex;justify-content:center;gap:10px}.lesson__footer.teach__footer>*{margin:0}.lesson__footer.teach__footer>.btn--wide{flex:1;max-width:420px}.teach__skip{justify-self:center;border:0;background:none;color:var(--text-dim);font:inherit;text-decoration:underline;cursor:pointer}.teach__sentence-he{margin:0;font-family:var(--display);font-size:1.7rem;font-weight:700}.teach__tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:4px 0;padding:0;list-style:none}.coin{display:inline-block;width:1.1em;height:1.1em;border-radius:50%;vertical-align:-.15em;background:radial-gradient(circle at 35% 30%,#fff6b8 0,#fff6b8 18%,#ffd23f 40%,#e09a00);box-shadow:inset 0 0 0 2px #c98500,0 1px #0000004d;animation:coin-flip 3.2s ease-in-out infinite}.coin--small{width:.95em;height:.95em}@keyframes coin-flip{0%,80%,to{transform:scaleX(1)}90%{transform:scaleX(.15)}}.coins{display:inline-flex;align-items:center;gap:5px;font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums;color:var(--sun)}.stat--coins{border:0;padding:4px 8px;border-radius:99px;background:#ffd23f1f;cursor:pointer;color:inherit}.stat--coins:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.result__coins{display:flex;align-items:center;gap:8px;margin:0;padding:8px 16px;border-radius:99px;background:#ffd23f26;color:var(--sun);font-family:var(--display);font-weight:700;animation:pop .5s .6s cubic-bezier(.2,1.6,.4,1) both}.banner--ok{background:#3ddc9724;border-color:#3ddc9773}.shop__hero{display:flex;align-items:center;gap:16px;margin-block-end:14px;padding:16px;border-radius:22px;background:linear-gradient(135deg,#ff7a2f2e,#b28dff2e);border:1px solid var(--line)}.shop__title{margin:0 0 4px;font-family:var(--display);font-size:1.4rem}.shop__balance{margin:0;font-size:1.1rem}.shop__hint{margin:6px 0 0;color:var(--text-dim);font-size:.9rem}.shop__section{margin:18px 0 10px;font-family:var(--display);font-size:1.1rem}.shop__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;margin:0;padding:0;list-style:none}.teach__tile{padding:8px 14px;border-radius:12px;background:var(--night-3);border:2px solid var(--line);box-shadow:0 3px #0000004d;font-family:var(--display);font-size:1.4rem;font-weight:700;color:var(--sky);animation:pop .45s cubic-bezier(.2,1.6,.4,1) both}.pace-tag{padding:3px 10px;border-radius:99px;font-weight:700;font-size:.85rem;animation:pop .45s cubic-bezier(.2,1.6,.4,1)}.pace-tag--short{border:1.5px solid var(--mint);color:var(--mint)}.pace-tag--extra{border:1.5px solid var(--sun);color:var(--sun)}.result__levelup--sound{color:var(--sun)}.shop-card{display:grid;justify-items:center;align-content:start;gap:6px;padding:12px 8px;border-radius:18px;background:var(--night-2);border:2px solid var(--line);box-shadow:0 4px #10182d;text-align:center}.shop-card--fancy{background:linear-gradient(180deg,var(--night-3),var(--night-2))}.shop-card.is-on{border-color:var(--mint);box-shadow:0 0 0 3px #3ddc9740,0 4px #10182d}.shop-card__art{display:grid;place-items:center;width:92px;height:92px}.shop-card__name{margin:0;font-family:var(--display);font-weight:700}.shop-card__tag{padding:6px 12px;border-radius:99px;background:#3ddc972e;color:var(--mint);font-weight:700;font-size:.9rem}.shop-card__buy{display:inline-flex;align-items:center;gap:6px}.shop-card__missing{color:var(--text-dim);font-size:.8rem}.letters-intro{display:flex;align-items:center;gap:14px;margin-block-end:8px;padding:14px 16px;border-radius:18px;background:var(--night-2);border:1px solid var(--line)}.letters-intro p{margin:0;color:var(--text-dim);font-size:.95rem}.letters-intro__abc{flex:none;font-family:var(--display);font-weight:700;font-size:1.5rem;background:linear-gradient(90deg,var(--boom),var(--sun),var(--mint),var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent}.ex__prompt--letter{font-size:clamp(3.5rem,18vw,5.5rem);line-height:1}.ex__hint{margin:0;text-align:center;font-size:1.6rem;font-family:var(--display)}@media (max-width: 420px){.tabs--home .tab{display:grid;justify-items:center;gap:0;font-size:.82rem;padding:4px 2px}.tab__icon{font-size:1.15rem}.stat--goal .stat__value--small{display:none}}.self__ask{display:grid;justify-items:center;gap:6px;padding-block:12px 18px;text-align:center}.self__ask h2{margin:0;font-family:var(--display);font-size:1.6rem}.self__ask p{margin:0;color:var(--text-dim)}.self__cards{display:grid;gap:12px}.self__card{display:grid;justify-items:center;gap:6px;padding:20px 16px;border:2px solid var(--line);border-radius:20px;background:var(--night-2);font-size:1.2rem;cursor:pointer;transition:transform .12s ease,border-color .12s ease}.self__card:hover,.self__card:focus-visible{border-color:var(--boom);transform:translateY(-2px)}.self__icon{font-size:2.6rem;line-height:1}.self__blurb{color:var(--text-dim);font-size:.95rem}.self__switch{display:flex;gap:8px;margin-block-end:12px}.self__pill{flex:1;display:grid;justify-items:center;gap:2px;min-height:44px;padding:8px 6px;border:2px solid var(--line);border-radius:14px;background:var(--night-2);color:var(--text-dim);font-weight:700;font-size:.95rem;cursor:pointer}.self__pill.is-on{border-color:var(--boom);color:inherit}.self__count{font-size:.8rem;font-weight:600;opacity:.8}.teach__example-he{font-family:var(--body);font-size:1.1rem;color:var(--text-dim)}.progress--fire .progress__fill{background-image:linear-gradient(110deg,transparent 35%,rgb(255 255 255 / .5) 50%,transparent 65%),linear-gradient(90deg,var(--boom),var(--sun));box-shadow:inset 0 -4px #0000001f,inset 0 3px #ffffff59,0 0 14px #ff7a2fb3;animation:shine 1.2s ease-in-out infinite}.progress{transition:box-shadow .3s ease}.progress--fire{box-shadow:0 0 0 2px #ff7a2f73}.hearts--low .heart:not(.is-lost){animation:throb .9s ease-in-out infinite}.milestone-tag{padding:3px 10px;border-radius:99px;background:#ffd23f26;border:1.5px solid var(--sun);color:var(--sun);font-weight:700;font-size:.85rem;animation:pop .45s cubic-bezier(.2,1.6,.4,1)}.lesson__actions{display:flex;gap:10px}.lesson__footer>.lesson__actions{display:flex}.lesson__actions .btn--wide{flex:1}.btn--hint{flex:none;min-width:96px;border-color:var(--sun);color:var(--sun)}.hint-reveal{margin:14px 0 0;padding:10px 14px;border-radius:14px;border:2px dashed var(--sun);background:#ffd23f14;color:var(--sun);font-family:var(--display);font-size:1.35rem;letter-spacing:.08em;text-align:center;white-space:pre;overflow-x:auto;animation:drop-in .35s cubic-bezier(.2,1.6,.4,1) both}.sheet__body{flex:1;min-width:0}.sheet__listen{flex:none;align-self:center;animation:pop .4s .15s cubic-bezier(.2,1.6,.4,1) both}.choice.is-wrong{animation:shake .4s ease}.choice.is-right:after{content:"✓";position:absolute;top:-10px;inset-inline-start:-10px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--mint);color:#08321f;font-weight:800;font-size:.95rem;box-shadow:0 3px 0 var(--mint-deep);animation:pop .4s .1s cubic-bezier(.2,1.6,.4,1) both}.result__level{display:flex;align-items:center;gap:10px;width:100%;max-width:380px;animation:rise .4s .7s ease-out both}.result__level-bar{flex:1;height:14px;border-radius:99px;background:var(--night-3);overflow:hidden}.result__level-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sun),var(--boom));transform-origin:left center;animation:level-fill 1.2s .9s cubic-bezier(.2,.9,.3,1) both}.result__level-text{flex:none;color:var(--text-dim);font-size:.85rem;font-weight:700}@keyframes level-fill{0%{width:calc(var(--from) * 100%)}to{width:max(4%,calc(var(--to) * 100%))}}.result__perfect{margin:0;padding:8px 18px;border-radius:99px;background:linear-gradient(135deg,var(--mint),var(--sky));color:var(--ink);font-family:var(--display);font-weight:700;animation:pop .5s 1.1s cubic-bezier(.2,1.6,.4,1) both}.result__review{width:100%;padding:14px;border-radius:var(--radius);border:2px solid var(--line);background:var(--night-2);text-align:start;animation:rise .4s 1s ease-out both}.result__review h2{margin:0 0 8px;font-family:var(--display);font-size:1.15rem;color:var(--sun)}.result__review ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.result__review li{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:12px;background:var(--night-3);animation:slide-in .35s ease-out both}.result__review-emoji{font-size:1.6rem;line-height:1}.result__review-en{font-family:var(--display);font-weight:700;font-size:1.15rem}.result__review-he{flex:1;color:var(--text-dim)}.result__review-hint{margin:10px 0 0;color:var(--text-dim);font-size:.85rem}.sheet__listen .speak,.result__review .speak{align-items:center;gap:8px}.sheet__listen .speak__btn,.result__review .speak__btn{width:42px;height:42px;border-radius:13px;font-size:1.15rem;box-shadow:0 4px #2f8fc2}.sheet__listen .speak__btn--slow{background:var(--night-3);box-shadow:0 4px 0 var(--line)}.field__input--code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.2em;text-align:center;font-weight:700}.field__input--code::placeholder{color:var(--line)}.join-class{display:grid;gap:8px;width:100%;padding-top:12px;border-top:2px solid var(--line);text-align:start}.auth__staff{margin:14px auto 0;display:block}.app--wide{max-width:1080px}.mascot--rare{filter:drop-shadow(0 0 3px rgb(92 200 255 / .55))}.mascot--epic{filter:drop-shadow(0 0 4px rgb(178 141 255 / .7))}.mascot--legendary{filter:drop-shadow(0 0 6px rgb(255 170 60 / .8))}.mascot--golden{filter:drop-shadow(0 0 6px rgb(255 214 64 / .95)) drop-shadow(0 0 14px rgb(255 190 0 / .45))}.mascot--rare .mascot__body,.mascot--epic .mascot__body,.mascot--legendary .mascot__body,.mascot--golden .mascot__body{transform-origin:50px 90px;animation:skin-bob 2.4s ease-in-out infinite}.mascot--happy.mascot--rare .mascot__body,.mascot--happy.mascot--epic .mascot__body,.mascot--happy.mascot--legendary .mascot__body,.mascot--happy.mascot--golden .mascot__body,.mascot--cheer.mascot--rare .mascot__body,.mascot--cheer.mascot--epic .mascot__body,.mascot--cheer.mascot--legendary .mascot__body,.mascot--cheer.mascot--golden .mascot__body{animation:hop .6s ease,skin-bob 2.4s ease-in-out .6s infinite}.fx-sparkle{transform-box:fill-box;transform-origin:center;animation:fx-twinkle 1.8s ease-in-out infinite}.fx-flame{transform-box:fill-box;transform-origin:50% 100%;animation:fx-flicker .7s ease-in-out infinite alternate;opacity:.9}.fx-rainbow{animation:fx-hue 4s linear infinite}.mascot--rare .fx-rainbow,.mascot--epic .fx-rainbow,.mascot--legendary .fx-rainbow{animation:fx-hue 4s linear infinite,skin-bob 2.4s ease-in-out infinite}.fx-ghost{animation:fx-ghost 3s ease-in-out infinite}.fx-shimmer{animation:fx-shimmer 2.6s ease-in-out infinite}.fx-orbit{transform-origin:50px 56px;animation:spin 3.2s linear infinite}.fx-bubble{transform-box:fill-box;transform-origin:center;animation:fx-bubble 2.2s ease-in infinite;opacity:0}.fx-led{animation:fx-led 1.2s steps(2,jump-none) infinite}.fx-aura{transform-origin:50px 56px;animation:fx-aura 2.2s ease-in-out infinite;opacity:.45}.fx-ear{transform-box:fill-box;transform-origin:50% 100%;animation:fx-ear 2.8s ease-in-out infinite}.fx-ear--right{animation-delay:.35s}.fx-wing{transform-box:fill-box;animation:fx-flap .9s ease-in-out infinite alternate}.fx-wing--left{transform-origin:100% 40%}.fx-wing--right{transform-origin:0% 40%}.fx-cape{transform-box:fill-box;transform-origin:50% 0%;animation:fx-cape 1.6s ease-in-out infinite alternate}.fx-bolt{animation:fx-bolt 1.4s steps(1,end) infinite}.fx-bolt--late{animation-delay:.7s}.fx-bounce{animation:fx-bounce .9s cubic-bezier(.3,0,.7,1) infinite alternate}@keyframes fx-ear{0%,80%,to{transform:rotate(0)}88%{transform:rotate(-10deg)}94%{transform:rotate(6deg)}}@keyframes fx-flap{0%{transform:scaleX(1) rotate(0)}to{transform:scaleX(.75) rotate(-6deg)}}@keyframes fx-cape{0%{transform:skew(-4deg) scaleY(1)}to{transform:skew(5deg) scaleY(1.04)}}@keyframes fx-bolt{0%,40%{opacity:1}50%,to{opacity:0}}@keyframes fx-bounce{0%{transform:translateY(0)}to{transform:translateY(-14px)}}@keyframes skin-bob{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-3px) rotate(3deg)}}@keyframes fx-twinkle{0%,to{transform:scale(.2) rotate(0);opacity:0}50%{transform:scale(1) rotate(45deg);opacity:1}}@keyframes fx-flicker{0%{transform:scale(.85,.8)}to{transform:scale(1.1,1.2)}}@keyframes fx-hue{to{filter:hue-rotate(360deg)}}@keyframes fx-ghost{0%,to{transform:translateY(0);opacity:.9}50%{transform:translateY(-6%);opacity:.55}}@keyframes fx-shimmer{0%,55%{transform:rotate(20deg) translate(0)}to{transform:rotate(20deg) translate(150px)}}@keyframes fx-bubble{0%{transform:translateY(0) scale(.6);opacity:0}20%{opacity:1}to{transform:translateY(-70px) scale(1.1);opacity:0}}@keyframes fx-led{50%{fill:#ffe0e6}}@keyframes fx-aura{0%,to{transform:scale(.92);opacity:.35}50%{transform:scale(1.08);opacity:.6}}.rarity-tag{justify-self:start;margin:0;padding:2px 10px;border-radius:99px;font-family:var(--display);font-weight:700;font-size:.82rem;color:var(--ink);background:#c9d2ee}.rarity-tag span{font-weight:500;opacity:.8}.rarity-tag--rare{background:var(--sky)}.rarity-tag--epic{background:#b28dff}.rarity-tag--legendary{background:linear-gradient(90deg,#ffb347,#ff5c7a)}.rarity-tag--golden{background:linear-gradient(90deg,#fff0a0,#ffc400,#fff0a0);background-size:200% 100%;animation:gold-slide 2.5s linear infinite}@keyframes gold-slide{to{background-position:200% 0}}.gift{--gift: 96px;position:relative;display:inline-block;width:var(--gift);height:var(--gift);perspective:400px}.gift__body,.gift__lid{position:absolute;left:10%;right:10%;border-radius:calc(var(--gift) * .08);background:linear-gradient(90deg,transparent 42%,#ffd23f 42% 58%,transparent 58%),linear-gradient(160deg,#ff7aa8,#e0306a 70%,#b0194f);box-shadow:inset 0 -6px #0000002e,inset 0 3px #ffffff40,0 8px 14px #00000059}.gift__body{top:40%;bottom:4%;transform:rotateX(8deg)}.gift__lid{top:26%;height:18%;left:4%;right:4%;background:linear-gradient(90deg,transparent 42%,#ffd23f 42% 58%,transparent 58%),linear-gradient(170deg,#ff9fc4,#ff4f8b);transform-origin:20% 100%;z-index:1}.gift__lid:before,.gift__lid:after{content:"";position:absolute;bottom:90%;width:30%;height:110%;border:calc(var(--gift) * .05) solid #ffd23f;border-radius:50% 50% 10%}.gift__lid:before{right:50%;transform:rotate(-20deg)}.gift__lid:after{left:50%;transform:scaleX(-1) rotate(-20deg)}.gift__rays{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgb(255 230 120 / .55) 0 10deg,transparent 10deg 30deg);mask:radial-gradient(circle,#000 20%,transparent 65%);opacity:0}.gift--shake{animation:gift-shake 1.6s ease-in-out infinite}.gift--open .gift__lid{animation:lid-off .9s cubic-bezier(.3,1.4,.6,1) forwards}.gift--open .gift__body{animation:gift-squash .9s ease forwards}.gift--open .gift__rays{animation:rays 1.1s ease-out forwards}@keyframes gift-shake{0%,60%,to{transform:rotate(0) translateY(0)}65%{transform:rotate(-9deg) translateY(-4px)}72%{transform:rotate(8deg) translateY(-6px)}79%{transform:rotate(-6deg) translateY(-3px)}86%{transform:rotate(4deg)}}@keyframes lid-off{0%{transform:none}30%{transform:translateY(-6px) rotate(-6deg)}to{transform:translate(-30%,-160%) rotate(-50deg);opacity:0}}@keyframes gift-squash{0%,20%{transform:rotateX(8deg) scale(1)}40%{transform:rotateX(8deg) scale(1.08,.9)}to{transform:rotateX(8deg) scale(1)}}@keyframes rays{0%{opacity:0;transform:scale(.4) rotate(0)}50%{opacity:1}to{opacity:1;transform:scale(1.3) rotate(60deg)}}.box-open{position:relative;overflow:hidden}.box-open__tap{display:grid;place-items:center;padding:18px;border:0;background:transparent;cursor:pointer}.prize{position:relative;display:grid;place-items:center;width:170px;height:170px;animation:pop .45s cubic-bezier(.3,1.6,.5,1)}.prize__rays{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,var(--ray, rgb(255 255 255 / .25)) 0 12deg,transparent 12deg 30deg);mask:radial-gradient(circle,#000 25%,transparent 70%);animation:spin 9s linear infinite}.prize>:not(.prize__rays){position:relative}.prize--rare{--ray: rgb(92 200 255 / .5)}.prize--epic{--ray: rgb(178 141 255 / .55)}.prize--legendary{--ray: rgb(255 150 60 / .65)}.prize--golden{--ray: rgb(255 214 64 / .75)}.prize__xp{font-size:80px}.collection{display:grid;gap:14px;padding-bottom:24px}.collection__head{display:flex;align-items:baseline;justify-content:space-between;margin-top:6px}.collection__head h3{margin:0;font-family:var(--display);font-size:1.2rem}.collection__count{color:var(--text-dim);font-size:.9rem}.box-shelf{display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--radius);background:linear-gradient(135deg,#ff7aa838,#b28dff2e),var(--night-2);border:2px solid rgb(255 122 168 / .35)}.box-shelf__box{position:relative;flex:none;padding:0;border:0;background:transparent;cursor:pointer}.box-shelf__box:disabled{cursor:default;filter:grayscale(.6) opacity(.7)}.box-shelf__count{position:absolute;top:2px;inset-inline-end:0;min-width:28px;height:28px;display:grid;place-items:center;border-radius:99px;background:var(--sun);color:var(--ink);font-family:var(--display);font-weight:700;box-shadow:0 2px 0 var(--sun-deep);animation:node-pulse 1.4s ease-in-out infinite}.box-shelf__text{display:grid;gap:8px;justify-items:start}.box-shelf__text h3{margin:0;font-family:var(--display)}.box-shelf__text p{margin:0;color:var(--text-dim);font-size:.92rem}.golden-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius);border:2px solid #ffd23f;background:linear-gradient(110deg,transparent 30%,rgb(255 255 255 / .18) 45%,transparent 60%) 0 0 / 250% 100%,linear-gradient(135deg,#ffd6404d,#c9920040),var(--night-2);animation:gold-slide 3s linear infinite}.golden-card h3{margin:0;font-family:var(--display);color:#ffe680}.golden-card p{margin:2px 0 0;color:var(--text);font-size:.9rem}.golden-card--locked{border-style:dashed;border-color:#ffd64073;background:var(--night-2);animation:none}.golden-card--locked h3{color:var(--text)}.golden-card--locked p{color:var(--text-dim)}.golden-card--locked .mascot{filter:grayscale(.4) brightness(.8)}.skin-group{display:grid;gap:8px}.skin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.skin-card{display:grid;justify-items:center;gap:2px;padding:8px 4px 6px;border:2px solid var(--line);border-radius:16px;background:var(--night-2);cursor:pointer;min-width:0}.skin-card--rare{border-color:#5cc8ff80}.skin-card--epic{border-color:#b28dff99;background:linear-gradient(180deg,rgb(178 141 255 / .15),transparent),var(--night-2)}.skin-card--legendary{border-color:#ff963cb3;background:linear-gradient(180deg,rgb(255 150 60 / .18),transparent),var(--night-2)}.skin-card--golden{border-color:#ffd640bf;background:linear-gradient(180deg,rgb(255 214 64 / .2),transparent),var(--night-2)}.skin-card.is-on{border-color:var(--sun);box-shadow:0 0 0 3px #ffd23f59}.skin-card__art{position:relative;display:grid;place-items:center}.skin-card.is-locked .mascot{filter:grayscale(.85) brightness(.55)}.skin-card__lock{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--text-dim)}.skin-card__name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:600}.skin-card.is-locked .skin-card__name{color:var(--text-dim)}.skin-card{cursor:default;align-content:start;gap:4px}.skin-card__pick{display:grid;justify-items:center;gap:2px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.skin-card__rarity{padding:0 8px;border-radius:99px;font-size:.68rem;font-weight:700;color:var(--ink);background:#c9d2ee}.skin-card__status{font-size:.74rem;font-weight:700;color:var(--text-dim);white-space:nowrap}.skin-card__status--on{color:var(--sun)}.skin-card__buy{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:0;border-radius:99px;background:var(--sun);color:var(--ink);font-family:var(--display);font-weight:700;font-size:.85rem;box-shadow:0 2px 0 var(--sun-deep);cursor:pointer}.skin-card__buy:disabled{background:var(--night-3);color:var(--text-dim);box-shadow:none;cursor:default}.skin-card__or{font-size:.68rem;color:var(--text-dim)}.skin-cats{display:flex;flex-wrap:wrap;gap:6px}.skin-cat{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 12px;border:2px solid var(--line);border-radius:99px;background:var(--night-2);color:var(--text-dim);font:inherit;font-weight:700;font-size:.9rem;cursor:pointer}.skin-cat.is-on{border-color:var(--sun);color:var(--text);background:#ffd23f1f}.skin-cat__count{font-size:.75rem;font-weight:600;opacity:.75}.golden-card--trial{border-color:#b28dff;background:linear-gradient(135deg,#b28dff47,#5cc8ff2e),var(--night-2);animation:none}.golden-card--trial h3{color:var(--text)}.world-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.world-card{display:grid;justify-items:center;gap:4px;padding:6px 6px 8px;border:2px solid var(--line);border-radius:16px;background:var(--night-2);cursor:pointer;min-width:0;align-content:start;text-align:center}.world-card.is-on,.world-card.is-auto{border-color:var(--sun)}.world-card.is-auto{border-style:dashed}.world-card.is-locked .world-thumb{filter:grayscale(.85) brightness(.6)}.world-card__name{font-size:.82rem;font-weight:700;line-height:1.2}.world-card__hint{font-size:.72rem;color:var(--text-dim);line-height:1.2}.world-thumb{width:100%;aspect-ratio:16 / 10;display:grid;place-items:center;border-radius:11px;font-size:1.6rem;background:var(--world-bg, linear-gradient(180deg, #23305a, var(--night)))}.world-thumb--big{width:150px;font-size:3.5rem}.world-thumb--night,body[data-world=night]{--world-bg: radial-gradient(120% 60% at 50% -10%, #23305a 0%, #141d35 60%)}.world-thumb--ocean,body[data-world=ocean]{--world-bg: linear-gradient(180deg, #0f6aa3 0%, #0a3d6b 45%, #061f3d 100%)}.world-thumb--jungle,body[data-world=jungle]{--world-bg: radial-gradient(90% 50% at 50% 0%, #3f9f4f 0%, transparent 70%), linear-gradient(180deg, #1f5a35 0%, #0f3324 60%, #0a2118 100%)}.world-thumb--space,body[data-world=space]{--world-bg: radial-gradient(40% 25% at 80% 15%, rgb(255 92 168 / .35), transparent 70%), radial-gradient(50% 30% at 15% 60%, rgb(92 120 255 / .35), transparent 70%), linear-gradient(180deg, #0b0820 0%, #1a0f3d 60%, #07051a 100%)}.world-thumb--snow,body[data-world=snow]{--world-bg: linear-gradient(180deg, #4b6fa8 0%, #2b4777 55%, #1c2f52 100%)}.world-thumb--flame,body[data-world=flame]{--world-bg: radial-gradient(120% 45% at 50% 105%, #ff6a00 0%, #c41e00 35%, transparent 70%), linear-gradient(180deg, #1a0606 0%, #3d0b06 60%, #6a1300 100%)}.world-thumb--candy,body[data-world=candy]{--world-bg: linear-gradient(180deg, #ff8fc8 0%, #b06ae0 55%, #5b3aa8 100%)}.world-thumb--desert,body[data-world=desert]{--world-bg: radial-gradient(30% 20% at 75% 18%, #ffe48a 0%, transparent 70%), linear-gradient(180deg, #f2a65a 0%, #c9622e 55%, #6e2c1c 100%)}.world-thumb--aurora,body[data-world=aurora]{--world-bg: radial-gradient(80% 30% at 30% 20%, rgb(61 220 151 / .45), transparent 70%), radial-gradient(70% 30% at 75% 30%, rgb(178 141 255 / .45), transparent 70%), linear-gradient(180deg, #071a2e 0%, #0b2340 60%, #050e1c 100%)}.world-thumb--neon,body[data-world=neon]{--world-bg: linear-gradient(0deg, rgb(255 0 170 / .25) 0%, transparent 40%), linear-gradient(180deg, #120624 0%, #200a3d 60%, #0b0418 100%)}body[data-world]{background:var(--world-bg) fixed,var(--night);transition:background .6s ease}.world{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.world__glow{position:absolute;top:0;right:0;bottom:0;left:0}.world__particle{position:absolute;left:var(--x);top:var(--y);font-size:var(--size);line-height:1;color:#ffffffb3;opacity:.55;animation:var(--anim, world-twinkle) var(--dur) linear var(--delay) infinite;will-change:transform,opacity}.world--rise .world__particle{--anim: world-rise;top:105%}.world--fall .world__particle{--anim: world-fall;top:-10%}.world--drift .world__particle{--anim: world-drift}.world--sway .world__particle{--anim: world-sway;top:-10%}.world--twinkle .world__particle{--anim: world-twinkle;animation-timing-function:ease-in-out;animation-duration:calc(var(--dur) / 3)}.world--ocean .world__particle{color:#bff6ff}.world--snow .world__particle{color:#fff;opacity:.8}.world--neon .world__particle{color:#ff4fd8;text-shadow:0 0 8px currentColor}.world--neon .world__particle:nth-child(3n){color:#4ff0ff}.world--flame .world__particle{color:#ffb347;text-shadow:0 0 10px #ff6a00}.world--flame .world__glow{background:radial-gradient(18% 22% at 10% 100%,rgb(255 140 0 / .75),transparent 70%),radial-gradient(16% 26% at 32% 100%,rgb(255 80 0 / .7),transparent 70%),radial-gradient(20% 20% at 55% 100%,rgb(255 170 0 / .75),transparent 70%),radial-gradient(16% 28% at 78% 100%,rgb(255 90 0 / .7),transparent 70%),radial-gradient(18% 22% at 96% 100%,rgb(255 150 0 / .75),transparent 70%);transform-origin:50% 100%;animation:world-heat 1.4s ease-in-out infinite alternate}.world--aurora .world__glow{background:radial-gradient(60% 18% at 30% 22%,rgb(61 220 151 / .35),transparent 70%),radial-gradient(55% 16% at 70% 30%,rgb(92 200 255 / .3),transparent 70%);animation:world-aurora 9s ease-in-out infinite alternate}.world--space .world__glow{background:radial-gradient(6% 4% at 82% 14%,#ffcf8a,#ff8a5c 60%,transparent 62%)}@keyframes world-rise{0%{transform:translateY(0) translate(0);opacity:0}15%{opacity:.7}to{transform:translateY(-115vh) translate(20px);opacity:0}}@keyframes world-fall{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.75}to{transform:translateY(115vh) rotate(200deg);opacity:.3}}@keyframes world-sway{0%{transform:translate(0) rotate(0);opacity:0}10%{opacity:.75}25%{transform:translate(30px,28vh) rotate(60deg)}50%{transform:translate(-20px,56vh) rotate(-30deg)}75%{transform:translate(26px,84vh) rotate(80deg)}to{transform:translateY(112vh) rotate(0);opacity:.2}}@keyframes world-drift{0%{transform:translate(30vw)}to{transform:translate(-60vw)}}@keyframes world-twinkle{0%,to{opacity:.15;transform:scale(.7)}50%{opacity:.85;transform:scale(1.1)}}@keyframes world-heat{0%{transform:scaleY(.9);opacity:.8}to{transform:scaleY(1.15);opacity:1}}@keyframes world-aurora{0%{transform:translate(-8%) skew(-6deg)}to{transform:translate(8%) skew(6deg)}}.tab .badge{margin-inline-start:2px}.avatar-btn{position:relative}.avatar-btn__badge{position:absolute;top:-8px;inset-inline-start:-8px;font-size:.95rem;animation:gift-shake 1.6s ease-in-out infinite}.challenge-card{width:100%;display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:12px 16px;border:2px solid rgb(178 141 255 / .5);border-radius:var(--radius);background:linear-gradient(135deg,#b28dff47,#5cc8ff26),var(--night-2);box-shadow:0 4px #10182d;text-align:start;cursor:pointer}.challenge-card>span:nth-child(2){display:grid;flex:1}.challenge-card strong{font-family:var(--display);font-size:1.1rem}.challenge-card span span{color:var(--text-dim);font-size:.88rem}.challenge-card__icon{font-size:2rem;animation:bob 2.2s ease-in-out infinite}.challenge-card__go{font-size:1.3rem;color:var(--text-dim)}.challenge-card:active{transform:translateY(3px);box-shadow:0 1px #10182d}.result__rewards{display:grid;gap:8px;justify-items:center;margin:0;padding:0;list-style:none}.reward-chip{padding:8px 16px;border-radius:99px;background:linear-gradient(90deg,#ff7aa8,#b28dff);color:#fff;font-family:var(--display);font-weight:600;animation:pop .4s cubic-bezier(.3,1.6,.5,1) both}.reward-chip--golden{background:linear-gradient(90deg,#ffe680,#ffb300);color:var(--ink)}.reward-chip--world{background:linear-gradient(90deg,#3ddc97,#5cc8ff);color:var(--ink)}.result__rewards-hint{color:var(--text-dim);font-size:.85rem}.board__row.is-top{border-color:#ffd64073}.board__note--gold{color:#ffe680;font-weight:600}.say__card--recall{gap:6px}.say__emoji--big{font-size:4.2rem;line-height:1.1}.say__hint{font-family:var(--display);font-size:1.6rem;font-weight:700;letter-spacing:.06em;color:var(--sun)}.say__hint-btn{justify-self:center;padding:6px 14px;border:2px dashed var(--line);border-radius:99px;background:transparent;color:var(--text-dim);font-weight:600;cursor:pointer}.gift-panel{display:grid;gap:14px}.gift-panel__hero{display:flex;align-items:center;gap:12px}.gift-panel__hero p{margin:0;color:var(--text-dim)}.gift-panel .grade-picker{display:flex;flex-wrap:wrap}.gift-panel .grade-chip{flex:1;min-width:56px;padding-inline:10px}.modal__card .rarity-tag{justify-self:center;color:var(--ink)}.board__modes{margin-bottom:10px}.unit__king{margin-top:4px;padding:2px 8px;border:0;border-radius:99px;background:#160f2440;color:inherit;font-family:var(--display);font-weight:600;font-size:.75rem;white-space:nowrap;cursor:pointer}.dict-board__king{display:grid;justify-items:center;gap:2px;padding:12px 20px;border-radius:var(--radius);border:2px solid rgb(255 214 64 / .7);background:linear-gradient(180deg,rgb(255 214 64 / .22),transparent),var(--night)}.dict-board__king strong{font-family:var(--display);font-size:1.15rem;color:#ffe680}.dict-board__king span{color:var(--text-dim);font-size:.9rem}.dict-board__list{width:100%;max-height:40vh;overflow-y:auto}.challenge-card--hard{border-color:#3ddc978c;background:linear-gradient(135deg,#3ddc9740,#ffd23f1f),var(--night-2)}.unit__learn{margin-top:4px;padding:3px 10px;border:0;border-radius:99px;background:#160f244d;color:inherit;font-family:var(--display);font-weight:700;font-size:.8rem;white-space:nowrap;cursor:pointer}.say__retry-mic{justify-self:center}
