:root{font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;color:#eaf3f0;background:#0c151b}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit;cursor:pointer}#app{min-height:100dvh;background:radial-gradient(circle at 50% -15%,#294456 0,transparent 45%),linear-gradient(150deg,#101e26,#0a141a 65%)}.shell{max-width:1120px;margin:auto;padding:20px 22px 36px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.brand{font:900 28px "STSong","Songti SC",serif;letter-spacing:4px;color:#e4d29b}.brand small{display:block;font:500 10px "Microsoft YaHei","PingFang SC",sans-serif;letter-spacing:4px;color:#8ba9aa;margin-top:3px}.top-actions{display:flex;align-items:center;gap:10px;color:#c7d8d4;font-size:13px}.pill{border:1px solid #42616b;border-radius:99px;padding:8px 11px;background:#152b34}.quiet{background:transparent;border:1px solid #46606a;border-radius:9px;color:#a8c2c5;padding:8px 12px}.layout{display:grid;grid-template-columns:1fr 340px;gap:18px}.panel{border:1px solid #3a555b;background:linear-gradient(145deg,rgba(31,53,59,.94),rgba(17,34,42,.96));border-radius:16px;box-shadow:0 18px 35px #0004;overflow:hidden}.scene{min-height:490px;position:relative;background:radial-gradient(circle at 50% 55%,#335c5c55,transparent 40%),linear-gradient(#31465430,#0d2629a0),repeating-linear-gradient(140deg,transparent 0 95px,#d7dcc009 96px 98px);padding:24px;display:flex;flex-direction:column}.scene:before,.scene:after{content:'';position:absolute;border-radius:50%;pointer-events:none}.scene:before{width:240px;height:240px;right:-80px;top:-100px;border:1px solid #d6c89455;box-shadow:0 0 0 35px #d6c89408,0 0 0 70px #d6c89406}.scene:after{width:500px;height:170px;left:-80px;bottom:-65px;background:#102b2d;border-top:1px solid #42615c;transform:rotate(-7deg)}.scene-head{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1}.eyebrow{letter-spacing:3px;color:#b5c8ad;font-size:11px}.scene h1{font:700 32px "STSong","Songti SC",serif;margin:8px 0;color:#f1e5c4}.scene-desc{font-size:13px;color:#b9ceca;max-width:450px;line-height:1.7}.stage-tag{color:#e4cf8f;border:1px solid #8a7652;padding:6px 10px;border-radius:7px;font-size:12px}.battlefield{position:relative;z-index:1;flex:1;display:flex;justify-content:space-around;align-items:center;gap:15px}.combatant{text-align:center;min-width:140px}.avatar{width:135px;height:175px;margin:auto;display:grid;place-items:center;font-size:82px;filter:drop-shadow(0 12px 16px #0008);position:relative}.avatar:before{content:'';position:absolute;bottom:8px;width:105px;height:20px;border-radius:50%;background:#9ccdc737;filter:blur(7px)}.avatar.enemy{filter:drop-shadow(0 12px 16px #000a) sepia(.3)}.combatant strong{display:block;font-family:"STSong","Songti SC",serif;font-size:16px}.combatant small{color:#a8c1bf}.hp{height:9px;border-radius:99px;background:#0c171a;border:1px solid #688078;margin:9px auto 0;width:150px;overflow:hidden}.hp span{display:block;height:100%;background:linear-gradient(90deg,#85bda9,#d8e5bb);transition:width .35s}.hp.enemy span{background:linear-gradient(90deg,#bb675c,#e3a985)}.versus{font:600 20px "STSong","Songti SC",serif;color:#ddc98f}.scene-foot{z-index:1;position:relative;display:flex;justify-content:space-between;gap:10px;align-items:end}.log{font-size:12px;color:#c2d3d0;line-height:1.6;min-height:38px}.gold-button{border:1px solid #e6d298;background:linear-gradient(135deg,#d7bc76,#a77d40);color:#172222;font-weight:700;padding:12px 20px;border-radius:9px;box-shadow:0 5px 20px #d6ae5d30;white-space:nowrap}.gold-button:disabled{opacity:.5;cursor:not-allowed}.section{padding:19px 20px}.section+.section{border-top:1px solid #385158}h2{font:700 19px "STSong","Songti SC",serif;margin:0 0 13px;color:#e8d6a3}.sub{font-size:12px;color:#9db7b6;margin:-5px 0 13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{border:1px solid #38545a;background:#142c33;border-radius:9px;padding:11px}.stat span{display:block;color:#91b1b1;font-size:11px}.stat strong{font-size:18px;color:#f0e5c7}.progress{height:8px;border-radius:9px;background:#0d2027;overflow:hidden;margin:12px 0 7px}.progress span{height:100%;display:block;background:linear-gradient(90deg,#7cae9c,#e0cb8e)}.meta{display:flex;justify-content:space-between;font-size:11px;color:#a9c3c0}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.card{border:1px solid #45615f;background:#152f35;color:#e6efea;border-radius:11px;padding:10px;text-align:left;min-height:105px;position:relative}.card.selected{border-color:#d8bd78;background:#2b3b38;box-shadow:inset 0 0 0 1px #d8bd7855}.card.locked{opacity:.45}.card .icon{font-size:24px}.card strong{display:block;color:#f4e3b7;margin:2px 0}.card small{color:#adc5bf;line-height:1.4;display:block}.card em{font-style:normal;position:absolute;right:9px;top:9px;color:#d9c484;font-size:11px}.notice{font-size:12px;color:#b9cfca;line-height:1.6;margin:10px 0 0}.row{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:10px 0}.row span{color:#b5cbc7;font-size:13px}.mini{padding:8px 10px;font-size:12px}.timeline{display:flex;gap:6px;margin:14px 0}.node{flex:1;height:7px;background:#34515a;border-radius:7px}.node.done{background:#cbb475}.result{position:fixed;z-index:10;inset:0;background:#071013c9;display:grid;place-items:center;padding:20px}.result-box{max-width:420px;width:100%;border:1px solid #ae9461;border-radius:16px;background:linear-gradient(145deg,#263f41,#11272e);padding:28px;text-align:center;box-shadow:0 30px 70px #0009}.result-box .symbol{font-size:55px}.result-box h2{font-size:27px;margin:12px}.result-box p{font-size:14px;color:#c4d6d0;line-height:1.8}.result-box .gold-button{width:100%;margin-top:13px}.footer-note{text-align:center;color:#78999a;font-size:11px;margin-top:18px}@media(max-width:780px){.shell{padding:12px 12px 28px}.brand{font-size:21px}.topbar{margin-bottom:12px}.top-actions{font-size:11px;gap:5px}.pill{padding:6px}.quiet{padding:6px}.layout{display:flex;flex-direction:column}.scene{min-height:440px;padding:18px}.scene h1{font-size:26px}.avatar{width:105px;height:145px;font-size:70px}.combatant{min-width:105px}.hp{width:110px}.versus{font-size:15px}.scene-foot{align-items:stretch;flex-direction:column}.gold-button{width:100%}.section{padding:17px}}
.gear-slots{display:grid;gap:6px;font-size:12px;color:#cfddd5;margin-bottom:12px}.gear-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gear-item{min-width:0;text-align:left;border:1px solid #45615f;background:#142d34;color:#f1e5c6;padding:9px;border-radius:9px}.gear-item.selected{border-color:#d8bd78;background:#2b3b38}.gear-item strong,.gear-item small{display:block}.gear-item strong{font-size:12px}.gear-item small{font-size:10px;color:#a9c6bc;margin-top:4px}
.quest-list{display:grid;gap:8px}.quest{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #385158;color:#e5ece6;font-size:12px}.quest:last-child{border-bottom:0}.quest small{display:block;color:#96b9b1;margin-top:3px}.quest button{font-size:11px;min-width:62px}.quest button:disabled{opacity:.45;cursor:default}.offline-gain{position:relative;z-index:1;background:#233d3e;border:1px solid #a58c5b;border-radius:9px;padding:8px 10px;margin-bottom:12px;color:#eddfb6;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
