:root{--paper:#f6f4ed;--white:#fffefa;--ink:#293e37;--muted:#92968a;--green:#325d4c;--jade:#6b9276;--line:#e6e5d9;--gold:#bc9656;--red:#c76853;--shadow:0 14px 50px #263d3212;font-family:Inter,"Microsoft YaHei",sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-size:14px}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;transition:background .2s,transform .2s,box-shadow .2s}button:hover{filter:brightness(.97)}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bca36f;outline-offset:3px}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,h4,p{margin:0}a{color:var(--green)}.serif{font-family:"Noto Serif SC","STSong","SimSun",serif}.small{font-size:12px}.muted{color:var(--muted)}.gold{color:var(--gold)}.red{color:var(--red)}.green{color:var(--green)}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.stack{display:grid;gap:14px}.tag{padding:4px 8px;border:1px solid #dcdcc9;border-radius:5px;font-size:10px;letter-spacing:1px;white-space:nowrap}.btn{padding:12px 18px;border-radius:8px;background:var(--green);color:white;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px}.btn.secondary{background:#efeee5;color:var(--ink);border:1px solid var(--line)}.btn.gold-btn{background:#b89353}.btn.danger{background:#ae6352}.btn.sm{padding:8px 12px;font-size:12px}.btn.full{width:100%}.text-btn{color:var(--green);font-size:12px;padding:8px;display:inline-flex;align-items:center;gap:5px}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:#fffefa}.site-header{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:24px;background:#faf9f3}.brand{display:flex;align-items:center;gap:11px;min-width:200px}.brand-mark{width:44px;height:44px;background:var(--green);color:#f4dc9e;display:grid;place-items:center;border-radius:12px 4px 12px 4px;transform:rotate(-3deg)}.brand-mark svg{width:29px;height:29px}.brand-name{font-size:27px;font-weight:800;letter-spacing:3px;line-height:1.2}.brand-sub{font-size:9px;letter-spacing:3px;color:#9b9c89;margin-top:5px}.main-nav{display:flex;gap:24px;align-self:stretch}.nav-link{font-size:13px;position:relative;display:flex;align-items:center;gap:8px;color:#8a9082;padding:0 3px}.nav-link.active{color:var(--green);font-weight:600}.nav-link.active:after{content:"";height:3px;border-radius:3px;background:var(--green);position:absolute;bottom:0;left:0;right:0}.nav-link svg{width:17px;height:17px}.header-right{display:flex;align-items:center;gap:12px}.online-dot{width:6px;height:6px;border-radius:50%;background:#7c9a7b;display:inline-block}.page{max-width:1760px;margin:auto;padding:24px 32px 14px}.topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.greeting{font-size:20px;font-weight:600;letter-spacing:1px}.greeting span{font-family:Inter,"Microsoft YaHei",sans-serif;font-size:12px;font-weight:400;color:#9a9c8a;letter-spacing:0;margin-left:18px}.wallet{display:flex;align-items:center;gap:22px;font-variant-numeric:tabular-nums}.currency{display:flex;align-items:center;gap:7px;font-size:13px}.currency svg{color:var(--gold);width:17px;height:17px}.currency em{font-size:10px;font-style:normal;color:var(--muted);margin-left:2px}.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:20px;align-items:stretch}.world-wrap{min-width:0;display:flex;flex-direction:column}.scene{position:relative;border-radius:15px;overflow:hidden;background:#b3c9bc;min-height:580px;height:calc(100vh - 286px);max-height:800px;isolation:isolate;border:1px solid #dfded0;box-shadow:var(--shadow)}.scene-bg{position:absolute;inset:0;background-image:url('./assets/changan.webp');background-size:cover;background-position:center;transition:filter .7s;z-index:-3}.scene:after{content:"";position:absolute;inset:0;background:linear-gradient(#142c3022,transparent 25%,transparent 65%,#1d372a65);pointer-events:none;z-index:-1}.scene.forest .scene-bg,.scene.battle .scene-bg{background-image:url('./assets/grove.webp')}.scene.mountain .scene-bg{background-image:url('./assets/grove.webp');filter:hue-rotate(18deg) saturate(.8)}.scene.dragon .scene-bg{background-image:url('./assets/changan.webp');filter:hue-rotate(35deg) saturate(.65)}.scene.dark .scene-bg{background-image:url('./assets/grove.webp');filter:brightness(.5) hue-rotate(35deg)}.scene-location{position:absolute;top:23px;left:26px;color:white;text-shadow:0 2px 8px #1b302b66;pointer-events:none}.location-title{font-size:31px;letter-spacing:5px;font-weight:700;display:flex;align-items:center;gap:12px}.location-title .tag{font:10px "Microsoft YaHei",sans-serif;letter-spacing:1px;background:#ffffff25;border-color:#ffffff60;padding:5px 8px}.scene-location p{font-size:11px;margin-top:8px;letter-spacing:2px}.scene-controls{position:absolute;top:23px;right:22px;display:flex;gap:8px}.glass-btn{padding:9px 12px;background:#fffdefe8;border:1px solid #fff9;border-radius:7px;display:flex;align-items:center;gap:6px;font-size:11px;box-shadow:0 3px 10px #23452e0d}.glass-btn svg{width:15px;height:15px}.mini-compass{position:absolute;right:24px;top:80px;width:112px;height:112px;border:5px solid #fffdeac9;outline:1px solid #f2e2b588;border-radius:50%;background:url('./assets/changan.webp') center/220%;box-shadow:0 3px 10px #25433422;cursor:pointer;overflow:hidden}.mini-compass:before{content:'N';position:absolute;top:2px;left:46px;color:white;font:10px serif;text-shadow:0 1px 3px #000}.mini-compass:after{content:'';position:absolute;left:47%;top:50%;width:8px;height:8px;background:#f6d881;border:2px solid white;border-radius:50%;box-shadow:0 0 0 12px #ffffff30}.coord{position:absolute;right:27px;top:203px;color:#fff;font-size:10px;letter-spacing:1px;text-shadow:0 1px 4px #203d36}.scene-tip{position:absolute;left:50%;top:25px;transform:translateX(-50%);font-size:10px;color:white;background:#35524455;padding:7px 14px;border:1px solid #ffffff35;border-radius:30px;backdrop-filter:blur(6px);white-space:nowrap}.npc{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:2px;min-width:90px;z-index:2;background:transparent;padding:0}.npc:hover .sprite{filter:drop-shadow(0 0 8px #fff4a4)}.npc-name{font-size:11px;color:#fff9d0;text-shadow:0 2px 2px #273f29,0 0 4px #273f29;background:#294a3d70;padding:3px 8px;border-radius:5px;border:1px solid #e7d8a34d;white-space:nowrap}.npc-label{font-size:9px;color:white;text-shadow:0 1px 3px #233f32;letter-spacing:1px}.quest-bang{font-size:24px;color:#ffe48e;text-shadow:0 0 8px #79512d;font-family:serif;font-weight:bold;animation:bob 2s ease-in-out infinite}.sprite{background-image:url('./assets/characters.webp');background-size:400% 100%;background-repeat:no-repeat;width:94px;height:126px;filter:drop-shadow(0 7px 3px #162e3333);flex-shrink:0}.sprite.hero{background-position:0% 50%}.sprite.healer{background-position:33.333% 50%}.sprite.monkey{background-position:66.666% 50%}.sprite.fox{background-position:100% 50%}.player{position:absolute;left:53%;top:70%;transform:translate(-50%,-100%);z-index:5;display:flex;flex-direction:column;align-items:center;pointer-events:none;transition:left 1.2s ease,top 1.2s ease}.player .sprite{width:104px;height:140px;animation:breathe 3s ease-in-out infinite}.player-name{font-size:11px;color:#fff3b7;text-shadow:0 1px 4px #17332a;white-space:nowrap}.player .ring{position:absolute;bottom:12px;width:55px;height:19px;border:1px solid #d9f6bd88;border-radius:50%;background:#a5d4a533;box-shadow:0 0 13px #d8ff9444;z-index:-1}.pet-follower{position:absolute;left:62%;top:76%;transform:translate(-50%,-100%);z-index:4;pointer-events:none;transition:left 1.4s ease,top 1.4s ease}.pet-follower .sprite{width:65px;height:88px}.destination{position:absolute;left:50%;top:70%;transform:translate(-50%,-50%);width:40px;height:18px;border:2px solid #fbeec2;border-radius:50%;animation:ping .8s ease-out forwards;pointer-events:none}.scene-bottom{position:absolute;bottom:19px;left:22px;right:22px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;pointer-events:none}.chatbox{width:340px;color:white;font-size:10px;background:#203d3b63;backdrop-filter:blur(8px);padding:11px 14px;border:1px solid #f9f9d92b;border-radius:8px;line-height:1.9;pointer-events:auto}.chat-tabs{display:flex;gap:17px;color:#d4ded1;border-bottom:1px solid #ffffff22;padding-bottom:4px;margin-bottom:5px}.chat-tabs b{color:#ffe5ac;font-weight:500}.chat-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-line span{color:#f2d594;margin-right:6px}.scene-hint{color:#fffde6;font-size:10px;letter-spacing:1px;text-shadow:0 2px 5px #183e27}.scene-hint kbd{border:1px solid #fff8;border-radius:3px;padding:2px 5px;margin-left:5px;font:9px sans-serif}.petal{position:absolute;width:7px;height:4px;background:#ffe4e8;border-radius:80% 0 80% 0;pointer-events:none;opacity:0;animation:petalfall 12s linear infinite;z-index:6}.sidebar{display:flex;flex-direction:column;gap:15px}.panel{background:#fffef9;border:1px solid var(--line);border-radius:12px;padding:20px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.panel-title h3{font-size:16px;letter-spacing:1px;font-weight:600;display:flex;align-items:center;gap:8px}.panel-title h3 svg{color:var(--gold);width:18px;height:18px}.quest-type{font-size:10px;letter-spacing:1px;color:#9d8b64;border:1px solid #e3d9bb;padding:3px 7px;border-radius:4px}.chapter-progress{display:flex;gap:5px;margin:0 0 16px}.chapter-progress i{height:3px;flex:1;background:#ececdf;border-radius:2px}.chapter-progress i.done{background:#6b9276}.quest-name{font-size:19px;letter-spacing:1px;margin-bottom:10px;font-weight:600}.quest-copy{font-size:11px;line-height:1.9;color:#969b8c;min-height:39px}.objective{display:flex;align-items:center;gap:8px;font-size:11px;background:#f5f5ed;padding:10px;border-radius:6px;margin:15px 0}.objective .icon{width:14px;height:14px;color:var(--jade)}.rewards{display:flex;gap:15px;font-size:10px;color:#aaa590;margin:13px 0 16px}.rewards span{display:flex;gap:4px;align-items:center}.rewards svg{width:13px;height:13px;color:var(--gold)}.main-quest-btn{width:100%;justify-content:space-between;letter-spacing:1px}.activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.activity-btn{border:1px solid #eae8dc;border-radius:8px;padding:12px 8px;text-align:center;position:relative;background:#faf9f1;display:grid;justify-items:center;gap:6px}.activity-btn .activity-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f0e9d6;color:#b49662}.activity-btn:nth-child(2) .activity-icon{color:#78957c;background:#e9efe3}.activity-btn:nth-child(3) .activity-icon{color:#b48c7b;background:#f4e9e0}.activity-btn:nth-child(4) .activity-icon{color:#8992b4;background:#ececf1}.activity-btn strong{font-size:11px;font-weight:500}.activity-btn small{font-size:9px;color:#a1a18e}.red-dot{position:absolute;right:9px;top:9px;width:5px;height:5px;background:#c3755a;border-radius:50%}.team-panel{padding-top:17px;padding-bottom:17px;flex:1}.team-mini{display:flex;align-items:center;justify-content:space-between}.team-face{position:relative;width:49px;height:49px;border-radius:50%;border:2px solid #e5e6d8;background:#eef0e7;overflow:hidden}.team-face .sprite{position:absolute;width:56px;height:75px;left:-4px;top:0}.team-face.locked{display:grid;place-items:center;color:#abb0a0;border:1px dashed #d5d9c9;background:transparent}.team-face.locked svg{width:17px;height:17px}.team-mini figcaption{text-align:center;font-size:9px;color:#8f9588;margin-top:5px}.team-mini figure{margin:0}.dock{display:flex;align-items:center;justify-content:space-between;margin-top:16px;background:#fffef7;border:1px solid var(--line);border-radius:12px;padding:13px 20px;gap:15px}.profile{display:flex;align-items:center;gap:10px;min-width:225px}.portrait{width:48px;height:48px;border-radius:50%;overflow:hidden;background:#e9eee4;border:2px solid #c8d0ba;position:relative;flex-shrink:0}.portrait .sprite{width:58px;height:77px;position:absolute;left:-6px;top:0}.profile-name{font-size:12px;font-weight:600;margin-bottom:5px}.profile-name span{font-size:10px;font-weight:400;color:var(--muted);margin-left:5px}.mini-bars{width:133px;display:grid;gap:4px}.bar{height:5px;border-radius:4px;background:#e3e8dc;overflow:hidden;position:relative}.bar i{display:block;height:100%;background:#7f9b73;border-radius:4px;transition:width .3s}.bar.mp i{background:#8baeb8}.bar.xp i{background:#c2a16a}.dock-links{display:flex;gap:22px}.dock-link{display:grid;justify-items:center;gap:5px;position:relative;font-size:10px;color:#818778;min-width:35px}.dock-link svg{width:23px;height:23px;color:#6c7f66}.dock-link .key{position:absolute;top:-3px;right:-6px;font-size:7px;color:#b6b8a8}.dock-tail{border-left:1px solid var(--line);padding-left:18px;display:grid;gap:6px;color:#939985;font-size:9px;white-space:nowrap}.page-footer{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:9px;color:#a4a797;letter-spacing:.5px}.page-footer .row{gap:18px}.page-footer button{font-size:9px;color:#8c9583}.level-badge{display:inline-block;background:#405f4e;color:#fff2c3;font-size:9px;padding:2px 5px;border-radius:4px}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#192e2b70;backdrop-filter:blur(7px);display:grid;place-items:center;padding:24px;animation:fadein .2s}.modal{background:var(--white);width:min(900px,100%);max-height:88vh;border:1px solid #d9d3bb;border-radius:18px;overflow:hidden;box-shadow:0 28px 100px #132c2840;animation:modalin .25s;display:flex;flex-direction:column}.modal.narrow{max-width:580px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:23px 28px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-head h2{font-size:24px;letter-spacing:3px;font-weight:600}.modal-head p{font-size:11px;color:var(--muted);margin-top:6px;letter-spacing:1px}.modal-close{width:32px;height:32px;border:1px solid var(--line);display:grid;place-items:center;border-radius:50%;color:#83917e}.modal-body{padding:26px 28px;overflow:auto}.modal-foot{padding:15px 28px;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}.tabs{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}.tab{padding:8px 14px;border-radius:6px;color:#969c8d;font-size:12px;background:#f2f2e8}.tab.active{background:var(--green);color:white}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.card{padding:17px;border:1px solid var(--line);border-radius:10px;background:#fafaf4}.card h3{font-size:16px;margin-bottom:8px}.card p{font-size:11px;line-height:1.8;color:#8c9485}.card .btn{margin-top:15px}.card.selected{border-color:#77947a;background:#f0f4e9}.card.locked{opacity:.6}.card-art{height:100px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;background:radial-gradient(ellipse,#e9eddb,transparent 70%);position:relative}.card-art .sprite{height:110px;width:82px}.card-art .big-icon{width:56px;height:56px;color:var(--gold);stroke-width:1}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.stat{border-bottom:1px solid var(--line);padding:9px 0;display:flex;justify-content:space-between;font-size:12px}.stat span{color:#959b8e}.item-line{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.item-line:last-child{border-bottom:0}.item-icon{width:44px;height:44px;border:1px solid #e3dcc6;border-radius:8px;background:#f0ebda;color:#ac8d54;display:grid;place-items:center;flex-shrink:0}.item-icon svg{width:24px;height:24px}.item-info{flex:1;min-width:0}.item-info h4{font-size:13px;font-weight:500;margin-bottom:5px}.item-info p{font-size:10px;color:var(--muted);line-height:1.6}.item-count{font-size:11px;color:var(--gold);white-space:nowrap}.empty{padding:35px;text-align:center;color:#9ba28f;line-height:2;font-size:13px}.notice{padding:12px 15px;background:#f2f2e6;border:1px solid #e5e5d1;color:#88937e;font-size:11px;line-height:1.8;border-radius:7px;margin-bottom:17px}.dialogue{display:flex;gap:28px;align-items:center;min-height:170px}.dialogue .sprite{width:120px;height:160px}.dialogue-text{flex:1}.dialogue-name{font-size:20px;font-weight:600;letter-spacing:2px;margin-bottom:13px}.dialogue-text p{font-size:13px;line-height:2.1;color:#818e7e}.dialogue-choice{display:grid;gap:10px;margin-top:20px}.map-card{height:155px;padding:18px;border-radius:10px;border:1px solid #e0dfd1;background:linear-gradient(0deg,#193c35b8,#193c3511),url('./assets/changan.webp') center/cover;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;color:white;text-align:left;position:relative;overflow:hidden}.map-card.forest,.map-card.mountain,.map-card.dark{background-image:linear-gradient(0deg,#193c35c9,#193c3511),url('./assets/grove.webp')}.map-card.mountain{filter:hue-rotate(15deg)}.map-card.dark{filter:brightness(.7)}.map-card h3{font-size:22px;letter-spacing:3px}.map-card p{font-size:10px;color:#e5e6ce;margin-top:7px}.map-card.locked{filter:grayscale(.7);opacity:.6}.map-card .tag{position:absolute;top:12px;right:12px;border-color:#fff6;color:white}.character-page{display:grid;grid-template-columns:260px 1fr;gap:32px}.character-stand{background:radial-gradient(ellipse at 50% 55%,#e9e8ce88,transparent 70%);display:grid;justify-items:center;align-content:center;min-height:290px}.character-stand .sprite{width:175px;height:233px}.character-stand h3{font-size:23px;letter-spacing:4px;margin-top:10px}.equipment-slot{display:flex;justify-content:space-between;align-items:center;padding:12px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px}.equipment-slot h4{font-size:12px}.equipment-slot p{font-size:10px;color:var(--muted);margin-top:5px}.section-label{font-size:12px;letter-spacing:1px;color:#8e987f;margin:20px 0 12px}.input{background:#f8f8ee;border:1px solid #dfdfd1;border-radius:7px;padding:10px 12px;width:100%;color:var(--ink)}.field{display:grid;gap:8px;margin-bottom:18px;font-size:12px}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.achievement{display:flex;gap:14px;padding:16px;border:1px solid var(--line);border-radius:9px;align-items:center}.achievement .icon{width:30px;height:30px;color:var(--gold)}.achievement h4{font-size:12px;margin-bottom:5px}.achievement p{font-size:10px;color:var(--muted)}.achievement.locked{filter:grayscale(1);opacity:.5}.result-banner{text-align:center;padding:18px 0 22px}.result-banner h2{font-size:39px;letter-spacing:8px;color:var(--gold);margin:10px 0}.result-banner p{font-size:12px;color:#909a87;line-height:1.9}.result-banner .icon{height:48px;width:48px;color:var(--gold);stroke-width:1}.loot{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:25px}.loot-item{border:1px solid var(--line);border-radius:8px;padding:13px 20px;text-align:center;background:#f7f6ea}.loot-item strong{display:block;font-size:20px;margin-bottom:5px;color:var(--gold)}.loot-item span{font-size:10px;color:var(--muted)}#toasts{position:fixed;top:22px;left:50%;transform:translateX(-50%);z-index:100;display:grid;gap:8px;pointer-events:none}.toast{background:#fffdf5f5;border:1px solid #dcdac3;padding:13px 22px;border-radius:8px;box-shadow:var(--shadow);font-size:12px;color:var(--green);animation:toastin .3s;max-width:90vw}.battle-header{position:absolute;top:22px;left:25px;color:white}.battle-header h2{font-size:25px;letter-spacing:3px}.battle-header p{font-size:11px;margin-top:7px;opacity:.8}.battle-round{position:absolute;top:23px;left:50%;transform:translateX(-50%);background:#253e36b0;border:1px solid #ebd9ad55;color:#ffe3a5;border-radius:50%;width:64px;height:64px;display:grid;place-content:center;text-align:center;font-family:serif;font-size:24px}.battle-round small{font:8px sans-serif;letter-spacing:3px}.battle-unit{position:absolute;transform:translate(-50%,-100%);display:grid;justify-items:center;gap:3px;min-width:85px;z-index:5;padding:0;transition:filter .3s}.battle-unit.targeted:before{content:'';position:absolute;bottom:23px;width:85px;height:30px;border:2px solid #ffe19a;background:#ffdc6544;box-shadow:0 0 20px #ffe47966;border-radius:50%;z-index:-1}.battle-unit.active-turn{filter:drop-shadow(0 0 8px #ffffa6)}.battle-unit.fallen{opacity:.35;filter:grayscale(1)}.battle-unit .sprite{width:91px;height:122px}.battle-unit.enemy .sprite{transform:scaleX(-1)}.battle-unit .monster{width:100px;height:120px;overflow:visible;filter:drop-shadow(0 6px 3px #192a3533)}.battle-unit .bar{width:73px;height:5px;border:1px solid #f1e8ce66;background:#343e3a66}.battle-unit.enemy .bar i{background:#bd755b}.unit-name{color:white;font-size:10px;text-shadow:0 1px 4px #17342e;background:#2444338c;padding:3px 7px;border-radius:4px;white-space:nowrap}.unit-status{position:absolute;top:-15px;color:#ffdb86;font-size:9px;text-shadow:0 1px 4px #2c4331}.damage-pop{position:absolute;top:20%;left:50%;transform:translateX(-50%);color:#fff4b5;text-shadow:0 2px 3px #684329;font-size:28px;font-weight:bold;z-index:12;animation:damage .9s forwards;pointer-events:none;white-space:nowrap}.damage-pop.heal{color:#b9ffb2}.battle-actions{background:#fffdf6f2;position:absolute;bottom:0;left:0;right:0;padding:14px 18px;border-top:1px solid #e2dec7;display:flex;align-items:center;gap:10px;backdrop-filter:blur(8px);z-index:10}.battle-action{flex:1;border:1px solid #dfdfc9;background:#f5f4e7;border-radius:9px;padding:10px 6px;display:grid;justify-items:center;gap:5px;font-size:10px;position:relative}.battle-action svg{width:23px;height:23px;color:#7e8c6b}.battle-action.primary{background:var(--green);color:white;border-color:var(--green)}.battle-action.primary svg{color:#eee4b9}.battle-action small{font-size:8px;color:#9da38e}.battle-action.primary small{color:#b8cdb3}.battle-actions-label{font-size:10px;line-height:1.8;color:var(--muted);width:80px;flex-shrink:0}.battle-log{font-size:10px;line-height:1.9;color:#85917d;max-height:220px;overflow:auto}.battle-log p{padding:4px 0;border-bottom:1px solid #eeeee3}.battle-log p:last-child{color:var(--green)}.battle-sidebar .panel{padding:17px}.battle-party-row{display:flex;gap:8px;align-items:center;margin:12px 0}.battle-party-row .portrait{width:34px;height:34px}.battle-party-row .portrait .sprite{width:43px;height:58px;left:-5px}.battle-party-info{flex:1;font-size:10px;display:grid;gap:4px}.battle-party-info .row{gap:5px;font-size:9px}.battle-party-info .bar{height:4px}.battle-party-info small{color:var(--muted);font-size:9px}.target-hint{position:absolute;bottom:120px;left:50%;transform:translateX(-50%);padding:7px 18px;background:#264635a8;border:1px solid #ffffff40;border-radius:30px;font-size:11px;color:#fff2c8;white-space:nowrap}.intro-note{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);margin-top:18px;padding-top:13px;font-size:10px;color:var(--muted)}.welcome-art{height:120px;border-radius:9px;background:linear-gradient(0deg,#294f3833,transparent),url('./assets/changan.webp') center 40%/cover;margin-bottom:20px}.class-select{display:flex;gap:10px;margin:15px 0}.class-option{padding:13px 10px;flex:1;border:1px solid var(--line);border-radius:8px;text-align:center;font-size:11px;background:#f7f6ec}.class-option.active{border-color:#789275;background:#eef2e5;color:var(--green)}.class-option small{display:block;font-size:9px;color:var(--muted);margin-top:6px}.mobile-nav{display:none}.skill-card{position:relative}.skill-card .tag{position:absolute;right:12px;top:12px}.skill-card .item-icon{margin-bottom:14px}.chapter-item{display:flex;gap:15px;border-bottom:1px solid var(--line);padding:15px 0}.chapter-num{width:32px;height:32px;border:1px solid #d9d7c0;border-radius:50%;display:grid;place-items:center;color:var(--gold);flex-shrink:0;font-family:serif}.chapter-item h4{font-size:13px;margin-bottom:6px}.chapter-item p{font-size:11px;color:var(--muted);line-height:1.8}.chapter-item.current .chapter-num{background:var(--green);color:#f4e7bb;border-color:var(--green)}.chapter-item.locked{opacity:.45}.victory-confetti{position:fixed;inset:0;z-index:49;pointer-events:none;background:radial-gradient(ellipse at center,#fee5a233,transparent 65%);animation:fadein 1s}
@keyframes bob{50%{transform:translateY(-5px)}}@keyframes breathe{50%{transform:translateY(-3px)}}@keyframes ping{100%{transform:translate(-50%,-50%) scale(2);opacity:0}}@keyframes petalfall{0%{transform:translateY(-10px) rotate(0deg);opacity:0}10%{opacity:.8}90%{opacity:.7}100%{transform:translate(160px,700px) rotate(300deg);opacity:0}}@keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes modalin{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes toastin{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}@keyframes damage{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-70px)}}
@media(min-width:1600px){.game-grid{grid-template-columns:minmax(0,1fr) 310px}.panel{padding:23px}.scene{min-height:650px}.npc .sprite{width:112px;height:150px}.player .sprite{width:124px;height:166px}}@media(max-width:1200px){.main-nav{gap:15px}.nav-link{font-size:12px}.main-nav .icon{display:none}.header-right .small{display:none}.page{padding:20px}.site-header{padding:0 22px}.game-grid{grid-template-columns:minmax(0,1fr) 260px;gap:15px}.panel{padding:17px}.dock-links{gap:15px}.dock-tail{display:none}.scene-tip{display:none}.greeting span{display:none}.chatbox{width:285px}.scene-hint{display:none}.scene{min-height:570px}.scene-location{left:20px}.location-title{font-size:27px}}@media(max-width:900px){.main-nav{gap:16px}.nav-link:nth-child(n+4){display:none}.game-grid{grid-template-columns:minmax(0,1fr) 230px;gap:12px}.page{padding:16px}.panel{padding:15px}.quest-name{font-size:17px}.panel-title h3{font-size:14px}.scene{min-height:580px}.dock{padding:12px}.dock-links{gap:12px}.dock-link{min-width:25px}.dock-link svg{width:20px}.profile{min-width:190px}.mini-bars{width:110px}.scene-controls .glass-btn{font-size:0;padding:9px}.mini-compass{width:88px;height:88px;right:15px}.coord{top:174px;right:17px;font-size:8px}.scene-location p{font-size:9px}.chatbox{width:240px;font-size:9px}.npc .sprite{width:73px;height:98px}.player .sprite{width:85px;height:114px}.battle-unit .sprite{width:75px;height:100px}.battle-unit .monster{width:78px;height:100px}.battle-actions{padding:11px 8px;gap:5px}.battle-actions-label{display:none}.battle-action{font-size:9px}.battle-action svg{width:19px}.battle-header h2{font-size:20px}.battle-round{left:60%}}
@media(max-width:700px){.site-header{height:69px;padding:0 16px;gap:8px}.brand{min-width:0;gap:9px}.brand-mark{width:36px;height:36px}.brand-name{font-size:23px;letter-spacing:2px}.brand-sub{font-size:7px;letter-spacing:2px}.main-nav{display:none}.header-right{gap:7px}.header-right .icon-btn{width:30px;height:30px}.page{padding:16px 12px 10px}.topline{margin-bottom:13px}.greeting{font-size:17px}.wallet{gap:12px}.currency{font-size:11px;gap:4px}.currency em{display:none}.currency svg{width:14px}.game-grid{display:flex;flex-direction:column}.scene{height:64vh;min-height:460px;max-height:620px;border-radius:12px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sidebar .team-panel{display:none}.panel{padding:14px;border-radius:10px}.panel-title{margin-bottom:11px}.panel-title h3{font-size:13px}.quest-name{font-size:17px;margin-bottom:6px}.quest-copy{font-size:10px;min-height:36px}.chapter-progress{margin-bottom:12px}.objective{font-size:10px;padding:7px;margin:10px 0}.rewards{gap:9px;font-size:9px;margin:10px 0}.main-quest-btn{padding:10px;font-size:11px}.activity-grid{gap:6px}.activity-btn{padding:9px 5px;gap:4px}.activity-btn strong{font-size:10px}.activity-btn small{font-size:8px}.activity-btn .activity-icon{width:28px;height:28px}.activity-icon .icon{width:17px;height:17px}.dock{gap:8px;margin-top:11px;flex-wrap:wrap;padding:11px 13px}.profile{min-width:0;flex:1}.portrait{width:38px;height:38px}.portrait .sprite{width:49px;height:65px}.profile-name{font-size:11px}.mini-bars{width:100px}.dock-links{gap:13px}.dock-link{font-size:9px}.dock-link svg{width:19px;height:19px}.dock-link .key{display:none}.dock-link:nth-child(n+5){display:none}.page-footer{font-size:8px;gap:8px;margin-top:13px}.page-footer .row{gap:9px}.page-footer .hide-mobile{display:none}.page-footer button{font-size:8px}.scene-location{top:20px;left:17px}.location-title{font-size:26px;letter-spacing:3px}.location-title .tag{font-size:8px}.scene-location p{font-size:8px;letter-spacing:1px}.scene-controls{top:20px;right:14px}.mini-compass{top:73px;right:16px;width:74px;height:74px;border-width:3px}.mini-compass:before{left:30px}.coord{top:156px;right:15px}.chatbox{width:230px;padding:7px 10px;font-size:8px}.scene-bottom{bottom:13px;left:13px;right:13px}.npc-name{font-size:9px;padding:2px 5px}.npc-label{font-size:8px}.npc .sprite{width:65px;height:88px}.player .sprite{width:78px;height:104px}.pet-follower .sprite{width:46px;height:62px}.quest-bang{font-size:20px}.modal-backdrop{padding:12px}.modal{border-radius:13px;max-height:93vh}.modal-head{padding:17px 19px}.modal-head h2{font-size:21px}.modal-body{padding:18px}.modal-foot{padding:13px 18px;font-size:10px}.grid3,.grid4{grid-template-columns:1fr 1fr}.grid2{gap:10px}.card{padding:13px}.card h3{font-size:14px}.card p{font-size:10px}.card .btn{font-size:10px;padding:9px}.card-art{height:90px}.character-page{grid-template-columns:1fr;gap:10px}.character-stand{min-height:210px}.character-stand .sprite{width:130px;height:174px}.character-stand h3{font-size:20px}.dialogue{gap:13px;min-height:140px}.dialogue .sprite{width:85px;height:114px}.dialogue-name{font-size:18px}.dialogue-text p{font-size:12px;line-height:1.9}.map-card{height:130px;padding:13px}.map-card h3{font-size:18px}.map-card p{font-size:9px}.battle-sidebar{display:grid;grid-template-columns:1fr 1fr}.battle-sidebar .panel:first-child{grid-row:span 2}.battle-sidebar .panel{padding:13px}.battle-log{max-height:180px;font-size:9px}.battle-unit .sprite{width:61px;height:82px}.battle-unit .monster{width:67px;height:84px}.battle-unit .bar{width:54px}.unit-name{font-size:8px;padding:2px 4px}.battle-header{left:15px;top:18px}.battle-header h2{font-size:18px}.battle-header p{font-size:9px}.battle-round{width:47px;height:47px;font-size:20px;left:58%;top:17px}.battle-round small{font-size:6px}.battle-actions{flex-wrap:wrap;padding:9px;gap:5px}.battle-action{flex-basis:20%;padding:7px 3px;gap:3px}.battle-action small{font-size:7px}.battle-action svg{width:18px;height:18px}.target-hint{bottom:150px;font-size:9px}.battle .scene-controls{right:12px}.battle .glass-btn{padding:8px}.loot-item{padding:10px 13px}.result-banner h2{font-size:31px}.class-option{font-size:10px;padding:11px 7px}.welcome-art{height:100px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
