:root{--ink:#2d2a32;--muted:#7b7685;--paper:#fffaf1;--card:#fff;--good:#2fb344;--bad:#ff5a5f;--gold:#ffc21a;--shadow:0 6px 0 #0000001f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{background:#e8f6ff}body{min-height:100dvh;color:var(--ink);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;background:linear-gradient(#ffe7c2 0%,#fff6e6 400px,#e8f6ff 100%);font-family:Fredoka,system-ui,sans-serif}button{color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;font-family:inherit}.app{max-width:1040px;min-height:100dvh;margin:0 auto;position:relative}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.row{align-items:center;display:flex}.gap{flex-wrap:wrap;justify-content:center;gap:10px}.corner{z-index:30;position:fixed;bottom:10px;right:10px}.btn{border-radius:18px;padding:12px 22px;font-size:1.1rem;font-weight:600;transition:transform 80ms,box-shadow 80ms;box-shadow:0 5px #0000002e}.btn:active{transform:translateY(4px);box-shadow:0 1px #0000002e}.btn-go{color:#fff;background:#2fb344}.btn-ghost{color:var(--ink);background:#fff}.round-btn{background:#fff;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:1.25rem;transition:transform 80ms,box-shadow 80ms,background .2s;display:inline-grid;box-shadow:0 4px #00000021}.round-btn:active{transform:translateY(3px);box-shadow:0 1px #00000021}.round-btn:disabled{opacity:.35}.round-btn.on{background:#ffe08a}.round-btn.small{width:38px;height:38px;font-size:1.05rem}.round-btn.speak.big{width:64px;height:64px;font-size:2rem}.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.07)}}.screen{flex-direction:column;gap:10px;min-height:100dvh;padding:10px 12px 16px;display:flex}.bar{align-items:center;gap:10px;display:flex}.bar-mid{flex:1;min-width:0}.bar-title{white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;font-weight:700;overflow:hidden}.track{background:#fff;border-radius:99px;height:14px;margin:4px 26px 4px 0;position:relative;box-shadow:inset 0 2px #00000014}.track-fill{background:var(--c,#ff7a2f);border-radius:99px;height:100%;transition:width .5s cubic-bezier(.3,1.4,.5,1)}.track-cat{font-size:22px;transition:left .5s cubic-bezier(.3,1.4,.5,1);animation:.5s ease-in-out infinite alternate catwalk;position:absolute;top:50%;transform:translate(-50%,-58%)scaleX(-1)}@keyframes catwalk{to{margin-top:-3px}}.track-fish{font-size:18px;position:absolute;top:50%;right:-26px;transform:translateY(-55%)}.home{max-width:640px;margin:0 auto;padding:14px 14px 80px}.hero{text-align:center;padding-top:6px;position:relative}.logo{color:#ff7a2f;letter-spacing:-1px;text-shadow:0 4px #ffd1a6;font-size:clamp(2.8rem,12vw,4.2rem);font-weight:700;animation:3s ease-in-out infinite float}.logo span{color:#1c8fe0;animation:1.6s ease-in-out infinite wigglek;display:inline-block}.tag{color:var(--muted);margin:0;font-weight:500}.mascot{flex-direction:column;align-items:flex-end;display:flex;position:absolute;top:4px;right:0}.mascot-cat{font-size:3rem;animation:2.4s ease-in-out infinite hop;display:inline-block}.mascot-bubble{box-shadow:var(--shadow);background:#fff;border-radius:14px 14px 4px;max-width:110px;padding:6px 10px;font-size:.85rem;font-weight:600;animation:.4s cubic-bezier(.3,1.6,.5,1) popin}@media (width<=520px){.mascot{flex-direction:row;justify-content:center;align-items:center;gap:6px;margin-top:6px;position:static}.mascot-cat{order:-1;font-size:2.4rem}.mascot-bubble{border-radius:14px 14px 14px 4px;max-width:none}}@keyframes float{50%{transform:translateY(-5px)}}@keyframes hop{0%,60%,to{transform:translateY(0)}70%{transform:translateY(-14px)rotate(-6deg)}80%{transform:translateY(0)}}@keyframes wigglek{50%{transform:rotate(12deg)scale(1.15)}}.hello-card{box-shadow:var(--shadow);background:#fff;border-radius:22px;flex-direction:column;align-items:center;gap:6px;margin:18px auto 0;padding:16px;animation:.5s cubic-bezier(.3,1.6,.5,1) popin;display:flex}.hello-card b{font-size:1.4rem}.hello-card input{font:inherit;border:3px solid #ffd1a6;border-radius:14px;outline:none;width:180px;padding:10px 14px;font-size:1.2rem}.hello-card input:focus{border-color:#ff7a2f}.hello-row{justify-content:space-between;align-items:center;margin-top:14px;font-size:1.2rem;display:flex}.total{color:#e09a00;box-shadow:var(--shadow);background:#fff;border-radius:99px;padding:4px 12px;font-weight:700}.map{margin-top:10px;position:relative}.map-path{width:100%;height:100%;position:absolute;inset:0}.map-path path{fill:none;stroke:#ffb066;stroke-width:6px;stroke-dasharray:2 14;stroke-linecap:round}.stop{align-items:center;gap:12px;height:150px;display:flex;position:relative}.stop.left{padding-left:calc(28% - 44px)}.stop.right{flex-direction:row;padding-left:calc(72% - 44px)}.stop.right .stop-label{text-align:right;align-items:flex-end;position:absolute;right:calc(28% + 52px)}.node{background:var(--c);width:88px;height:88px;box-shadow:0 7px 0 color-mix(in srgb, var(--c), #000 30%), 0 0 0 6px #fff;border-radius:50%;flex:none;place-items:center;font-size:2.6rem;transition:transform .1s;animation:.5s cubic-bezier(.3,1.6,.5,1) both popin;display:grid;position:relative}.node:active{transform:translateY(5px)}.node.next{animation:.5s cubic-bezier(.3,1.6,.5,1) both popin,1.4s ease-in-out .6s infinite bounce}.node-emoji{filter:drop-shadow(0 2px #00000026)}.node-badge{font-size:1.6rem;position:absolute;bottom:-6px;right:-8px}.node-here{font-size:1.8rem;animation:1.8s ease-in-out infinite hop;position:absolute;top:-26px;left:-10px}@keyframes bounce{50%{transform:translateY(-8px)}}.stop-label{flex-direction:column;line-height:1.15;display:flex}.stop-label small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600}.stop-label b{font-size:1.2rem}.stop-label .muted{font-size:.85rem}.stop-stars{color:#e09a00;font-size:.9rem;font-weight:700}.stickers{box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:22px;margin-top:18px;padding:14px}.sticker-row{flex-wrap:wrap;justify-content:center;gap:8px;margin:10px 0 6px;display:flex}.sticker-slot{color:#d6cdbd;border:3px dashed #e5ddd0;border-radius:14px;place-items:center;width:48px;height:48px;font-size:1.7rem;font-weight:700;display:grid}.sticker-slot.got{border:3px solid var(--gold);background:#fff7d6;animation:.5s cubic-bezier(.3,1.6,.5,1) popin}.unit-head{background:var(--c);color:#fff;box-shadow:0 7px 0 color-mix(in srgb, var(--c), #000 28%);border-radius:24px;align-items:center;gap:14px;padding:14px 18px;display:flex}.unit-head h1{margin:0;font-size:clamp(1.5rem,6vw,2.2rem);line-height:1.05}.unit-head p{opacity:.9;margin:2px 0 0}.unit-emoji{font-size:3.2rem;animation:2.4s ease-in-out infinite hop;display:inline-block}.unit-score{white-space:nowrap;background:#ffffff40;border-radius:99px;margin-left:auto;padding:4px 10px;font-weight:700}.acts{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:6px;display:grid}@media (width>=760px){.acts{grid-template-columns:repeat(5,1fr)}}.acts .act:first-child{grid-column:1/-1}@media (width>=760px){.acts .act:first-child{grid-column:auto}}.act{box-shadow:0 6px 0 color-mix(in srgb, var(--c), #fff 55%);border:3px solid color-mix(in srgb, var(--c), #fff 55%);background:#fff;border-radius:22px;flex-direction:column;align-items:center;gap:2px;padding:16px 10px 12px;transition:transform 80ms;animation:.45s cubic-bezier(.3,1.6,.5,1) both popin;display:flex;position:relative}.act:active{transform:translateY(4px)}.act-num{background:var(--c);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.85rem;font-weight:700;display:grid;position:absolute;top:8px;left:10px}.act-emoji{font-size:2.8rem;display:inline-block}.act:hover .act-emoji{animation:.6s ease-in-out wigglek}.act b{font-size:1.25rem}.act small{color:var(--muted)}.act-stars{color:#e09a00;margin-top:2px;font-size:.9rem;font-weight:700}.games .act:first-child{grid-column:auto}.games .act:last-child:nth-child(odd){grid-column:1/-1}@media (width>=760px){.games .act:last-child:nth-child(odd){grid-column:auto}}.starrow{letter-spacing:1px;font-size:1.4rem}.starrow.small{font-size:1.1rem}.starrow .on{color:var(--gold);text-shadow:0 2px #d69e00}.starrow .off{color:#e8e2d6}@keyframes popin{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.scene{aspect-ratio:16/10;border:4px solid #fff;border-radius:22px;flex:none;width:min(100%,89.6dvh);margin:0 auto;position:relative;overflow:hidden;box-shadow:0 6px #0000001f;container-type:inline-size}.backdrop{width:100%;height:100%;position:absolute;inset:0}.backdrop .cloud{animation:linear infinite alternate drift}@keyframes drift{0%{transform:translate(-40px)}to{transform:translate(60px)}}.backdrop .twinkle{animation:1.6s ease-in-out infinite twinkle}@keyframes twinkle{50%{opacity:.35}}.backdrop .fan{transform-box:fill-box;transform-origin:50%;animation:.9s linear infinite spin}.backdrop .flag{transform-box:fill-box;transform-origin:0;animation:2s ease-in-out infinite flag}@keyframes flag{50%{transform:skewY(-4deg)scaleX(.96)}}.backdrop .wave{animation:2s ease-in-out infinite wavey}@keyframes wavey{50%{transform:translate(12px)}}.backdrop .sway-slow{transform-box:fill-box;animation:4s ease-in-out infinite swayslow}@keyframes swayslow{50%{transform:rotate(4deg)}}.backdrop .steam{animation:2s ease-in-out infinite steam}@keyframes spin{to{transform:rotate(360deg)}}.prop{z-index:2;padding:0;line-height:1;position:absolute;transform:translate(-50%,-106%)}.prop .pop{transform-origin:50% 100%;transition:opacity .5s,transform .6s cubic-bezier(.25,1.7,.45,1),filter .3s;display:block;position:relative}.prop.is-hidden .pop{opacity:0;pointer-events:none;transform:scale(.2)translateY(20%)}.prop.is-active .pop{filter:drop-shadow(0 0 .06em #fff)drop-shadow(0 0 .12em #ffcf33);animation:.7s bump}.prop.is-talking .pop{animation:.5s ease-in-out infinite alternate talk}@keyframes bump{35%{transform:scale(1.18)translateY(-6%)}}@keyframes talk{to{transform:scale(1.04,.97)}}.plabel{color:var(--ink);white-space:nowrap;background:#ffffffeb;border-radius:99px;padding:1px 6px;font-family:Fredoka,sans-serif;font-size:max(9px,.15em);font-weight:700;position:absolute;bottom:-.05em;left:50%;transform:translate(-50%)}.pic{line-height:1;display:inline-block}.pic.flip{transform:scaleX(-1)}.pic-svg{vertical-align:-.12em;overflow:visible}.anim{transform-origin:50% 100%;display:inline-block}.a-bob{animation:2.2s ease-in-out infinite bob}.a-sway{animation:3s ease-in-out infinite sway}.a-wiggle{animation:2.2s ease-in-out infinite wiggle}.a-spin{transform-origin:50%;animation:14s linear infinite spin}.a-pulse{animation:2.4s ease-in-out infinite pulse}.a-jump{animation:1.6s ease-in-out infinite jump}.a-pour{transform-origin:30% 80%;animation:2.4s ease-in-out infinite pour}.a-sleep{animation:3s ease-in-out infinite breathe;position:relative}.a-sleep:after{content:"💤";font-size:.45em;animation:2.4s ease-in-out infinite zzz;position:absolute;top:-.3em;right:-.3em}.a-fly{animation:7s ease-in-out infinite fly}.a-swim{animation:3.2s ease-in-out infinite swim}.a-drive{animation:7s linear infinite drive}.a-driveBack{animation:9s linear infinite driveBack}.prop[aria-label=bas] .a-driveBack{animation-duration:13s}.prop[aria-label=moto] .a-driveBack{animation-duration:6s}@keyframes bob{50%{transform:translateY(-4%)}}@keyframes sway{25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes wiggle{0%,70%,to{transform:rotate(0)}78%{transform:rotate(-10deg)}86%{transform:rotate(10deg)}94%{transform:rotate(-5deg)}}@keyframes jump{0%,50%,to{transform:translateY(0)}25%{transform:translateY(-18%)scale(1.03,.97)}}@keyframes pour{0%,40%,to{transform:rotate(0)}60%,80%{transform:rotate(-24deg)translateY(-30%)}}@keyframes breathe{50%{transform:scale(1.04,.96)}}@keyframes zzz{0%{opacity:0;transform:translate(0)}40%{opacity:1}to{opacity:0;transform:translate(.4em,-.8em)}}@keyframes fly{0%{transform:translate(-30cqw,4cqw)}25%{transform:translate(-10cqw,-2cqw)}50%{transform:translate(15cqw,3cqw)}75%{transform:translate(-5cqw,-1cqw)}to{transform:translate(-30cqw,4cqw)}}@keyframes swim{0%,to{transform:translate(-4cqw)}50%{transform:translate(4cqw)scaleX(-1)}}@keyframes drive{0%{transform:translate(-30cqw)}to{transform:translate(110cqw)}}@keyframes driveBack{0%{transform:translate(80cqw)}to{transform:translate(-100cqw)}}@keyframes steam{50%{opacity:.3;transform:translateY(-3px)}}.bubble{z-index:5;background:#fff;border-radius:1.4cqw;width:max-content;max-width:44cqw;padding:.9cqw 1.6cqw;font-size:clamp(12px,2.7cqw,24px);font-weight:600;line-height:1.2;animation:.4s cubic-bezier(.3,1.7,.5,1) bubblein;position:absolute;transform:translate(-50%,-100%);box-shadow:0 .5cqw #00000026}.bubble:after{content:"";bottom:-1.2cqw;left:calc(50% + var(--tail,0px));border:1.3cqw solid #0000;border-top-color:#fff;border-bottom:0;position:absolute;transform:translate(-50%)}@keyframes bubblein{0%{opacity:0;transform:translate(-50%,-80%)scale(.3)}}.rain{z-index:4;pointer-events:none;background:#3c506e40;animation:.6s fadein;position:absolute;inset:0}.rain i{background:linear-gradient(#0000,#cfe8ff);width:2px;height:7%;animation:linear infinite fall;position:absolute;top:-10%}@keyframes fall{to{transform:translateY(160cqw)translate(-6cqw)}}@keyframes fadein{0%{opacity:0}}.story{flex-direction:column;flex:1;gap:10px;display:flex}.story-panel{box-shadow:var(--shadow);border:3px solid color-mix(in srgb, var(--c), #fff 60%);background:#fff;border-radius:22px;width:min(100%,89.6dvh);margin:0 auto;padding:10px 14px 12px;position:relative}.who{color:var(--muted);align-items:center;gap:4px;min-height:1.4em;font-weight:600;display:flex}.who .pic{font-size:1.3rem}.line{margin:2px 0 0;font-size:clamp(1.35rem,4.6vw,2rem);font-weight:600;line-height:1.35;animation:.4s linein}.line.speech:before{content:"“";color:var(--c)}.line.speech:after{content:"”";color:var(--c)}@keyframes linein{0%{opacity:0;transform:translateY(8px)}}.w{cursor:pointer;border-radius:8px;padding:0 2px;transition:background .2s}.w:hover{background:#fff2c4}.w.linked{color:color-mix(in srgb, var(--c), #000 18%);-webkit-text-decoration:underline 3px color-mix(in srgb, var(--c), #fff 40%);text-decoration:underline 3px color-mix(in srgb, var(--c), #fff 40%);text-underline-offset:5px}.en{color:var(--muted);opacity:0;min-height:1.3em;margin:2px 0 0;font-size:1rem;font-style:italic;transition:opacity .3s}.en.show{opacity:1}.controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.next-btn{margin-left:auto}@media (width<=480px){.controls .round-btn{width:40px;height:40px;font-size:1.1rem}.next-btn{flex:1 0 100%}}.gloss{border:3px solid var(--gold);z-index:6;box-shadow:var(--shadow);background:#fffbe6;border-radius:18px;align-items:center;gap:8px;padding:6px 12px 6px 8px;animation:.35s cubic-bezier(.3,1.7,.5,1) popin;display:flex;position:absolute;top:0;right:12px;transform:translateY(-75%)}.gloss-pic{font-size:2.4rem;line-height:1}.gloss b{font-size:1.2rem;display:block}.gloss small{color:var(--muted)}.reward-wrap{z-index:50;background:#281e3c73;place-items:center;padding:16px;animation:.3s fadein;display:grid;position:fixed;inset:0}.reward{text-align:center;z-index:2;background:#fff;border-radius:28px;width:min(380px,100%);padding:20px 22px 22px;animation:.5s cubic-bezier(.3,1.6,.5,1) popin;position:relative;box-shadow:0 10px #00000026}.reward h2{color:#ff7a2f;margin:0;font-size:2.4rem}.reward p{margin:0 0 4px}.reward-cat{font-size:3.4rem;animation:1.2s ease-in-out infinite hop;display:inline-block}.reward-stars{letter-spacing:4px;margin:4px 0 14px;font-size:3.6rem}.reward-stars span{animation:.6s cubic-bezier(.3,1.8,.5,1) both starin;display:inline-block}.reward-stars .on{color:var(--gold);text-shadow:0 4px #d69e00}.reward-stars .off{color:#e8e2d6}@keyframes starin{0%{transform:scale(0)rotate(-180deg)}}.confetti{pointer-events:none;z-index:3;position:fixed;inset:0;overflow:hidden}.confetti i{border-radius:2px;animation:linear forwards confetti;position:absolute;top:-20px}@keyframes confetti{to{transform:translateY(110vh)rotate(720deg)}}.toast{z-index:40;pointer-events:none;-webkit-text-stroke:2px #fff;paint-order:stroke fill;white-space:nowrap;font-size:clamp(2rem,9vw,3.4rem);font-weight:700;animation:1.1s forwards toast;position:fixed;top:38%;left:50%}.toast-good{color:#2fb344;text-shadow:0 5px #1b7a2a33}.toast-bad{color:#ff7a2f}@keyframes toast{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(-8deg)}25%{opacity:1;transform:translate(-50%,-50%)scale(1.15)rotate(3deg)}45%{transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-90%)scale(1)}}.quiz{flex-direction:column;flex:1;justify-content:center;gap:14px;width:100%;max-width:640px;margin:0 auto;display:flex}.q-card{text-align:center;box-shadow:var(--shadow);background:#fff;border-radius:24px;padding:16px;animation:.4s cubic-bezier(.3,1.6,.5,1) popin}.q-pic{font-size:clamp(3.4rem,15vw,5rem);line-height:1.1;animation:2.4s ease-in-out infinite hop;display:inline-block}.q-text{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:clamp(1.4rem,5vw,1.9rem);font-weight:700;display:flex}.opts{grid-template-columns:1fr 1fr;gap:12px;display:grid}.opts.n3 .opt:last-child{grid-column:1/-1}.opt{background:var(--oc);color:#fff;box-shadow:0 6px 0 color-mix(in srgb, var(--oc), #000 25%);text-shadow:0 2px #00000026;border-radius:20px;padding:18px 10px;font-size:clamp(1.25rem,4.5vw,1.6rem);font-weight:700;transition:transform 80ms,box-shadow 80ms,opacity .2s;animation:.4s cubic-bezier(.3,1.6,.5,1) both popin}.opt:active{box-shadow:0 2px 0 color-mix(in srgb, var(--oc), #000 25%);transform:translateY(4px)}.opt.pic-only{padding:8px;font-size:clamp(2.6rem,11vw,3.6rem)}.opt.is-right{background:var(--good);animation:.6s bump;box-shadow:0 6px #1f8030,0 0 0 5px #b8f5c2}.opt.is-wrong{opacity:.6;background:#cfc8d6;animation:.45s shake;box-shadow:0 6px #a59db0}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.pick{flex-direction:column;flex:1;justify-content:center;gap:16px;width:100%;max-width:560px;margin:0 auto;display:flex}.pick-prompt{box-shadow:var(--shadow);background:#fff;border-radius:24px;justify-content:center;align-items:center;gap:12px;padding:18px;animation:.4s cubic-bezier(.3,1.6,.5,1) popin;display:flex}.pick-word{color:#ff7a2f;font-size:clamp(2rem,9vw,3rem);font-weight:700}.big-ear{flex-direction:column;align-items:center;font-size:4rem;animation:1.4s ease-in-out infinite pulse;display:flex}.big-ear small{color:var(--muted);font-size:1rem;font-weight:600}.pick-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tile{aspect-ratio:1.25;background:#fff;border:4px solid #f1ebe0;border-radius:24px;place-items:center;font-size:clamp(3rem,15vw,4.6rem);transition:transform 80ms;animation:.4s cubic-bezier(.3,1.6,.5,1) both popin;display:grid;box-shadow:0 6px #e5ddd0}.pick-grid.words .tile{aspect-ratio:auto;padding:20px 6px}.tile-word{font-size:clamp(1.3rem,5vw,1.8rem);font-weight:700}.tile:active{transform:translateY(4px)}.tile.is-right{border-color:var(--good);background:#e9fbe9;animation:.6s bump}.tile.is-wrong{border-color:var(--bad);opacity:.55;background:#fff0f0;animation:.45s shake}.balloon-game{flex-direction:column;flex:1;gap:8px;display:flex}.sky-word{box-shadow:var(--shadow);background:#fff;border-radius:99px;align-self:center;align-items:center;gap:8px;padding:8px 10px 8px 18px;font-size:1.5rem;animation:.4s cubic-bezier(.3,1.6,.5,1) popin;display:flex}.sky-word b{color:#ff7a2f;font-size:1.9rem}.sky{min-height:60dvh;box-shadow:var(--shadow);background:linear-gradient(#7fd0ff,#d8f2ff 70%,#a8e38a 70%,#8fd16a);border:4px solid #fff;border-radius:24px;flex:1;position:relative;overflow:hidden}.balloon{flex-direction:column;align-items:center;animation:linear infinite rise;display:flex;position:absolute;bottom:0;transform:translate(-50%)}@keyframes rise{0%{bottom:-45%}to{bottom:105%}}.balloon-body{background:radial-gradient(circle at 32% 28%, #ffffffa6, transparent 22%), var(--bc);border-radius:50% 50% 48% 48%/56% 56% 44% 44%;place-items:center;width:clamp(76px,20vw,110px);height:clamp(92px,24vw,132px);font-size:clamp(2.2rem,10vw,3.2rem);animation:2.4s ease-in-out infinite sway;display:grid;box-shadow:inset -6px -8px #0000001f}.balloon-string{background:#8a8a8a;width:2px;height:50px}.balloon.wobble .balloon-body{animation:.45s shake}.balloon.popped .balloon-body,.balloon.popped .balloon-string{animation:.25s forwards popout}@keyframes popout{to{opacity:0;transform:scale(1.6)}}.burst{position:absolute;top:40px;left:50%}.burst i{background:var(--bc);width:6px;height:18px;transform:rotate(var(--r));border-radius:3px;animation:.5s ease-out forwards burst;position:absolute;top:-9px;left:-3px}@keyframes burst{to{transform:rotate(var(--r)) translateY(-70px);opacity:0}}.memory{grid-template-columns:repeat(4,1fr);gap:10px;width:100%;max-width:560px;margin:auto;display:grid}.mcard{aspect-ratio:.82;perspective:600px;animation:.4s cubic-bezier(.3,1.6,.5,1) both popin}.mcard-in{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.3,1.4,.5,1);display:block;position:relative}.mcard.up .mcard-in{transform:rotateY(180deg)}.mcard-back,.mcard-front{backface-visibility:hidden;border-radius:16px;place-items:center;display:grid;position:absolute;inset:0;box-shadow:0 5px #00000021}.mcard-back{background:var(--c);background-image:radial-gradient(#ffffff40 2px,#0000 2px);background-size:14px 14px;font-size:1.8rem}.mcard-front{background:#fff;border:3px solid #f1ebe0;font-size:clamp(2rem,9vw,3rem);transform:rotateY(180deg)}.mcard-word{word-break:break-word;padding:4px;font-size:clamp(.9rem,3.6vw,1.25rem);font-weight:700;line-height:1.1}.mcard.done .mcard-front{border-color:var(--good);background:#e9fbe9;animation:.6s bump}.build{flex-direction:column;flex:1;justify-content:center;gap:14px;width:100%;max-width:620px;margin:0 auto;display:flex}.build-prompt{box-shadow:var(--shadow);background:#fff;border-radius:24px;align-items:center;gap:12px;padding:14px;display:flex}.build-pic{font-size:3.4rem;animation:2.4s ease-in-out infinite hop;display:inline-block}.build-en{flex:1;font-size:1.3rem;font-weight:600}.slots{background:#fff9;border:4px dashed #d9cfbf;border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:78px;padding:10px;transition:border-color .2s,background .2s;display:flex}.slots.right{border-color:var(--good);background:#e9fbe9;border-style:solid}.slots.wrong{border-color:var(--bad);animation:.45s shake}.bank{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.wtile{background:#fff;border:3px solid #f1ebe0;border-radius:14px;padding:10px 16px;font-size:1.4rem;font-weight:600;animation:.35s cubic-bezier(.3,1.6,.5,1) both popin;box-shadow:0 5px #e0d6c4}.wtile.placed{border-color:var(--gold);background:#fff3c4;box-shadow:0 5px #e6b800}.wtile.used{opacity:.25;box-shadow:none;animation:none}.kamus{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}@media (width>=640px){.kamus{grid-template-columns:repeat(4,1fr)}}@media (width>=900px){.kamus{grid-template-columns:repeat(5,1fr)}}.kcard{box-shadow:0 5px 0 color-mix(in srgb, var(--c), #fff 60%);border:3px solid color-mix(in srgb, var(--c), #fff 70%);background:#fff;border-radius:18px;flex-direction:column;align-items:center;padding:10px 6px 8px;transition:transform 80ms,background .2s;animation:.4s cubic-bezier(.3,1.6,.5,1) both popin;display:flex}.kcard:active{transform:translateY(3px)}.kcard.up{background:color-mix(in srgb, var(--c), #fff 85%)}.kpic{font-size:2.6rem;line-height:1.1}.kcard b{text-align:center;font-size:1.05rem}.kcard small{color:var(--muted);text-align:center;min-height:1.1em;font-size:.8rem}.chat-screen{justify-content:center;align-items:center;padding:0}.phone{background:#efe7dd;flex-direction:column;width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}@media (width>=560px){.chat-screen{padding:18px 0}.phone{border:12px solid #1d1d22;border-radius:46px;width:390px;height:min(800px,100dvh - 36px);box-shadow:0 20px 50px #00000040,0 0 0 3px #3a3a42}.phone-notch{z-index:5;background:#1d1d22;border-radius:99px;width:110px;height:26px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.chat-head{padding-top:38px!important}}.chat-head{color:#fff;background:#0f8a6c;align-items:center;gap:8px;padding:10px;display:flex}.chat-back{color:#fff;padding:4px 6px;font-size:1.4rem}.avatar{background:#fff;border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.6rem;display:grid}.chat-who{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.chat-who b{font-size:1.1rem}.chat-who small{opacity:.85}.chat-icons{letter-spacing:6px;opacity:.9}.chat-list{background-image:radial-gradient(#0000000a 1.5px,#0000 1.5px);background-size:18px 18px;flex-direction:column;flex:1;gap:6px;padding:12px 10px;display:flex;overflow-y:auto}.chat-day{color:var(--muted);background:#fff;border-radius:8px;align-self:center;margin-bottom:4px;padding:2px 10px;font-size:.8rem}.msg{cursor:pointer;border-radius:14px;flex-wrap:wrap;align-items:flex-end;gap:2px 8px;max-width:80%;padding:7px 10px 5px;font-size:1.15rem;line-height:1.3;animation:.3s cubic-bezier(.3,1.5,.5,1) msgin;display:flex;box-shadow:0 1px 1px #0000001f}.msg small{color:var(--muted);margin-left:auto;font-size:.7rem}.msg.them{transform-origin:0 0;background:#fff;border-top-left-radius:4px;align-self:flex-start}.msg.me{transform-origin:100% 0;background:#d6f8c4;border-top-right-radius:4px;align-self:flex-end}.ticks{color:#34b7f1}@keyframes msgin{0%{opacity:0;transform:scale(.6)}}.sticker{letter-spacing:2px;font-size:4.4rem;line-height:1.1;animation:.6s cubic-bezier(.3,1.8,.5,1) stickerin}.sticker.them{align-self:flex-start}.sticker.me{align-self:flex-end}@keyframes stickerin{0%{transform:scale(0)rotate(-30deg)}}.typing{cursor:default;gap:4px;padding:12px 14px}.typing i{background:#9a9aa5;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite dots}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes dots{30%{opacity:.5;transform:translateY(-5px)}}.chat-foot{padding:8px 10px calc(10px + env(safe-area-inset-bottom));background:#f6f2ec}.replies{flex-direction:column;gap:8px;animation:.3s msgin;display:flex}.replies-label{color:var(--muted);text-align:center;font-size:.85rem;font-weight:600}.reply{color:#0b6e56;text-align:left;background:#fff;border:3px solid #0f8a6c;border-radius:18px;padding:10px 14px;font-size:1.15rem;font-weight:600;transition:transform 80ms;box-shadow:0 4px #0f8a6c55}.reply:active{transform:translateY(3px)}.reply.shake{border-color:var(--bad);color:var(--bad);animation:.45s shake}.fake-input{align-items:center;gap:8px;display:flex}.fake-input span:first-child{color:var(--muted);background:#fff;border-radius:99px;flex:1;padding:10px 16px}.send{color:#fff;background:#0f8a6c;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.hint{border:2px solid var(--gold);background:#fff6d6;border-radius:14px;margin-bottom:8px;padding:6px 10px;font-size:.95rem;animation:.3s cubic-bezier(.3,1.6,.5,1) popin}.hint span{font-size:1.2rem}@media (prefers-reduced-motion:reduce){.backdrop *,.anim,.logo,.mascot-cat,.node.next,.unit-emoji,.q-pic,.build-pic,.reward-cat{animation:none!important}}
