*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:'Nunito','Segoe UI',system-ui,sans-serif;background:#FFF8EE;color:#33312e;line-height:1.4}
#app{max-width:640px;margin:0 auto;padding:16px;min-height:100vh}
.boot{padding:40px;text-align:center;font-size:24px;font-weight:800;color:#3DA5F4}
h1{font-size:30px;color:#3DA5F4}
h2{font-size:20px;margin:6px 0;color:#33312e}
h3{font-size:16px;margin:4px 0}
p{margin:6px 0}
.tag{color:#7a756c}
.hero{text-align:center;padding:30px 10px}
.star{font-size:80px;animation:bob 2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-10px) rotate(4deg)}}
.homebtns{display:flex;flex-direction:column;gap:14px;margin-top:24px}
.btn{background:#3DA5F4;color:#fff;border:none;border-radius:16px;padding:14px 18px;font-size:17px;font-weight:800;cursor:pointer;font-family:inherit}
.btn:active{transform:scale(.97)}
.btn.big{padding:20px;font-size:20px;border-radius:22px}
.btn.alt{background:#5CC97A}
.btn.warn{background:#FF6B6B}
.btn.gold{background:#FFC93C;color:#5a4500}
.btn.ghost{background:#fff;color:#3DA5F4;border:2px solid #3DA5F4}
.btn.sm{padding:8px 12px;font-size:14px;border-radius:12px}
.card{background:#fff;border-radius:20px;padding:16px;margin:12px 0;box-shadow:0 4px 14px rgba(0,0,0,.06)}
.banner{border-radius:18px;padding:14px;margin:10px 0;font-weight:700;text-align:center}
.banner.ok{background:#e6f8ec;color:#2f7a44}
.banner.warn{background:#fff0d6;color:#9a6b00}
.banner.bad{background:#ffe3e3;color:#c0392b}
input,select{width:100%;padding:12px;border:2px solid #e3ddd0;border-radius:12px;font-size:16px;font-family:inherit;margin:6px 0;background:#fff}
label{font-weight:700;font-size:14px;display:block;margin-top:8px}
.row{display:flex;gap:8px;flex-wrap:wrap}
.row>*{flex:1}
.link{color:#3DA5F4;cursor:pointer;text-decoration:underline;font-weight:700;display:inline-block;margin-top:10px}
.err{color:#c0392b;font-weight:700;margin:8px 0}
.icons{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.iconbtn{aspect-ratio:1;border:4px solid #fff;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.12);position:relative}
.iconbtn .obj{font-size:34px;line-height:1}
.iconbtn .num{position:absolute;bottom:6px;right:8px;background:#fff;border-radius:10px;padding:1px 6px;font-weight:800;font-size:14px;color:#33312e}
.iconbtn:active{transform:scale(.95)}
.iconbtn.sel{outline:5px solid #5CC97A}
.kidwrap{text-align:center}
.topbar{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:18px;padding:10px 14px;margin-bottom:10px}
.points{background:#FFC93C;color:#5a4500;font-weight:900;border-radius:14px;padding:6px 12px;font-size:16px}
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.tile{background:#fff;border-radius:20px;padding:18px;text-align:center;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.06);font-weight:800}
.tile .big{font-size:46px;display:block}
.qcard{text-align:center;padding:24px}
.qtext{font-size:34px;font-weight:900;margin:14px 0;color:#3DA5F4}
.vis{font-size:30px;letter-spacing:2px;margin:8px 0}
.opts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:10px}
.opt{background:#5CC97A;color:#fff;border:none;border-radius:16px;padding:18px;font-size:24px;font-weight:900;cursor:pointer}
.fb{font-weight:900;font-size:18px;margin-top:10px;min-height:24px}
.fb.good{color:#2f7a44}
.fb.bad{color:#c0392b}
.bar{background:#eee;border-radius:10px;height:14px;overflow:hidden;margin:4px 0}
.bar>div{height:100%;background:#5CC97A}
.store{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.store .it{background:#fff;border-radius:16px;padding:12px;text-align:center;box-shadow:0 3px 8px rgba(0,0,0,.06)}
.store .it .e{font-size:38px}
.avatarbox{font-size:90px;position:relative;text-align:center;margin:10px 0}
.avatarbox .acc{font-size:30px;margin:0 2px}
.celebrate{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:50}
.celebrate .box{background:#fff;border-radius:24px;padding:30px;text-align:center;max-width:90%}
.celebrate .big{font-size:70px}
.small{font-size:13px;color:#7a756c}
.childrow{border-top:1px solid #f0ebe0;padding-top:10px;margin-top:10px}
.styles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:8px}
.styles .s{background:#3DA5F4;color:#fff;border:none;border-radius:16px;padding:16px;font-weight:800;cursor:pointer}
