:root{--ink:#23304a;--muted:#68738a;--paper:#fffdf8;--purple:#7557d9;--purple2:#9b7bea;--pink:#f276a9;--sky:#68bde7;--mint:#72cfaa;--gold:#f5c451;--orange:#f29b62;--shadow:0 16px 40px rgba(62,48,99,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Nunito',sans-serif;color:var(--ink);background:#f7f4ff;background-image:radial-gradient(circle at 12% 5%,#e7f7ff 0,transparent 28%),radial-gradient(circle at 88% 2%,#ffe9f2 0,transparent 26%),linear-gradient(180deg,#fbf9ff,#f5f8ff 55%,#fffaf3);min-height:100vh}.font-fredoka{font-family:'Fredoka',sans-serif}.hidden{display:none!important}button{font:inherit}.loading-screen{position:fixed;inset:0;z-index:100;background:#f8f5ff;display:grid;place-items:center;text-align:center;transition:.35s}.loading-orb{font-size:4rem;animation:bob 1.4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-12px)}}.shell{max-width:1180px;margin:auto;padding:20px 20px 110px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.profile{display:flex;align-items:center;gap:12px}.avatar-ring{width:64px;height:64px;position:relative;border-radius:22px;overflow:hidden;background:#ffe4f1;border:4px solid #fff;box-shadow:0 8px 22px rgba(80,65,130,.15)}.avatar-ring img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hello{font:700 clamp(1.35rem,3vw,1.85rem) 'Fredoka';margin:0}.subhello{margin:2px 0 0;color:var(--muted);font-weight:700}.top-actions{display:flex;align-items:center;gap:10px}.stat-pill{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #eee8ff;border-radius:18px;padding:10px 14px;font-weight:900;box-shadow:0 7px 20px rgba(75,58,110,.08)}.signout{border:0;background:#fff;color:#8b6e9e;border-radius:16px;padding:10px 13px;font-weight:900;cursor:pointer}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#7458d8,#9b78ea 55%,#ca8bdd);border-radius:32px;padding:clamp(24px,5vw,46px);color:#fff;box-shadow:0 22px 50px rgba(103,79,184,.28);margin-bottom:28px}.hero:after{content:'✦  ✧  ✦';position:absolute;right:5%;top:10%;font-size:3rem;opacity:.22;transform:rotate(10deg)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:1000;opacity:.88}.hero h1{font:700 clamp(2rem,6vw,3.7rem) 'Fredoka';max-width:700px;line-height:1.02;margin:8px 0 12px}.hero p{font-size:1.08rem;font-weight:700;max-width:620px;opacity:.92}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.primary-btn,.soft-btn{border:0;border-radius:18px;padding:14px 20px;font-weight:1000;cursor:pointer;transition:.2s}.primary-btn{background:#fff;color:#6547c6;box-shadow:0 9px 20px rgba(44,25,101,.2)}.soft-btn{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.28)}.primary-btn:hover,.soft-btn:hover,.world-card:hover,.quick-card:hover{transform:translateY(-3px)}.progress-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:30px}.progress-card{background:rgba(255,255,255,.8);border:1px solid #eee9fb;border-radius:22px;padding:16px;box-shadow:0 8px 25px rgba(70,55,100,.06)}.progress-card strong{display:block;font:700 1.3rem 'Fredoka';margin-top:4px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:26px 2px 14px}.section-head h2{font:700 clamp(1.55rem,4vw,2.1rem) 'Fredoka';margin:0}.section-head p{margin:3px 0 0;color:var(--muted);font-weight:700}.world-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.world-card{min-height:210px;border:0;border-radius:26px;padding:22px;text-align:left;color:var(--ink);cursor:pointer;box-shadow:var(--shadow);transition:.2s;position:relative;overflow:hidden}.world-card .icon{font-size:3rem;display:block;margin-bottom:22px}.world-card h3{font:700 1.45rem 'Fredoka';margin:0 0 5px}.world-card p{margin:0;font-weight:700;color:#596277}.world-card .tag{position:absolute;right:16px;top:16px;background:rgba(255,255,255,.72);border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:1000}.math{background:linear-gradient(145deg,#eee7ff,#ded3ff)}.read{background:linear-gradient(145deg,#e1f7ed,#c8f0df)}.type{background:linear-gradient(145deg,#fff0df,#ffe0c1)}.memory{background:linear-gradient(145deg,#ffe4ef,#ffd2e5)}.create{background:linear-gradient(145deg,#e2f5ff,#ccecff)}.chores{background:linear-gradient(145deg,#fff5ce,#ffeaa1)}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.quick-card{background:#fff;border:1px solid #eee8fa;border-radius:24px;padding:20px;display:flex;align-items:center;gap:15px;text-align:left;cursor:pointer;box-shadow:0 10px 26px rgba(67,53,99,.07);transition:.2s}.quick-card .bubble{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;font-size:1.8rem;background:#f4efff}.quick-card h3{font:700 1.2rem 'Fredoka';margin:0}.quick-card p{margin:3px 0 0;color:var(--muted);font-weight:700}.bottom-nav{position:fixed;z-index:30;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:5px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);padding:7px;border:1px solid #ebe6f7;border-radius:22px;box-shadow:0 15px 40px rgba(47,37,76,.17)}.nav-btn{border:0;background:transparent;border-radius:16px;padding:10px 15px;font-weight:900;color:#6d7486;cursor:pointer}.nav-btn.active{background:#eee8ff;color:#6547c6}.modal-wrap{position:fixed;inset:0;z-index:60;padding:18px;display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:rgba(25,25,45,.58);backdrop-filter:blur(5px)}.modal-card{position:relative;width:min(940px,100%);height:min(86vh,820px);background:var(--paper);border-radius:28px;box-shadow:0 28px 80px rgba(20,15,40,.35);display:flex;flex-direction:column;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #eee8df}.modal-head h2{font:700 clamp(1.4rem,4vw,2rem) 'Fredoka';margin:0}.modal-close{border:0;background:#f2edf8;width:44px;height:44px;border-radius:15px;font-size:1.8rem;cursor:pointer}.modal-body{padding:20px;overflow:auto;flex:1}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;perspective:1000px}.memory-card{background:transparent;width:100%;aspect-ratio:1;cursor:pointer}.card-inner{position:relative;width:100%;height:100%;transition:transform .6s;transform-style:preserve-3d;border-radius:1rem;box-shadow:0 4px 8px #0002}.memory-card.is-flipped .card-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:1rem;display:flex;align-items:center;justify-content:center}.card-front{background:linear-gradient(45deg,#f472b6,#ec4899);border:4px solid #fff}.card-back{background:#fce7f3;color:#be185d;font-size:3rem;transform:rotateY(180deg)}.memory-card.is-matched{opacity:.6}.math-quest-container,.typing-race-container{display:flex;flex-direction:column;height:100%;padding:1rem}.wizard-dialogue{background:#eee7ff;border:3px solid #c9b9ff;border-radius:1.5rem;padding:2rem;text-align:center;margin-bottom:2rem}.answer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.answer-btn{background:#7557d9;color:#fff;font:700 2rem 'Fredoka';padding:1.25rem;border-radius:1rem;border:0;border-bottom:6px solid #573ab9;cursor:pointer}.answer-btn.correct{background:#22c55e}.answer-btn.incorrect{background:#ef4444}.game-footer{display:flex;justify-content:space-between;align-items:center;margin-top:2rem}.next-btn,.save-btn,.buy-btn{background:#f59e0b;color:#fff;font-weight:900;padding:.8rem 1.2rem;border-radius:.8rem;border:0;cursor:pointer}.reading-adventure-container{padding:1rem}.scene-image{width:100%;border-radius:1.5rem;margin-bottom:1.5rem}.story-text{font-size:1.5rem;text-align:center}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.choice-card{border-radius:1rem;overflow:hidden;cursor:pointer;border:4px solid transparent}.choice-card img{width:100%;display:block}.choice-card.correct{border-color:#22c55e}.choice-card.incorrect{border-color:#ef4444}.feedback{text-align:center;font-size:1.3rem;font-weight:900;margin-top:1rem}.sticker-studio-container,.avatar-builder-container{display:flex;height:100%;gap:1rem}.sticker-sidebar{width:200px;flex-shrink:0;background:#f3f0f7;border-radius:1rem;padding:1rem;display:flex;flex-direction:column}.background-list,.sticker-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.background-list img,.sticker-list img{width:100%;border-radius:.5rem;cursor:pointer}.sticker-canvas{flex:1;background-size:cover;background-position:center;border-radius:1rem;position:relative;overflow:hidden}.placed-sticker{position:absolute;width:100px;height:100px;user-select:none}.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1rem}.item-card{background:#fff;border-radius:1rem;box-shadow:0 4px 12px #0001;overflow:hidden}.item-card img{width:100%;aspect-ratio:1;object-fit:cover}.item-info{padding:.75rem;text-align:center}.avatar-preview-area{flex:1;display:flex;align-items:center;justify-content:center;position:relative}.avatar-base{max-width:100%;max-height:100%}#avatar-layers{position:absolute;inset:0}.avatar-layer{position:absolute;max-width:100%;max-height:100%}.item-selection-area{width:300px;background:#f3f0f7;border-radius:1rem;padding:1rem;overflow:auto}.item-choice{background:#fff;border-radius:.75rem;padding:.5rem;cursor:pointer;border:4px solid transparent}.item-choice.equipped{border-color:#7557d9}.item-choice img{width:100%}.race-track{position:relative;height:100px;background:#dcefff;border-radius:1rem;margin-bottom:2rem;border:3px solid #9cd3f1;overflow:hidden}.racer{position:absolute;top:50%;font-size:3rem;transition:left .2s linear}.player,.snail{transform:translateY(-50%)}.finish-line{position:absolute;right:10px;top:0;bottom:0;border-left:4px dashed #fff}.sentence-display{font-size:1.6rem;background:#fff;padding:1rem;border-radius:1rem;margin-bottom:1rem}.typing-input{width:100%;padding:1rem;font-size:1.3rem;border-radius:1rem;border:2px solid #d9d4df}.task-list{list-style:none;padding:0;margin:0}.task-list li{background:#fff;border:1px solid #ece7f3;border-radius:16px;padding:16px;margin:10px 0;display:flex;gap:12px;align-items:center;font-weight:900;cursor:pointer}.task-list .checkbox{width:25px;height:25px;border:3px solid #b9add2;border-radius:8px}.task-list li.completed{opacity:.65;text-decoration:line-through}.task-list li.completed .checkbox{background:#72cfaa;border-color:#72cfaa}.bonus-text{text-align:center;font-weight:1000;color:#795d00}@media(max-width:760px){.shell{padding:14px 14px 100px}.topbar{align-items:flex-start}.top-actions .stat-pill:nth-child(2){display:none}.signout{font-size:0}.signout:after{content:'↪';font-size:1.2rem}.hero{border-radius:25px}.progress-row{grid-template-columns:1fr}.world-grid{grid-template-columns:1fr 1fr}.world-card{min-height:180px}.quick-grid{grid-template-columns:1fr}.choice-grid{grid-template-columns:1fr}.sticker-studio-container,.avatar-builder-container{flex-direction:column}.sticker-sidebar,.item-selection-area{width:100%}.bottom-nav{width:calc(100% - 24px);justify-content:space-around}.nav-btn{padding:10px 12px}}@media(max-width:480px){.world-grid{grid-template-columns:1fr}.avatar-ring{width:54px;height:54px}.subhello{font-size:.8rem}.stat-pill{padding:9px 10px}.hero-actions>*{flex:1}.modal-wrap{padding:8px}.modal-card{height:94vh;border-radius:22px}.memory-grid{gap:.5rem}.answer-grid{grid-template-columns:1fr 1fr}.answer-btn{font-size:1.5rem;padding:1rem}}