:root{--ink:#e9dfc8;--muted:#9a9bb0;--gold:#d4b578;--gold-light:#ffe1a0;--border:#877655;--paper:#202331;--green:#ddad57;--green-dark:#b88435;--bg:#111420;--bag-rows:5;color-scheme:dark;font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#131625;font-size:13px;min-width:350px}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;border:0;color:inherit;background:none;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid #ffe0a1;outline-offset:4px}button:not(:disabled):active{transform:translateY(1px)}a{color:var(--gold-light);text-decoration:none}h1,h2,h3,p{margin:0}i,em{font-style:normal}svg{pointer-events:none}.icon{width:20px;height:20px;vertical-align:middle;flex-shrink:0}button{transition:filter .16s,color .16s,background .16s,box-shadow .16s}button:hover:not(:disabled){filter:brightness(1.2)}.world{position:fixed;inset:0;overflow:hidden;pointer-events:none}.world-sky{position:absolute;inset:0;background:radial-gradient(ellipse at 74% 16%,#514c7b 0%,transparent 35%),radial-gradient(ellipse at 12% 35%,#243852,transparent 40%),linear-gradient(#101426,#33324e 65%,#171d29)}.world-moon{width:100px;height:100px;position:absolute;right:18%;top:9%;border-radius:50%;background:#eeedcc;box-shadow:0 0 50px #bbbedd55,0 0 120px #a8a1d41a;opacity:.8}.world-scenery{position:absolute;inset:0;background:url('assets/moonlit-camp.png') center center/cover no-repeat;filter:brightness(.63) saturate(.82)}.world-shade{position:absolute;inset:0;background:linear-gradient(#0d1117a3,transparent 22%,transparent 65%,#080d1c85),radial-gradient(ellipse at 50% 55%,transparent 30%,#080d1c6b 100%)}.fireflies i{position:absolute;width:3px;height:3px;left:12%;top:56%;background:#ffca69;border-radius:50%;box-shadow:0 0 9px #ffd18c;animation:firefly 9s infinite ease-in-out}.fireflies i:nth-child(2){left:30%;top:75%;animation-delay:-2s}.fireflies i:nth-child(3){left:80%;top:55%;animation-delay:-5s}.fireflies i:nth-child(4){left:61%;top:30%;animation-delay:-7s}.fireflies i:nth-child(5){left:17%;top:24%;animation-delay:-3s}.fireflies i:nth-child(6){left:95%;top:73%;animation-delay:-6s}.site-header{position:fixed;left:0;right:0;top:0;z-index:4;height:64px;display:flex;align-items:center;gap:27px;padding:0 25px;background:linear-gradient(#111420d9,#14172780,transparent);border:0}.game-crest{display:flex;align-items:center;gap:9px;font-size:20px;font-family:"STSong","SimSun",serif;letter-spacing:3px;text-shadow:0 2px 4px #000;white-space:nowrap}.game-crest>span:first-child{border:1px solid #a28a61;width:37px;height:37px;transform:rotate(45deg);display:grid;place-items:center;background:#202736b3;box-shadow:inset 0 0 12px #c2924526,0 0 0 3px #75654522}.game-crest .icon{transform:rotate(-45deg);width:28px;height:28px;color:#e1c48e}.game-crest small{display:block;font:8px "Segoe UI",sans-serif;letter-spacing:3.5px;margin-top:4px;color:#b39d7e}.run-resources{display:flex;align-items:center;gap:25px;margin-left:auto}.resource{display:flex;align-items:center;gap:8px;text-shadow:0 2px 3px #000}.resource-icon{color:#e8bc63;filter:drop-shadow(0 0 4px #c79c5540)}.resource-icon .icon{width:24px;height:24px}.resource small{display:block;color:#a6a4ae;font-size:8px;letter-spacing:1px;margin-bottom:2px}.resource strong{font-size:23px;font-family:Georgia,serif;color:#ffe2a2;font-weight:500;line-height:1.1}.resource strong em{font-size:12px;color:#bba781}.resource.health .resource-icon{display:none}.resource.health small{display:none}.lives-dots{font-size:23px!important;letter-spacing:5px;color:#d87876!important;text-shadow:0 0 8px #d1546a33}.lives-dots i{color:#56434c}.resource.round{border-left:1px solid #75654e77;padding-left:22px}.resource.round .resource-icon{display:none}.resource.round strong{font-size:21px}.hud-tools{display:flex;gap:7px}.icon-button{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid #776951;box-shadow:inset 0 0 0 2px #161e2b;background:linear-gradient(140deg,#3d3c44,#252c39);border-radius:3px;color:#d1bb91}.icon-button .icon{width:17px;height:17px}.icon-button.small{width:27px;height:27px;border-color:#7d72545c;background:#292b36;box-shadow:none}.icon-button.small .icon{width:14px;height:14px}.game-screen{position:relative;height:100dvh;width:100%;max-width:1760px;margin:0 auto;isolation:isolate}.chapter-hud{position:absolute;top:74px;left:26%;width:47%;text-align:center;z-index:2}.chapter-title{display:flex;align-items:center;justify-content:center;gap:12px;color:#e9d0a3}.chapter-title>span:first-child,.chapter-title>span:last-child{height:1px;width:55px;background:linear-gradient(90deg,transparent,#9c845e)}.chapter-title>span:last-child{transform:scaleX(-1)}.chapter-title .icon{width:19px;height:19px}.chapter-title strong{font-family:"STSong","SimSun",serif;font-size:19px;letter-spacing:4px;font-weight:500;text-shadow:0 2px 4px #000}.camp-tag{font-size:9px;border:1px solid #917b56;padding:3px 5px;color:#b6a785;letter-spacing:2px}.journey-track{position:relative;display:flex;align-items:center;justify-content:center;gap:20px;margin:15px auto 0;width:max-content;max-width:100%}.journey-track:before{content:'';position:absolute;left:6px;right:6px;top:50%;height:1px;background:#88764e66}.journey-node{background:#2c2d3e;border:1px solid #867353;width:13px;height:13px;position:relative;transform:rotate(45deg);padding:0;display:grid;place-items:center;z-index:1}.journey-node>span{transform:rotate(-45deg);font-size:7px;color:#b7a78a}.journey-node.current{background:#edc580;border-color:#ffdf9c;box-shadow:0 0 0 3px #dbaf6b1f,0 0 12px #efb75e59}.journey-node.current>span{color:#32261d;font-weight:bold}.journey-node.done{background:#72827a;border-color:#a3b19b}.journey-node.failed{background:#72505a;border-color:#ae7b78}.journey-node.boss{width:18px;height:18px;border:2px double #b29d71;background:#423544}.journey-node.boss.current{background:#e3b978}.chapter-hud>p{display:none}.hero-zone{position:absolute;top:133px;left:1.2%;width:25%;bottom:218px;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;z-index:2}.character{background-image:url('assets/characters.png');background-size:200% 200%;background-position:var(--cx,0%) var(--cy,0%);background-repeat:no-repeat;aspect-ratio:1}.hero-art{position:absolute;left:-5%;bottom:76px;width:108%;height:calc(100% - 57px);filter:drop-shadow(0 6px 5px #07080ec2) drop-shadow(0 0 25px #a68c9026);animation:breathe 5s ease-in-out infinite;transform-origin:50% 100%;z-index:1}.hero-rune{position:absolute;bottom:70px;width:70%;height:40px;border-radius:50%;border:1px solid #b4a5a33b;background:radial-gradient(ellipse,#82759130,transparent 70%);box-shadow:0 0 0 5px #a899a309,0 0 28px #8f92b41c;transform:rotate(-5deg)}.hero-nameplate{width:82%;display:flex;align-items:center;justify-content:center;gap:13px;position:relative;z-index:2;margin-bottom:7px}.hero-nameplate:before,.hero-nameplate:after{content:'';width:25px;height:1px;background:#d4b77a66}.hero-identity{min-width:0}#hero-identity{text-align:center}#hero-identity h3{font-family:"STSong","SimSun",serif;font-weight:500;font-size:21px;letter-spacing:4px;text-shadow:0 2px 4px #080c11}#hero-identity p{font-size:10px;color:#bbab8d;margin-top:5px;letter-spacing:1px}.character-switch{position:absolute;right:-5px;top:0;color:#a69988;padding:5px}.character-switch .icon{width:15px;height:15px}.hero-stats{display:flex;justify-content:center;gap:21px;width:90%;padding:9px 3px;background:linear-gradient(90deg,transparent,#181e2ba3,transparent);border-top:1px solid #94826640;border-bottom:1px solid #94826640;z-index:2}.hero-stats>div{font-size:8px;color:#b2a795;text-align:center}.hero-stats strong{color:#eddbc0;font-size:17px;font-family:Georgia,serif;font-weight:400;margin-right:4px}.hero-stats .icon{width:11px;height:11px;margin-right:4px;color:#b9a16f}.field-actions{display:flex;align-items:center;gap:26px;margin-top:16px;z-index:3}.field-actions button{position:relative;display:flex;gap:6px;align-items:center;color:#c6b79e;font-size:10px}.field-actions .icon{width:20px;height:20px}.field-actions button:before{content:'';position:absolute;width:31px;height:31px;left:-5px;top:-6px;border:1px solid #8d795247;transform:rotate(45deg);background:#1b263647;z-index:-1}.field-actions i{position:absolute;left:15px;top:-7px;width:5px;height:5px;border-radius:50%;background:#e2c272;box-shadow:0 0 6px #e2c272;display:none}.field-actions i.ready{display:block}.inventory-zone{position:absolute;left:27%;width:44%;top:161px;bottom:209px;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:3}.inventory-heading{display:flex;align-items:center;gap:9px;width:100%;max-width:530px;padding:0 13px 15px}.inventory-heading h1{font-family:"STSong","SimSun",serif;font-size:19px;letter-spacing:4px;font-weight:500;color:#ddc5a1;text-shadow:0 2px 5px #080b11}.heading-ornament{color:#b69a6c}.heading-ornament .icon{width:24px;height:24px}.inventory-heading .count-badge{margin-left:auto;font-size:10px;color:#bcaa8d;border:1px solid #87715761;padding:4px 7px;background:#211e2966}.bag-frame{width:min(100%,calc((100dvh - 355px)*7/var(--bag-rows)));max-width:505px;position:relative;border:12px solid #695443;border-radius:6px;padding:10px;background:repeating-linear-gradient(45deg,#2a25291f 0,#2a25291f 2px,transparent 2px,transparent 5px),#2b272d;box-shadow:0 15px 38px #050811b8,inset 0 0 0 2px #15151d,0 0 0 2px #26242d,0 0 0 3px #b09b69,inset 0 0 28px #080c16;isolation:isolate}.bag-frame:before{content:'';position:absolute;inset:-8px;border:1px dashed #c5ac7c80;border-radius:3px;pointer-events:none}.bag-frame:after{content:'';position:absolute;inset:0;box-shadow:inset 0 1px 12px #000;pointer-events:none;z-index:-1}.bag-buckle{position:absolute;top:-23px;height:30px;width:26px;border:3px solid #b4a174;border-radius:2px;background:linear-gradient(90deg,#594437,#8c6d49,#624a39);box-shadow:0 2px 3px #06080b70,inset 0 0 0 3px #322827;z-index:2}.bag-buckle.left{left:19%}.bag-buckle.right{right:19%}.frame-stud{position:absolute;width:8px;height:8px;background:radial-gradient(circle at 30% 25%,#edcd8c,#887450 65%);border-radius:50%;border:1px solid #4a3e2b;box-shadow:0 1px 2px #000}.frame-stud.tl{left:-10px;top:-10px}.frame-stud.tr{right:-10px;top:-10px}.frame-stud.bl{left:-10px;bottom:-10px}.frame-stud.br{right:-10px;bottom:-10px}.bag-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%;aspect-ratio:7/5;position:relative;touch-action:none}.cell{position:relative;min-width:0;min-height:0;border:1px solid #6b5c545c;background:linear-gradient(140deg,#23232c,#35303a);border-radius:2px;box-shadow:inset 0 0 8px #0b101845;padding:0}.cell:after{content:'';width:3px;height:3px;border:1px solid #7e6e5838;position:absolute;left:calc(50% - 2px);top:calc(50% - 2px);transform:rotate(45deg)}.cell:hover{border-color:#b59d65;background:#494033}.bag-item{position:absolute;z-index:2;border:1px solid #ac915e;background:linear-gradient(135deg,#8a735c99,#4c443eb3);border-radius:3px;box-shadow:inset 0 0 0 2px #ab956326,inset 0 0 10px #baa67413,0 3px 4px #080a123d;display:flex;align-items:center;justify-content:center;padding:5px;cursor:grab;touch-action:none}.bag-item:after{content:'';position:absolute;inset:2px;border:1px solid #d2b78327;pointer-events:none;border-radius:1px}.bag-item:hover{border-color:#f2cd88;box-shadow:0 0 10px #efd09b35;z-index:3}.bag-item.rarity-1{background:linear-gradient(130deg,#50676cb8,#35484ea3);border-color:#87b6bd;box-shadow:inset 0 0 15px #64bdc322}.bag-item.rarity-2{background:linear-gradient(140deg,#7a567eb3,#49314d);border-color:#c5a1d5;box-shadow:inset 0 0 15px #b87adb2a}.bag-item.selected{outline:2px solid #ffdb90;outline-offset:2px;z-index:4;box-shadow:0 0 16px #eaba503d}.bag-item.linked{outline:1px solid #a3e0e1;outline-offset:1px;box-shadow:0 0 9px #64e1e048}.bag-item .item-rank{position:absolute;bottom:3px;right:4px;font-size:8px;color:#cbb580;letter-spacing:-2px}.bag-item.rarity-1 .item-rank{color:#a2dbe0}.bag-item.rarity-2 .item-rank{color:#d6b3ee}.sprite{display:flex;align-items:center;justify-content:center;aspect-ratio:1;pointer-events:none;filter:drop-shadow(0 2px 2px #03040b88)}.sprite>svg{display:block;width:100%;height:100%;overflow:hidden}.sprite.tinted{filter:hue-rotate(18deg) saturate(1.08) drop-shadow(0 2px 2px #03040b88)}.bag-item .sprite{height:100%;width:100%;aspect-ratio:auto}.cell.preview{background:#557d6177!important;border-color:#a1d5b1!important}.cell.invalid{background:#a6495166!important;border-color:#df8480!important}.inventory-controls{width:100%;max-width:530px;padding:15px 6px 5px;display:flex;align-items:center;justify-content:space-between;gap:7px;color:#b5a58a;font-size:9px}.inventory-controls b{font-weight:400;padding:0 6px;color:#7e725f}kbd{font:9px "Segoe UI",sans-serif;border:1px solid #776d5f;padding:1px 4px;color:#ceb896;border-radius:2px;background:#1b1e26b3;box-shadow:0 1px #080a11}.text-button{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#c7b18b;padding:4px}.text-button .icon{width:14px;height:14px}.cost{display:inline-flex;align-items:center;gap:3px;margin-left:4px;color:#eac77c}.cost .icon{width:13px!important;height:13px!important}.synergy-banner{display:flex;align-items:center;gap:8px;width:100%;max-width:530px;padding:8px 9px;background:linear-gradient(90deg,transparent,#243440ad,transparent);border-top:1px solid #829ca327;color:#99b7bd;min-height:36px;margin-top:2px}.synergy-banner>.icon{width:17px;height:17px}.synergy-banner strong{font-size:10px;font-weight:500}.synergy-banner p{font-size:9px;line-height:1.7;color:#859aa2;margin-top:3px}.synergy-banner .link-total{margin-left:auto;font-size:19px;font-family:Georgia,serif;color:#cae0d9;white-space:nowrap}.quick-item{display:none}.tactics-zone{position:absolute;right:2.5%;width:23%;max-width:330px;top:161px;bottom:214px;display:flex;flex-direction:column;z-index:2}.phase-seal{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;margin:0 0 21px}.phase-seal>span{font-size:8px;letter-spacing:3px;color:#93888c}.phase-seal strong{font-family:"STSong","SimSun",serif;font-size:17px;letter-spacing:2px;font-weight:400;color:#d1ba93}.phase-seal i{height:1px;width:95px;background:linear-gradient(90deg,transparent,#9f865b,transparent);margin-top:5px}.detail-panel{position:relative;border:1px solid #9d8b6266;padding:16px;background:linear-gradient(135deg,#252734e8,#161c2be0);box-shadow:0 5px 20px #0a101d6b;flex:0 1 auto;min-height:147px}.detail-panel:before{content:'';position:absolute;inset:3px;border:1px solid #94795930;pointer-events:none}.detail-eyebrow{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#ac9c85;letter-spacing:.5px}.detail-eyebrow>.icon{width:13px;height:13px}.detail-title{display:flex;align-items:center;gap:10px;margin:12px 0}.detail-title .sprite{width:42px;height:42px;flex-shrink:0}.detail-title h3{font-family:"STSong","SimSun",serif;font-size:17px;font-weight:500;color:#efce91}.detail-title small{font-size:9px;color:#a99a87;display:block;margin-top:6px}.detail-description{font-size:11px;line-height:1.85;color:#c6c3c3}.weapon-analysis{margin-top:9px;font-size:10px;line-height:1.8;color:#97bdc5}.detail-flavor{font-size:10px;color:#817e89;line-height:1.8;margin-top:10px;font-style:italic}.detail-buttons{display:flex;gap:8px;margin-top:13px}.detail-buttons button{flex:1;height:28px;font-size:10px}.detail-empty{text-align:center;color:#9895a5;font-size:10px;line-height:1.9;padding:2px 0 0}.detail-empty>.icon{width:28px;height:28px;color:#ad996e;margin:9px 0}.detail-empty strong{display:block;font-weight:500;color:#cab593;font-size:12px;margin-bottom:4px}.encounter-panel{margin-top:auto;padding-top:18px}.encounter-title{display:flex;align-items:center;gap:6px;color:#ad9b7f;font-size:10px}.encounter-title>span>.icon{width:14px;height:14px}.encounter-title button{margin-left:auto}.encounter-panel>strong{display:block;font-size:13px;letter-spacing:.6px;margin:6px 0;color:#e8d4b0;font-weight:500}.encounter-panel>small{font-size:9px;color:#a69ca1}.primary{position:relative;height:43px;border:1px solid #e2bf7b;background:linear-gradient(135deg,#b8843b,#dfb765 47%,#b3833e);color:#2a211d;font-size:13px;letter-spacing:2px;font-weight:700;box-shadow:inset 0 0 0 3px #e9c98350,0 3px 0 #79582b,0 4px 15px #edb76526;display:inline-flex;justify-content:center;align-items:center;gap:20px;border-radius:2px;padding:0 24px}.primary:before,.primary:after{content:'';position:absolute;top:calc(50% - 3px);width:5px;height:5px;background:#7d5b33;transform:rotate(45deg)}.primary:before{left:10px}.primary:after{right:10px}.primary .icon{width:18px;height:18px}.departure-button{width:100%;height:52px;font-size:17px;margin-top:15px;font-family:"STSong","SimSun",serif;letter-spacing:5px}.battle-note{display:block;text-align:center;font-size:8px;color:#9a8b79;margin-top:9px;letter-spacing:1px}.shop-panel{position:absolute;bottom:31px;left:2.5%;right:2.5%;height:162px;border-top:2px solid #a08a605e;border-bottom:1px solid #a08a6038;background:linear-gradient(90deg,#241c2480,#27242fe8 26%,#2e2731e8 70%,#201e28cc);box-shadow:0 -2px 0 #090f1b80,0 7px 20px #070b1166;display:grid;grid-template-columns:25% minmax(380px,1fr) 21%;gap:18px;padding:13px 17px;z-index:4}.shop-panel:before{content:'';position:absolute;left:26%;right:20%;top:1px;height:1px;background:linear-gradient(90deg,transparent,#d5bd7847,transparent)}.merchant-zone{position:relative;min-width:0}.merchant-art{background-image:url('assets/merchant.png');background-size:contain;background-position:center bottom;position:absolute;width:155px;height:175px;left:-12px;bottom:12px;filter:drop-shadow(0 6px 7px #02061094);transform:rotate(-3deg);z-index:1;animation:merchant-idle 5s ease-in-out infinite}.merchant-speech{position:absolute;left:115px;top:14px;right:0;font-size:10px;color:#c4b4a1;line-height:1.8}.merchant-speech strong{font-weight:400;color:#dfc191;font-size:12px;display:block;margin-bottom:8px;letter-spacing:1px}.merchant-speech span{display:block;font-size:9px;color:#9b8d85}.merchant-sign{position:absolute;left:10px;bottom:0;right:5px;display:flex;gap:6px;justify-content:center;align-items:center;color:#ccb48a;font-family:"STSong","SimSun",serif;font-size:13px;letter-spacing:3px;text-shadow:0 2px 2px #080810;background:linear-gradient(90deg,transparent,#241c26b3,transparent);z-index:2}.merchant-sign .icon{width:16px;height:16px}.wares-zone{min-width:0;display:flex;flex-direction:column}.wares-heading{display:flex;align-items:center;gap:9px;font-size:9px;color:#c3b199;letter-spacing:1px;margin-bottom:8px}.wares-heading i{flex:1;background:#95815f4d;height:1px}.wares-heading small{font-size:8px;color:#8e8180;letter-spacing:0}.shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-height:0;flex:1}.shop-card{position:relative;text-align:center;background:radial-gradient(ellipse at 50% 45%,#b2935b1c,transparent 70%);border:0;display:grid;grid-template-rows:1fr 23px;min-height:0}.shop-card:before{content:'';position:absolute;left:7%;right:7%;bottom:20px;height:50px;background:linear-gradient(transparent,#ad8a4830);border-bottom:2px solid #a188588f;pointer-events:none}.shop-card:after{content:'';position:absolute;left:5%;right:5%;bottom:19px;height:3px;border-bottom:1px solid #332e2c;box-shadow:0 2px 4px #05070b;pointer-events:none}.shop-card:hover .sprite{transform:translateY(-3px);filter:drop-shadow(0 0 7px #e5b85c66)}.shop-inspect{padding:0 0 4px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:0;position:relative}.shop-card .sprite{width:55px;height:55px;transition:transform .18s,filter .18s;margin-bottom:3px;filter:drop-shadow(0 4px 4px #080a10a1)}.shop-card h3{font-size:10px;letter-spacing:.3px;font-weight:500;white-space:nowrap;color:#d8c8ac;line-height:1.5}.shop-card .kind{display:none}.rarity-dot{position:absolute;right:7px;top:2px;width:4px;height:4px;transform:rotate(45deg);background:#958265;box-shadow:0 0 4px #ab966266}.rarity-1 .rarity-dot{background:#92bfca;box-shadow:0 0 7px #70c5d485}.rarity-2 .rarity-dot{background:#cc9aea;box-shadow:0 0 8px #ad64d590}.shop-card.rarity-1:before{border-bottom-color:#648e9d;background:linear-gradient(transparent,#6394a324)}.shop-card.rarity-2:before{border-bottom-color:#a579b9;background:linear-gradient(transparent,#a25ac52e)}.buy-button{position:relative;display:flex;justify-content:center;align-items:center;gap:4px;width:80%;margin:4px auto 0;color:#e3c17b;font-family:Georgia,serif;font-size:12px;background:#242331;border:1px solid #746044;z-index:2;min-height:20px;border-radius:2px}.buy-button .icon{width:12px;height:12px}.buy-button small{font:8px "Microsoft YaHei",sans-serif;color:#ab9781;margin-left:3px}.shop-card.sold .sprite{opacity:.2;filter:grayscale(1)}.shop-card.sold h3{opacity:.4}.buy-button:hover{background:#55442e}.shop-controls{padding:13px 6px 4px 12px;border-left:1px solid #9c81522e;display:grid;grid-template-columns:1fr 40px;gap:8px;align-content:start}.secondary{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #837054;background:linear-gradient(#393440,#292a38);box-shadow:inset 0 0 0 2px #101b244d;border-radius:2px;font-size:11px;color:#d0b990;padding:0 10px}.secondary .icon{width:14px;height:14px}.refresh-button{height:34px;font-size:10px;white-space:nowrap;gap:4px;padding:0 6px}.lock-button{height:34px;padding:0;color:#a99678;font-size:0}.lock-button .icon{width:16px;height:16px}.lock-button.locked{color:#edd088;background:#665233;border-color:#d0ad65}.recipe-entry{grid-column:1/-1;display:grid;grid-template-columns:22px 1fr;gap:3px 5px;text-align:left;margin-top:5px;align-items:center;color:#cbb493;padding:7px 9px;background:linear-gradient(90deg,#82693d1a,transparent);border-left:2px solid #a78a58}.recipe-entry>.icon{grid-row:1/3;width:19px;height:19px;color:#e0c27c}.recipe-entry strong{font-size:11px;font-weight:500;letter-spacing:1px}.recipe-entry small{color:#8f8582;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bottom-hud{position:absolute;bottom:6px;left:3%;right:3%;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:8px;color:#b1a18b;z-index:4;text-shadow:0 1px 4px #000}.save-state{display:flex;align-items:center;gap:5px}.save-state i{width:4px;height:4px;background:#92b18d;transform:rotate(45deg);box-shadow:0 0 5px #97ca795c}.bottom-hud button{font-size:9px;display:flex;align-items:center;gap:5px;color:#c1ad8c}.bottom-hud .icon{width:11px;height:11px}.keyboard-hint kbd{margin:0 5px 0 12px;font-size:8px}.eyebrow{font-size:9px;letter-spacing:3px;color:#a79984}#toast{position:fixed;left:50%;bottom:200px;z-index:100;background:#191e2ef2;border:1px solid #c5a365;box-shadow:0 4px 24px #070b15ba;padding:12px 22px;color:#f0dcb4;transform:translate(-50%,15px);opacity:0;transition:.18s;pointer-events:none;max-width:90vw;text-align:center;font-size:12px}#toast.show{opacity:1;transform:translate(-50%,0)}#drag-ghost{position:fixed;z-index:120;pointer-events:none;display:none;background:#796844c9;border:2px solid #ffe0a1;box-shadow:0 0 20px #e9bf673d;padding:7px;opacity:.9;border-radius:3px;align-items:center;justify-content:center}#drag-ghost .sprite{margin:auto}.dragging{cursor:grabbing;user-select:none}.drag-source{opacity:.18}.overlay{position:fixed;inset:0;background:#090d17bc;backdrop-filter:blur(7px);z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadein .2s}.modal{position:relative;width:min(900px,100%);max-height:90dvh;background:linear-gradient(135deg,#282a39f5,#171e2df8);border:1px solid #b19a6a;box-shadow:0 0 0 4px #111624,0 0 0 5px #7c6c4e,0 20px 90px #020511b3;overflow:auto;scrollbar-color:#847355 #222637;scrollbar-width:thin;border-radius:2px}.modal:before{content:'';position:absolute;inset:4px;border:1px solid #90795447;pointer-events:none;z-index:1}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #82725580;padding:24px 28px 19px;background:linear-gradient(90deg,#a48d5320,transparent)}.modal-header h2{font-family:"STSong","SimSun",serif;font-weight:500;font-size:26px;letter-spacing:4px;color:#f0d3a0;margin:7px 0}.modal-header p{font-size:11px;color:#a19dab;line-height:1.7}.modal-content{padding:24px 28px 28px}.small-modal{max-width:520px}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:18px;padding:20px 28px;border-top:1px solid #82725566;background:#111b2859}.modal-footer .secondary{height:40px}.modal:has(.class-grid){width:min(1080px,100%);background:radial-gradient(ellipse at 50% 60%,#34374adb,#101828f5),url('assets/moonlit-camp.png') center/cover;border-color:#a5967155}.modal:has(.class-grid) .modal-header{background:none;justify-content:center;text-align:center;border:0;padding-bottom:5px}.modal:has(.class-grid) .modal-header>.icon-button{position:absolute;right:22px;top:22px}.modal:has(.class-grid) .modal-header h2{font-size:33px;letter-spacing:7px}.modal:has(.class-grid) .modal-header .eyebrow{display:none}.modal:has(.class-grid) .modal-content{padding-top:0;padding-bottom:0}.welcome-copy{font-size:11px;color:#a9a1a3;text-align:center;line-height:1.8;padding:8px 0 15px}.welcome-copy>.icon{display:none}.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.class-card{position:relative;padding:0 10px 21px;background:radial-gradient(ellipse at 50% 85%,#3945566b,transparent 65%);border-bottom:2px solid #737a8759;display:flex;flex-direction:column;align-items:center;isolation:isolate}.class-card:before{content:'';width:120px;height:120px;border:1px solid #bc9b5530;transform:rotate(45deg);position:absolute;top:25%;left:calc(50% - 60px);z-index:-1;box-shadow:0 0 0 8px #be975309}.class-card .character{width:100%;height:min(37dvh,330px);margin-bottom:8px;filter:drop-shadow(0 10px 12px #05091280);transition:transform .25s,filter .25s}.class-card:hover .character,.class-card.selected .character{transform:translateY(-5px);filter:drop-shadow(0 0 15px #d6b37833)}.class-card.selected{background:radial-gradient(ellipse at 50% 85%,#c1984940,transparent 65%);border-color:#e1be70}.class-card h3{font-family:"STSong","SimSun",serif;font-size:23px;font-weight:500;letter-spacing:4px;color:#e8d1a9}.class-card p{font-size:10px;color:#999aa7;margin:9px 0 15px;line-height:1.8}.class-card small{font-size:11px;color:#eed397;letter-spacing:1px}.class-card .chosen{position:absolute;left:calc(50% - 11px);bottom:-12px;width:23px;height:23px;border:1px solid #f4d392;background:#6f5634;transform:rotate(45deg);display:grid;place-items:center;z-index:2}.class-card .chosen .icon{width:15px;height:15px;transform:rotate(-45deg)}.modal:has(.class-grid) .modal-footer{border:0;justify-content:center;padding-top:28px}.help-steps{display:grid;gap:22px}.help-step{display:flex;gap:16px}.help-step>b{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border:1px solid #978158;color:#e2c48c;font:19px Georgia,serif;background:#ad8b4020}.help-step h3{font-size:14px;letter-spacing:1px;color:#d7c39f;margin-bottom:6px}.help-step p,.control-note{font-size:11px;line-height:1.9;color:#a8a7b0}.control-note{padding:16px;border:1px solid #8f77513b;background:#131c2b7a;margin-top:23px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:23px}.filter{font-size:11px;padding:8px 17px;border:1px solid #7c71594d;background:#303141;color:#b7ab96}.filter.active{border-color:#c6a161;background:#785c355e;color:#f0d19a;box-shadow:inset 0 -2px #c6a161}.codex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.codex-item{position:relative;min-width:0;border:1px solid #8e7b5947;padding:16px 13px;background:radial-gradient(ellipse at 50% 12%,#b79d4930,#212837 65%);text-align:center}.codex-item.rarity-2{border-color:#9d6aa68f;background:radial-gradient(ellipse at 50% 12%,#b963c433,#212837 65%)}.codex-item .sprite{width:72px;height:72px;margin:0 auto 12px}.codex-item h3{font-size:12px;color:#e0c693;font-weight:500}.codex-item small{font-size:9px;display:block;color:#a9a0a2;margin:8px 0}.codex-item p{font-size:10px;line-height:1.9;color:#a5abb9;text-align:left}.recipe-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.recipe-row{padding:17px 12px;border:1px solid #85714c50;background:#141c2b5e}.recipe-row.ready{border-color:#d2af6b;background:linear-gradient(135deg,#a58b3c20,#212e37)}.recipe-icons{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px}.recipe-icons .material{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:55px}.recipe-icons .sprite{width:47px;height:47px}.recipe-icons small{font-size:9px;color:#beb096}.recipe-icons>.icon{width:14px;height:14px;color:#a98c55}.recipe-icons .missing{opacity:.25}.recipe-row .secondary{width:100%;height:30px;font-size:10px}.settings-info{color:#9395a5;line-height:1.9;font-size:11px;margin-top:20px}.settings-row{padding:19px 0;border-bottom:1px solid #9b886044}.settings-row label{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:13px;color:#cbbb9b}.settings-row input{width:100%;accent-color:#d5b576}.map-list{position:relative;display:flex;gap:18px;flex-direction:column;max-width:670px;margin:auto}.map-list:before{content:'';position:absolute;left:43px;top:20px;bottom:20px;width:1px;background:#e6c37b4f}.map-region{display:flex;align-items:center;gap:18px;position:relative;padding:13px 20px;background:linear-gradient(90deg,#30384b,#1a223354);border-bottom:1px solid #77674f61}.region-badge{width:46px;height:46px;display:grid;place-items:center;border:1px solid #c7b17c;transform:rotate(45deg);background:#243144;box-shadow:inset 0 0 15px color-mix(in srgb,var(--region) 30%,transparent);flex-shrink:0;color:#dbc690}.region-badge .icon{transform:rotate(-45deg)}.map-region h3{font-family:"STSong","SimSun",serif;font-weight:500;font-size:17px;color:#ddc49d;margin-bottom:6px}.map-region p{font-size:10px;color:#9c9faf}.map-rounds{margin-left:auto;display:flex;gap:8px}.map-round{border:1px solid #87765180;color:#a99c88;padding:6px 9px;font-size:10px;white-space:nowrap}.map-round.current{background:#d4ad60;color:#29251f;border-color:#f0cd85}.map-round.done{background:#547b7954;color:#a6c4b6}.opponent-profile{display:flex;align-items:center;gap:22px;padding:0 15px 20px;margin-bottom:21px;border-bottom:1px solid #a28c5959}.opponent-profile>.character{width:135px;flex-shrink:0}.opponent-profile h3{font-family:"STSong","SimSun",serif;color:#e3c68e;font-size:23px;font-weight:400;letter-spacing:3px}.opponent-profile p{font-size:11px;color:#a19ba7;margin:12px 0}.opponent-numbers{display:flex;gap:17px;flex-wrap:wrap;font-size:11px;color:#c7b28f}.opponent-numbers .icon{width:14px;height:14px;margin-right:4px}.battle-overlay{background:#080e1880;backdrop-filter:blur(2px);padding:0}.battle-modal{width:100%;max-width:none;height:100dvh;max-height:none;overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none;display:flex;flex-direction:column}.battle-modal:before{display:none}.battle-topbar{height:82px;display:flex;align-items:center;justify-content:center;gap:25px;position:relative;z-index:4;text-align:center;background:linear-gradient(#090f1ce6,transparent);padding:14px 26px}.battle-topbar h2{font:24px "STSong","SimSun",serif;color:#e8d0a0;letter-spacing:5px;margin:8px 0}.battle-topbar .eyebrow{font-size:8px;letter-spacing:4px;color:#a5a0b1}.battle-timer{position:absolute;right:6%;top:24px;color:#cfb987;font:25px Georgia,serif;letter-spacing:3px}.battle-hud{position:absolute;left:6%;right:6%;top:102px;display:grid;grid-template-columns:1fr 100px 1fr;gap:25px;z-index:3}.combatant-name{display:flex;justify-content:space-between;align-items:center;font-size:15px;margin-bottom:13px;letter-spacing:1px;text-shadow:0 2px 3px #020612}.combatant-name strong{font-weight:500}.combatant-name small{font-size:10px;color:#b7aa94}.health-track{height:17px;background:#1b1c2c;border:1px solid #9d8f64;box-shadow:0 0 0 3px #0f1726,inset 0 0 7px #000;padding:2px;overflow:hidden;transform:skewX(-12deg)}.health-fill{height:100%;background:linear-gradient(#c2d3a4,#6c9b80);box-shadow:0 0 10px #92c9a740;transition:width .15s;position:relative}.health-fill:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 39px,#08272866 40px)}.enemy-hp .health-fill{background:linear-gradient(#daa78f,#a35c65)}.combatant-status{display:flex;align-items:center;gap:17px;font-size:11px;color:#cebc9e;margin-top:10px;text-shadow:0 2px #000}.combatant-status span{display:inline-flex;align-items:center;gap:5px}.combatant-status .icon{width:13px;height:13px}.combatant-status span:first-child{margin-right:auto;font-family:Georgia,serif;font-size:14px}.hud-vs{font:22px Georgia,serif;color:#b89b6a;display:grid;place-items:center;letter-spacing:3px}.battle-stage{position:absolute;inset:0;overflow:hidden;background:linear-gradient(#101b3540,#20274419 40%,#0810205e),url('assets/moonlit-camp.png') center center/cover no-repeat,linear-gradient(#232744,#3b3850 60%,#131d2a)}.arena-sun,.arena-cloud,.arena-stars{display:none}.battle-stage:after{content:'';position:absolute;left:0;right:0;bottom:0;height:150px;background:linear-gradient(transparent,#0b1322ef);pointer-events:none}.fighter{position:absolute;width:clamp(270px,35vw,560px);height:clamp(250px,55dvh,560px);bottom:137px;z-index:2;transform-origin:50% 100%;filter:drop-shadow(0 12px 9px #040a17a3);animation:breathe 4s ease-in-out infinite}.fighter.player{left:6%}.fighter.enemy{right:6%;animation:enemy-breathe 4.5s ease-in-out infinite;transform:scaleX(-1)}.fighter-shadow{position:absolute;bottom:-6px;width:50%;left:25%;height:22px;transform:rotate(-5deg);border-radius:50%;background:#050b1775;filter:blur(6px);z-index:-1}.versus{position:absolute;left:calc(50% - 18px);top:46%;font:italic 24px Georgia,serif;color:#c2a77294;letter-spacing:3px;z-index:2}.fighter.attack{animation:lunge .32s ease-out!important}.fighter.enemy.attack{animation:enemy-lunge .32s ease-out!important}.fighter.hit{filter:brightness(1.6) drop-shadow(0 0 8px #e39564);animation:shake .28s!important}.fighter.enemy.hit{animation:enemy-shake .28s!important}.fighter.dead{filter:grayscale(.85);opacity:.4;animation:none}.battle-bottom{position:absolute;bottom:59px;left:6%;right:6%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;z-index:3;padding:14px 17px;background:linear-gradient(90deg,#172131e0,#18213280);border-top:1px solid #9f88575c;min-height:64px}.combat-items{display:flex;gap:7px;flex-wrap:wrap;max-width:610px}.combat-item{position:relative;width:38px;height:38px;padding:4px;border:1px solid #92805b;background:linear-gradient(145deg,#4f4752,#2a3143);box-shadow:inset 0 0 6px #111625}.combat-item .sprite{height:100%;width:100%}.combat-item.flash{animation:itemflash .35s}.battle-log{height:48px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;font-size:10px;line-height:1.8;color:#b2aaa8;text-align:right}.battle-controls{display:flex;align-items:center;gap:10px;position:absolute;bottom:16px;left:6%;right:6%;z-index:4}.battle-controls .secondary{height:30px;font-size:10px;padding:0 13px}.battle-hint{margin-left:auto;font-size:10px;color:#a79883}.damage-number{position:absolute;font-weight:800;font-size:29px;font-family:Georgia,serif;color:#fff6d9;text-shadow:0 2px #352b39,1px 0 #352b39,-1px 0 #352b39;z-index:5;pointer-events:none;animation:damagefloat .85s ease-out forwards;margin-top:18dvh}.damage-number.critical{font-size:41px;color:#ffda89;text-shadow:0 2px #743e23}.damage-number.heal{color:#bcf2ba;text-shadow:0 2px #243f46}.damage-number.poison{color:#d9b7ee;text-shadow:0 2px #422855}.damage-number.block{color:#bbe2f1;text-shadow:0 2px #1e3847}.projectile{position:absolute;width:90px;height:4px;background:#ffe1aa;box-shadow:0 0 12px #fab263;top:49%;left:34%;z-index:3;animation:shoot .25s ease-in forwards}.projectile.reverse{left:auto;right:34%;animation:shootreverse .25s ease-in forwards}.modal:has(.result-content){max-width:760px;text-align:center;background:radial-gradient(ellipse at 50% 0,#87694845,transparent 55%),linear-gradient(#25293cef,#111c2df5)}.result-content{padding:28px 38px 29px;position:relative}.result-emblem{display:grid;place-items:center;width:68px;height:68px;border:1px solid #d3b375;background:linear-gradient(140deg,#7a613944,#232b3e);transform:rotate(45deg);box-shadow:0 0 0 5px #b99b5a10,0 0 35px #d3ae6833;margin:13px auto 30px}.result-emblem .icon{width:36px;height:36px;transform:rotate(-45deg);color:#ebcc91}.result-content h2{font-family:"STSong","SimSun",serif;font-size:38px;font-weight:500;letter-spacing:8px;color:#f1d393;text-shadow:0 0 18px #d49f5329;margin:16px 0}.result-content>p{font-size:11px;line-height:1.9;color:#aca4ab}.result-stats{display:flex;justify-content:center;gap:48px;padding:24px 0;margin:20px 0;border-top:1px solid #a0885047;border-bottom:1px solid #a0885047}.result-stats strong{display:block;font:27px Georgia,serif;color:#ebce94;margin-bottom:8px}.result-stats small{font-size:10px;color:#aa9c86}.result-content .reward-title{color:#d8c09a;font-size:12px;letter-spacing:2px;margin:18px 0 20px}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.reward-card{position:relative;padding:25px 10px 22px;border:1px solid #a1875566;background:radial-gradient(ellipse at 50% 20%,#a2884430,#263040);box-shadow:inset 0 0 0 3px #151e2a}.reward-card:before{content:'';position:absolute;inset:5px;border:1px solid #a5884430;pointer-events:none}.reward-card:hover{border-color:#efd29b;box-shadow:0 0 25px #d1a65235;transform:translateY(-4px)}.reward-card .icon{width:30px;height:30px;color:#ddbf81;margin-bottom:18px;filter:drop-shadow(0 0 8px #d3b6704f)}.reward-card strong{display:block;font-family:"STSong","SimSun",serif;font-size:16px;font-weight:400;letter-spacing:1px;color:#ebce9b;margin-bottom:8px}.reward-card small{font-size:10px;color:#a5a2a9}.result-actions{display:flex;justify-content:center;gap:15px;margin-top:22px}.result-actions .secondary{height:43px}.new-run-copy{font-size:12px;line-height:1.8}.empty-banner{font-size:12px;padding:14px;border:1px solid #a0834b60;background:#68533320;color:#d8c097;margin-bottom:16px}
@keyframes breathe{0%,100%{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-4px) rotate(.4deg)}}@keyframes merchant-idle{0%,100%{transform:rotate(-3deg)}50%{transform:translateY(-3px) rotate(-1deg)}}@keyframes enemy-breathe{0%,100%{transform:scaleX(-1) translateY(0)}50%{transform:scaleX(-1) translateY(-4px)}}@keyframes firefly{0%,100%{opacity:0;transform:translate(0,0)}35%,70%{opacity:.85}100%{transform:translate(18px,-95px)}}@keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes lunge{50%{transform:translateX(65px) rotate(6deg)}}@keyframes enemy-lunge{0%,100%{transform:scaleX(-1)}50%{transform:scaleX(-1) translateX(65px) rotate(6deg)}}@keyframes shake{25%{transform:translateX(-9px)}75%{transform:translateX(5px)}}@keyframes enemy-shake{0%,100%{transform:scaleX(-1)}25%{transform:scaleX(-1) translateX(-9px)}75%{transform:scaleX(-1) translateX(5px)}}@keyframes damagefloat{0%{opacity:0;transform:translateY(12px) scale(.7)}20%{opacity:1;transform:translateY(0) scale(1.15)}100%{opacity:0;transform:translateY(-60px) scale(.9)}}@keyframes itemflash{50%{background:#a69251;box-shadow:0 0 16px #e6c683;transform:scale(1.15)}}@keyframes shoot{to{transform:translateX(30vw);opacity:0}}@keyframes shootreverse{to{transform:translateX(-30vw);opacity:0}}
@media(min-width:1500px) and (min-height:820px){.site-header{height:76px;padding:0 38px}.game-crest{font-size:25px}.chapter-hud{top:90px}.chapter-title strong{font-size:22px}.inventory-zone{top:184px;bottom:240px}.inventory-heading{max-width:590px}.bag-frame{max-width:570px;width:min(100%,calc((100dvh - 397px)*7/var(--bag-rows)))}.inventory-controls,.synergy-banner{max-width:590px}.tactics-zone{top:189px;bottom:248px}.hero-zone{top:160px;bottom:253px}.shop-panel{height:191px;bottom:34px;padding-top:16px}.merchant-art{width:184px;height:200px;left:0}.merchant-speech{left:158px;top:17px}.shop-card .sprite{height:77px;width:77px}.shop-card h3{font-size:12px}.wares-heading{font-size:11px}.wares-heading small{font-size:10px}.shop-controls{padding-top:23px}.secondary{height:36px}.recipe-entry{margin-top:12px}.hero-art{bottom:83px;height:calc(100% - 55px)}.detail-panel{padding:21px}.detail-description{font-size:12px}.detail-title h3{font-size:20px}.detail-title .sprite{width:55px;height:55px}.departure-button{height:61px;font-size:19px}.phase-seal{margin-bottom:24px}.encounter-panel{padding-top:25px}.encounter-panel>strong{font-size:15px}.hero-stats{padding:12px}.field-actions{margin-top:21px;gap:33px}.field-actions button{font-size:12px}}
@media(max-width:1100px){.site-header{padding:0 18px;gap:16px}.game-crest{font-size:17px;letter-spacing:2px}.run-resources{gap:17px}.resource strong{font-size:21px}.resource.round{padding-left:14px}.hero-zone{left:0;width:24%;top:148px}.inventory-zone{left:25%;width:46%}.tactics-zone{right:2%;width:25%;padding-left:12px}.detail-panel{padding:12px}.detail-title h3{font-size:15px}.detail-title .sprite{width:34px;height:34px}.detail-description{font-size:10px}.detail-flavor{display:none}.weapon-analysis{font-size:9px}.phase-seal{margin-bottom:15px}.phase-seal strong{font-size:15px}.phase-seal>span{font-size:7px}.encounter-panel>strong{font-size:11px}.encounter-panel>small{font-size:8px}.departure-button{font-size:15px;letter-spacing:3px}.hero-nameplate{width:88%}#hero-identity h3{font-size:17px;letter-spacing:2px}#hero-identity p{font-size:8px}.hero-stats{gap:10px}.hero-stats strong{font-size:15px}.field-actions{gap:17px}.field-actions button{font-size:9px}.field-actions .icon{width:16px;height:16px}.field-actions button:before{width:26px;height:26px}.merchant-art{width:126px;height:153px}.merchant-speech{left:95px;top:8px}.merchant-speech strong{font-size:10px}.merchant-speech span{display:none}.shop-panel{grid-template-columns:23% minmax(310px,1fr) 22%;gap:12px;padding-left:10px;padding-right:10px}.shop-grid{gap:7px}.shop-controls{padding-left:10px;gap:7px;grid-template-columns:1fr 32px}.shop-card .sprite{width:53px;height:53px}.buy-button{width:89%}.refresh-button{font-size:9px}.inventory-heading h1{font-size:17px}.synergy-banner strong{font-size:9px}.synergy-banner p{font-size:8px}.battle-note{font-size:7px}.character-switch{right:-13px}.bag-frame{border-width:10px;padding:8px}.bag-frame:before{inset:-6px}.bag-buckle{top:-21px}.chapter-hud{left:25%;width:47%}.inventory-controls{font-size:8px}.inventory-controls b{padding:0 3px}.inventory-controls .text-button{font-size:9px}}
@media(max-height:740px) and (min-width:761px){.site-header{height:57px}.chapter-hud{top:64px}.chapter-title strong{font-size:16px}.journey-track{margin-top:12px}.inventory-zone{top:133px;bottom:187px}.tactics-zone{top:132px;bottom:189px}.hero-zone{top:117px;bottom:194px}.shop-panel{height:145px;bottom:29px;padding-top:9px;padding-bottom:10px}.shop-card .sprite{width:48px;height:48px}.merchant-art{height:158px}.merchant-sign{font-size:11px}.shop-controls{padding-top:10px}.wares-heading{margin-bottom:5px}.bag-frame{width:min(100%,calc((100dvh - 320px)*7/var(--bag-rows)))}.inventory-heading{padding-bottom:13px}.inventory-controls{padding-top:12px;padding-bottom:3px}.synergy-banner{padding-top:5px;padding-bottom:5px;min-height:31px}.synergy-banner p{display:none}.phase-seal{margin-bottom:13px;gap:5px}.phase-seal i{margin-top:1px}.detail-panel{min-height:118px;padding:12px}.detail-empty>.icon{width:22px;height:22px;margin:6px 0}.detail-empty strong{font-size:11px}.detail-empty{font-size:9px}.detail-title{margin:9px 0}.detail-description{font-size:10px}.detail-flavor{display:none}.detail-buttons{margin-top:10px}.weapon-analysis{margin-top:5px;line-height:1.6;font-size:9px}.encounter-panel{padding-top:13px}.departure-button{height:44px;margin-top:10px;font-size:15px}.battle-note{margin-top:7px}.hero-art{bottom:65px;height:calc(100% - 53px)}.hero-stats{padding:7px 0}.field-actions{margin-top:12px}.hero-nameplate{margin-bottom:4px}.battle-topbar{height:66px}.battle-topbar h2{font-size:20px}.battle-hud{top:82px}.fighter{bottom:129px;height:55dvh}.battle-bottom{padding-top:9px;padding-bottom:9px}.battle-log{height:38px}.class-card .character{height:33dvh}.modal:has(.class-grid) .modal-header h2{font-size:27px}.welcome-copy{font-size:10px;padding-bottom:10px}.class-card p{margin:6px 0 9px}.result-content{padding:19px 30px}.result-emblem{width:51px;height:51px;margin:8px auto 22px}.result-emblem .icon{width:29px;height:29px}.result-content h2{font-size:31px}.result-stats{padding:15px 0;margin:16px 0}.reward-card{padding:18px 10px}.reward-card .icon{margin-bottom:12px}}
@media(max-width:760px){.site-header{height:55px;padding:0 12px;gap:10px}.game-crest{font-size:15px;gap:8px}.game-crest small{font-size:6px;letter-spacing:2.5px}.game-crest>span:first-child{width:27px;height:27px}.game-crest .icon{width:22px;height:22px}.run-resources{gap:13px}.resource small{display:none}.resource strong{font-size:19px}.resource-icon .icon{width:18px;height:18px}.resource.round{display:none}.resource.health strong{font-size:16px!important;letter-spacing:2px}.hud-tools{gap:5px}.hud-tools>.icon-button:first-child{display:none}.hud-tools .icon-button{width:26px;height:26px}.hud-tools .icon{width:14px;height:14px}.chapter-hud{top:62px;left:18%;width:64%}.chapter-title{gap:7px}.chapter-title strong{font-size:16px;letter-spacing:3px}.chapter-title>span:first-child,.chapter-title>span:last-child{width:15px}.chapter-title .icon{width:16px;height:16px}.camp-tag{font-size:7px;letter-spacing:1px;padding:3px}.journey-track{gap:16px;margin-top:12px}.journey-node{width:11px;height:11px}.journey-node.boss{width:14px;height:14px}.hero-zone{top:60px;left:8px;width:72px;height:68px;bottom:auto;display:block;z-index:2}.hero-art{width:83px;height:83px;left:-5px;bottom:0;background-position:center top!important;animation:none;filter:drop-shadow(0 2px 4px #000);mask-image:linear-gradient(#000 74%,transparent)}.hero-rune,.hero-nameplate,.hero-stats{display:none}.field-actions{position:fixed;top:127px;left:0;right:0;display:flex;justify-content:center;gap:35px;margin:0;height:28px}.field-actions button{font-size:10px}.field-actions .icon{width:14px;height:14px}.field-actions button:before{display:none}.inventory-zone{left:20px;right:20px;width:auto;top:165px;bottom:278px;justify-content:flex-start}.inventory-heading{padding:0 2px 13px;gap:7px}.inventory-heading h1{font-size:16px;letter-spacing:3px}.heading-ornament .icon{width:20px;height:20px}.inventory-heading .count-badge{font-size:9px}.inventory-heading>.icon-button{width:24px;height:24px}.bag-frame{max-width:440px;border-width:9px;padding:7px;width:min(100%,calc((100dvh - 450px)*7/var(--bag-rows)))}.bag-frame:before{inset:-5px}.bag-buckle{height:20px;width:20px;top:-14px;border-width:2px}.frame-stud{width:6px;height:6px}.frame-stud.tl{top:-8px;left:-8px}.frame-stud.tr{top:-8px;right:-8px}.frame-stud.bl{bottom:-8px;left:-8px}.frame-stud.br{bottom:-8px;right:-8px}.bag-item{padding:4px}.inventory-controls{font-size:8px;padding:10px 0 3px;max-width:440px}.inventory-controls .text-button{font-size:9px}.inventory-controls b{padding:0 3px}.synergy-banner{max-width:440px;padding:5px 3px;min-height:26px;margin:3px 0 0}.synergy-banner>svg{width:14px;height:14px}.synergy-banner strong{font-size:8px}.synergy-banner p{display:none}.synergy-banner .link-total{font-size:15px}.quick-item{max-width:440px;width:100%;display:flex;align-items:center;min-height:28px;gap:5px;color:#e4c695;font-size:10px;background:#171f2aaa;padding:4px 5px;border:1px solid #9c82594f;margin-top:4px}.quick-item:empty{display:none}.quick-item strong{font-size:10px;font-weight:500;flex:1}.quick-item button{height:24px;padding:0 6px;font-size:9px;border:1px solid #8e794d61;background:#342e36}.quick-item .icon{width:12px;height:12px}.tactics-zone{top:auto;bottom:191px;left:12px;right:12px;width:auto;max-width:none;display:block;height:62px;padding:0;z-index:5}.phase-seal,.tactics-zone .detail-panel{display:none}.encounter-panel{margin:0;padding:0;display:grid;grid-template-columns:1fr 144px;grid-template-rows:19px 20px 15px;align-items:center;gap:0 8px;background:linear-gradient(90deg,#19202adb,#1a1d2b9e);border-top:1px solid #a68a5861;padding:6px 10px}.encounter-title{grid-column:1;grid-row:1;font-size:8px;gap:4px}.encounter-title button{width:19px;height:19px;margin-left:8px;border:0;background:none}.encounter-title .icon{width:11px!important;height:11px!important}.encounter-panel>strong{font-size:10px;margin:0;letter-spacing:0;grid-column:1;grid-row:2}.encounter-panel>small{grid-column:1;grid-row:3;font-size:8px}.departure-button{grid-column:2;grid-row:1/4;margin:0;height:45px;width:100%;font-size:15px;letter-spacing:2px;padding:0 9px;gap:10px}.battle-note{display:none}.shop-panel{bottom:29px;left:12px;right:12px;height:148px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:107px 29px;gap:1px 8px;padding:4px 6px 6px;border-top:1px solid #9e805863;background:#26232de8}.merchant-zone{display:none}.wares-zone{grid-column:1/-1;grid-row:1}.wares-heading{margin-bottom:3px;font-size:8px}.wares-heading small{font-size:7px}.shop-grid{gap:8px}.shop-card .sprite{width:43px;height:43px;margin-bottom:2px}.shop-inspect{padding-bottom:1px}.shop-card h3{font-size:9px}.shop-card:before{bottom:20px;height:35px}.shop-card:after{bottom:19px}.buy-button{width:80%;height:20px;min-height:20px;margin:4px auto 0;font-size:10px}.buy-button small{display:none}.buy-button .icon{width:10px;height:10px}.rarity-dot{top:0;right:4px;width:3px;height:3px}.shop-controls{grid-row:2;grid-column:1/-1;padding:0;border:0;grid-template-columns:1fr 32px 1fr;gap:7px;align-content:center;margin-top:4px}.refresh-button,.lock-button{height:26px;font-size:9px}.lock-button{font-size:0}.refresh-button .icon{width:12px;height:12px}.recipe-entry{grid-column:auto;display:flex;align-items:center;justify-content:center;gap:4px;margin:0;padding:0 6px;border:1px solid #98794569;background:#65502b40;height:26px}.recipe-entry>svg{width:13px;height:13px}.recipe-entry strong{font-size:9px;letter-spacing:0}.recipe-entry small{display:none}.bottom-hud{bottom:7px;left:16px;right:16px;font-size:7px}.keyboard-hint{display:none}.bottom-hud button{font-size:8px}.world-scenery{background-position:37% center;filter:brightness(.49) saturate(.83)}.world-moon{width:58px;height:58px;right:14%;top:5%}.overlay{padding:13px}.modal{max-height:92dvh;box-shadow:0 0 0 3px #141a27,0 0 0 4px #827153,0 15px 50px #030812aa}.modal-header{padding:18px 17px 14px}.modal-header h2{font-size:21px;letter-spacing:2px}.modal-header p{font-size:10px}.modal-header .eyebrow{font-size:7px;letter-spacing:2px}.modal-content{padding:18px 16px 22px}.modal-footer{padding:17px 16px;gap:12px}.modal-footer .primary{font-size:11px;padding:0 17px;letter-spacing:1px}.modal-footer .text-button{font-size:9px}.modal:has(.class-grid) .modal-header h2{font-size:24px;letter-spacing:3px}.modal:has(.class-grid) .modal-header>.icon-button{right:12px;top:12px;width:26px;height:26px}.welcome-copy{font-size:10px;line-height:1.7;padding-top:5px}.class-grid{gap:5px}.class-card{padding:0 3px 17px}.class-card .character{height:29dvh;min-height:170px;width:100%}.class-card h3{font-size:14px;letter-spacing:1px}.class-card p{font-size:8px;line-height:1.7;margin:8px 0 10px}.class-card small{font-size:9px;letter-spacing:0}.class-card:before{width:54px;height:90px;left:calc(50% - 27px);top:28%}.class-card .chosen{width:18px;height:18px;left:calc(50% - 9px);bottom:-10px}.class-card .chosen .icon{width:12px}.modal:has(.class-grid) .modal-footer{padding-top:24px}.filter{font-size:10px;padding:7px 11px}.filters{gap:6px;margin-bottom:18px}.codex-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.codex-item{padding:13px 10px}.codex-item .sprite{width:57px;height:57px}.codex-item h3{font-size:11px}.codex-item small{font-size:8px}.codex-item p{font-size:9px}.recipe-list{grid-template-columns:1fr}.recipe-row{padding:14px 10px}.recipe-icons .sprite{width:41px;height:41px}.recipe-icons small{font-size:9px}.recipe-icons{gap:7px}.map-region{gap:15px;padding:14px 10px}.region-badge{width:33px;height:33px}.region-badge .icon{width:18px;height:18px}.map-region h3{font-size:13px}.map-region p{display:none}.map-rounds{gap:5px}.map-round{font-size:8px;padding:5px 7px}.map-list:before{left:28px}.help-step{gap:11px}.help-step h3{font-size:12px}.help-step p,.control-note{font-size:10px}.opponent-profile{gap:12px;padding:0 0 16px}.opponent-profile>.character{width:90px}.opponent-profile h3{font-size:17px}.opponent-profile p{font-size:10px}.opponent-numbers{font-size:9px;gap:8px}.opponent-numbers .icon{width:12px;height:12px}.battle-overlay{padding:0}.battle-modal{max-height:none;box-shadow:none}.battle-topbar{height:68px;padding:15px 12px}.battle-topbar h2{font-size:18px;letter-spacing:2px}.battle-topbar .eyebrow{font-size:7px;letter-spacing:1.5px}.battle-timer{position:absolute;top:80px;left:0;right:0;font-size:19px}.battle-hud{left:16px;right:16px;top:121px;gap:11px;grid-template-columns:1fr 20px 1fr}.combatant-name{display:block;font-size:12px;line-height:1.6;margin-bottom:10px}.combatant-name small{display:block;font-size:8px}.health-track{height:13px}.combatant-status{font-size:8px;gap:7px;flex-wrap:wrap}.combatant-status span:first-child{font-size:11px}.combatant-status .icon{width:10px;height:10px}.hud-vs{font-size:11px}.fighter{width:56vw;height:43dvh;bottom:172px}.fighter.player{left:-7%}.fighter.enemy{right:-7%}.versus{font-size:17px;top:45%}.battle-stage{background-position:45% center}.battle-bottom{left:14px;right:14px;bottom:65px;padding:10px;grid-template-columns:1fr;gap:6px;min-height:75px}.combat-items{gap:5px}.combat-item{width:28px;height:28px;padding:3px}.battle-log{font-size:8px;height:31px;text-align:left}.battle-controls{left:14px;right:14px;bottom:18px;gap:7px}.battle-controls .secondary{font-size:9px;padding:0 9px}.battle-hint{display:none}.damage-number{font-size:24px;margin-top:25dvh}.damage-number.critical{font-size:32px}.projectile{width:55px;top:52%}.result-content{padding:23px 16px}.result-emblem{width:50px;height:50px;margin-bottom:25px}.result-emblem .icon{width:28px;height:28px}.result-content h2{font-size:28px;letter-spacing:4px}.result-content>p{font-size:10px}.result-stats{gap:24px;padding:18px 0;margin:20px 0}.result-stats strong{font-size:23px}.result-stats small{font-size:9px}.reward-grid{gap:8px}.reward-card{padding:19px 7px}.reward-card .icon{width:23px;height:23px;margin-bottom:14px}.reward-card strong{font-size:13px;letter-spacing:0}.reward-card small{font-size:8px}.result-content .reward-title{font-size:10px;margin:15px 0}.result-actions{gap:9px}.result-actions .primary,.result-actions .secondary{font-size:11px;padding:0 12px;letter-spacing:1px}#toast{bottom:195px;font-size:10px;padding:10px 16px}.item-info-modal .detail-title .sprite{height:72px;width:72px}.item-info-modal .detail-title h3{font-size:21px}}
@media(max-width:760px) and (max-height:730px){.chapter-hud{top:56px}.chapter-title strong{font-size:14px}.journey-track{margin-top:8px;gap:15px}.hero-zone{top:49px;height:63px}.hero-art{width:70px;height:75px}.field-actions{top:113px;height:21px}.inventory-zone{top:143px;bottom:244px;left:24px;right:24px}.inventory-heading{padding-bottom:12px}.inventory-heading h1{font-size:14px}.bag-frame{width:min(100%,calc((100dvh - 397px)*7/var(--bag-rows)))}.inventory-controls{padding-top:8px}.synergy-banner{display:none}.quick-item{min-height:25px;margin-top:2px}.tactics-zone{bottom:169px;height:58px}.shop-panel{bottom:26px;height:132px;grid-template-rows:94px 26px}.shop-card .sprite{width:36px;height:36px}.shop-card h3{font-size:8px}.wares-heading{font-size:7px;margin-bottom:1px}.wares-heading small{font-size:7px}.shop-controls{margin-top:1px}.refresh-button,.lock-button,.recipe-entry{height:24px}.encounter-panel{grid-template-rows:15px 18px 13px}.departure-button{height:41px}.bottom-hud{bottom:6px}.field-actions button{font-size:9px}.inventory-heading>.icon-button{height:21px;width:21px}.inventory-heading>.icon-button .icon{width:12px}.battle-hud{top:102px}.battle-timer{top:72px}.fighter{height:41dvh;bottom:145px}.battle-bottom{bottom:60px}.battle-topbar h2{font-size:16px}.class-card .character{min-height:135px;height:24dvh}.welcome-copy{font-size:9px}.modal:has(.class-grid) .modal-header h2{font-size:21px}.modal:has(.class-grid) .modal-header{padding-top:15px}.class-card p{font-size:8px}.class-card h3{font-size:13px}.class-card small{font-size:8px}.class-card{padding-bottom:14px}.modal:has(.class-grid) .modal-footer{padding-top:22px}.result-content{padding:18px 14px}.result-content h2{font-size:25px}.result-emblem{width:40px;height:40px;margin-bottom:20px}.result-emblem .icon{width:22px;height:22px}.result-stats{padding:14px 0;margin:15px 0}.reward-card{padding:14px 5px}.reward-card .icon{margin-bottom:10px}.result-content .eyebrow{font-size:7px;letter-spacing:2px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

.character-atlas{display:block;width:100%;height:100%;overflow:visible}
.quick-info{display:flex;align-items:center;gap:6px;flex:1;text-align:left;min-width:0}.quick-info .sprite{width:24px;height:24px;flex-shrink:0}.quick-placeholder{display:block;text-align:center;width:100%;color:#a8a0a1;font-size:9px}.item-info-content .detail-title .sprite{width:70px;height:70px}.item-info-content .detail-title h3{font-size:20px}

/* Keep the inventory inside the available scene instead of centering an overflowing stack. */
@media(min-width:761px){.inventory-zone{justify-content:flex-start;--inventory-width:min(100%,calc((100dvh - 480px)*7/var(--bag-rows) + 44px))}.inventory-heading,.bag-frame,.inventory-controls,.synergy-banner{width:var(--inventory-width);max-width:505px}.inventory-heading{padding-left:0;padding-right:0}.detail-description{font-size:12px}.detail-empty{font-size:11px}.detail-empty strong{font-size:13px}.weapon-analysis{font-size:11px}.shop-card h3{font-size:12px}.buy-button{font-size:13px}.buy-button small{font-size:10px}.encounter-panel>strong{font-size:15px}.encounter-panel>small{font-size:10px}.field-actions button{font-size:12px}.hero-stats>div{font-size:10px}.resource small{font-size:9px}}
@media(min-width:1500px) and (min-height:820px){.inventory-heading,.bag-frame,.inventory-controls,.synergy-banner{max-width:590px}}

.detail-panel{flex-shrink:0}
@media(max-width:760px){.bag-frame{width:min(100%,calc((100dvh - 610px)*7/var(--bag-rows) + 32px))}}
@media(max-width:760px) and (max-height:730px){.bag-frame{width:min(100%,calc((100dvh - 517px)*7/var(--bag-rows) + 32px))}}

@media(min-width:761px) and (max-height:740px){.tactics-zone{top:156px;bottom:193px}.phase-seal{position:absolute;bottom:calc(100% + 10px);width:100%;margin:0;gap:0}.phase-seal span,.phase-seal i{display:none}.detail-panel{max-height:calc(100dvh - 510px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#857454 #202432}}
