:root{--ink:#2b2140;--ink-soft:#5a5277;--paper:#fffaf2;--primary:#6b4fd8;--primary-dark:#4a33a8;--accent:#ffd23f;--accent-dark:#e0a800;--green:#3fbf7f;--green-dark:#23935a;--pink:#ff6b8b;--radius:28px;--shadow:0 10px 30px #1e145040;--font:ui-rounded, "SF Pro Rounded", "Nunito", "Varela Round", "Segoe UI", system-ui, sans-serif;--text-scale:1;--world:#6b4fd8;--world-light:#ece2ff;--world-dark:#4a33a8}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font);color:var(--ink);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#1c1648;margin:0;overflow:hidden}body.big-text{--text-scale:1.18}#game{position:fixed;inset:0}#ui{pointer-events:none;z-index:10;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui .passthrough{pointer-events:none}#ui .passthrough>*{pointer-events:auto}.icon{width:100%;height:100%;display:block}.btn{font:inherit;font-weight:900;font-size:calc(clamp(18px, 2.4vw, 26px) * var(--text-scale));color:#fff;background:var(--primary);min-width:56px;min-height:56px;box-shadow:0 6px 0 var(--primary-dark), 0 10px 20px #0003;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:12px 28px;transition:transform 80ms,box-shadow 80ms,filter .2s;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:active{box-shadow:0 2px 0 var(--primary-dark), 0 4px 10px #0003;transform:translateY(4px)}.btn:focus-visible,.card-btn:focus-visible,.chip:focus-visible,.icon-btn:focus-visible{outline:5px solid var(--accent);outline-offset:3px}.btn.green{background:var(--green);box-shadow:0 6px 0 var(--green-dark), 0 10px 20px #0003}.btn.yellow{background:var(--accent);color:var(--ink);box-shadow:0 6px 0 var(--accent-dark), 0 10px 20px #0003}.btn.ghost{color:var(--ink);background:#fff;box-shadow:0 6px #d8d2ee,0 10px 20px #0000001f}.btn[disabled]{filter:grayscale(.8)opacity(.6);pointer-events:none}.btn .bi{width:34px;height:34px}.icon-btn{width:64px;height:64px;box-shadow:0 5px 0 #d8d2ee, var(--shadow);cursor:pointer;background:#fff;border:0;border-radius:22px;padding:10px;transition:transform .1s}.icon-btn:active{transform:translateY(3px)scale(.97)}.hud{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));align-items:center;gap:10px;display:flex;position:absolute}.hud .spacer{flex:1}.pill{height:56px;box-shadow:var(--shadow);font-weight:900;font-size:calc(22px * var(--text-scale));background:#fffffff2;border-radius:999px;align-items:center;gap:8px;padding:6px 18px 6px 8px;display:flex}.pill .pi{flex:none;width:42px;height:42px}.pill.avatar .pi{background:var(--world-light);border-radius:50%;width:44px;height:44px;overflow:hidden}.pill.avatar .pi svg{width:100%;height:100%}.energy-bar{gap:3px;display:flex}.energy-bar i{background:#e8e4f5;border-radius:5px;width:9px;height:22px;display:block}.energy-bar i.on{background:linear-gradient(#ffd23f,#ff9f1a)}.energy-bar.low i.on{background:linear-gradient(#ffb27a,#ff6b3d)}.bump{animation:.45s cubic-bezier(.3,1.8,.5,1) bump}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.backdrop{-webkit-backdrop-filter:blur(4px);background:#140e3c8c;justify-content:center;align-items:center;padding:20px;animation:.25s both fade-in;display:flex;position:absolute;inset:0}.backdrop.clear{-webkit-backdrop-filter:none;background:0 0}.card{background:var(--paper);border-radius:36px;width:min(760px,94vw);max-height:92vh;padding:32px;animation:.45s cubic-bezier(.3,1.6,.5,1) both pop-in;position:relative;overflow:auto;box-shadow:0 16px #00000014,0 24px 60px #140a3c66}.card h2{font-size:calc(clamp(26px, 3.6vw, 40px) * var(--text-scale));text-align:center;margin:0 0 12px;font-weight:900}.card .lead{font-size:calc(clamp(20px, 2.8vw, 30px) * var(--text-scale));text-align:center;margin:0 0 20px;font-weight:800;line-height:1.35}.card .actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:22px;display:flex}.close-x{width:56px;height:56px;font:900 28px var(--font);color:var(--ink);cursor:pointer;background:#efeaff;border:0;border-radius:50%;position:absolute;top:14px;right:14px}@keyframes pop-in{0%{opacity:0;transform:scale(.7)translateY(30px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(40px)}}.leaving{animation:.2s forwards fade-out!important}@keyframes fade-out{to{opacity:0;transform:scale(.96)}}.dialog{left:50%;bottom:max(18px, env(safe-area-inset-bottom));cursor:pointer;align-items:flex-end;gap:0;width:min(980px,94vw);animation:.35s cubic-bezier(.3,1.4,.5,1) both rise-in;display:flex;position:absolute;transform:translate(-50%)}.dialog .portrait{z-index:1;background:radial-gradient(circle at 50% 40%, #fff, var(--world-light));width:clamp(96px,14vw,150px);height:clamp(96px,14vw,150px);box-shadow:var(--shadow);border:6px solid #fff;border-radius:50%;flex:none;margin-right:-26px;padding:10px;animation:3s ease-in-out infinite float}.dialog .portrait.player{padding:0;overflow:hidden}.dialog .box{min-height:130px;box-shadow:0 8px 0 #00000014, var(--shadow);background:#fff;border-radius:32px;flex:1;padding:24px 32px 24px 52px;position:relative}.dialog .name{background:var(--world);color:#fff;font-weight:900;font-size:calc(20px * var(--text-scale));border-radius:999px;padding:6px 18px;position:absolute;top:-20px;left:44px}.dialog .text{font-size:calc(clamp(22px, 3vw, 32px) * var(--text-scale));margin:6px 0 0;font-weight:800;line-height:1.35}.dialog .more{background:var(--accent);border-radius:50%;place-items:center;width:36px;height:36px;font-weight:900;animation:1s ease-in-out infinite nudge;display:grid;position:absolute;bottom:14px;right:22px}@keyframes nudge{50%{transform:translate(6px)}}@keyframes float{50%{transform:translateY(-8px)}}.banner{font-weight:900;font-size:calc(clamp(18px, 2.4vw, 26px) * var(--text-scale));box-shadow:var(--shadow);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:12px;max-width:94vw;padding:12px 28px 12px 14px;animation:.4s both rise-in;display:flex;position:absolute;top:88px;left:50%;transform:translate(-50%)}.banner .bi{flex:none;width:44px;height:44px}.banner .count{background:var(--world);color:#fff;border-radius:999px;padding:2px 12px;font-size:.85em}.float-next{right:max(24px, env(safe-area-inset-right));bottom:max(24px, env(safe-area-inset-bottom));animation:.4s cubic-bezier(.3,1.6,.5,1) both pop-in;position:absolute}.choice-wrap{background:radial-gradient(circle at 50% 40%,#ffffff26,#140e3ca6);flex-direction:column;justify-content:center;align-items:center;gap:26px;padding:90px 16px 20px;animation:.3s both fade-in;display:flex;position:absolute;inset:0}.choice-prompt{font-size:calc(clamp(22px, 3vw, 34px) * var(--text-scale));text-align:center;max-width:900px;box-shadow:var(--shadow);background:#fff;border-radius:30px;align-items:center;gap:16px;padding:18px 30px;font-weight:900;animation:.4s both pop-in;display:flex}.choice-prompt .bi{flex:none;width:64px;height:64px}.choices{flex-wrap:wrap;justify-content:center;gap:22px;display:flex}.card-btn{font:inherit;width:clamp(200px,27vw,290px);min-height:250px;box-shadow:0 8px 0 var(--world-dark), 0 18px 34px #0000004d;cursor:pointer;background:#fff;border:0;border-radius:30px;flex-direction:column;align-items:center;gap:12px;padding:0 0 20px;transition:transform .15s,box-shadow .15s;animation:.5s cubic-bezier(.3,1.6,.5,1) both pop-in;display:flex;overflow:hidden}.card-btn:nth-child(2){animation-delay:80ms}.card-btn:nth-child(3){animation-delay:.16s}.card-btn:hover{transform:translateY(-8px)rotate(-1deg)}.card-btn:active{box-shadow:0 3px 0 var(--world-dark), 0 8px 14px #0000004d;transform:translateY(4px)}.card-btn .top{background:linear-gradient(160deg, var(--world-light), #fff);place-items:center;width:100%;height:140px;display:grid;position:relative}.card-btn .letter{background:var(--world);color:#fff;border-radius:50%;place-items:center;width:42px;height:42px;font-size:22px;font-weight:900;display:grid;position:absolute;top:12px;left:14px}.card-btn .ci{width:110px;height:110px;animation:3s ease-in-out infinite float}.card-btn .label{font-size:calc(clamp(18px, 2.2vw, 24px) * var(--text-scale));text-align:center;padding:0 16px;font-weight:900;line-height:1.25}.card-btn.picked{box-shadow:0 0 0 8px var(--accent), 0 18px 34px #0000004d;transform:scale(1.06)}.card-btn.dim{opacity:.3;transform:scale(.94)}.big-icon{width:150px;height:150px;margin:0 auto 10px;animation:.6s cubic-bezier(.3,1.8,.5,1) both pop-in,3s ease-in-out .6s infinite float}.discover-tag{background:var(--world);color:#fff;letter-spacing:.04em;border-radius:999px;width:max-content;margin:-54px auto 18px;padding:8px 20px;font-size:18px;font-weight:900;display:block}.chips{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.chip{font-weight:900;font-size:calc(19px * var(--text-scale));background:#fff;border:3px solid #efeaff;border-radius:999px;align-items:center;gap:8px;padding:8px 16px 8px 8px;animation:.4s both pop-in;display:inline-flex}.chip .ci{width:36px;height:36px}.chip.up{background:#effbf3;border-color:#bfeccf}.chip.down{background:#fff4ee;border-color:#ffd8c4}.learn-card{border:6px solid var(--accent);text-align:center;background:linear-gradient(170deg,#fffbe6,#fff)}.learn-card .ribbon{background:var(--accent);font-weight:900;font-size:calc(24px * var(--text-scale));border-radius:999px;align-items:center;gap:10px;margin-bottom:14px;padding:8px 24px 8px 10px;display:inline-flex}.learn-card .ribbon .bi{width:44px;height:44px}.learn-card .lead{font-size:calc(clamp(22px, 3vw, 32px) * var(--text-scale))}.sticker{width:170px;height:170px;margin:0 auto;animation:.9s cubic-bezier(.3,1.6,.5,1) both sticker-in;position:relative}.sticker .ring{background:conic-gradient(var(--world), var(--accent), var(--pink), var(--world));border-radius:50%;animation:6s linear infinite spin;position:absolute;inset:0}.sticker .inner{background:#fff;border-radius:50%;place-items:center;padding:26px;display:grid;position:absolute;inset:12px}@keyframes sticker-in{0%{transform:scale(0)rotate(-180deg)}}@keyframes spin{to{transform:rotate(1turn)}}.reward-list{gap:10px;margin:18px 0 4px;display:grid}.reward{font-weight:900;font-size:calc(20px * var(--text-scale));background:#fff;border-radius:20px;align-items:center;gap:14px;padding:10px 16px;animation:.4s both rise-in;display:flex;box-shadow:0 4px #eee8fb}.reward .ri{flex:none;width:46px;height:46px}.reward .plus{color:var(--green-dark);margin-left:auto}.reward.special{background:linear-gradient(90deg,#fff6c9,#fff)}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{border-radius:3px;width:12px;height:18px;animation:linear forwards confetti-fall;position:absolute;top:-20px}@keyframes confetti-fall{to{transform:translate3d(var(--dx), 110vh, 0) rotate(var(--rot))}}.toast{box-shadow:var(--shadow);font-weight:900;font-size:calc(clamp(17px, 2.2vw, 23px) * var(--text-scale));background:#fff;border-radius:999px;align-items:center;gap:12px;max-width:92vw;padding:10px 24px 10px 10px;animation:3.2s both toast;display:flex;position:absolute;top:92px;left:50%;transform:translate(-50%);pointer-events:none!important}.toast .ti{flex:none;width:44px;height:44px}@keyframes toast{0%{opacity:0;transform:translate(-50%,-20px)}10%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}.title-screen{text-align:center;color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:20px;display:flex;position:absolute;inset:0}.logo{letter-spacing:-.02em;text-shadow:0 6px #3b2b9a,0 14px 30px #0006;font-size:clamp(44px,8vw,96px);font-weight:900;line-height:.95;animation:.8s cubic-bezier(.3,1.6,.5,1) both pop-in}.logo span{background:linear-gradient(90deg,#3fbf7f,#5b7cfa,#ff8a5c,#f5b82e,#2fb5e8,#ff6b8b,#9b6bff);color:#0000;filter:drop-shadow(0 6px #3b2b9a);text-shadow:none;-webkit-background-clip:text;background-clip:text;display:inline-block}.tagline{opacity:.9;font-size:clamp(16px,2.2vw,24px);font-weight:800;animation:1s .4s both fade-in}.door-row{gap:clamp(6px,1.2vw,14px);margin:6px 0 10px;display:flex}.door-row .d{width:clamp(38px,5vw,62px);height:clamp(60px,8vw,100px);animation:.6s cubic-bezier(.3,1.5,.5,1) both rise-in}.char-pick{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.char-pick .card-btn{min-height:280px;box-shadow:0 8px #d8d2ee,0 18px 34px #0003}.char-pick .card-btn .top{background:linear-gradient(170deg,#ece2ff,#fff);height:210px}.char-pick .card-btn .ci{width:120px;height:200px}.names{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.names .chip{cursor:pointer;min-height:56px;font-size:calc(22px * var(--text-scale));padding:12px 22px}.names .chip.on{background:var(--accent);border-color:var(--accent-dark)}.name-input{font:900 calc(24px * var(--text-scale)) var(--font);text-align:center;width:min(380px,80vw);min-height:60px;color:var(--ink);-webkit-user-select:text;user-select:text;border:4px solid #e4ddfb;border-radius:999px;outline:none;padding:10px 22px}.name-input:focus{border-color:var(--primary)}.setting-row{font-weight:900;font-size:calc(22px * var(--text-scale));border-bottom:3px dashed #eee8fb;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.seg{background:#efeaff;border-radius:999px;gap:4px;padding:5px;display:flex}.seg button{font:900 calc(19px * var(--text-scale)) var(--font);min-width:80px;min-height:50px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:999px}.seg button.on{color:var(--ink);background:#fff;box-shadow:0 3px #d8d2ee}.book{background:linear-gradient(90deg,#fffaf2 49.6%,#e9e1ff 50%,#fffaf2 50.4%);width:min(1060px,96vw);padding:30px 34px}.book h3{font-size:calc(24px * var(--text-scale));margin:0 0 12px;font-weight:900}.skill-row{grid-template-columns:48px 1fr;align-items:center;gap:12px;margin-bottom:10px;display:grid}.skill-row .si{width:48px;height:48px}.skill-row .nm{font-weight:900;font-size:calc(17px * var(--text-scale));justify-content:space-between;display:flex}.skill-row .lv{color:var(--ink-soft)}.bar{background:#ece6fb;border-radius:999px;height:14px;margin-top:4px;overflow:hidden}.bar b{border-radius:inherit;background:linear-gradient(90deg,#3fbf7f,#8be0a4);height:100%;transition:width .8s;display:block}.level-dots{gap:4px;margin-top:4px;display:flex}.level-dots i{background:#ece6fb;border-radius:50%;width:14px;height:14px}.level-dots i.on{background:var(--accent)}.sticker-row{grid-template-columns:40px 1fr auto;align-items:center;gap:8px;margin-bottom:8px;display:grid}.sticker-row .w{background:#fff;border-radius:50%;width:40px;height:40px;padding:4px;box-shadow:0 2px 6px #00000026}.sticker-row .cnt{color:#6b6385;font-size:.85rem}.stickers{grid-template-columns:repeat(10,1fr);gap:4px;display:grid}.st{aspect-ratio:1;background:#f1edfb;border:2px dashed #d8d0f3;border-radius:50%;place-items:center;padding:4px;display:grid}.st.done{border:2px solid #fff;box-shadow:0 2px 6px #00000026}.st:not(.done) svg{opacity:.25;filter:grayscale()}.mg{background:linear-gradient(170deg, var(--world-light), var(--paper) 45%);flex-direction:column;gap:16px;width:min(1100px,96vw);min-height:min(600px,88vh);display:flex}.mg-head{font-size:calc(clamp(20px, 2.6vw, 28px) * var(--text-scale));align-items:center;gap:14px;padding-right:60px;font-weight:900;display:flex}.mg-head .bi{flex:none;width:56px;height:56px}.mg-hint{text-align:center;min-height:34px;font-weight:800;font-size:calc(20px * var(--text-scale));color:var(--ink-soft)}.mg-area{flex-direction:column;flex:1;justify-content:center;gap:18px;display:flex;position:relative}.tile{font:inherit;cursor:pointer;font-weight:900;font-size:calc(19px * var(--text-scale));color:var(--ink);touch-action:none;background:#fff;border:0;border-radius:24px;flex-direction:column;align-items:center;gap:8px;padding:12px;transition:transform .15s,box-shadow .15s,opacity .3s;display:flex;box-shadow:0 6px #ddd5f3,0 10px 20px #0000001a}.tile .ti{pointer-events:none;width:76px;height:76px}.tile.sel{box-shadow:0 0 0 6px var(--accent), 0 14px 24px #00000026;transform:translateY(-6px)scale(1.05)}.tile.ok{background:#e8fbef;box-shadow:0 6px #9fdcb5}.tile.gone{opacity:0;pointer-events:none;transform:scale(.4)}.wiggle{animation:.45s wiggle}@keyframes wiggle{20%{transform:translate(-10px)rotate(-4deg)}40%{transform:translate(10px)rotate(4deg)}60%{transform:translate(-6px)rotate(-2deg)}80%{transform:translate(6px)}}.items-row{flex-wrap:wrap;justify-content:center;gap:14px;min-height:120px;display:flex}.items-row .tile{width:110px}.bins{grid-auto-columns:1fr;grid-auto-flow:column;gap:16px;display:grid}.bin{cursor:pointer;min-height:190px;font:inherit;font-weight:900;font-size:calc(20px * var(--text-scale));color:var(--ink);background:#ffffffd9;border:5px dashed #d8d0f3;border-radius:28px;flex-direction:column;align-items:center;gap:6px;padding:12px;transition:transform .15s,border-color .15s,background .15s;display:flex}.bin .bi{pointer-events:none;width:90px;height:90px}.bin.hover{border-color:var(--green);background:#effbf3;transform:scale(1.04)}.bin .got{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.bin .got svg{width:34px;height:34px;animation:.35s both pop-in}.drag-ghost{z-index:100;pointer-events:none;filter:drop-shadow(0 12px 14px #0000004d);width:100px;height:100px;position:fixed;transform:translate(-50%,-50%)scale(1.15)rotate(-6deg)}.slots{grid-auto-columns:1fr;grid-auto-flow:column;gap:14px;display:grid}.slot{min-height:150px;font-weight:900;font-size:calc(18px * var(--text-scale));text-align:center;background:#ffffffb3;border:5px dashed #d8d0f3;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;display:flex;position:relative}.slot .n{background:var(--world);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:18px;display:grid;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.slot.filled{border-style:solid;border-color:var(--green);background:#effbf3}.slot .si{width:64px;height:64px;animation:.35s both pop-in}.seq-cards{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.seq-cards .tile{width:170px}.match-cols .col{flex-direction:column;gap:14px;display:flex}.match-cols .tile{font-size:calc(24px * var(--text-scale));flex-direction:row;justify-content:flex-start;gap:16px;padding:10px 20px}.match-cols .tile .ti{width:56px;height:56px}.match-cols .tile.m1{background:#e8fbef;box-shadow:0 6px #9fdcb5}.match-cols .tile.m2{background:#e7efff;box-shadow:0 6px #a9bff5}.match-cols .tile.m3{background:#fff4d6;box-shadow:0 6px #f3d48a}.pay-total{text-align:center;font-size:calc(clamp(28px, 4vw, 44px) * var(--text-scale));font-weight:900}.pay-total.exact{color:var(--green-dark)}.pay-total.over{color:#e2574c}.wallet{background:linear-gradient(#ffb27a,#ff8a5c);border-radius:30px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-height:150px;padding:18px;display:flex;position:relative;box-shadow:inset 0 -10px #0000001a}.wallet .lbl{background:#fff;border-radius:999px;padding:4px 16px;font-size:17px;font-weight:900;position:absolute;top:-16px;left:24px}.coin-btn{cursor:pointer;background:0 0;border:0;width:92px;height:92px;padding:0;transition:transform .15s;animation:.3s both pop-in;position:relative}.coin-btn:active{transform:scale(.9)}.coin-btn b{font:900 26px var(--font);color:#7a4d00;text-shadow:0 2px #fff9;place-items:center;padding-top:4px;display:grid;position:absolute;inset:0}.coin-btn.small{width:74px;height:74px}.tap-area{background:linear-gradient(#bfefff,#e6fbff 60%,#a6e39a 60%);border-radius:28px;flex:1;min-height:340px;position:relative;overflow:hidden}.tap-area.indoor{background:linear-gradient(#e3dcff,#f4f0ff 65%,#c9a37a 65%)}.tap-target{cursor:pointer;background:0 0;border:0;width:clamp(110px,15vw,170px);height:clamp(165px,22vw,255px);padding:0;animation:2.6s ease-in-out infinite float;position:absolute;transform:translate(-50%,-50%)}.tap-target.coin{width:clamp(70px,9vw,96px);height:clamp(70px,9vw,96px)}.tap-target.done{cursor:default;animation:none}.tap-target.flying{opacity:0;transition:left .6s cubic-bezier(.5,-.3,.6,1),top .6s cubic-bezier(.5,-.3,.6,1),transform .6s,opacity .6s;transform:translate(-50%,-50%)scale(.3)}.collector{width:130px;height:130px;position:absolute;bottom:6%;left:50%;transform:translate(-50%)}.collector.gulp{animation:.4s bump}.drop{pointer-events:none;width:22px;height:30px;animation:.7s ease-in forwards drop;position:absolute}@keyframes drop{0%{opacity:1;transform:translateY(-80px)}to{opacity:0;transform:translateY(20px)}}.mg-done{background:#fff9;border-radius:36px;place-items:center;animation:.3s both fade-in;display:grid;position:absolute;inset:0}.mg-done .burst{color:var(--green-dark);flex-direction:column;align-items:center;gap:6px;font-size:clamp(40px,7vw,76px);font-weight:900;animation:.5s cubic-bezier(.3,1.8,.5,1) both pop-in;display:flex}.mg-done .burst .bi{width:130px;height:130px}.mission-card{text-align:center;width:min(560px,94vw)}.mission-card .num{background:var(--world);color:#fff;font-weight:900;font-size:calc(18px * var(--text-scale));border-radius:999px;margin-bottom:8px;padding:6px 18px;display:inline-block}.loading{color:#fff;place-items:center;font-size:24px;font-weight:900;display:grid;position:absolute;inset:0}.loading .dots i{background:#fff;border-radius:50%;width:14px;height:14px;margin:0 5px;animation:.9s ease-in-out infinite float;display:inline-block}.loading .dots i:nth-child(2){animation-delay:.15s}.loading .dots i:nth-child(3){animation-delay:.3s}@media (max-height:520px){.card{padding:20px 24px}.card-btn{min-height:200px}.card-btn .top{height:100px}.card-btn .ci{width:80px;height:80px}.big-icon{width:100px;height:100px}.sticker{width:120px;height:120px}.mg{min-height:0}.tap-area{min-height:220px}.bin{min-height:140px}.bin .bi{width:60px;height:60px}.choice-wrap{gap:14px;padding-top:76px}.banner{top:78px}}@media (max-width:700px){.book-grid{grid-template-columns:1fr}.book{background:var(--paper)}}body.reduce-motion *,body.reduce-motion :before,body.reduce-motion :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.big-icon,.ci,.bi,.ti,.pi,.si,.ri,.d,.collector{display:block}.banner .count:empty{display:none}@media (max-height:520px){.pill{height:46px;font-size:18px}.pill .pi{width:34px;height:34px}.icon-btn{width:52px;height:52px;padding:8px}.card{border-radius:28px}.mg{gap:8px;min-height:0}.mg-head{font-size:18px}.mg-head .bi{width:38px;height:38px}.mg-area{gap:10px}.tile .ti{width:48px;height:48px}.tile{border-radius:18px;padding:8px;font-size:15px}.items-row{min-height:0}.items-row .tile{width:76px}.slot{min-height:84px;font-size:14px}.slot .si{width:38px;height:38px}.seq-cards .tile{width:140px}.match-cols .tile{padding:6px 14px;font-size:18px}.match-cols .tile .ti{width:36px;height:36px}.match-cols .col{gap:8px}.coin-btn{width:64px;height:64px}.coin-btn b{font-size:19px}.coin-btn.small{width:54px;height:54px}.wallet{min-height:90px;padding:12px}.pay-total{font-size:26px}.choice-wrap{gap:10px;padding:64px 12px 10px}.choice-prompt{padding:8px 18px;font-size:19px}.choice-prompt .bi{width:40px;height:40px}.card-btn{gap:6px;min-height:160px;padding-bottom:12px}.card-btn .top{height:84px}.card-btn .ci{width:64px;height:64px}.card-btn .label{font-size:16px}.card-btn .letter{width:32px;height:32px;font-size:17px}.dialog .box{min-height:96px;padding:16px 22px 16px 40px}.dialog .text{font-size:20px}.dialog .portrait{width:84px;height:84px}.card .lead{margin-bottom:10px;font-size:19px}.card h2{font-size:24px}.card .actions{margin-top:12px}.reward{padding:6px 12px;font-size:16px}.reward .ri{width:34px;height:34px}.reward-list{gap:6px;margin-top:8px}.btn{min-height:50px;padding:8px 22px;font-size:18px}.banner{padding:8px 18px 8px 10px;font-size:17px;top:70px}.banner .bi{width:32px;height:32px}.toast{top:70px}.book{padding:20px}.skill-row{margin-bottom:4px}.sticker-row{grid-template-columns:30px 1fr auto;gap:4px}.sticker-row .w{width:30px;height:30px}.tap-area{min-height:200px}.tap-target{width:90px;height:135px}.bin{min-height:110px;font-size:15px}.bin .bi{width:48px;height:48px}.big-icon{width:84px;height:84px}.sticker{width:100px;height:100px}.sticker .inner{padding:16px}.char-pick .card-btn .top{height:150px}.char-pick .card-btn .ci{width:84px;height:140px}.char-pick .card-btn{min-height:200px}.names .chip{min-height:48px;padding:8px 16px;font-size:18px}.name-input{min-height:50px;font-size:19px}.door-row .d{width:34px;height:54px}}.items-row .tile.labeled{width:150px;font-size:calc(15px * var(--text-scale));text-align:center;line-height:1.2}@media (max-height:520px){.items-row .tile.labeled{width:112px;font-size:12px}}.task-pill{top:calc(max(12px, env(safe-area-inset-top)) + 66px);left:max(12px, env(safe-area-inset-left));cursor:pointer;font-family:var(--font);color:var(--ink);border:0;animation:.4s both pop-in;position:absolute}.task-pill.all-done{background:#e8fbef}.pill.day .pi{width:36px;height:36px}@media (max-height:520px){.task-pill{top:calc(max(12px, env(safe-area-inset-top)) + 54px)}}@media (max-width:900px){.pill.day span:last-child{display:none}}.hold-btn{-webkit-user-select:none;user-select:none;touch-action:none;position:relative;overflow:hidden}.hold-ring{background:conic-gradient(var(--accent) var(--p,0deg), #ffffff59 0);border-radius:50%;flex:none;width:34px;height:34px}.parent-card{width:min(900px,96vw)}.parent .tabs{flex-wrap:wrap;justify-content:center;width:max-content;max-width:100%;margin:0 auto 16px}.parent-body{gap:10px;display:grid}.parent .summary{font-weight:900;font-size:calc(19px * var(--text-scale));text-align:center;margin:0 0 6px}.parent-skills{grid-template-columns:1fr 1fr;gap:4px 24px;display:grid}.parent .note{color:var(--ink-soft);font-weight:700;font-size:calc(16px * var(--text-scale));text-align:center;margin:8px 0 0}.learned{background:#fff;border-radius:20px;align-items:flex-start;gap:14px;padding:12px 16px;display:flex;box-shadow:0 4px #eee8fb}.learned b{font-size:calc(18px * var(--text-scale))}.learned p{font-weight:700;font-size:calc(16px * var(--text-scale));margin:4px 0 0;line-height:1.4}.learned.locked{opacity:.55}.btn.danger{background:#e2574c;box-shadow:0 6px #b23a31,0 10px 20px #0003}@media (max-width:700px){.parent-skills{grid-template-columns:1fr}}body.high-contrast{--ink:#000;--ink-soft:#1a1a1a;--paper:#fff}body.high-contrast .card,body.high-contrast .dialog .box,body.high-contrast .pill,body.high-contrast .banner,body.high-contrast .toast,body.high-contrast .card-btn,body.high-contrast .tile,body.high-contrast .choice-prompt{color:#000;background:#fff;outline:3px solid #000}body.high-contrast .btn{outline:3px solid #000}body.high-contrast .backdrop{background:#000000bf}.learned .ri{flex:none;width:44px;height:44px}.char-pick.pets .card-btn{width:clamp(150px,19vw,210px);min-height:230px}.char-pick.pets .card-btn .top{height:150px}.char-pick.pets .card-btn .ci{width:120px;height:120px}.char-pick .label small{color:var(--ink-soft);margin-top:4px;font-size:.72em;font-weight:800;display:block}.card.wide{width:min(980px,96vw)}.doa-card .arab-latin{font-size:calc(clamp(22px, 3vw, 30px) * var(--text-scale));color:#1f6f4a;text-align:center;margin:6px 0 10px;font-style:italic;font-weight:900}.pet-row{gap:8px;display:flex}.pet-row button:not(.btn){cursor:pointer;background:#efeaff;border:3px solid #0000;border-radius:18px;width:58px;height:58px;padding:4px}.pet-row button.on:not(.btn){border-color:var(--accent-dark);background:#fff6c9}@media (max-height:520px){.char-pick.pets .card-btn{min-height:170px}.char-pick.pets .card-btn .top{height:100px}.char-pick.pets .card-btn .ci{width:80px;height:80px}}.char-pick .card-btn{width:clamp(160px,19vw,220px)}.char-pick.chars{grid-template-columns:repeat(6,1fr);gap:12px;display:grid}.char-pick.chars .card-btn{width:auto;min-height:0;padding-bottom:12px}.char-pick.chars .card-btn .top{height:128px}.char-pick.chars .card-btn .ci{width:72px;height:120px}.char-pick.chars .card-btn .label{font-size:calc(17px * var(--text-scale))}@media (max-height:520px){.char-pick.chars{gap:8px}.char-pick.chars .card-btn .top{height:74px}.char-pick.chars .card-btn .ci{width:42px;height:70px}.char-pick.chars .card-btn .label{font-size:13px}}.btn.small{font-size:calc(16px * var(--text-scale));gap:6px;min-height:48px;padding:8px 16px}.btn.small .bi{width:26px;height:26px}.card .lead.small{font-size:calc(17px * var(--text-scale))}.card .num{background:var(--world);color:#fff;font-weight:900;font-size:calc(16px * var(--text-scale));border-radius:999px;margin-bottom:8px;padding:6px 16px;display:inline-block}.card .note{font-size:calc(14px * var(--text-scale));color:var(--ink-soft);text-align:center}.badge{min-height:48px;color:var(--green-dark);background:#e9fbe9;border-radius:999px;align-items:center;padding:6px 14px;font-weight:900;display:inline-flex}.h-ic{vertical-align:middle;width:40px;height:40px;margin-right:8px;display:inline-block}.card h2 .h-ic svg{width:100%;height:100%;display:block}.card.pet-house{width:min(980px,96vw)}.pet-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:12px 0;display:grid}.pet-card{background:#fff;border:3px solid #0000;border-radius:24px;flex-direction:column;gap:6px;padding:12px;display:flex;box-shadow:0 4px #ece6fb}.pet-card.active{border-color:var(--green)}.pet-top{background:linear-gradient(#e9f8ff,#fff6dc);border-radius:18px;place-items:end center;height:110px;display:grid}.pet-pic{width:100px;height:100px;transform:scale(var(--grow,1));transform-origin:bottom;display:block}.pet-pic svg{width:100%;height:100%;display:block}.stage-egg .pet-pic{animation:1.4s ease-in-out infinite egg-wobble}@keyframes egg-wobble{0%,to{rotate:-6deg}50%{rotate:6deg}}.pet-title{font-weight:900;font-size:calc(20px * var(--text-scale));align-items:center;gap:6px;display:flex}.pet-title .mini{cursor:pointer;background:#f1edfb;border:0;border-radius:50%;width:40px;height:40px;margin-left:auto}.name-input.small{width:100%;min-height:40px;padding:6px 10px;font-size:18px}.sex{font-size:1.1em}.sex.m{color:#3b82f6}.sex.f{color:#ec4899}.pet-stage{font-size:calc(14px * var(--text-scale));color:var(--ink-soft);justify-content:space-between;align-items:center;font-weight:800;display:flex}.grow-dots{gap:4px;display:flex}.grow-dots i{background:#ece6fb;border-radius:50%;width:12px;height:12px}.grow-dots i.on{background:var(--green)}.pet-care{font-size:calc(13px * var(--text-scale));flex-wrap:wrap;gap:6px;display:flex}.pet-care span{background:#fff1f1;border-radius:999px;padding:2px 10px}.pet-care span.ok{background:#e9fbe9}.pet-note{font-size:calc(13px * var(--text-scale));color:var(--ink-soft);margin:0}.pet-note.love{color:#db2777;font-weight:900}.pet-actions{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.char-pick .card-btn.on{outline:4px solid var(--green)}.card.school-card{width:min(860px,96vw)}.grade-pick{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px;display:grid}.grade-btn{font:inherit;cursor:pointer;background:#fff;border:0;border-radius:24px;flex-direction:column;align-items:center;gap:2px;min-height:96px;padding:14px;display:flex;box-shadow:0 5px #ece6fb}.grade-btn b{color:#c2562a;font-size:40px}.grade-btn.on{outline:4px solid #ff8a5c}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:12px 0;display:grid}.subject-btn,.unit-btn{font:inherit;cursor:pointer;background:#fff;border:0;border-radius:22px;transition:transform .1s;box-shadow:0 5px #ece6fb}.subject-btn:hover,.unit-btn:hover{transform:translateY(-2px)}.subject-btn{text-align:center;flex-direction:column;align-items:center;gap:4px;min-height:140px;padding:16px 10px;display:flex}.subject-btn .emoji{font-size:44px}.subject-btn b{font-size:calc(18px * var(--text-scale))}.subject-btn small,.unit-btn small{color:var(--ink-soft)}.unit-list{flex-direction:column;gap:10px;margin:12px 0;display:flex}.unit-btn{text-align:left;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;min-height:64px;padding:10px 16px;display:grid}.unit-btn .emoji{font-size:34px}.unit-btn .ut{flex-direction:column;display:flex}.unit-btn .ui-ic{width:36px;height:36px}.stars i{color:#ddd6f3;font-size:24px;font-style:normal}.stars i.on{color:#f5b82e}.lesson-head{justify-content:center;align-items:center;gap:10px;display:flex}.lesson-head h2{margin:0}.emoji.big{font-size:48px}.rich{font-size:calc(19px * var(--text-scale));line-height:1.5}.rich p{margin:8px 0}.rich ul{margin:6px 0;padding-left:24px}.lesson-box{border-radius:18px;margin:10px 0;padding:10px 16px}.lesson-box.example{background:#eaf6ff}.lesson-box.fact{background:#fff4cc}.lesson-box .rich{font-size:calc(17px * var(--text-scale))}.lesson-dots{justify-content:center;gap:6px;margin:10px 0;display:flex}.lesson-dots i{background:#ece6fb;border-radius:50%;width:12px;height:12px}.lesson-dots i.done{background:#b9e8c9}.lesson-dots i.on{background:#ff8a5c;border-radius:999px;width:28px}.q-top{text-align:center}.q-text{font-size:calc(clamp(22px, 3vw, 30px) * var(--text-scale))!important}.opt-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:12px 0;display:grid}.opt-grid.two{grid-template-columns:1fr 1fr}.opt{font:inherit;font-weight:800;font-size:calc(19px * var(--text-scale));cursor:pointer;min-height:60px;color:var(--ink);background:#fff;border:3px solid #e4ddf8;border-radius:18px;padding:10px 14px}.opt.on,.opt.sel{background:#fff1e9;border-color:#ff8a5c}.opt.right{border-color:var(--green);background:#e9fbe9!important}.opt.wrong{border-color:#ffb3b3;background:#fff1f1!important}.opt[disabled]{cursor:default}.count-row{text-align:center;letter-spacing:6px;font-size:40px;line-height:1.4}.order-slots{flex-wrap:wrap;gap:8px;padding-left:24px;display:flex}.order-slots li{background:#f6f3ff;border-radius:12px;min-width:80px;padding:6px 12px;font-weight:800}.order-slots li.filled{background:#fff1e9}.match-cols{grid-template-columns:1fr 1fr;gap:16px;display:grid}.match-cols>div{flex-direction:column;gap:8px;display:flex}.q-feedback{text-align:center}.q-feedback>b{font-size:calc(24px * var(--text-scale));display:block}.q-ok .q-feedback>b{color:var(--green-dark)}.q-no .q-feedback>b{color:#c2562a}.q-feedback .rich{text-align:left;background:#f6f3ff;border-radius:16px;padding:6px 14px}@media (max-width:640px){.grade-pick{grid-template-columns:repeat(2,1fr)}.opt-grid{grid-template-columns:1fr}.opt-grid.two,.pet-grid{grid-template-columns:1fr 1fr}.pet-top{height:84px}.pet-pic{width:76px;height:76px}}.park-bar{left:50%;bottom:max(14px, env(safe-area-inset-bottom));z-index:20;flex-wrap:wrap;justify-content:center;gap:10px;width:max-content;max-width:96vw;display:flex;position:fixed;transform:translate(-50%)}.card.pet-one{width:min(380px,94vw);padding:24px}.card.pet-one .pet-card{box-shadow:none}@media (max-width:640px){.park-bar .btn{min-height:48px;padding:8px 14px;font-size:15px}}.pet-sheet{left:0;right:0;bottom:max(12px, env(safe-area-inset-bottom));width:min(720px,96vw);box-shadow:var(--shadow);pointer-events:auto;z-index:40;background:#fff;border-radius:26px;margin:0 auto;padding:14px 18px 16px;transition:transform .28s,opacity .28s;animation:.28s ease-out rise-in;position:absolute}.pet-sheet.working{opacity:0;pointer-events:none;transform:translateY(115%)}.pet-sheet-head{align-items:center;gap:14px;padding-right:44px;display:flex}.pet-sheet-head>div{flex-direction:column;flex:1;min-width:0;display:flex}.pet-sheet-head .pet-pic{flex:none;width:64px;height:64px}.pet-sheet-head .pet-name{font-size:calc(22px * var(--text-scale))}.pet-sheet-head .mood,.pet-sheet-head .stage{font-size:calc(14px * var(--text-scale));color:var(--ink-soft);font-weight:800}.pet-sheet-head .mood.happy{color:#16a34a}.pet-sheet-head .mood.sad{color:#db2777}.needs{grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0;display:grid}.need{font-weight:900;font-size:calc(14px * var(--text-scale));grid-template-rows:auto auto;grid-template-columns:30px 1fr;align-items:center;column-gap:8px;display:grid}.need .ni{grid-row:span 2;width:30px;height:30px}.need-bar,.mini-bar{background:#eee9f8;border-radius:999px;height:12px;display:block;overflow:hidden}.need-bar i,.mini-bar u{border-radius:inherit;background:#3fbf7f;height:100%;transition:width .6s;display:block}.need.mid .need-bar i{background:#f5b82e}.need.low .need-bar i{background:#ff6b8b}.need.low .need-label{color:#db2777}.care-actions{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.care-btn{min-height:64px;font-size:calc(15px * var(--text-scale));background:var(--world-light);color:var(--world-dark);flex-direction:column;gap:2px}.care-btn .bi{width:32px;height:32px}.pet-care span{flex-direction:column;gap:2px;min-width:70px;display:inline-flex}.pet-care span.low{background:#ffe4ec}.mini-bar{width:64px;height:7px}.pet-care span.low .mini-bar u{background:#ff6b8b}.paw-badge{color:#db2777;background:#ffe4ec;border-radius:999px;align-items:center;gap:2px;margin-left:6px;padding:0 8px 0 4px;display:inline-flex}.paw-badge .pi{width:22px!important;height:22px!important}@media (max-height:520px){.pet-sheet{padding:8px 12px 10px}.pet-sheet-head .pet-pic{width:44px;height:44px}.needs{margin:6px 0}.care-btn{min-height:50px}}.battle{background:linear-gradient(#f4efff,#ece2ff);border-radius:20px;align-items:center;gap:14px;margin:-4px 0 10px;padding:8px 12px;display:flex}.battle.boss{background:linear-gradient(#fff4d6,#ffe7a8)}.monster-wrap{flex:none;position:relative}.monster{width:76px;height:76px;animation:2.4s ease-in-out infinite float;display:block}.battle.boss .monster{width:92px;height:92px}.monster.hurt{animation:.5s monster-hurt}.monster.laugh{animation:.7s wiggle}.monster.defeated{animation:1.2s forwards monster-out}@keyframes monster-hurt{0%,to{opacity:1;transform:none}20%{opacity:.5;transform:translate(-8px)rotate(-8deg)}40%{opacity:1;transform:translate(8px)rotate(6deg)}60%{opacity:.6;transform:translate(-4px)}}@keyframes monster-out{to{opacity:0;transform:scale(.2)rotate(360deg)}}.pow{color:#ff5a5f;white-space:nowrap;opacity:0;pointer-events:none;text-shadow:0 2px #fff;font-size:20px;font-weight:900;position:absolute;top:0;left:50%;transform:translate(-50%)}.pow.show{animation:.8s ease-out pow}@keyframes pow{0%{opacity:0;transform:translate(-50%,10px)scale(.6)}25%{opacity:1;transform:translate(-50%,-14px)scale(1.2)}to{opacity:0;transform:translate(-50%,-34px)scale(1)}}.battle-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.monster-name{font-size:calc(16px * var(--text-scale))}.hp{background:#fff;border-radius:999px;height:14px;overflow:hidden;box-shadow:inset 0 0 0 2px #d8cdf5}.hp i{border-radius:inherit;background:linear-gradient(90deg,#ff6b8b,#ff8a5c);height:100%;transition:width .45s;display:block}.battle-row{font-weight:800;font-size:calc(14px * var(--text-scale));color:var(--ink-soft);align-items:center;gap:12px;display:flex}.combo{color:#e0a800}.combo.hot{color:#ff5a5f}.hearts{gap:2px;margin-left:auto;display:flex}.hearts i{opacity:.25;filter:grayscale();transition:opacity .3s,filter .3s}.hearts i.on{opacity:1;filter:none}.hearts .hi{width:24px;height:24px;display:block}.boss-btn{width:100%;min-height:64px;font:inherit;text-align:left;cursor:pointer;background:linear-gradient(#fff4d6,#ffe08a);border:0;border-radius:18px;align-items:center;gap:12px;margin-bottom:10px;padding:10px 14px;display:flex;box-shadow:0 4px #e0a800}.boss-btn .ui-ic{flex:none;width:48px;height:48px}.boss-btn .ut{flex-direction:column;flex:1;display:flex}.boss-btn.locked{color:var(--ink-soft);background:#f1eef8;box-shadow:0 4px #d8cdf5}.review-btn{width:100%;margin-top:10px}@media (max-height:520px){.monster{width:48px;height:48px}.battle.boss .monster{width:58px;height:58px}.battle{margin-bottom:6px;padding:4px 10px}}.account-row{color:#fff;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;margin-top:14px;font-weight:800;display:flex}.account-row small{text-align:center;opacity:.8;flex-basis:100%;font-weight:700}.account-row .who{align-items:center;gap:8px;display:inline-flex}.account-row .av{background:#fff;border-radius:50%;width:40px;height:40px;overflow:hidden}.account-row .av svg{width:100%;height:100%}.login-card input,.friends-card input,.chat-card input,.child-box input,.parent input[type=tel],.parent input[type=password]{width:100%}.login{flex-direction:column;gap:10px;display:flex}.google-btn{color:var(--ink);background:#fff;justify-content:center;text-decoration:none;box-shadow:0 4px #d8d2ee,inset 0 0 0 2px #e4def5}.or{text-align:center;color:var(--ink-soft);font-size:14px;font-weight:800}.form-error{color:#c0264d;min-height:1.2em;margin:0;font-weight:800}.link-btn{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;font-weight:900}.check-row{align-items:center;gap:10px;margin:8px 0;font-weight:800;display:flex}.check-row input{width:26px;height:26px}.char-pick.profiles{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.profile-btn{width:150px}.profile-btn .top{place-items:center;height:120px;display:grid}.profile-btn .top svg{width:96px;height:96px}.profile-btn.on{outline:4px solid var(--accent)}.profile-btn .plus{color:var(--primary);font-size:56px}.badge-n{color:#fff;background:#ff5a5f;border-radius:999px;place-items:center;min-width:24px;height:24px;padding:0 6px;font-size:14px;font-weight:900;display:grid;position:absolute;top:-6px;right:-6px}.icon-btn{position:relative}.friend-row .badge-n{position:static}.friends,.chat{flex-direction:column;gap:10px;display:flex}.friends h3,.parent h3{font-size:calc(16px * var(--text-scale));margin:8px 0 0}.my-code{background:var(--world-light);border-radius:18px;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 16px;font-weight:800;display:flex}.my-code .code{letter-spacing:6px;color:var(--world-dark);font-size:28px}.my-code small{color:var(--ink-soft);flex-basis:100%}.add-row{align-items:center;gap:8px;display:flex}.add-row input{flex:1;min-width:0}.code-input{text-transform:uppercase;letter-spacing:4px}.friend-row{font:inherit;text-align:left;background:#f7f4ff;border:0;border-radius:16px;align-items:center;gap:10px;width:100%;min-height:56px;padding:8px 10px;display:flex}.friend-row.clickable{cursor:pointer}.friend-row .av,.chat-head .av{background:#fff;border-radius:50%;flex:none;width:44px;height:44px;position:relative}.friend-row .av svg,.chat-head .av svg{width:100%;height:100%}.friend-row .dot{background:#c9c3dc;border:2px solid #fff;border-radius:50%;width:13px;height:13px;position:absolute;bottom:0;right:0}.friend-row .dot.on{background:#22c55e}.fr-name{flex-direction:column;display:flex}.fr-name small,.muted{color:var(--ink-soft);font-weight:700}.friend-row .spacer,.chat-head .spacer{flex:1}.friend-list{flex-direction:column;gap:8px;display:flex}.chat-head{align-items:center;gap:10px;padding-right:44px;display:flex}.chat-list{background:#f7f4ff;border-radius:18px;flex-direction:column;gap:8px;height:min(38vh,300px);padding:10px;display:flex;overflow-y:auto}.bubble{background:#fff;border-radius:18px;flex-direction:column;max-width:80%;padding:8px 14px;font-weight:700;display:flex;box-shadow:0 2px #e4def5}.bubble small{color:var(--ink-soft);align-self:flex-end;font-size:11px}.bubble.me{background:var(--primary);color:#fff;align-self:flex-end}.bubble.me small{color:#e5dcff}.bubble.thinking span{animation:.8s ease-in-out infinite alternate fade-in}.presets{flex-wrap:wrap;gap:6px;max-height:120px;display:flex;overflow-y:auto}.preset{background:var(--world-light);min-height:44px;color:var(--world-dark);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:8px 14px;font-weight:800}.preset.emoji{padding:4px 10px;font-size:22px}.seg.tabs.small button{padding:6px 10px;font-size:13px}.abul-btn{background:#e8f1ff}.abul-av{background:#e8f1ff!important;width:48px!important;height:48px!important}.note.warn{color:#b45309}.acc-box{background:#f7f4ff;border-radius:16px;flex-direction:column;padding:12px 16px;display:flex}.child-box{border:2px solid #ece6fb;border-radius:18px;flex-direction:column;gap:6px;margin:8px 0;padding:12px;display:flex}.child-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.logs{max-height:260px;font-size:14px;overflow-y:auto}.log-line{margin:2px 0}.log-qa{background:#f7f4ff;border-radius:12px;margin:6px 0;padding:6px 10px}.log-qa p{margin:2px 0}.log-qa.flagged{background:#fff1f2;border-left:4px solid #e11d48}.friend-row .ui-ic{flex:none;width:32px;height:32px}@media (max-height:520px){.friends-card,.chat-card{padding:14px 18px}.chat-list{height:26vh}.presets{max-height:22vh}.friends,.chat{gap:6px}.my-code .code{font-size:22px}.friend-row{min-height:48px;padding:4px 8px}.chat-card .note,.friends-card .note{margin:0;font-size:12px}}.quiz-card .battle{margin-right:52px}.mem-grid{grid-template-columns:repeat(var(--cols,4), minmax(0, 1fr));perspective:900px;gap:12px;width:min(560px,80vw,92vh);margin:0 auto;display:grid}.mem-card{aspect-ratio:1;cursor:pointer;transform-style:preserve-3d;background:0 0;border:0;min-height:72px;padding:0;transition:transform .35s;position:relative}.mem-card.flip{transform:rotateY(180deg)}.mem-back,.mem-front{backface-visibility:hidden;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;box-shadow:0 5px #d8cdf5}.mem-back{background:var(--world,#6b4fd8);color:#fff;font-size:38px;font-weight:900}.mem-front{background:#fff;padding:6px;transform:rotateY(180deg)}.mem-front .ti{width:58%;height:58%}.mem-front small{font-weight:800;font-size:calc(13px * var(--text-scale));text-align:center;line-height:1.1}.mem-card.found .mem-front{background:#e8fbef;box-shadow:0 5px #9fdcb5}.reduce-motion .mem-card{transition:none}.maze-wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;display:flex}.maze{grid-template-columns:repeat(var(--cols), 1fr);background:#4a3f7a;border-radius:18px;gap:3px;width:min(420px,70vw,62vh);padding:6px;display:grid}.mz{aspect-ratio:1;border:0;border-radius:8px;place-items:center;min-width:0;padding:0;display:grid}.mz.path{cursor:pointer;background:#fff7e0}.mz.wall{background:#2f2752}.mz-ic{grid-area:1/1;width:82%;height:82%}.mz-ic.hero{animation:.25s bump}.mz-pad{grid-template-areas:".up.""left.right"".down.";gap:6px;display:grid}.mz-arrow{background:var(--world-light);width:56px;height:56px;color:var(--world-dark);cursor:pointer;border:0;border-radius:16px;font-size:24px;box-shadow:0 4px #d8cdf5}.mz-arrow.up{grid-area:up}.mz-arrow.down{grid-area:down}.mz-arrow.left{grid-area:left}.mz-arrow.right{grid-area:right}.chapter-track{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.loading-pill{position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.shelf-card{width:min(980px,96vw)}.grade-tabs{width:max-content;max-width:100%;margin:0 auto 12px;overflow-x:auto}.book-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;display:grid}.book-btn{font:inherit;text-align:left;cursor:pointer;background:#fff;border:0;border-radius:18px;flex-direction:column;gap:6px;padding:10px;display:flex;box-shadow:0 5px #e4def5}.book-btn .cover{aspect-ratio:3/4;object-fit:cover;background:#f1eef8;border-radius:10px;width:100%}.book-btn .cover.ph{padding:30%}.book-btn b{font-size:calc(14px * var(--text-scale));line-height:1.2}.book-btn small{color:var(--ink-soft);font-weight:800}.book-btn.done small{color:#16a34a}.read-bar{background:#eee9f8;border-radius:999px;height:6px;display:block;overflow:hidden}.read-bar i{background:#3fbf7f;height:100%;display:block}.reader{z-index:60;color:#fff;pointer-events:auto;background:#2b2140;flex-direction:column;animation:.2s both fade-in;display:flex;position:absolute;inset:0}.reader-msg{margin:auto;font-size:22px;font-weight:900}.reader-top{padding:10px 14px;padding-top:max(10px, env(safe-area-inset-top));align-items:center;gap:10px;display:flex}.reader-title{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.reader-top .close-x{position:static}.reader-stage{touch-action:pan-y pinch-zoom;flex:1;place-items:center;min-height:0;display:grid;overflow:hidden}.reader-page{background:#fff;border-radius:4px;box-shadow:0 8px 30px #0006}.reader-bar{padding:10px 14px;padding-bottom:max(10px, env(safe-area-inset-bottom));align-items:center;gap:12px;display:flex}.reader-mid{flex-direction:column;flex:1;align-items:center;gap:4px;font-weight:800;display:flex}.reader-slider{accent-color:#ffd23f;width:100%}.choice-pick{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.chore{-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:10px;display:flex}.chore-step{font-weight:900;font-size:calc(clamp(18px, 2.4vw, 24px) * var(--text-scale));text-align:center;min-height:1.4em}.chore-stage{touch-action:none;place-items:center;width:min(560px,86vw);min-height:min(300px,46vh);display:grid}.chore-obj{aspect-ratio:1;touch-action:none;cursor:grab;background:radial-gradient(circle at 50% 55%,#fff 0 55%,#f3eefc 56% 100%);border:0;border-radius:32px;width:min(300px,44vh,70vw);padding:0;position:relative}.chore-obj.round{border-radius:50%}.chore-ic{pointer-events:none;width:76%;height:76%;position:absolute;inset:12%}.chore-obj.round .chore-ic{transform:rotate(var(--spin,0deg))}.chore-dirt{pointer-events:none;width:26%;height:26%;transition:opacity .15s;position:absolute;transform:translate(-50%,-50%)}.chore-tool{pointer-events:none;filter:drop-shadow(0 4px 4px #00000040);width:26%;height:26%;position:absolute;top:70%;left:70%;transform:translate(-50%,-50%)rotate(-15deg)}.chore-fx{pointer-events:none;width:22%;height:22%;animation:.8s ease-out forwards pow;position:absolute;transform:translate(-50%,-50%)}.chore-ring{border-radius:inherit;pointer-events:none;background:conic-gradient(#3fbf7f var(--p,0deg), transparent 0);position:absolute;inset:-8px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 9px),#000 0);mask:radial-gradient(farthest-side,#0000 calc(100% - 9px),#000 0)}.chore-obj.hold .chore-hold-fx{opacity:0;pointer-events:none;width:30%;height:30%;position:absolute;top:-6%;left:50%;transform:translate(-50%)}.chore-obj.hold.active .chore-hold-fx{opacity:1;animation:.8s ease-in-out infinite float}.chore-arrow{color:var(--world,#6b4fd8);opacity:.8;pointer-events:none;font-size:54px;font-weight:900;animation:1s ease-in-out infinite nudge;position:absolute}.chore-arrow.up{top:2%;left:50%;transform:translate(-50%)}.chore-arrow.down{bottom:2%;left:50%;transform:translate(-50%)}.chore-arrow.left{top:40%;left:2%}.chore-arrow.right{top:40%;right:2%}.chore-obj.swiped .chore-ic{animation:.35s bump}.chore-obj.tap.squish .chore-ic{animation:.25s bump}.chore-count{color:var(--ink-soft);font-size:20px;font-weight:900;position:absolute;bottom:6px;right:12px}.chore-drag{flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;display:flex}.chore-tray{flex-wrap:wrap;justify-content:center;gap:10px;max-width:260px;display:flex}.chore-item{touch-action:none;cursor:grab;z-index:2;background:#fff;border-radius:20px;width:84px;height:84px;position:relative;box-shadow:0 4px #e4def5}.chore-item .chore-ic{width:84%;height:84%;inset:8%}.chore-item.lift{z-index:10;transition:none;box-shadow:0 14px 24px #0003}.chore-item:not(.lift){transition:transform .2s}.chore-item.gone{visibility:hidden}.chore-target{aspect-ratio:1;background:radial-gradient(circle,#fff 0 60%,#f3eefc 61% 100%);border:4px dashed #d8cdf5;border-radius:50%;width:min(220px,34vh);position:relative}.chore-target.bump{animation:.3s bump}.chore-result{width:min(260px,40vh);height:min(260px,40vh);animation:.5s both pop-in}@media (max-height:520px){.chore-stage{min-height:200px}.chore-item{width:64px;height:64px}}.trick-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.room-bar{left:max(12px, env(safe-area-inset-left));bottom:max(12px, env(safe-area-inset-bottom));max-width:min(720px,70vw);box-shadow:var(--shadow);z-index:30;background:#ffffffeb;border-radius:22px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex;position:absolute}.room-bar.alone{box-shadow:none;background:#ffffffb3}.room-people{font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;min-height:44px;font-weight:900;display:flex}.room-people .av{background:#f1eef8;border:2px solid #fff;border-radius:50%;width:34px;height:34px;margin-right:-10px;overflow:hidden}.room-people .av svg{width:100%;height:100%}.room-people b{font-size:calc(14px * var(--text-scale));margin-left:14px}.mic-btn.on{color:#fff;box-shadow:0 0 0 calc(var(--lvl,0) * 10px) #ff5a5f59, 0 4px 0 #c0264d;background:#ff5a5f}.emote-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.preset.emoji.big{min-height:72px;font-size:40px}@media (max-height:520px){.room-bar{gap:4px;padding:4px 6px}}.friend-main{min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-height:48px;padding:0;display:flex}
