/* Cargo story: portrait on the left, the intact four-compartment box on the right. */
#chapterRoot[data-cargo=true] #merchantPortrait{left:30%}
#chapterRoot[data-backstage=true] #ayuePortrait{left:25%}
.cargo-evidence{position:absolute;z-index:4;top:clamp(152px,23svh,252px);right:14%;width:min(49vw,84svh);aspect-ratio:14/9;color:#efdfb8;pointer-events:none}
/* Once dialogue ends, the box and collection action share the screen centre. */
.cargo-evidence[data-layout=collect]{top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}
/* Leave a clear gap beside the full-height portrait on narrower desktop views. */
@media(max-aspect-ratio:19/10){
  #chapterRoot[data-cargo=true] #merchantPortrait{left:27.5%}
  .cargo-evidence[data-layout=dialogue]{right:11.5%}
}
.cargo-evidence[hidden],.cargo-evidence [hidden]{display:none!important}
.cargo-stage{position:absolute;inset:0;perspective:1100px;filter:drop-shadow(0 20px 18px #0008)}
.cargo-image{display:block;width:100%;height:100%;object-fit:contain;animation:cargo-reveal .9s ease both}
.cargo-lid{position:absolute;z-index:2;inset:9% 8% 15%;border:8px solid #59402c;background:repeating-linear-gradient(2deg,#6a492f88 0 1px,transparent 2px 7px),linear-gradient(90deg,#39251c,#775032,#48301e);box-shadow:inset 0 0 50px #160f09,0 10px 20px #0006;display:grid;place-items:center;transform-origin:top}
.cargo-lid:before,.cargo-lid:after{content:"";position:absolute;top:0;bottom:0;width:18px;background:#6e634a;border:1px solid #ab955a}
.cargo-lid:before{left:12%}.cargo-lid:after{right:12%}.cargo-lid span{font:32px KaiTi,serif;color:#b89b63;opacity:.7}
.is-open .cargo-lid{animation:cargo-open 1.45s ease forwards}
/* Hotspots follow each compartment; their only visible UI is the name under its object. */
.cargo-clues{position:absolute;inset:0;animation:cargo-labels-in .3s .8s both}
.cargo-clue{position:absolute;width:37%;height:27%;top:20%;left:11.5%;padding:0;border:0;background:transparent;box-shadow:none;color:#fff0c9;pointer-events:auto;cursor:pointer}
.cargo-clue[data-clue=beads],.cargo-clue[data-clue=rubbing]{left:51.5%}
.cargo-clue[data-clue=pass],.cargo-clue[data-clue=rubbing]{top:51%;height:31%}
.cargo-clue span{position:absolute;bottom:0;left:0;right:0;text-align:center;font:clamp(13px,1.1vw,20px)/1.4 KaiTi,SimSun,serif;letter-spacing:.08em;text-shadow:0 2px 4px #160f09,0 0 9px #160f09;white-space:nowrap}
.cargo-clue:hover span{color:#fff9e9;text-shadow:0 0 8px #e6b875,0 2px 4px #160f09}
.cargo-clue:focus-visible{outline:2px solid #e1bd7c;outline-offset:3px;border-radius:3px}
.cargo-clue:active{transform:none}
.cargo-focus{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse,#302e21f5,#171b17d1 63%,transparent 73%);filter:drop-shadow(0 10px 35px #0009);animation:cargo-emphasis .8s both}
.cargo-focus img{width:100%;height:75%;object-fit:contain;filter:drop-shadow(0 10px 10px #0008)}
.cargo-focus strong{font-size:clamp(14px,1.1vw,20px);letter-spacing:.18em;font-weight:400}
.cargo-focus small{margin-top:10px;color:#c4b288}
.cargo-evidence[data-focus=true] .cargo-stage{opacity:.3}
.cargo-evidence[data-focus=true] .cargo-clues{visibility:hidden}
.cargo-collect{position:absolute;top:92%;left:50%;transform:translateX(-50%);pointer-events:auto;border:1px solid #ddbf7f;background:#25271ae8;color:#f2db9d;padding:14px 24px;font:17px KaiTi,serif;cursor:pointer;white-space:nowrap}
@keyframes cargo-labels-in{from{opacity:0}to{opacity:1}}
.cargo-detail{width:min(560px,70vw);padding:25px 35px 30px;background:radial-gradient(ellipse at 50% 20%,#4c4434,#20271e);color:#ecdbb5;border:1px solid #ae915e;box-shadow:0 30px 100px #0009}.cargo-detail::backdrop{background:#0e140cbb;backdrop-filter:blur(5px)}.cargo-detail>small{font-size:12px;letter-spacing:.24em;color:#bbaa86}.cargo-detail img{display:block;width:100%;height:240px;object-fit:contain;filter:drop-shadow(0 12px 10px #0006)}.cargo-detail h2{font-weight:400;font-size:24px}.cargo-detail p{line-height:1.9;color:#d0c4aa;font-size:14px}.cargo-detail button{background:#ab915a33;border:1px solid #b1945c;color:#eddbaf;padding:10px 18px;cursor:pointer}.cargo-detail .cargo-detail-close{float:right;border:0;background:none;font-size:24px;padding:0 5px}.music-notes{margin-bottom:24px}.music-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.music-notes-grid img{width:100%;height:120px;object-fit:contain;background:#332f24;border-radius:3px}.music-notes-grid h4{margin:8px 0}.music-notes-grid p{font-size:13px;line-height:1.7}.music-chapter-end{position:absolute;z-index:30;inset:20% 24%;background:linear-gradient(130deg,#1c251bee,#403323e8);border:1px solid #a891575e;box-shadow:0 35px 90px #0007;color:#f0dfb9;padding:50px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column}.music-chapter-end[hidden]{display:none}.music-chapter-end small{letter-spacing:.3em;color:#b9a679}.music-chapter-end h2{font:34px KaiTi,SimSun,serif;letter-spacing:.14em}.music-chapter-end p{line-height:2;color:#d6c7aa}.music-chapter-end button{padding:12px 20px;background:#bea16626;color:#ebd6a7;border:1px solid #ad905e;margin:12px 5px;cursor:pointer}.music-chapter-end>span{font-size:12px;color:#b5ab93;margin-top:18px}.pipa-loading-message{position:absolute;inset:35% 20%;display:flex;align-items:center;justify-content:center;gap:20px;color:#e7d5a9;font-size:20px}.pipa-loading-message button{font-size:16px;padding:12px}
.music-chapter-end>div{display:grid;grid-template-columns:repeat(2,max-content);justify-content:center;gap:10px;width:100%}.music-chapter-end button{margin:0;font-size:14px}.music-chapter-end [data-end=replay]{grid-column:1/-1;width:100%;color:#f7e4b6;border-color:#c8ab6f;background:#8e74463d;margin:4px 0 2px}.music-chapter-end>span{margin-top:16px}@media(max-height:800px){.music-chapter-end{padding:28px 38px}.music-chapter-end h2{margin:16px 0}.music-chapter-end p{margin:8px 0 16px}}
#chapterRoot[data-pipa=true] .chapter-brand{display:none}
#chapterRoot[data-pipa=true] .chapter-topbar{z-index:40;justify-content:flex-end;padding:16px 4%}
@keyframes cargo-open{0%{transform:rotateX(0);opacity:1}75%{transform:rotateX(105deg) translateY(-50px);opacity:.8}100%{transform:rotateX(110deg) translateY(-70px);opacity:0;visibility:hidden}}@keyframes cargo-reveal{from{transform:translateY(45px) scale(.94);opacity:.3}to{transform:none;opacity:1}}@keyframes cargo-emphasis{from{transform:translateY(25px) scale(.72);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.cargo-evidence *{animation-duration:.01s!important}}
