@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap";:root{--pink:#ec4899;--purple:#8b5cf6;--blue:#3b82f6;--cyan:#06b6d4;--green:#10b981;--yellow:#f59e0b;--orange:#f97316;--red:#ef4444;--bg:#fff8f0;--bg-card:#ffffffd1;--bg-glass:#ffffff8c;--text:#1e293b;--text-light:#64748b;--shadow:0 4px 24px #0000000f;--shadow-lg:0 8px 40px #0000001a;--shadow-glow:0 0 24px #8b5cf659;--radius:20px;--radius-lg:28px;--radius-full:9999px;--font:"Nunito", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#fff8f0 0%,#fdf2f8 25%,#eff6ff 50%,#f0fdf4 75%,#fff8f0 100%) 0 0/400% 400%;animation:20s infinite bgShift}@keyframes bgShift{0%,to{background-position:0%}25%{background-position:100%}50%{background-position:100% 100%}75%{background-position:0 100%}}.scroll-y{-webkit-overflow-scrolling:touch;scrollbar-width:thin;overflow:hidden auto}.scroll-y::-webkit-scrollbar{width:4px}.scroll-y::-webkit-scrollbar-track{background:0 0}.scroll-y::-webkit-scrollbar-thumb{background:#0000001f;border-radius:4px}.app-shell{flex-direction:column;max-width:480px;height:100%;margin:0 auto;display:flex;position:relative}.app-header{z-index:10;-webkit-backdrop-filter:blur(10px);background:linear-gradient(#fff8f0f2 0%,#fff8f000 100%);justify-content:space-between;align-items:center;padding:14px 18px;display:flex;position:relative}.app-body{-webkit-overflow-scrolling:touch;flex:1;padding:0 18px 110px;overflow:hidden auto}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius);box-shadow:var(--shadow), inset 0 1px 0 #fff9;border:1px solid #ffffffb3;padding:20px;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}.glass-card:active{transform:scale(.97)}.btn{border-radius:var(--radius);font-family:var(--font);cursor:pointer;box-shadow:var(--shadow);-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:16px;font-weight:700;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";pointer-events:none;background:linear-gradient(#fff3 0%,#0000 60%);position:absolute;inset:0}.btn:active{transform:scale(.93);box-shadow:0 2px 8px #0000001a}.btn-primary{background:linear-gradient(135deg, var(--purple), var(--pink));color:#fff;box-shadow:0 4px 16px #8b5cf659}.btn-primary:active{box-shadow:0 2px 8px #8b5cf640}.btn-success{background:linear-gradient(135deg, var(--green), var(--cyan));color:#fff;box-shadow:0 4px 16px #10b98159}.btn-warning{background:linear-gradient(135deg, var(--yellow), var(--orange));color:#fff;box-shadow:0 4px 16px #f973164d}.btn-ghost{background:var(--bg-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text);border:1px solid #0000000f;box-shadow:0 2px 8px #0000000a}.btn-icon{border-radius:var(--radius-full);width:48px;height:48px;padding:0;font-size:20px}.btn-lg{border-radius:var(--radius-lg);padding:18px 32px;font-size:18px}.subject-grid{grid-template-columns:repeat(2,1fr);gap:14px;padding:8px 0;display:grid}.subject-card{border-radius:var(--radius-lg);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:130px;padding:22px 12px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #0000001f}.subject-card:before{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff59 0%,#ffffff0d 50%,#ffffff26 100%);position:absolute;inset:0}.subject-card:after{content:"";pointer-events:none;background:linear-gradient(45deg,#0000 40%,#ffffff26 50%,#0000 60%);width:200%;height:200%;transition:all .6s;position:absolute;top:-50%;left:-50%}.subject-card:active{transform:scale(.93);box-shadow:0 2px 10px #00000026}.subject-card .ico{filter:drop-shadow(0 3px 6px #0003);font-size:40px;transition:transform .3s}.subject-card:active .ico{transform:scale(1.1)}.subject-card .name{color:#fff;text-shadow:0 1px 4px #00000040;font-size:13px;font-weight:800;line-height:1.2}.subject-card .sc-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;letter-spacing:.3px;background:#ffffff4d;border-radius:10px;padding:2px 8px;font-size:8px;font-weight:800;position:absolute;top:8px;right:8px}.progress-bar{background:#0000000f;border-radius:4px;width:100%;height:8px;position:relative;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--green), var(--cyan));border-radius:4px;height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1);position:relative}.progress-bar-fill:after{content:"";background:linear-gradient(#ffffff59 0%,#0000 100%);border-radius:4px 4px 0 0;height:50%;position:absolute;top:0;left:0;right:0}.quiz-options{flex-direction:column;gap:10px;width:100%;display:flex}.quiz-option{border-radius:var(--radius);background:var(--bg-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:16px;font-weight:700;font-family:var(--font);cursor:pointer;text-align:left;border:2.5px solid #0000000d;align-items:center;gap:14px;width:100%;padding:16px 20px;transition:all .25s cubic-bezier(.34,1.56,.64,1);display:flex;box-shadow:0 2px 8px #0000000a}.quiz-option:active{transform:scale(.96)}.quiz-option.correct{border-color:var(--green);background:linear-gradient(135deg,#d1fae5,#a7f3d0);animation:.5s cubic-bezier(.34,1.56,.64,1) correctPop;box-shadow:0 0 20px #10b9814d}.quiz-option.incorrect{border-color:var(--red);background:linear-gradient(135deg,#fee2e2,#fecaca);animation:.4s shake}.quiz-option .opt-letter{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:800;transition:all .2s;display:flex}.quiz-option:first-child .opt-letter{color:#2563eb;background:#3b82f61f}.quiz-option:nth-child(2) .opt-letter{color:#059669;background:#10b9811f}.quiz-option:nth-child(3) .opt-letter{color:#ea580c;background:#f973161f}.quiz-option:nth-child(4) .opt-letter{color:#7c3aed;background:#8b5cf61f}.slide-display{text-align:center;background:var(--bg-glass);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #ffffff80;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:240px;padding:40px 20px;display:flex}.slide-big{font-size:64px;font-weight:900;line-height:1.2;animation:.5s cubic-bezier(.34,1.56,.64,1) slideContentIn}.slide-cap{color:var(--text);max-width:320px;font-size:18px;font-weight:600;line-height:1.5;animation:.5s .1s both slideContentIn}@keyframes slideContentIn{0%{opacity:0;transform:translateY(16px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.gabby-bubble{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius);background:linear-gradient(135deg,#f3e8ffe6,#fce7f3e6);border:1px solid #ec48991f;align-items:flex-start;gap:12px;margin-bottom:16px;padding:18px;display:flex;position:relative;box-shadow:0 4px 16px #8b5cf614}.gabby-bubble:before{content:"";background:linear-gradient(135deg,#fce7f3e6,#f3e8ffe6);border-bottom:1px solid #ec48991f;border-right:1px solid #ec48991f;border-radius:0 0 0 4px;width:16px;height:16px;position:absolute;bottom:-8px;left:28px;transform:rotate(45deg)}.gabby-bubble .bubble-text{color:var(--text);flex:1;font-size:15px;font-weight:600;line-height:1.5}.gabby-bubble .speak-btn{cursor:pointer;background:#fff;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;transition:all .2s;display:flex;box-shadow:0 2px 10px #0000001a}.gabby-bubble .speak-btn:active{background:#f3e8ff;transform:scale(.9)}.star-counter{border-radius:var(--radius-full);color:#92400e;cursor:pointer;background:linear-gradient(135deg,#fef3c7,#fde68a);align-items:center;gap:6px;padding:7px 16px;font-size:16px;font-weight:800;transition:all .2s;animation:3s ease-in-out infinite starGlow;display:flex;box-shadow:0 2px 12px #f59e0b4d}.star-counter:active{transform:scale(.93)}@keyframes starGlow{0%,to{box-shadow:0 2px 12px #f59e0b4d}50%{box-shadow:0 2px 20px #f59e0b80}}.streak-counter{color:var(--orange);border-radius:var(--radius-full);background:#f973161a;align-items:center;gap:4px;padding:5px 10px;font-size:14px;font-weight:800;display:flex}.badge-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.badge-item{border-radius:var(--radius);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;transition:all .2s;display:flex}.badge-item:active{transform:scale(.94)}.badge-item.earned{background:linear-gradient(135deg,#fef3c7,#fde68a);position:relative;overflow:hidden;box-shadow:0 2px 12px #f59e0b33}.badge-item.earned:after{content:"";pointer-events:none;background:linear-gradient(45deg,#0000 40%,#fff6 50%,#0000 60%);width:300%;height:300%;animation:4s ease-in-out infinite badgeShimmer;position:absolute;top:-100%;left:-100%}@keyframes badgeShimmer{0%{transform:translate(-100%)translateY(-100%)}to{transform:translate(100%)translateY(100%)}}.badge-item.locked{opacity:.45;background:#00000008}.badge-item .badge-ico{font-size:30px}.badge-item .badge-name{font-size:10px;font-weight:700;line-height:1.2}.store-item{border-radius:var(--radius);background:var(--bg-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid #0000000a;align-items:center;gap:14px;padding:14px 18px;transition:all .2s;display:flex;box-shadow:0 2px 8px #0000000a}.store-item:active{transform:scale(.97)}.store-item .item-ico{font-size:34px}.store-item .item-info{flex:1}.store-item .item-name{font-size:15px;font-weight:800}.store-item .item-cost{color:var(--text-light);font-size:13px;font-weight:600}.store-item .item-owned{color:var(--green);font-size:12px;font-weight:700}.mic-fab{background:linear-gradient(135deg, var(--purple), var(--pink));color:#fff;cursor:pointer;z-index:100;border:3px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;font-size:26px;transition:all .2s;animation:3s ease-in-out infinite fabFloat;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 4px 24px #8b5cf673,inset 0 1px #fff3}.mic-fab:active{transform:scale(.88)}.mic-fab.listening{background:linear-gradient(135deg, var(--red), var(--pink));border-color:#ef444466;animation:1.2s infinite micPulse;box-shadow:0 0 #ef444480}@keyframes fabFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes micPulse{0%{box-shadow:0 0 #ef444480}50%{box-shadow:0 0 0 14px #ef444400}to{box-shadow:0 0 #ef444400}}.confetti-layer{pointer-events:none;z-index:1000;position:fixed;inset:0}.tier-pill{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:4px;padding:4px 14px;font-size:11px;font-weight:800;display:inline-flex}.tier-explorer{color:#1d4ed8;background:#dbeafe}.tier-builder{color:#92400e;background:#fef3c7}.tier-master{color:#7e22ce;background:linear-gradient(135deg,#f3e8ff,#fce7f3)}.parent-section{border-bottom:1px solid #0000000d;padding:16px 0}.parent-section h3{color:var(--text-light);text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px;font-size:13px;font-weight:800}.stat-row{justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;display:flex}.stat-value{color:var(--purple);font-weight:800}.back-btn{background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-full);font-family:var(--font);color:var(--text);cursor:pointer;border:1px solid #0000000f;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:700;transition:all .2s;display:flex;box-shadow:0 2px 8px #0000000a}.back-btn:active{transform:scale(.93)}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes correctPop{0%{transform:scale(1)}30%{transform:scale(1.06)}60%{transform:scale(.98)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes pulse-ring{0%{box-shadow:0 0 #8b5cf680}70%{box-shadow:0 0 0 15px #8b5cf600}to{box-shadow:0 0 #8b5cf600}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}40%{transform:scale(1.08)}60%{transform:scale(.96)}80%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.7;transform:scale(1.15)rotate(5deg)}}.animate-fade{animation:.4s forwards fadeIn}.app-body>.animate-fade:first-child{height:100%}.animate-slide-up{animation:.5s forwards slideUp}.animate-bounce{animation:.6s cubic-bezier(.34,1.56,.64,1) forwards bounceIn}.catch-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:400;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.catch-center{z-index:2;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:320px;display:flex;position:relative}.catch-ball{animation:.15s ease-in-out infinite alternate catchShake}.catch-ball-inner{border:3px solid #fff9;border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;display:flex;box-shadow:0 0 30px #f59e0b99,0 0 60px #f59e0b4d,inset 0 -4px 12px #0003}@keyframes catchShake{0%{transform:translate(-4px)rotate(-3deg)}to{transform:translate(4px)rotate(3deg)}}.catch-burst{justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative}.catch-burst-ring{border:4px solid var(--burst-color,#f59e0b);border-radius:50%;width:40px;height:40px;animation:.6s ease-out forwards catchBurst;position:absolute}.catch-burst-ring-2{border-color:#ffffffb3;animation-delay:.1s}@keyframes catchBurst{0%{opacity:1;width:20px;height:20px}to{opacity:0;width:200px;height:200px}}.catch-creature-reveal{justify-content:center;align-items:center;display:flex;position:relative}.catch-glow{pointer-events:none;border-radius:50%;width:200px;height:200px;animation:2s ease-in-out infinite catchGlow;position:absolute}@keyframes catchGlow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.catch-creature-pop{animation:.6s cubic-bezier(.34,1.56,.64,1) forwards catchPop}@keyframes catchPop{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.catch-creature-svg{z-index:2;background:#fffffff2;border-radius:24px;padding:10px 14px;position:relative;box-shadow:0 8px 32px #0003,0 0 20px #f59e0b4d}.catch-creature-svg .creature-card{padding:10px!important}.catch-sparkle{z-index:1;pointer-events:none;opacity:0;animation:1.5s ease-out forwards catchSparkle;position:absolute}@keyframes catchSparkle{0%{opacity:0;transform:scale(0)rotate(0)}20%{opacity:1}50%{opacity:1;transform:scale(1.2)rotate(180deg)}to{opacity:0;transform:scale(.5)rotate(360deg)}}.catch-details{text-align:center;animation:.5s forwards slideUp}.catch-title{background:linear-gradient(135deg,#f59e0b,#ec4899);-webkit-text-fill-color:transparent;text-shadow:none;-webkit-background-clip:text;margin-bottom:2px;font-size:22px;font-weight:900}.catch-name{color:#fff;text-shadow:0 2px 8px #0000004d;margin:0;font-size:18px;font-weight:900}.catch-desc{color:#fffc;margin:0;font-size:13px;font-weight:700}.catch-power{color:#fde68a;background:#f59e0b33;border-radius:20px;margin-top:6px;padding:4px 14px;font-size:12px;font-weight:800;display:inline-block}.catch-btn{color:#fff;width:100%;max-width:260px;font-family:var(--font);cursor:pointer;background:linear-gradient(135deg,#f59e0b,#ec4899);border:none;border-radius:20px;margin:16px auto 0;padding:16px 32px;font-size:20px;font-weight:900;transition:transform .2s;animation:1.5s ease-in-out infinite catchBtnPulse;display:block;box-shadow:0 4px 16px #f59e0b66,0 0 20px #ec489933}.catch-btn:active{transform:scale(.93)}@keyframes catchBtnPulse{0%,to{box-shadow:0 4px 16px #f59e0b66,0 0 20px #ec489933}50%{box-shadow:0 4px 24px #f59e0b99,0 0 32px #ec489966}}.review-card{text-align:center;background:var(--bg-glass);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:24px}.review-concept{color:var(--text-light);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;font-size:13px;font-weight:800}@media (width>=768px){.app-shell{max-width:600px}.subject-grid{grid-template-columns:repeat(3,1fr)}.badge-grid{grid-template-columns:repeat(4,1fr)}}.lesson-locked{opacity:.4;pointer-events:none;position:relative}.lesson-list{flex-direction:column;gap:10px;display:flex}.lesson-item{border-radius:var(--radius);background:var(--bg-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;border:2px solid #0000000a;align-items:center;gap:14px;padding:16px 18px;transition:all .25s cubic-bezier(.34,1.56,.64,1);display:flex;box-shadow:0 2px 8px #00000008}.lesson-item:active{transform:scale(.96)}.lesson-item.completed{background:linear-gradient(135deg,#10b9810f,#06b6d40f);border-color:#10b9814d;box-shadow:0 2px 12px #10b9811a}.lesson-item .lesson-num{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:800;transition:all .2s;display:flex}.lesson-item .lesson-title{flex:1;font-size:15px;font-weight:700}.lesson-item .lesson-status{font-size:20px}.record-btn{border:4px solid var(--red);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;font-size:34px;transition:all .2s;display:flex;box-shadow:0 4px 20px #ef444433}.record-btn.recording{background:var(--red);border-color:var(--red);animation:1.2s infinite micPulse}.spinner{border:3px solid #00000014;border-top-color:var(--purple);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:48px 24px;display:flex}.empty-state .empty-ico{font-size:52px}.empty-state .empty-text{color:var(--text-light);font-size:15px;font-weight:600;line-height:1.5}@keyframes celebrationStar{0%{opacity:1;transform:scale(0)rotate(0)}50%{opacity:.8;transform:scale(1.2)rotate(180deg)}to{opacity:0;transform:scale(0)rotate(360deg)}}.screen-enter{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards screenSlideIn}@keyframes screenSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.placement-progress{transition:width .6s cubic-bezier(.34,1.56,.64,1)}.numpad-btn:active{background:#8b5cf614!important;transform:scale(.88)!important}.subject-card{transform-origin:50%}.floating-particle{pointer-events:none;border-radius:50%;animation:linear infinite floatParticle;position:absolute}@keyframes floatParticle{0%{opacity:0;transform:translateY(100vh)rotate(0)}10%{opacity:.6}90%{opacity:.6}to{opacity:0;transform:translateY(-10vh)rotate(360deg)}}button:focus-visible{outline-offset:2px;outline:3px solid #8b5cf680}.quiz-option:before{content:"";border-radius:inherit;background:radial-gradient(circle at var(--tap-x,50%) var(--tap-y,50%), #8b5cf61f 0%, transparent 60%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.quiz-option:active:before{opacity:1}.quiz-option{position:relative;overflow:hidden}.hero-banner{border-radius:var(--radius-lg);background:linear-gradient(135deg,#7c3aed,#8b5cf6,#a78bfa,#ec4899) 0 0/300% 300%;padding:24px 20px 18px;animation:8s infinite heroShift;position:relative;overflow:hidden;box-shadow:0 8px 32px #8b5cf659}@keyframes heroShift{0%,to{background-position:0%}50%{background-position:100%}}.hero-stars{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-star{color:#ffffff4d;animation:3s ease-in-out infinite heroTwinkle;position:absolute}@keyframes heroTwinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:.8;transform:scale(1.2)}}.hero-speak-btn{border-radius:var(--radius-full);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:var(--font);cursor:pointer;z-index:2;background:#fff3;border:none;margin-top:12px;padding:8px 18px;font-size:13px;font-weight:700;transition:all .2s;position:relative}.hero-speak-btn:active{background:#ffffff4d;transform:scale(.93)}.hero-streak{border-radius:var(--radius-full);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fde68a;z-index:2;background:#f59e0b40;padding:4px 12px;font-size:12px;font-weight:800;position:absolute;top:12px;right:14px}.review-alert-btn{border-radius:var(--radius);cursor:pointer;width:100%;font-family:var(--font);color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f9731626;align-items:center;gap:12px;padding:14px 18px;transition:all .2s;animation:.4s fadeIn;display:flex;box-shadow:0 4px 16px #f59e0b33}.review-alert-btn:active{transform:scale(.97)}.assignment-banner{border-radius:var(--radius);cursor:pointer;width:100%;font-family:var(--font);background:linear-gradient(135deg,#f3e8ffcc,#fce7f399);border:2px solid #8b5cf61f;align-items:center;gap:12px;padding:14px 18px;transition:all .2s;animation:.4s fadeIn;display:flex;box-shadow:0 2px 12px #8b5cf61a}.assignment-banner:active{transform:scale(.97)}.adventure-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.subject-card-3d{text-align:center;cursor:pointer;min-height:140px;transform-style:preserve-3d;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px 12px 14px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden;transform:perspective(600px)rotateX(0);box-shadow:0 6px 20px #00000026,0 2px 4px #0000001a,inset 0 1px #fff3}.subject-card-3d:active{transform:perspective(600px)rotateX(3deg)scale(.94);box-shadow:0 2px 8px #00000026,0 1px 2px #0000001a}.subject-card-3d .card-bg{border-radius:inherit;position:absolute;inset:0}.subject-card-3d .card-glass{border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff4d 0%,#ffffff0d 40%,#0000000d 100%);position:absolute;inset:0}.subject-card-3d .card-sc-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;letter-spacing:.5px;z-index:3;background:#ffffff40;border-radius:10px;padding:2px 8px;font-size:8px;font-weight:800;position:absolute;top:8px;right:8px}.subject-card-3d .card-illustration{z-index:2;filter:drop-shadow(0 4px 8px #0003);transition:transform .3s;position:relative}.subject-card-3d:active .card-illustration{transform:scale(1.08)}.subject-card-3d .card-name{z-index:2;color:#fff;text-shadow:0 1px 4px #00000040;font-size:13px;font-weight:800;line-height:1.2;position:relative}.subject-card-3d .card-progress{z-index:3;position:absolute;top:8px;left:8px}.subject-card-3d .card-tier{z-index:2;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 10px;font-size:9px;font-weight:800;position:relative}.home-nav-bar{justify-content:center;gap:8px;margin-top:8px;display:flex}.home-nav-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;font-family:var(--font);color:var(--text-light);background:#ffffffb3;border:1px solid #0000000a;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;font-size:11px;font-weight:800;transition:all .2s;display:flex;box-shadow:0 2px 8px #0000000a}.home-nav-btn:active{background:#ffffffe6;transform:scale(.93)}.streak-calendar-card{border-radius:var(--radius);background:linear-gradient(135deg,#fef3c7,#fde68a);margin-bottom:4px;padding:16px 18px;box-shadow:0 4px 16px #f59e0b26}.badge-story-card{border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#ffffffb3;border:2px solid #0000000a;padding:14px 16px;transition:all .25s;box-shadow:0 2px 8px #00000008}.badge-story-card:active{transform:scale(.98)}.badge-story-card.earned{background:linear-gradient(135deg,#ffffffe6,#f3e8ff80);border-color:#8b5cf61f;box-shadow:0 4px 16px #8b5cf614}.badge-story-icon{background:#0000000a;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.badge-story-icon.earned{background:linear-gradient(135deg,#fde68a,#f59e0b);animation:3s ease-in-out infinite badgePulse;box-shadow:0 2px 8px #f59e0b40}@keyframes badgePulse{0%,to{box-shadow:0 2px 8px #f59e0b40}50%{box-shadow:0 2px 16px #f59e0b73}}.game-area{border-radius:var(--radius-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #ffffff80;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:200px;padding:20px;display:flex}.drag-letter{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;font-size:28px;font-weight:900;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:inline-flex;box-shadow:0 4px 12px #0003}.drag-letter:active{transform:scale(1.15);box-shadow:0 8px 24px #0000004d}.match-target{border:3px dashed #00000026;border-radius:16px;justify-content:center;align-items:center;width:60px;height:60px;font-size:32px;transition:all .3s;display:inline-flex}.match-target.matched{border-style:solid;border-color:var(--green);background:linear-gradient(135deg,#d1fae5,#a7f3d0);animation:.5s cubic-bezier(.34,1.56,.64,1) correctPop}.count-bubble{cursor:pointer;border:3px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:22px;font-weight:900;transition:all .15s;display:inline-flex}.count-bubble:active{transform:scale(.9)}.count-bubble.selected{border-color:var(--purple);box-shadow:0 0 0 3px #8b5cf633}.lesson-type-pill{color:#7c3aed;background:#8b5cf614;border-radius:10px;padding:4px 12px;font-size:11px;font-weight:800}.lesson-type-pill.game{color:#059669;background:#10b98114}.lesson-type-pill.quiz{color:#d97706;background:#f59e0b14}.home-topbar{justify-content:space-between;align-items:center;gap:10px;padding:14px 18px 8px;display:flex}.home-brand{color:#1e293b;cursor:pointer;align-items:center;gap:8px;font-size:17px;font-weight:900;display:inline-flex}.home-stats{align-items:center;gap:8px;display:flex}.home-pill{font-family:var(--font);cursor:pointer;border:0;border-radius:999px;padding:8px 16px;font-size:15px;font-weight:900;box-shadow:0 8px 24px #00000017}.home-pill-fire{color:#f97316;background:linear-gradient(135deg,#fff1da,#ffe8bc)}.home-pill-star{color:#a16207;background:linear-gradient(135deg,#fff3bf,#ffe48a)}.home-map-frame{border:2px solid #ffffff94;border-radius:36px;height:calc(100% - 68px);margin:8px 18px 10px;overflow:hidden;box-shadow:0 26px 60px #0e74902e}.home-map-frame>.adventure-map{overflow:hidden auto}.adventure-map{isolation:isolate;background:linear-gradient(#fbd8e8 0%,#fbc2d9 14%,#c7dffa 38%,#6fc9e3 56%,#2bb0d0 70%,#5dd8b2 82%,#f4d58e 94%,#eac07a 100%);border-radius:36px;flex-direction:column;gap:2px;height:100%;padding:6px 6px 10px;display:flex;position:relative;overflow:hidden auto}.map-bg-video{object-fit:cover;object-position:center 60%;z-index:0;pointer-events:none;border-radius:36px;width:100%;height:100%;position:absolute;inset:0}.adventure-map>.map-sky,.adventure-map>.map-mountains,.adventure-map>.map-ocean{display:none}.saylor-stage{filter:blur(4px);z-index:-1;pointer-events:none;background:radial-gradient(#fde0478c 0%,#fde04740 40%,#0000 70%);width:130px;height:22px;animation:3.2s ease-in-out infinite saylorStagePulse;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}@keyframes saylorStagePulse{0%,to{opacity:.7;transform:translate(-50%)scale(1)}50%{opacity:1;transform:translate(-50%)scale(1.08)}}.map-sky{pointer-events:none;position:absolute;inset:0;overflow:hidden}@keyframes sparkleFloat{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.map-star{color:#ffffc899;animation:3s ease-in-out infinite heroTwinkle;position:absolute}.map-cloud{opacity:.4;font-size:36px;animation:25s linear infinite cloudDrift;position:absolute}@keyframes cloudDrift{0%{transform:translate(-20%)}to{transform:translate(120vw)}}.map-mountains{pointer-events:none;opacity:.85;position:absolute;top:20%;left:0;right:0}.map-ocean{pointer-events:none;height:30px;position:absolute;top:60%;left:0;right:0}.map-wave{border-radius:50% 50% 0 0;width:110%;height:12px;position:absolute;left:-5%}.map-wave-1{background:#fff3;animation:3s ease-in-out infinite waveMove;top:0}.map-wave-2{background:#ffffff1f;animation:4s ease-in-out .5s infinite waveMove;top:6px}@keyframes waveMove{0%,to{transform:translate(0)scaleY(1)}50%{transform:translate(2%)scaleY(1.4)}}.map-header-row{z-index:5;align-items:flex-start;gap:8px;padding:2px 6px 0;display:flex;position:relative}.map-header{text-align:center;flex:1;min-width:0;padding-top:2px}.map-explormon-wrap{cursor:pointer;flex-direction:column;flex-shrink:0;align-items:center;gap:2px;width:86px;transition:transform .2s;display:flex}.map-explormon-wrap:active{transform:scale(.92)}.map-explormon-tag{color:#fff;text-shadow:0 1px 3px #0009;text-align:center;font-size:8px;font-weight:900;line-height:1.3}.map-title{text-shadow:0 2px #0000002e,0 2px 10px #0003;-webkit-text-stroke:1.3px #0000001a;letter-spacing:-1px;margin-bottom:6px;font-size:60px;font-weight:900;line-height:1}.map-title-pill{-webkit-backdrop-filter:blur(10px);background:#ffffffbf;border:1px solid #ffffff80;border-radius:20px;padding:8px 22px 10px;display:inline-block;box-shadow:0 4px 20px #0000001f,0 0 30px #ffffff4d}.rainbow-letter{text-shadow:0 2px 8px #0000004d;animation:2s ease-in-out infinite letterBounce;display:inline-block}.rainbow-letter:first-child{animation-delay:0s}.rainbow-letter:nth-child(2){animation-delay:.1s}.rainbow-letter:nth-child(4){animation-delay:.2s}.rainbow-letter:nth-child(5){animation-delay:.3s}.rainbow-letter:nth-child(6){animation-delay:.4s}.rainbow-letter:nth-child(7){animation-delay:.5s}.rainbow-letter:nth-child(8){animation-delay:.6s}.rainbow-letter:nth-child(9){animation-delay:.7s}.rainbow-letter:nth-child(10){animation-delay:.8s}@keyframes letterBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.map-subtitle,.map-tagline{color:#1a1a2e;text-shadow:0 1px #ffffffb3;white-space:nowrap;font-size:16px;font-weight:900}.map-gabby-center{z-index:5;cursor:pointer;filter:drop-shadow(0 0 20px #ffc86466);flex-direction:column;align-items:center;margin:1px 0 -6px;animation:5s ease-in-out infinite centerFloat;display:flex;position:relative}@keyframes centerFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.map-gabby-label{color:#fff;letter-spacing:1px;text-shadow:0 2px 6px #00000040;background:linear-gradient(135deg,#ff1f6d,#ff5ca0);border-radius:22px;margin-top:-2px;padding:5px 28px 7px;font-size:22px;font-weight:900;box-shadow:0 4px 24px #ff2d7899,0 0 0 3px #ffffff80,0 0 40px #ff2d784d}.map-explormon{border:3px solid #ffffffe6;border-radius:50%;width:80px;height:80px;overflow:hidden;box-shadow:0 4px 20px #00000040,0 0 0 2px #ffffff80}.map-explormon-card{border-radius:14px}.map-streak{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fde68a;background:#f59e0b54;border-radius:999px;padding:7px 16px;font-size:12px;font-weight:900;position:absolute;top:12px;right:12px}.map-review-float{z-index:6;font-family:var(--font);color:#78350f;cursor:pointer;background:linear-gradient(135deg,#fde68a,#f59e0b);border:none;border-radius:14px;padding:5px 12px;font-size:11px;font-weight:800;animation:2s ease-in-out infinite pulse-ring;position:absolute;top:8px;left:8px;box-shadow:0 2px 8px #f59e0b4d}.map-assignment-float{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font);color:#7c3aed;cursor:pointer;background:#f3e8ffd9;border:2px solid #8b5cf64d;border-radius:14px;align-self:center;padding:6px 16px;font-size:12px;font-weight:800;position:relative;box-shadow:0 2px 12px #8b5cf626}.portal-row{z-index:5;flex-wrap:nowrap;justify-content:center;gap:6px;display:flex;position:relative}.portal-layout{z-index:5;flex-direction:column;gap:6px;margin-top:4px;display:flex;position:relative}.portal-row-5{justify-content:center;gap:6px}.portal-row-saylor-spacer{flex-shrink:0;width:40px}.portal-row-bottom{margin-top:4px}.portal-bubble{cursor:pointer;flex-direction:column;align-items:center;gap:2px;padding:2px 2px 0;transition:transform .2s;animation:.5s both portalAppear;display:flex;position:relative}.portal-bubble .portal-inner{animation:4s ease-in-out infinite portalFloat}@keyframes portalFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.portal-bubble:nth-child(2) .portal-inner{animation-delay:.6s}.portal-bubble:nth-child(3) .portal-inner{animation-delay:1.2s}.portal-bubble:nth-child(4) .portal-inner{animation-delay:1.8s}.portal-bubble:active{transform:scale(.92)}@keyframes portalAppear{0%{opacity:0;transform:scale(.5)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.portal-glow{background:radial-gradient(circle, var(--pc1,#8b5cf6) 0%, var(--pc2,#ec4899) 50%, transparent 78%);opacity:.55;filter:blur(14px);z-index:0;border-radius:50%;width:108px;height:108px;animation:3s ease-in-out infinite portalPulse;position:absolute;top:4px;left:50%;transform:translate(-50%)}@keyframes portalPulse{0%,to{opacity:.45;transform:translate(-50%)scale(1)}50%{opacity:.7;transform:translate(-50%)scale(1.25)}}.portal-inner{width:92px;height:92px;box-shadow:0 6px 20px #0003, inset 0 3px 0 #fff, 0 0 0 3px #fffc, 0 0 20px 6px color-mix(in srgb, var(--pc1,#8b5cf6) 40%, transparent), 0 0 40px 10px color-mix(in srgb, var(--pc2,#ec4899) 20%, transparent);z-index:1;background:linear-gradient(135deg,#ffffffeb,#c8e6ffbf);border:4px solid #fffffff2;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.portal-inner:after{content:"";pointer-events:none;background:linear-gradient(45deg,#0000 40%,#ffffff4d 50%,#0000 60%);width:200%;height:200%;animation:6s ease-in-out infinite portalShimmer;position:absolute;top:-50%;left:-50%}@keyframes portalShimmer{0%{transform:translate(-100%)translateY(-100%)}to{transform:translate(100%)translateY(100%)}}.portal-check{color:#fff;z-index:3;background:#10b981;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:900;display:flex;position:absolute;top:0;right:0;box-shadow:0 2px 6px #00000040}.portal-creature{z-index:3;font-size:18px;animation:2s ease-in-out infinite beachBob;position:absolute;bottom:20px;right:-8px}@keyframes beachBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.portal-label{color:#fff;text-shadow:0 1px 3px #000000e6,0 2px 8px #000000b3,0 0 12px #0006;text-align:center;white-space:normal;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000040;border-radius:8px;max-width:108px;margin-top:2px;padding:2px 6px;font-size:9px;font-weight:900;line-height:1.2}.map-store-center{color:#78350f;cursor:pointer;width:96px;font-family:var(--font);background:linear-gradient(135deg,#fde68a,#fbbf24);border:0;border-radius:14px;flex-direction:column;align-items:center;gap:2px;margin-top:30px;padding:8px 10px;display:flex;box-shadow:0 6px 16px #fbbf2466}.map-store-ico{font-size:18px;line-height:1}.map-store-label{font-size:12px;font-weight:900}.map-store{z-index:5;cursor:pointer;align-self:center;transition:transform .2s;position:relative}.map-store:active{transform:scale(.92)}.store-building{flex-direction:column;align-items:center;gap:1px;display:flex}.store-sign{color:#78350f;background:linear-gradient(135deg,#fde68a,#f59e0b);border-radius:8px;padding:2px 10px;font-size:9px;font-weight:900;box-shadow:0 2px 6px #f59e0b4d}.portal-row-with-center{z-index:5;justify-content:center;align-items:flex-start;gap:4px;display:flex;position:relative}.portal-row-with-center>.portal-row{flex-wrap:nowrap;flex-shrink:0;gap:6px}.map-beach-deco{pointer-events:none;height:40px;position:absolute;bottom:0;left:0;right:0}.map-bottom-nav{z-index:5;justify-content:center;gap:8px;padding:4px 0 0;display:flex;position:relative}.map-nav-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font);color:#f8fafc;cursor:pointer;background:#e3cda980;border:1px solid #ffffff40;border-radius:18px;padding:8px 15px;font-size:11px;font-weight:900;transition:all .2s;box-shadow:0 2px 8px #00000017}.map-nav-btn:active{background:#ffffff59;transform:scale(.93)}.map-nav-store{color:#fde68a;background:linear-gradient(135deg,#f59e0b66,#fbbf244d);border-color:#fde68a66}@media (width<=430px){.home-topbar{padding-left:10px;padding-right:10px}.home-map-frame{margin-left:6px;margin-right:6px}.map-title{margin-bottom:3px;font-size:44px}.map-subtitle,.map-tagline{font-size:12px}.map-title-pill{padding:5px 14px 6px}.portal-row,.portal-row-store,.portal-row-2{gap:4px;padding-left:4px;padding-right:4px}.portal-inner{width:70px;height:70px}.portal-glow{width:82px;height:82px;top:0}.portal-label{max-width:74px;font-size:7px}.portal-row-saylor-spacer{width:24px}.map-gabby-center{margin:0 0 -4px}.map-store-center{width:72px;margin-top:20px}.map-nav-btn{padding:6px 10px;font-size:10px}.map-header-row{padding:0 4px}.map-explormon-wrap{width:70px}.map-explormon{width:65px;height:65px}}.card-portal-ring{z-index:2;background:#ffffff1a;border:3px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;transition:all .3s;display:flex;position:relative}.subject-card-3d:active .card-portal-ring{border-color:#fff9;transform:scale(1.08)}.card-creature{z-index:3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0003;border-radius:8px;align-items:center;gap:3px;padding:2px 6px;display:flex;position:absolute;bottom:6px;left:6px}.song-gen-btn{border-radius:var(--radius);cursor:pointer;width:100%;font-family:var(--font);color:var(--text);background:linear-gradient(135deg,#8b5cf60f,#ec48990f);border:2px solid #8b5cf61f;align-items:center;gap:12px;padding:14px 18px;transition:all .2s;animation:.4s fadeIn;display:flex;box-shadow:0 2px 12px #8b5cf614}.song-gen-btn:active{background:linear-gradient(135deg,#8b5cf61f,#ec48991f);transform:scale(.97)}@keyframes songBounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.1)}}.song-lyrics::-webkit-scrollbar{width:3px}.song-lyrics::-webkit-scrollbar-track{background:0 0}.song-lyrics::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.creature-card{transition:all .2s}.creature-card:active{transform:scale(.96)}.creature-card-compact:active{transform:scale(.97)}@media (width>=768px){.app-shell{max-width:600px}.adventure-grid{grid-template-columns:repeat(3,1fr)}.subject-card-3d{min-height:160px}}
