:root{--mc-font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--px-font: "Press Start 2P", "Courier New", monospace;--c-gem: #31c24d;--c-gem-dark: #1f8f36;--c-gold: #f0d040;--c-xp: #7fe848;--c-red: #e04040;--panel-bg: rgba(20, 18, 26, .94);--panel-border-light: #ffffff55;--panel-border-dark: #00000088}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--mc-font);color:#fff;background:#1a1424;overflow:hidden;-webkit-font-smoothing:none;-webkit-user-select:none;user-select:none}button{font-family:inherit}.scene{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.scene-sky{position:absolute;top:0;right:0;bottom:0;left:0}.scene-sun,.scene-moon{position:absolute;top:7%;right:12%;width:56px;height:56px;box-shadow:0 0 40px 12px #fff4b480}.scene-moon{background:transparent;position:absolute}.scene-moon:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;background:#e8e8d8;box-shadow:inset -10px -6px #c8c8b8}.scene-clouds{position:absolute;top:0;right:0;bottom:0;left:0}.cloud{position:absolute;height:20px;opacity:.85;animation:cloudMove linear infinite}.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;bottom:0}.cloud.c1{width:120px;top:12%;animation-duration:70s}.cloud.c2{width:80px;top:22%;animation-duration:95s;animation-delay:-40s}.cloud.c3{width:150px;top:8%;animation-duration:120s;animation-delay:-70s}.cloud.c1:before{width:40px;height:20px;left:18px}.cloud.c1:after{width:28px;height:14px;left:56px}.cloud.c2:before{width:30px;height:16px;left:12px}.cloud.c2:after{width:20px;height:12px;left:44px}.cloud.c3:before{width:50px;height:22px;left:22px}.cloud.c3:after{width:34px;height:16px;left:76px}@keyframes cloudMove{0%{left:-200px}to{left:105%}}.scene-far{position:absolute;left:0;right:0;bottom:96px;height:130px;opacity:.55;clip-path:polygon(0 100%,0 45%,8% 45%,8% 20%,12% 20%,12% 40%,25% 40%,25% 8%,31% 8%,31% 34%,45% 34%,45% 0,50% 0,50% 28%,66% 28%,66% 15%,72% 15%,72% 42%,85% 42%,85% 25%,90% 25%,90% 50%,100% 50%,100% 100%)}.scene-ground,.scene-sub{position:absolute;left:0;right:0;image-rendering:pixelated;background-size:48px 48px;background-repeat:repeat}.scene-ground{bottom:72px;height:48px}.scene-sub{bottom:0;height:72px}.scene-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0806108c}.scene-content{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;padding-top:52px}.scene-content:has(.home-wrap){padding-top:0}.mc-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 22px;color:#fff;font-size:16px;font-weight:700;letter-spacing:1px;background:linear-gradient(#8a8a8a,#6f6f6f 45%,#5c5c5c);border:2px solid #000;box-shadow:inset 2px 2px #fff5,inset -2px -2px #0006,0 3px #0008;cursor:pointer;text-shadow:2px 2px 0 #00000088;transition:filter .08s}.mc-btn:hover:not(:disabled){filter:brightness(1.18)}.mc-btn:active:not(:disabled){transform:translateY(2px);box-shadow:inset 2px 2px #fff5,inset -2px -2px #0006}.mc-btn:disabled{opacity:.45;cursor:not-allowed}.mc-btn.primary{background:linear-gradient(#4fae4f,#3c8f3c 45%,#2f7a2f)}.mc-btn.danger{background:linear-gradient(#c85454,#a83c3c 45%,#8f2f2f)}.mc-btn.gold{background:linear-gradient(#e0b840,#c89828 45%,#a87c18)}.mc-btn.small{padding:6px 14px;font-size:14px}.mc-btn.big{padding:14px 34px;font-size:20px}.mc-panel{background:var(--panel-bg);border:3px solid transparent;border-image:linear-gradient(to bottom,#fff6,#0009) 1;box-shadow:inset 0 0 0 2px #0006,0 6px #0006;padding:18px}.mc-panel.solid{background:#2c2836}.mc-panel-title{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;margin-bottom:12px;text-shadow:2px 2px 0 #000}.status-bar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:14px;padding:8px 16px;background:#0e0c14d9;border-bottom:3px solid #000;box-shadow:0 3px #00000059;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.status-item{display:flex;align-items:center;gap:6px;font-weight:700;font-size:15px;text-shadow:1px 1px 0 #000}.status-gem-count{color:#7df08f;font-family:var(--px-font);font-size:12px}.xp-bar-wrap{flex:1;max-width:320px}.xp-bar{position:relative;height:12px;background:#1a1a22;border:2px solid #000;box-shadow:inset 1px 1px #fff2}.xp-bar-fill{height:100%;background:repeating-linear-gradient(90deg,var(--c-xp) 0 6px,#5fbf38 6px 8px);transition:width .4s steps(8)}.xp-level{position:absolute;left:50%;top:-14px;transform:translate(-50%);color:var(--c-xp);font-family:var(--px-font);font-size:10px;text-shadow:1px 1px 0 #000}.xp-rank{font-size:13px;color:#ffd}.stars{display:inline-flex;gap:2px}.star{width:18px;height:18px;background:#3a3a44;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.star.on{background:var(--c-gold);filter:drop-shadow(1px 1px 0 #000)}.dialog-box{position:relative;background:#0c0a12eb;border:3px solid #ffffff44;box-shadow:inset 0 0 0 2px #000,4px 4px #00000080;padding:16px 18px 14px;min-height:96px}.dialog-box .npc-name{position:absolute;top:-14px;left:12px;background:#2f7a2f;padding:2px 10px;font-size:13px;font-weight:800;border:2px solid #000;text-shadow:1px 1px 0 #000}.dialog-box .npc-text{font-size:16px;line-height:1.7}.dialog-next-hint{position:absolute;right:10px;bottom:6px;font-size:12px;color:#aaa;animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.2}}.quiz-card{max-width:860px;margin:0 auto;padding:20px 16px 90px}.quiz-stem{font-size:18px;line-height:1.9;margin:12px 0;text-shadow:1px 1px 0 #000}.quiz-stem b,.ans-text{color:var(--c-gold)}.fig-box{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;background:#ffffff0f;border:2px solid #ffffff22;padding:14px;margin:12px 0;gap:14px}.fig-caption{font-size:13px;color:#cfc8e8;width:100%;text-align:center}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.choice-btn{padding:12px 16px;font-size:17px;text-align:left;background:linear-gradient(#5a5668,#46424f);color:#fff;border:2px solid #000;cursor:pointer;box-shadow:inset 2px 2px #fff3,inset -2px -2px #0005;display:flex;align-items:center;gap:10px}.choice-btn .choice-tag{font-family:var(--px-font);font-size:11px;color:var(--c-gold);flex-shrink:0}.choice-btn:hover:not(:disabled){filter:brightness(1.2)}.choice-btn.correct{background:linear-gradient(#4fae4f,#2f7a2f);animation:popIn .3s}.choice-btn.wrong{background:linear-gradient(#c85454,#8f2f2f);animation:shake .35s}.choice-btn.dimmed{opacity:.55}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes popIn{0%{transform:scale(.9)}60%{transform:scale(1.06)}to{transform:scale(1)}}.number-input-row{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0}.mc-input{width:180px;padding:10px 14px;font-size:22px;text-align:center;font-family:var(--px-font);color:#ffe08a;background:#14121c;border:3px solid #000;box-shadow:inset 2px 2px #0008,inset -2px -2px #ffffff18;outline:none}.mc-input:focus{border-color:#fff8}.input-unit{font-size:16px;font-weight:700}.steps-pool{display:flex;flex-direction:column;gap:8px;margin:14px 0}.step-chip{padding:10px 14px;background:#3d3948;border:2px solid #000;cursor:grab;font-size:15px;line-height:1.5;box-shadow:inset 2px 2px #fff2;display:flex;gap:10px;align-items:center}.step-chip .step-no{font-family:var(--px-font);font-size:11px;color:var(--c-gold);flex-shrink:0;width:22px}.step-chip.dragging{opacity:.4}.step-chip.in-place{background:#2f5a2f}.grid-fill{display:inline-block;margin:12px auto}.grid-fill table{border-collapse:collapse}.grid-fill td{width:56px;height:56px;border:2px solid #ffffff33;background:#ffffff0d;text-align:center;vertical-align:middle;font-size:20px;font-weight:800;font-family:var(--px-font)}.grid-fill td.given{background:#f0d04026;color:#ffe08a}.grid-fill td.target{background:#31c24d1f;cursor:pointer}.grid-fill td.target.active{outline:3px solid var(--c-gem);outline-offset:-3px}.grid-fill td.target.filled-ok{background:#31c24d66}.grid-fill td.target.filled-bad{background:#e0404066;animation:shake .35s}.grid-fill td.circle-mask{background:transparent;border:none}.match-fig{display:flex;align-items:center;justify-content:center;gap:18px;margin:16px 0;padding:18px;background:#ffffff0d}.match-digit{position:relative;width:60px;height:100px}.match-seg{position:absolute;cursor:pointer}.match-seg .stick{position:absolute;background:linear-gradient(#a87838,#7a5630);border:1px solid #000}.match-seg .flame{position:absolute;background:radial-gradient(#fff8a0,#f8a028);border:1px solid #7a3808}.match-seg.selected .stick{background:linear-gradient(#e8a878,#c87848);opacity:.55}.match-seg.removed{opacity:0;pointer-events:none}.match-sym{font-size:44px;font-weight:900;color:#ffe08a;text-shadow:2px 2px 0 #000}.balance-fig{display:flex;align-items:flex-end;justify-content:center;gap:40px;padding:10px}.balance-side{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;background:#ffffff0f;border:2px solid #ffffff22;min-width:120px;min-height:70px;flex-wrap:wrap;flex-direction:row;justify-content:center;align-content:center}.balance-beam{width:420px;max-width:80vw;height:10px;margin:0 auto;background:linear-gradient(#a8845a,#7a5c3e);border:2px solid #000}.balance-pillar{width:16px;height:60px;margin:0 auto;background:linear-gradient(90deg,#7a5c3e,#a8845a);border:2px solid #000}.icon-stack{display:flex;align-items:center;gap:2px}.icon-stack .cnt{font-size:13px;font-weight:800;color:#ffe08a;margin-left:3px}.icon-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}.icon-row .op{font-size:24px;font-weight:900;color:#ffe08a}.iso3d{display:block;margin:0 auto}.journey-fig{padding:14px;background:#ffffff0d;border:2px solid #ffffff22}.hint-box,.solution-box{margin:14px 0;padding:14px 16px;background:#f0d0401a;border:2px solid rgba(240,208,64,.4)}.solution-box{background:#31c24d1a;border-color:#31c24d73}.hint-box .box-title,.solution-box .box-title{font-weight:800;margin-bottom:8px;display:flex;align-items:center;gap:8px}.hint-box .box-title{color:var(--c-gold)}.solution-box .box-title{color:#7df08f}.solution-steps{counter-reset:solstep}.solution-steps .sol-step{position:relative;padding:6px 0 6px 34px;line-height:1.7;font-size:15.5px}.solution-steps .sol-step:before{counter-increment:solstep;content:counter(solstep);position:absolute;left:0;top:8px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#3d3948;border:2px solid #000;font-size:12px;font-weight:800;color:#ffe08a}.world-map{position:relative;min-height:100%;padding:24px 20px 60px}.region-row{margin-bottom:28px}.region-header{display:flex;align-items:center;gap:12px;margin-bottom:10px;text-shadow:2px 2px 0 #000}.region-name{font-size:21px;font-weight:900}.region-lore{font-size:13px;color:#cfc8e8}.region-progress{margin-left:auto;font-size:14px;color:#ffe08a;font-weight:700}.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.topic-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px;text-align:left;cursor:pointer;background:linear-gradient(#282434f2,#1c1826f2);border:2px solid #000;box-shadow:inset 2px 2px #ffffff26,inset -2px -2px #0005;color:#fff;transition:transform .08s}.topic-card:hover:not(.locked){transform:translateY(-3px);filter:brightness(1.15)}.topic-card.locked{opacity:.55;cursor:not-allowed}.topic-card .t-no{position:absolute;top:8px;right:10px;font-family:var(--px-font);font-size:9px;color:#888}.topic-card .t-title{font-size:16px;font-weight:800;margin-top:4px}.topic-card .t-sub{font-size:12px;color:#b8b0d0;line-height:1.4}.topic-card .t-lock{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:30px;background:#00000059}.topic-card .t-badge{position:absolute;top:-8px;left:-6px}.study-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.study-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;cursor:pointer;font-size:15px;font-weight:700;background:#3d3948;border:2px solid #000;color:#aaa}.study-tab .tab-icon{font-size:17px}.study-tab.active{background:#2f7a2f;color:#fff;box-shadow:inset 0 0 0 2px #fff4}.study-tab.done:after{content:"✓";color:var(--c-xp)}.study-tab.locked{opacity:.4;cursor:not-allowed}.method-cards{display:grid;gap:12px}.method-card{padding:14px 16px;background:linear-gradient(#3c364ef2,#2a2638f2);border:2px solid #000;box-shadow:inset 2px 2px #ffffff1e}.method-card .m-title{font-size:16px;font-weight:800;color:#ffe08a;margin-bottom:6px}.method-card .m-body{font-size:15px;line-height:1.8}.method-card .m-rhyme{margin-top:8px;padding:8px 12px;font-size:14px;color:#7df08f;background:#31c24d14;border-left:4px solid var(--c-gem)}.example-block{margin-bottom:20px}.example-no{display:inline-block;margin-bottom:8px;padding:2px 12px;background:#3a6ea0;border:2px solid #000;font-weight:800;font-size:14px}.example-answer{margin-top:10px;padding:10px 14px;font-size:17px;font-weight:800;background:#31c24d26;border:2px dashed var(--c-gem)}.boss-stage{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 0}.boss-name{font-size:22px;font-weight:900;text-shadow:2px 2px 0 #000}.boss-hp{display:flex;gap:3px}.boss-hp .hp-pip{width:22px;height:12px;background:#e04040;border:2px solid #000}.boss-hp .hp-pip.lost{background:#3a3a44}.boss-sprite-box{position:relative}.boss-sprite-box.hurt .boss-img{animation:shake .35s,bossFlash .35s}@keyframes bossFlash{50%{filter:brightness(2.5) saturate(0)}}.boss-img{transition:transform .3s}.toast-stack{position:fixed;top:70px;right:16px;z-index:200;display:flex;flex-direction:column;gap:10px}.achievement-toast{display:flex;align-items:center;gap:12px;min-width:260px;padding:12px 16px;background:#2c2836;border:3px solid #000;box-shadow:inset 2px 2px #fff3,4px 4px #00000080;animation:toastIn .35s}.achievement-toast .a-title{font-size:12px;color:var(--c-gold);font-weight:800}.achievement-toast .a-name{font-size:16px;font-weight:800}.achievement-toast .a-desc{font-size:12px;color:#b8b0d0}@keyframes toastIn{0%{transform:translate(120%)}to{transform:translate(0)}}.toast-plain{background:#242030}.drop-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:150}.drop-item{position:absolute;animation:dropFall 1.1s ease-in forwards}@keyframes dropFall{0%{transform:translateY(0) scale(.6);opacity:0}25%{transform:translateY(20px) scale(1.15);opacity:1}to{transform:translateY(240px) scale(.9);opacity:0}}.home-wrap{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 20px;text-align:center}.game-title{font-size:40px;font-weight:900;letter-spacing:4px;text-shadow:0 4px 0 #2f7a2f,0 8px 0 rgba(0,0,0,.5);animation:titleFloat 3s ease-in-out infinite}.game-title .t-highlight{color:#7df08f}@keyframes titleFloat{50%{transform:translateY(-6px)}}.game-sub{font-size:15px;color:#e8e2f8;text-shadow:1px 1px 0 #000}.skin-select{display:flex;gap:18px;margin:8px 0}.skin-card{padding:14px 18px;background:#1e1a2ae6;border:3px solid #000;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px}.skin-card.selected{outline:3px solid var(--c-gem);background:#2f7a2f59}.skin-card .skin-name{font-weight:800}.page{min-height:100%;padding-bottom:40px}.page-title{font-size:26px;font-weight:900;padding:20px 0 8px;text-align:center;text-shadow:2px 2px 0 #000}.page-sub{text-align:center;color:#cfc8e8;font-size:14px;margin-bottom:16px}.nav-links{display:flex;gap:10px;margin-left:auto}.nav-link{color:#cfc8e8;text-decoration:none;font-size:14px;font-weight:700;padding:5px 10px;border:2px solid transparent;cursor:pointer}.nav-link:hover{color:#fff;border-color:#fff4}.nav-link.active{color:var(--c-gold);border-color:var(--c-gold)}.wrong-item{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.wrong-list{display:flex;flex-direction:column;gap:10px}.empty-tip{text-align:center;color:#9a92b5;padding:40px 0;font-size:15px}.flow-actions{position:sticky;bottom:0;display:flex;justify-content:space-between;gap:10px;padding:12px 0;background:linear-gradient(transparent,#0a0810f2 40%)}.feedback-banner{padding:12px 16px;margin:10px 0;font-size:17px;font-weight:800;border:2px solid #000;text-align:center;animation:popIn .3s}.feedback-banner.ok{background:#31c24d40;color:#7df08f}.feedback-banner.no{background:#e0404040;color:#ff9a9a}.dots-progress{display:flex;gap:6px;align-items:center}.dot{width:12px;height:12px;background:#3a3a44;border:2px solid #000}.dot.ok{background:var(--c-xp)}.dot.now{background:var(--c-gold);animation:blink 1s infinite}.dot.bad{background:var(--c-red)}@keyframes countPop{50%{transform:scale(1.3)}}.count-pop{animation:countPop .3s}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#141020}::-webkit-scrollbar-thumb{background:#4a4458;border:2px solid #141020}.pet-select{display:flex;gap:14px;justify-content:center;margin:4px 0 10px}.pet-select-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 16px;cursor:pointer;background:#14121ab8;border:3px solid #000;box-shadow:inset 2px 2px #fff2}.pet-select-card:hover{filter:brightness(1.15)}.pet-select-card.selected{outline:3px solid var(--c-gem);background:#2f7a2f52}.pet-select-card span{font-size:13px;font-weight:800}.home-pet-zone{display:flex;justify-content:center;align-items:flex-end;min-height:210px}@media (max-width: 640px){.choice-grid{grid-template-columns:1fr}.game-title{font-size:28px}.quiz-stem{font-size:16px}.xp-bar-wrap{max-width:160px}}.scene-structures{position:absolute;left:0;right:0;bottom:108px;height:320px;pointer-events:none}.scene-props{position:absolute;left:0;right:0;bottom:108px;height:140px;pointer-events:none}.scene-tint{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:screen}.structure{position:absolute;bottom:0;display:flex;flex-direction:column;align-items:center;image-rendering:pixelated;filter:drop-shadow(6px 6px 0 rgba(0,0,0,.28))}.structure-roof-peak{image-rendering:pixelated;clip-path:polygon(50% 0,100% 100%,0 100%)}.structure-roof-flat{height:10px;image-rendering:pixelated;border:3px solid #00000088;border-bottom:none}.structure-wall{position:relative;width:100%;image-rendering:pixelated;border:3px solid #00000099;border-top:none;display:flex;justify-content:center;align-items:flex-end}.structure-door{position:absolute;bottom:0;left:50%;transform:translate(-50%);background:#4a3220;border:2px solid #000000aa;border-bottom:none}.structure-door span{width:5px;height:5px;background:#f0d040;border:1px solid #000;position:absolute;right:3px;top:50%}.structure-window{position:absolute;background:#a8e0ff;border:2px solid #000000aa;box-shadow:inset 0 0 0 1px #fff8}.structure-sign{position:absolute;top:-20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:3px;background:#8a6238;border:2px solid #000;padding:1px 6px;font-size:11px;font-weight:800;color:#fff8d8;white-space:nowrap;text-shadow:1px 1px 0 #000}.scene-prop{position:absolute;bottom:0;image-rendering:pixelated;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.3));transform:translate(-50%)}@media (max-width: 900px){.scene-structures{opacity:.7}.structure-sign{display:none}.scene-props{opacity:.85}}.pet-float{position:fixed;z-index:120;background:#121018f0;border:3px solid #000;box-shadow:inset 2px 2px #ffffff30,inset -2px -2px #0006,4px 4px #00000073;-webkit-user-select:none;user-select:none;transition:box-shadow .15s}.pet-float.dragging{box-shadow:inset 2px 2px #ffffff30,8px 8px #0000008c}.pet-float-bar{display:flex;align-items:center;gap:6px;padding:4px 6px;background:linear-gradient(#4a4458,#38333f);border-bottom:2px solid #000;cursor:grab;touch-action:none}.pet-float.dragging .pet-float-bar{cursor:grabbing}.pet-float-dots{color:#9a92b5;font-size:12px;letter-spacing:-1px}.pet-float-title{flex:1;font-size:12.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pet-float-food{font-size:11px;font-weight:800;color:#ffce8a}.pet-float-stage{position:relative;display:flex;align-items:flex-end;justify-content:center;height:92px;padding-bottom:4px;background:linear-gradient(#8fd4ff,#b8e4ff 70%);overflow:hidden}.pet-float-grass{position:absolute;left:0;right:0;bottom:0;height:20px;background:repeating-linear-gradient(90deg,#5cc23a 0,#5cc23a 4px,#4fae2f 4px,#4fae2f 8px,#6ede4a 8px,#6ede4a 12px);border-top:3px solid #3f8f2e;box-shadow:inset 0 3px #8aef6a}.pet-float-body{position:relative;z-index:2;margin-bottom:10px;background:none;border:none;padding:0;cursor:pointer;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.3));transition:transform .25s steps(3);animation:petIdle 3.2s ease-in-out infinite}.pet-float-body:hover{filter:drop-shadow(3px 3px 0 rgba(0,0,0,.3)) brightness(1.15)}.pet-float-body.pet-eat{transform:translateY(3px) rotate(-2deg);animation:none}.pet-float-body.pet-jump{animation:petJump .55s ease-in-out infinite}@keyframes petIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes petJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-16px) scale(1.08,.94)}60%{transform:translateY(0) scale(.94,1.06)}}.pet-heart{position:absolute;bottom:46px;z-index:3;font-size:18px;animation:heartRise 1.4s ease-out forwards;pointer-events:none}@keyframes heartRise{0%{transform:translateY(0) scale(.4);opacity:0}25%{transform:translateY(-10px) scale(1.2);opacity:1}to{transform:translateY(-70px) scale(.9);opacity:0}}.pet-bubble{position:absolute;top:-2px;left:50%;transform:translate(-50%);z-index:4;white-space:nowrap;background:#0c0a12eb;border:2px solid #ffffff55;padding:4px 9px;font-size:12px;font-weight:700;animation:popIn .25s}.pet-bubble:after{content:"";position:absolute;bottom:-7px;left:50%;margin-left:-6px;border:6px solid transparent;border-top-color:#fff5}.pet-bubble-soft{font-weight:600;color:#cfc8e8;opacity:.9}.pet-float-footer{display:flex;align-items:center;gap:6px;padding:5px 7px;border-top:2px solid #000}.pet-float-happy{flex:1;height:7px;background:#1a1a22;border:2px solid #000}.pet-float-happy i{display:block;height:100%;background:repeating-linear-gradient(90deg,#ff7a9a 0,#ff7a9a 4px,#e05a7a 4px,#e05a7a 6px);transition:width .4s steps(6)}.pet-float-btn{padding:3px 10px;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(#4fae4f,#2f7a2f);border:2px solid #000;box-shadow:inset 1px 1px #fff4;cursor:pointer}.pet-float-btn:hover:not(:disabled){filter:brightness(1.15)}.pet-float-btn:disabled{opacity:.45;cursor:not-allowed}.pet-crown{position:absolute;top:-16px;left:50%;transform:translate(-50%);font-size:15px}.scene-label{max-width:860px;margin:0 auto 4px;padding:0 16px;font-size:13px;font-weight:700;color:#fff8d8;text-shadow:1px 1px 0 #000;opacity:.92}.quiz-card{background:#0e0c14e0;border:3px solid #000;box-shadow:inset 2px 2px #ffffff1e,0 8px #0006;margin-top:6px;margin-bottom:24px}.quiz-card .mc-panel{background:#2e2a3ae6}.leader-table{width:100%;border-collapse:collapse;font-size:15px}.leader-table th{padding:10px 12px;text-align:left;font-size:13px;color:#b8b0d0;background:#2a2634;border-bottom:2px solid #000}.leader-table td{padding:9px 12px;border-bottom:1px solid #ffffff14}.leader-table tr.is-me{background:#31c24d24}.leader-table tbody tr:hover{background:#ffffff0d}.crash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:30px 20px;text-align:center;background:linear-gradient(#1a1424,#2a2030)}.crash-screen h2{font-size:22px;text-shadow:2px 2px 0 #000}.crash-msg{max-width:620px;padding:10px 16px;font-size:14px;color:#ffb0b0;background:#e0404026;border:2px solid rgba(224,64,64,.5);word-break:break-word}.crash-tip{font-size:13px;color:#cfc8e8}.crash-detail{max-width:700px;width:100%;margin-top:10px;font-size:12px;color:#9a92b5}.crash-detail summary{cursor:pointer}.crash-detail pre{margin-top:8px;padding:10px;max-height:200px;overflow:auto;background:#14121c;border:2px solid #000;text-align:left;font-size:11px;line-height:1.5;white-space:pre-wrap}@media (pointer: coarse){html,body{-webkit-tap-highlight-color:transparent}button,.choice-btn,.study-tab,.topic-card,.pet-float-bar{touch-action:manipulation}.mc-btn{min-height:44px}.mc-btn.small{min-height:40px;padding:8px 16px}.choice-btn{min-height:56px}.study-tab{min-height:46px}.nav-link{min-height:40px;display:inline-flex;align-items:center}.step-chip .mc-btn.small{min-width:40px}.mc-input{font-size:18px!important}input,textarea,select{font-size:16px}}.status-bar,.page,.quiz-card,.home-wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.pet-float{max-width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 8px)}@media (min-width: 700px) and (max-width: 1100px){.quiz-card{max-width:900px;padding-left:24px;padding-right:24px}.choice-grid{gap:14px}.choice-btn{font-size:18px;padding:16px 18px}.quiz-stem{font-size:19px;line-height:2}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.scene-structures{height:300px}.pet-float{width:156px}.pet-float-stage{height:84px}}@media (max-height: 500px) and (orientation: landscape){.status-bar{padding-top:4px;padding-bottom:4px}.game-title{font-size:26px}.home-wrap{gap:8px;padding:12px}.pet-float{width:140px}.pet-float-stage{height:70px}.pet-float-body svg{width:48px!important;height:48px!important}.page-title{font-size:20px;padding:10px 0 4px}}@media (hover: none){.topic-card:hover:not(.locked){transform:none;filter:none}.mc-btn:hover:not(:disabled){filter:none}.pet-float-body:hover{filter:drop-shadow(3px 3px 0 rgba(0,0,0,.3))}.choice-btn:hover:not(:disabled){filter:none}}@media (max-width: 1100px){.scene-props{opacity:.55}.scene-structures{opacity:.6}}.pet-float{touch-action:none;-webkit-user-select:none;user-select:none}.pet-float-stage,.pet-float-footer{touch-action:none}@media (pointer: coarse){.match-seg{padding:3px;margin:-3px}.grid-fill td{width:60px;height:60px;font-size:22px}.numpad-btn,.mc-btn.small{min-width:44px;min-height:44px}}@media (pointer: coarse){.match-seg{position:absolute}.match-seg:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.match-fig{gap:12px;padding:14px 8px}.match-fig{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:flex-start}.match-fig::-webkit-scrollbar{height:6px}}@media (max-width: 760px){.status-bar{flex-wrap:wrap;gap:6px 10px;padding:6px 10px}.status-bar .nav-links{margin-left:0;width:100%;justify-content:space-between;overflow-x:auto}.nav-link{padding:4px 8px;font-size:13px;white-space:nowrap}.xp-bar-wrap{max-width:none;flex:1 1 120px}.xp-rank{font-size:12px}.status-item{font-size:13px}.pet-float{max-width:min(168px,calc(100vw - 12px))}}@media (max-width: 420px){.nav-link{font-size:12px;padding:4px 6px}.status-bar img,.status-bar svg{flex-shrink:0}}.ladder-hero{max-width:860px;margin:0 auto 18px;display:flex;gap:18px;align-items:stretch;padding:16px 18px;background:var(--panel-bg);border:3px solid #000;box-shadow:inset 2px 2px #fff5,inset -2px -2px #0006,0 3px #0008}.ladder-hero-badge{min-width:108px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:#00000059;border:2px solid #000;box-shadow:inset 0 0 0 2px #ffffff14}.ladder-hero-tier{font-weight:900;font-size:18px;color:#ffe08a;text-shadow:2px 2px 0 #000}.ladder-hero-season{font-size:11px;color:#9a92b5}.ladder-hero-main{flex:1;display:flex;flex-direction:column;gap:10px;justify-content:center}.ladder-score-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.ladder-score{font-family:var(--px-font);font-size:26px;color:#7fe848;text-shadow:2px 2px 0 #000}.ladder-score-unit{font-size:12px;color:#9a92b5}.ladder-record{font-size:13px;color:#cfc8e8}.ladder-streak{font-size:12px;font-weight:800;color:#ff9a5a}.ladder-progress-wrap{display:flex;flex-direction:column;gap:4px}.ladder-progress{height:14px;background:#1a1722;border:2px solid #000;box-shadow:inset 2px 2px #0008;overflow:hidden}.ladder-progress-fill{height:100%;background:linear-gradient(90deg,#31c24d,#7fe848);box-shadow:inset 0 2px #fff4;transition:width .3s steps(4)}.ladder-progress-label{font-size:11px;color:#9a92b5}.ladder-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ladder-hint{font-size:12px;color:#cfc8e8}.ladder-rules{max-width:860px;margin:0 auto 18px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;font-size:12px;color:#b8b0d0}.ladder-rules span{padding:5px 10px;background:#00000052;border:2px solid #000;box-shadow:inset 2px 2px #fff2}.ladder-columns{max-width:1040px;padding-bottom:120px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px}.ladder-tier-chip{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#ffe08a;white-space:nowrap}.ladder-history{display:flex;flex-direction:column;gap:6px}.ladder-history-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--panel-bg);border:2px solid #000;box-shadow:inset 2px 2px #ffffff1a}.ladder-history-row.win{border-left:4px solid #31c24d}.ladder-history-row.loss{border-left:4px solid #e04040}.ladder-history-row.draw{border-left:4px solid #b8b0d0}.ladder-result-tag{flex-shrink:0;width:24px;height:24px;display:grid;place-items:center;font-size:12px;font-weight:900;border:2px solid #000}.ladder-result-tag.win{background:#1f8f36;color:#fff}.ladder-result-tag.loss{background:#a02727;color:#fff}.ladder-result-tag.draw{background:#5a5468;color:#fff}.ladder-history-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ladder-history-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ladder-history-meta{font-size:11px;color:#9a92b5}.ladder-delta{font-family:var(--px-font);font-size:11px}.ladder-delta.up{color:#7df08f}.ladder-delta.down{color:#ff9a9a}.battle-page{padding-bottom:40px}.battle-arena{max-width:860px;margin:0 auto 14px;display:flex;align-items:stretch;gap:10px}.battle-side{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--panel-bg);border:3px solid #000;box-shadow:inset 2px 2px #fff5,inset -2px -2px #0006}.battle-side.me{border-color:#31c24d}.battle-side.opp{border-color:#e04040}.battle-side-avatar{flex-shrink:0}.battle-side-info{flex:1;min-width:0}.battle-side-name{font-size:14px;font-weight:800;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-you{font-size:11px;color:#7df08f}.battle-side-tier{font-size:11px;color:#ffe08a;display:flex;align-items:center;gap:3px}.battle-side-dots{display:flex;gap:3px;flex-wrap:wrap;max-width:92px}.battle-dot{width:10px;height:10px;border:2px solid #000;background:#3a3a44}.battle-dot.done{background:#9a92b5}.battle-dot.ok{background:#31c24d}.battle-dot.bad{background:#e04040}.battle-side-progress{font-size:11px;color:#b8b0d0;flex-shrink:0}.battle-vs{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0 4px}.battle-vs-text{font-family:var(--px-font);font-size:16px;color:#ffe08a;text-shadow:2px 2px 0 #000}.battle-mode{font-size:10px;color:#b8b0d0;white-space:nowrap}.battle-timer{max-width:860px;margin:0 auto 10px}.battle-timer-label{font-size:12px;color:#cfc8e8;margin-bottom:4px;text-align:center}.battle-timer-bar{height:12px;background:#1a1722;border:2px solid #000;box-shadow:inset 2px 2px #0008;overflow:hidden}.battle-timer-fill{height:100%;background:linear-gradient(90deg,#31c24d,#7fe848);transition:width .2s linear}.battle-timer.low .battle-timer-label{color:#ff9a9a;font-weight:800}.battle-timer.low .battle-timer-fill{background:linear-gradient(90deg,#a02727,#e04040)}.battle-question{margin-bottom:0}.battle-qhead{display:flex;align-items:center;gap:10px;margin-bottom:6px}.battle-qno{font-weight:900;font-size:16px}.battle-judge{font-size:14px;font-weight:800}.battle-judge.ok{color:#7df08f}.battle-judge.no{color:#ff9a9a}.battle-question-foot{display:flex;justify-content:space-between;gap:8px;margin-top:12px}.battle-waiting{max-width:520px;margin:24px auto;text-align:center}.battle-waiting-title{font-weight:900;font-size:17px;margin-bottom:12px}.battle-waiting-progress{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:#cfc8e8}.battle-result{max-width:640px;margin:10px auto;padding:20px 18px;background:var(--panel-bg);border:3px solid #000;box-shadow:inset 2px 2px #fff5,inset -2px -2px #0006,0 4px #0008;text-align:center}.battle-result-title{font-size:26px;font-weight:900;text-shadow:2px 2px 0 #000;margin-bottom:8px}.battle-result-title.win{color:#ffe08a}.battle-result-title.loss{color:#ff9a9a}.battle-result-title.draw{color:#cfc8e8}.battle-result-score{display:flex;align-items:center;justify-content:center;gap:12px;font-family:var(--px-font);font-size:30px;color:#fff;text-shadow:3px 3px 0 #000}.battle-result-colon{font-size:22px;color:#9a92b5}.battle-result-score-label{font-size:12px;color:#9a92b5;margin-bottom:16px}.battle-result-rating{padding:12px;background:#0000004d;border:2px solid #000;margin-bottom:14px}.rating-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.rating-tier{font-size:16px;font-weight:900;color:#ffe08a}.rating-delta{font-family:var(--px-font);font-size:13px}.rating-delta.up{color:#7df08f}.rating-delta.down{color:#ff9a9a}.rating-bar{height:12px;background:#1a1722;border:2px solid #000;box-shadow:inset 2px 2px #0008;overflow:hidden;margin-bottom:6px}.rating-bar-fill{height:100%;background:linear-gradient(90deg,#31c24d,#7fe848);transition:width .4s steps(5)}.rating-sub{font-size:11px;color:#9a92b5}.battle-promo{margin-top:8px;font-size:14px;font-weight:900;color:#7df08f;animation:popIn .4s steps(3)}.battle-demo{margin-top:8px;font-size:13px;color:#ff9a9a}.battle-reward{display:flex;justify-content:center;gap:16px;font-size:14px;color:#7fe848;font-weight:800;margin-bottom:14px}.battle-review{text-align:left;padding-top:12px;border-top:2px dashed #ffffff22}.battle-review-item{margin-top:8px;padding:8px 10px;background:#00000047;border:2px solid #000;font-size:13px}.battle-review-item summary{cursor:pointer;font-weight:700;line-height:1.6}.battle-review-item .solution-steps{margin-top:8px}@media (max-width: 760px){.ladder-hero{flex-direction:column;gap:12px;padding:12px}.ladder-hero-badge{flex-direction:row;justify-content:flex-start;gap:10px;min-width:0}.ladder-columns{grid-template-columns:1fr}.battle-arena{flex-direction:column;gap:8px}.battle-vs{flex-direction:row;gap:8px}.battle-side-dots{max-width:none}.battle-result-title{font-size:22px}.battle-result-score{font-size:24px}}
