html body .campaign-page{--paper:#fbf4e1;--ink:#2d2517;--navy:#8c1f2a;--gold:#c9a55a;--green:#8c1f2a;max-width:1120px;margin:0 auto;padding:18px 16px 40px;color:var(--ink);font-family:Noto Sans TC,system-ui,sans-serif}html body .campaign-page .muted{color:#6f6a5c}html body .campaign-page .campaign-head{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:14px 18px;background:linear-gradient(180deg,#fdf8ea,#f3e7c8);border:2px solid var(--gold);border-radius:16px;box-shadow:0 8px 24px #0002}html body .campaign-page .campaign-head h1{margin:0;font-family:"Noto Serif TC",serif;font-size:30px;letter-spacing:.12em;color:var(--navy)}html body .campaign-page .campaign-head p{margin:2px 0 0;font-size:13px;line-height:1.6}html body .campaign-page .campaign-kicker{margin:0;font-size:12px!important;letter-spacing:.14em;color:#8a6a2c}html body .campaign-page .campaign-home{color:var(--green)!important;font-weight:700;white-space:nowrap}html body .campaign-page .campaign-motion{display:grid;gap:3px;font-size:12px;color:#5d584a}html body .campaign-page .campaign-motion select{min-height:34px;border:1px solid var(--gold);border-radius:8px;background:#fff;padding:2px 6px}html body .campaign-page .campaign-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:6px 18px;border:2px solid var(--gold);border-radius:10px;background:#f6ecd2;color:#6d2a14;font-weight:800;letter-spacing:.06em;text-decoration:none;cursor:pointer}html body .campaign-page .campaign-button.primary{background:linear-gradient(180deg,#b62836,var(--navy));color:#fff1c9!important}html body .campaign-page .campaign-button:focus-visible,html body .campaign-page .campaign-button:hover{filter:brightness(1.1);outline:2px solid #ffe39a;outline-offset:2px}html body .campaign-page .campaign-resume{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-top:12px;padding:10px 14px;background:#fff7df;border:2px dashed var(--gold);border-radius:12px}html body .campaign-page .campaign-resume div{display:grid;gap:2px}.campaign-resume span{font-size:13px}html body .campaign-page .campaign-chapters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 10px}html body .campaign-page .campaign-chapters button{display:grid;gap:2px;text-align:left;padding:10px 12px;border:2px solid #d8c79c;border-radius:12px;background:#fffaf0;color:var(--ink);cursor:pointer}html body .campaign-page .campaign-chapters button small{font-size:11px;color:#8a6a2c}.campaign-chapters button span{font-size:12px;color:#5d584a}html body .campaign-page .campaign-chapters button b{font-family:"Noto Serif TC",serif;font-size:17px}html body .campaign-page .campaign-chapters button[aria-pressed=true]{border-color:var(--navy);background:#eef2f6;box-shadow:inset 0 -3px 0 var(--navy)}html body .campaign-page .campaign-chapters button:disabled{opacity:.55;cursor:not-allowed}html body .campaign-page .campaign-world{position:relative;height:96px;overflow:hidden;border-radius:14px;border:1px solid #d8c79c;pointer-events:none;-webkit-user-select:none;user-select:none;contain:layout paint}html body .campaign-page .campaign-world.scene-village{background:linear-gradient(180deg,#fbe9c6,#f3dcae 70%,#d9bf8e)}html body .campaign-page .campaign-world.scene-city{background:linear-gradient(180deg,#eeeae2,#ddd6c8 70%,#bdb3a0)}html body .campaign-page .campaign-world.scene-harbor{background:linear-gradient(180deg,#e8ecf1,#d8dde5 65%,#abb5c5)}html body .campaign-page .campaign-world.scene-spring{background:linear-gradient(180deg,#f3f7ee,#e0eeed 70%,#c0d8d7)}html body .campaign-page .campaign-scene{position:absolute;inset:0;width:100%;height:100%}html body .campaign-page .npc-figure{position:absolute;left:0;bottom:10px;width:40px;height:56px;display:grid;place-items:end center;will-change:transform,opacity}html body .campaign-page .npc-figure.is-static{transform:none}html body .campaign-page .npc-placeholder-tag{position:absolute;right:8px;top:6px;padding:2px 8px;border:1px dashed #8a6a2c;border-radius:999px;background:#fffaf0d9;font-size:11px;color:#6d4a16}html body .campaign-page .campaign-world[data-motion=off] .npc-placeholder-tag{display:none}html body .campaign-page .campaign-map{margin-top:12px;padding:16px;background:var(--paper);border:2px solid var(--gold);border-radius:16px}html body .campaign-page .campaign-chapter-story h2{margin:0;font-family:"Noto Serif TC",serif;color:var(--navy)}html body .campaign-page .campaign-subtitle{margin:2px 0 6px;font-weight:700;color:#8a6a2c}html body .campaign-page .campaign-chapter-story p{line-height:1.75;font-size:14px}html body .campaign-page .campaign-route{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;counter-reset:none}html body .campaign-page .campaign-route li{position:relative}html body .campaign-page .campaign-route li:not(:last-child):after{content:"";position:absolute;top:34px;right:-10px;width:10px;border-top:3px dotted var(--gold)}html body .campaign-page .campaign-route button{width:100%;height:100%;display:grid;justify-items:center;gap:6px;padding:10px 8px;border:2px solid #d8c79c;border-radius:14px;background:#fff;color:var(--ink);text-align:center;cursor:pointer}html body .campaign-page .campaign-route button:focus-visible,html body .campaign-page .campaign-route button:hover:not(:disabled){border-color:var(--navy);box-shadow:0 4px 14px #8c1f2a33}html body .campaign-page .route-label{font-weight:800;color:#8a6a2c;letter-spacing:.08em}html body .campaign-page .route-text{display:grid;gap:2px}.route-text b{font-family:"Noto Serif TC",serif;font-size:15px}.route-text small{font-size:11px;color:#5d584a;line-height:1.4}html body .campaign-page .campaign-route li.is-cleared button{background:#f2f7ef;border-color:#80b0ae}html body .campaign-page .campaign-route li.is-cleared .route-label:after{content:" ✓ 已通關";font-size:11px;color:var(--green)}html body .campaign-page .campaign-route li.is-boss button{border-width:3px;border-color:#b0853a;background:linear-gradient(180deg,#fff8e6,#fff)}html body .campaign-page .campaign-route li.is-current button{outline:3px solid #b62836;outline-offset:1px}html body .campaign-page .campaign-route li.is-locked button{opacity:.55;cursor:not-allowed;background:#f4f1ea}html body .campaign-page .campaign-chapter-end{margin:14px 0 0;padding:10px 14px;border-left:4px solid var(--gold);background:#fff7df;font-family:"Noto Serif TC",serif;line-height:1.8}html body .campaign-portrait{display:inline-block;flex:none;border-radius:50%;overflow:hidden;border:2px solid var(--gold);background:#e9dfc6;box-shadow:0 2px 6px #0003}html body .campaign-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform:scale(1.9);transform-origin:50% 32%}html body .campaign-portrait.portrait-sm{width:44px;height:44px}.campaign-portrait.portrait-md{width:64px;height:64px}.campaign-portrait.portrait-lg{width:96px;height:96px;border-width:3px}html body .campaign-portrait.is-boss{border-color:#b0853a;box-shadow:0 0 0 3px #f3dc9a,0 2px 6px #0003}html body .campaign-portrait.has-boss-art img{object-position:50% 18%;transform:scale(1.18);transform-origin:50% 25%}html body .campaign-page .campaign-preview{margin-top:14px;padding:18px;background:var(--paper);border:2px solid var(--gold);border-radius:16px;scroll-margin-top:12px}html body .campaign-page .preview-head{display:flex;gap:16px;align-items:center}html body .campaign-page .preview-head h2{margin:2px 0;font-family:"Noto Serif TC",serif;font-size:26px;color:var(--navy)}html body .campaign-page .preview-meta{margin:0;font-size:13px;line-height:1.7}html body .campaign-page .preview-story{margin:12px 0;padding:12px 14px;background:#fff;border:1px solid #e1d3ae;border-radius:12px;line-height:1.8}html body .campaign-page .preview-story summary{cursor:pointer;font-weight:700;color:var(--green)}html body .campaign-page .preview-story blockquote{margin:8px 0 0;padding-left:12px;border-left:3px solid var(--gold);font-family:"Noto Serif TC",serif}html body .campaign-page .preview-story cite{display:block;font-size:12px;color:#6f6a5c;font-style:normal}html body .campaign-page .preview-theme{display:flex;gap:10px;align-items:baseline;line-height:1.6}.preview-theme b{flex:none;color:#8a6a2c}html body .campaign-page .campaign-preview h3{margin:16px 0 8px;font-size:15px;color:var(--navy)}html body .campaign-page .preview-cards{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}html body .campaign-page .preview-cards.featured{grid-template-columns:repeat(3,minmax(0,150px))}html body .campaign-page .campaign-card{position:relative;display:grid;gap:3px;padding:0;border:0;background:none;cursor:pointer;color:var(--ink)}html body .campaign-page .campaign-card img{width:100%;height:auto;aspect-ratio:2/3;border-radius:8px;box-shadow:0 3px 8px #0003}html body .campaign-page .campaign-card:focus-visible img,html body .campaign-page .campaign-card:hover img{outline:3px solid #b62836}html body .campaign-page .campaign-card .card-name{font-size:12px;font-weight:700;text-align:center}html body .campaign-page .first-tag{position:absolute;top:4px;left:4px;padding:1px 6px;border-radius:6px;background:#8c1f2ae6;color:#fff1c9;font-size:10px;font-weight:700}html body .campaign-page .preview-plan{margin:0;padding-left:22px;line-height:1.8}html body .campaign-page .preview-badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}html body .campaign-page .preview-badges li{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:8px 12px;border:1px solid #e1d3ae;border-radius:10px;background:#fff}html body .campaign-page .preview-badges li b{grid-row:1/3;align-self:center;font-size:11px;padding:2px 6px;border-radius:6px;background:#eee7d6;color:#6f6a5c}html body .campaign-page .preview-badges li.earned b{background:#ddeeee;color:var(--green)}html body .campaign-page .preview-badges small{font-size:12px;color:#5d584a}html body .campaign-page .campaign-confirm div,html body .campaign-page .preview-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}html body .campaign-page .campaign-confirm{margin-top:18px;padding:12px 14px;border:2px solid #b0853a;border-radius:12px;background:#fff7df}html body .campaign-page .campaign-confirm p{margin:0;line-height:1.7}html body .campaign-page .campaign-warning{color:#8b2a1a;font-weight:700}html body .campaign-page .campaign-footnote{margin-top:18px;font-size:12px;color:#6f6a5c;line-height:1.7}html body .campaign-page .campaign-card-dialog{max-width:min(360px,92vw);padding:14px;border:2px solid var(--gold);border-radius:14px;background:var(--paper);color:var(--ink)}html body .campaign-page .campaign-card-dialog::backdrop{background:#0008}html body .campaign-page .campaign-card-dialog img{width:100%;height:auto;border-radius:10px}html body .campaign-page .campaign-card-dialog p{line-height:1.7}.single-table .campaign-banner{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;margin-bottom:8px;padding:8px 10px;border:2px solid #c9a55a;border-radius:12px;background:#fbf4e1;color:#2d2517}.campaign-banner>div{display:grid;gap:1px;min-width:0}.campaign-banner small{font-size:11px;color:#8a6a2c}.campaign-banner strong{font-family:"Noto Serif TC",serif;font-size:15px}.campaign-banner span{font-size:12px}.campaign-banner .campaign-tip{grid-column:1/-1;margin:2px 0 0;font-size:12px;line-height:1.55;display:flex;gap:6px;align-items:flex-start}.campaign-banner .campaign-tip button{flex:none;min-height:0;padding:0 6px;font-size:11px}.campaign-banner .campaign-back{grid-column:1/-1;font-size:12px;color:#8c1f2a!important;font-weight:700}.victory-scroll .campaign-ending{margin:.8cqi 1cqi 0;font-size:max(12px,1.05cqi);line-height:1.7;font-family:"Noto Serif TC",serif}.victory-scroll .campaign-ending p{margin:.4cqi 0}.victory-scroll .campaign-earned{color:#8c1f2a;font-weight:700}.victory-scroll .campaign-earned.muted{color:#6f6a5c;font-weight:400}.results-reopen .button-link{align-self:center;font-weight:700}html body.wanxiang-theme .cinematic-home .campaign-entry{margin-top:8px;padding-top:8px}@media(max-width:900px){html body .campaign-page .campaign-head{grid-template-columns:1fr;gap:8px}html body .campaign-page .campaign-chapters{grid-template-columns:repeat(2,minmax(0,1fr))}html body .campaign-page .campaign-route{grid-template-columns:1fr}html body .campaign-page .campaign-route li:after{display:none}html body .campaign-page .campaign-route button{grid-template-columns:auto auto 1fr;justify-items:start;align-items:center;text-align:left}html body .campaign-page .preview-cards{grid-template-columns:repeat(5,minmax(0,1fr))}html body .campaign-page .preview-cards.featured{grid-template-columns:repeat(3,minmax(0,1fr))}html body .campaign-page .preview-badges{grid-template-columns:1fr}html body .campaign-page .campaign-resume{grid-template-columns:auto 1fr}.campaign-resume .campaign-button{grid-column:1/-1}html body .campaign-page .campaign-world{height:80px}}@media(prefers-reduced-motion:reduce){.campaign-button:hover{filter:none}}.wx-sprite{display:inline-block;flex:none;background-repeat:no-repeat;background-position:0 100%;animation-name:wx-sprite-steps;animation-timing-function:steps(8);animation-iteration-count:infinite;image-rendering:auto}@keyframes wx-sprite-steps{0%{background-position-x:0}to{background-position-x:calc(-1 * var(--sprite-w))}}.table-passersby-lane{position:absolute;bottom:2px;z-index:1;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent)}.table-passersby{position:absolute;left:0;bottom:0;display:flex;align-items:flex-end;will-change:transform;animation-timing-function:linear;animation-fill-mode:both;filter:drop-shadow(0 1px 1px #0003)}@keyframes passer-right{0%{transform:translateX(var(--from))}to{transform:translateX(var(--to))}}@keyframes passer-left{0%{transform:translateX(var(--from))}to{transform:translateX(var(--to))}}@media(prefers-reduced-motion:reduce){.table-passersby-lane{display:none}}html body .campaign-page.journal{max-width:760px;padding:18px 16px 48px}html body .campaign-page .journal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-family:"Noto Serif TC",serif;letter-spacing:.3em;color:#8a6a2c}html body .campaign-page .journal-chapter{padding:28px 32px 30px;background:linear-gradient(180deg,#fdf8ea,#f6ecd2);border:2px solid #c9a55a;border-radius:18px;box-shadow:0 10px 30px #0002}html body .campaign-page .journal-chapter h1{margin:2px 0 0;font-family:"Noto Serif TC",serif;font-size:36px;letter-spacing:.16em;color:#8c1f2a}html body .campaign-page .journal-story{font-family:"Noto Serif TC",serif;font-size:16px;line-height:1.95;margin:10px 0}html body .campaign-page .journal-entry{margin:16px 0 0;padding:10px 0 0;border-top:1px dashed #c9a55a99;opacity:.85}html body .campaign-page .journal-entry h3{margin:0;font-size:14px;color:#8a6a2c;letter-spacing:.08em}html body .campaign-page .journal-entry p{margin:4px 0 0;font-family:"Noto Serif TC",serif;line-height:1.8}html body .campaign-page .journal-stop{margin-top:22px;padding:20px 22px;background:#fffdf6;border:2px solid #c9a55a;border-radius:14px}html body .campaign-page .journal-stop h2{margin:2px 0 0;font-family:"Noto Serif TC",serif;font-size:28px;letter-spacing:.12em;color:#8c1f2a}html body .campaign-page .stop-opponent{display:flex;gap:14px;align-items:center;margin:12px 0}html body .campaign-page .stop-opponent blockquote{margin:0;font-family:"Noto Serif TC",serif;font-size:16px;line-height:1.7}html body .campaign-page .stop-opponent cite{display:block;font-size:12px;color:#6f6a5c;font-style:normal}html body .campaign-page .stop-goal{margin:16px 0 0;padding:12px 16px;border-left:5px solid #b0853a;background:#fff4d6;border-radius:0 10px 10px 0}html body .campaign-page .stop-goal b{display:block;font-size:12px;letter-spacing:.2em;color:#8a6a2c}html body .campaign-page .stop-goal p{margin:4px 0 0;font-size:18px;font-weight:800;color:#2d2517;line-height:1.6}html body .campaign-page .stop-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}html body .campaign-page .journal-past{margin-top:18px;padding:12px 16px;background:#fffaf0;border:1px solid #e1d3ae;border-radius:12px}html body .campaign-page .journal-past summary{cursor:pointer;font-weight:700;color:#8c1f2a}html body .campaign-page .journal-past h3{margin:14px 0 4px;font-family:"Noto Serif TC",serif;color:#8c1f2a}html body .campaign-page .journal-past p{margin:4px 0;line-height:1.75}html body .campaign-page .journal-end{font-family:"Noto Serif TC",serif;color:#6d4a16}@media(max-width:700px){html body .campaign-page .journal-chapter{padding:20px 16px}html body .campaign-page .journal-chapter h1{font-size:28px}html body .campaign-page .journal-stop{padding:16px 14px}}.single-table .campaign-banner .campaign-goal{grid-column:1/-1;margin:4px 0 0;font-size:13px;font-weight:700;line-height:1.55}.single-table .campaign-banner .campaign-goal b{display:block;font-size:10px;letter-spacing:.2em;color:#8a6a2c;font-weight:700}.single-table .campaign-banner .campaign-progress{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 0}.single-table .campaign-banner .campaign-progress span{padding:1px 8px;border-radius:999px;background:#8c1f2a;color:#fff1c9;font-size:12px;font-weight:700}.single-table .campaign-banner .campaign-progress span+span{background:#e9dfc6;color:#2d2517}html body .campaign-result{position:fixed;inset:0;z-index:2147482000;display:grid;place-items:center;padding:16px;background:#272223 url(/wanxiang/v3.1.0/brand/table-bg-wide.webp) 50%/cover no-repeat;animation:campaign-result-in .3s ease-out both}html body .campaign-result:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#0000 30%,#0005 100%);pointer-events:none}html body .campaign-result[class*=chapter-]:after{content:"";position:absolute;inset:0;background:var(--ch-tint);mix-blend-mode:multiply;pointer-events:none}.campaign-result-card{position:relative;z-index:1;width:min(520px,100%);padding:22px 24px;text-align:center;color:#2d2517;background:linear-gradient(180deg,#fdf8ea,#f6ecd2);border:2px solid #c9a55a;border-radius:16px;box-shadow:0 16px 40px #0006}.campaign-result-card h2{margin:4px 0 8px;font-family:"Noto Serif TC",serif;font-size:30px;letter-spacing:.14em;color:#8c1f2a}.campaign-result-card .campaign-story{font-family:"Noto Serif TC",serif;font-size:16px;line-height:1.9}.campaign-result-card .campaign-reason{font-weight:700;color:#8b2a1a}.campaign-result-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}.campaign-result .campaign-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:6px 18px;border:2px solid #c9a55a;border-radius:10px;background:#f6ecd2;color:#6d2a14;font-weight:800;text-decoration:none;cursor:pointer}.campaign-result .campaign-button.primary{background:linear-gradient(180deg,#b62836,#8c1f2a);color:#fff1c9}.campaign-result .campaign-chapter-end{padding:10px 14px;border-left:4px solid #c9a55a;background:#fff7df;font-family:"Noto Serif TC",serif;text-align:left;line-height:1.8}.boss-result-line{display:flex;align-items:center;gap:10px;text-align:left;margin:8px auto;padding:5px 9px;border:1px solid #c9a55a;border-radius:9px;background:#fff8e8;max-width:440px}.boss-result-line img{flex:none;width:76px;height:76px;object-fit:cover;object-position:center 18%;border-radius:7px;background:#d8ccaf}.boss-result-line p{margin:0!important;line-height:1.55}.boss-result-line b{display:block;color:#6d4a16}.victory-scroll .boss-result-line{max-width:360px;font-size:12px}.victory-scroll .boss-result-line img{width:54px;height:54px}.music-popover .music-passers{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:13px}html body .travel-transition{position:fixed;inset:0;z-index:2147483000;overflow:hidden;display:grid;place-items:center;padding:16px;background:#272223;animation:travel-in .3s ease-out both;transition:opacity .4s ease}html body .travel-transition.is-leaving{opacity:0}@keyframes travel-in{0%{opacity:0}to{opacity:1}}.travel-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.95) brightness(.92)}.travel-transition:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#0000 35%,#0005 100%),linear-gradient(180deg,#0000 70%,#0004);pointer-events:none}.travel-card{position:relative;z-index:2;width:min(560px,100%);margin-bottom:12vh;padding:22px 28px 24px;text-align:center;color:#2d2517;background:#fbf4e1f5;border:2px solid #c9a55a;border-radius:16px;box-shadow:0 18px 44px #0006;animation:travel-card-in .5s ease-out .1s both}.travel-boss{position:absolute;right:calc(100% - 10px);bottom:-8px;width:195px;height:292px;object-fit:contain;filter:drop-shadow(0 8px 10px #0006);pointer-events:none}@keyframes travel-card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.travel-kicker{margin:0;font-size:13px;letter-spacing:.2em;color:#8a6a2c}.travel-card h2{margin:4px 0 12px;font-family:"Noto Serif TC",serif;font-size:clamp(28px,4vw,40px);letter-spacing:.14em;color:#8c1f2a}.travel-goal{margin:0 auto;padding:12px 16px;border:2px solid #b0853a;border-radius:12px;background:#fff4d6}.travel-goal b{display:block;font-size:12px;letter-spacing:.24em;color:#8a6a2c}.travel-goal p{margin:6px 0 0;font-size:clamp(18px,2.4vw,22px);font-weight:800;line-height:1.55;color:#2d2517}.travel-card blockquote{margin:12px 0 0;font-family:"Noto Serif TC",serif;font-size:14px;line-height:1.7;color:#5a5140}html body .travel-start{margin-top:16px;min-height:44px;padding:6px 26px;border:2px solid #c9a55a;border-radius:10px;background:linear-gradient(180deg,#b62836,#8c1f2a);color:#fff1c9;font-size:16px;font-weight:800;letter-spacing:.1em;cursor:pointer}html body .travel-start:disabled{background:#e9dfc6;color:#6f6a5c;cursor:progress}.travel-lane{position:absolute;left:0;bottom:3vh;z-index:1;display:flex;align-items:flex-end;will-change:transform;animation-name:travel-cross;animation-timing-function:linear;animation-iteration-count:infinite;pointer-events:none;filter:drop-shadow(0 4px 4px #0006)}@keyframes travel-cross{0%{transform:translateX(-420px)}to{transform:translateX(100vw)}}.travel-transition.is-still .travel-card,.travel-transition.is-still .travel-lane{animation:none}@media(max-width:700px){.travel-card{margin-bottom:16vh;padding:18px 16px}}@media(max-width:900px){.travel-boss{position:static;display:block;width:85px;height:108px;margin:-12px auto 0}}@media(prefers-reduced-motion:reduce){html body .travel-transition{animation:none}}.chapter-ch1{--ch-accent:#b0853a;--ch-soft:#fff4d6;--ch-ink:#8c1f2a;--ch-page:#f6ecd2;--ch-tint:#e8b86a22}.chapter-ch2{--ch-accent:#745a86;--ch-soft:#f1ecf7;--ch-ink:#453152;--ch-page:#ece7f0;--ch-tint:#745a8630}.chapter-ch3{--ch-accent:#c02a39;--ch-soft:#e6f2f8;--ch-ink:#8c1f2a;--ch-page:#e7eaef;--ch-tint:#c02a3930}.chapter-ch4{--ch-accent:#4f8a87;--ch-soft:#eaf5ea;--ch-ink:#3f3739;--ch-page:#e3f0ef;--ch-tint:#4f8a872a}html body .campaign-page.journal[class*=chapter-] .journal-chapter{background:linear-gradient(180deg,#fdf8ea,var(--ch-page));border-color:var(--ch-accent)}html body .campaign-page.journal[class*=chapter-] .journal-chapter h1,html body .campaign-page.journal[class*=chapter-] .journal-stop h2{color:var(--ch-ink)}html body .campaign-page.journal[class*=chapter-] .campaign-kicker,html body .campaign-page.journal[class*=chapter-] .campaign-subtitle{color:var(--ch-accent)}html body .campaign-page.journal[class*=chapter-] .journal-stop{border-color:var(--ch-accent)}html body .campaign-page.journal[class*=chapter-] .stop-goal{border-left-color:var(--ch-accent);background:var(--ch-soft)}html body .campaign-page.journal[class*=chapter-] .stop-goal b{color:var(--ch-accent)}html body .campaign-page .journal-head{gap:12px}html body .campaign-page .journal-head .music-controls{margin-left:auto}html body .campaign-page .journal-replay{margin-left:10px;min-height:26px;padding:1px 10px;border:1px solid var(--ch-accent,#c9a55a);border-radius:999px;background:#fffdf6;color:var(--ch-ink,#8c1f2a);font-size:12px;font-weight:700;letter-spacing:0;vertical-align:middle;cursor:pointer}html body .campaign-page .journal-resume{margin:0 0 12px;padding:8px 14px;border:1px dashed #c9a55a;border-radius:10px;background:#fff7df}.single-table .campaign-banner[class*=chapter-]{border-color:var(--ch-accent);background:linear-gradient(180deg,#fbf4e1,var(--ch-page))}.single-table .campaign-banner[class*=chapter-] .campaign-goal b,.single-table .campaign-banner[class*=chapter-] small{color:var(--ch-accent)}.single-table .campaign-banner[class*=chapter-] .campaign-progress span:first-child{background:var(--ch-ink)}.campaign-result[class*=chapter-] .campaign-result-card{border-color:var(--ch-accent);background:linear-gradient(180deg,#fdf8ea,var(--ch-page))}.campaign-result[class*=chapter-] h2{color:var(--ch-ink)}.travel-transition[class*=chapter-] .travel-card{border-color:var(--ch-accent)}.travel-transition[class*=chapter-] .travel-card h2{color:var(--ch-ink)}.travel-transition[class*=chapter-] .travel-goal b,.travel-transition[class*=chapter-] .travel-kicker{color:var(--ch-accent)}.travel-transition[class*=chapter-] .travel-goal{border-color:var(--ch-accent);background:var(--ch-soft)}.travel-transition[class*=chapter-]:before{content:"";position:absolute;inset:0;z-index:1;background:var(--ch-tint);mix-blend-mode:multiply;pointer-events:none}@keyframes campaign-result-in{0%{opacity:0}to{opacity:1}}.single-table .table-seats .campaign-banner{display:flex;flex-wrap:wrap;gap:4px 10px;margin:0 0 0 auto;padding:4px 10px;max-width:min(560px,55%);min-width:0}.single-table .table-seats .campaign-banner>div{display:flex;flex-direction:column;gap:0;min-width:0}.single-table .table-seats .campaign-banner .campaign-goal{flex:1 1 180px;margin:0;line-height:1.4}.single-table .table-seats .campaign-banner .campaign-goal b{font-size:10px}.single-table .table-seats .campaign-banner .campaign-progress{margin:0}.single-table .table-seats .campaign-banner .campaign-back{flex:none;font-size:11px}.single-table .table-seats .campaign-banner .campaign-portrait.portrait-sm{width:34px;height:34px}@media(max-width:900px){.single-table .table-seats{flex-wrap:wrap}.single-table .table-seats .campaign-banner{max-width:none;flex:1 1 100%;margin:0}}.single-table .table-seats .campaign-banner{flex-wrap:nowrap;align-items:center;gap:10px;height:100%;max-height:100%;padding:3px 10px;overflow:hidden;box-sizing:border-box}.single-table .table-seats .campaign-banner .campaign-portrait.portrait-sm{width:30px;height:30px}.single-table .table-seats .campaign-banner>div{flex:none;line-height:1.15}.single-table .table-seats .campaign-banner>div small{font-size:10px}.single-table .table-seats .campaign-banner>div strong{font-size:14px;white-space:nowrap}.single-table .table-seats .campaign-banner .campaign-back,.single-table .table-seats .campaign-banner>div span{display:none}.single-table .table-seats .campaign-banner .campaign-goal{flex:1 1 auto;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12px;line-height:1.3}.single-table .table-seats .campaign-banner .campaign-goal b{display:inline;margin-right:6px;font-size:11px;letter-spacing:.1em}.single-table .table-seats .campaign-banner .campaign-progress{flex:none;flex-wrap:nowrap;white-space:nowrap}@media(max-width:900px){.single-table .table-seats .campaign-banner{height:auto;max-height:none}}html body .campaign-page.chapter-select{max-width:1180px;padding:18px 16px 40px}html body .campaign-page .select-title{margin:6px 0 14px;text-align:center;font-family:"Noto Serif TC",serif;font-size:30px;letter-spacing:.3em;color:#8c1f2a;text-shadow:0 1px 0 #fff8}html body .campaign-page .chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}html body .campaign-page .chapter-tile{position:relative;display:block;padding:0;border:2px solid #c9a55a;border-radius:14px;overflow:hidden;background:#272223;aspect-ratio:834/468;cursor:pointer;box-shadow:0 10px 26px #0004;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s,border-color .3s}html body .campaign-page .chapter-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .4s}html body .campaign-page .chapter-tile:not(:disabled):focus-visible,html body .campaign-page .chapter-tile:not(:disabled):hover{transform:scale(1.025);box-shadow:0 16px 36px #0006;border-color:#f1d487;outline:none}html body .campaign-page .chapter-tile:not(:disabled):hover img{transform:scale(1.06)}html body .campaign-page .chapter-tile.is-locked{cursor:not-allowed}html body .campaign-page .chapter-tile.is-locked img{filter:grayscale(.85) brightness(.38) contrast(.9)}html body .campaign-page .tile-meta{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:8px;padding:22px 14px 10px;background:linear-gradient(180deg,#0000,#0009);color:#fff1c9;font-size:13px;font-weight:700;letter-spacing:.06em;text-align:left}html body .campaign-page .tile-meta b{font-weight:700;opacity:.9}html body .campaign-page .chapter-tile .tile-meta,html body .campaign-page .chapter-tile .tile-meta b{color:#fff1c9!important;font-family:Noto Sans TC,system-ui,sans-serif!important}html body .campaign-page .chapter-tile.is-locked .tile-meta{top:0;padding:0;background:none}html body .campaign-page .chapter-tile .tile-lock{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border:1px solid #c9a55a;border-radius:999px;background:#5d141ccc;color:#fff1c9!important;font-family:Noto Sans TC,system-ui,sans-serif!important;font-size:15px;font-weight:700;letter-spacing:.08em;white-space:nowrap;box-shadow:0 6px 18px #0007}html body .campaign-page .chapter-tile .tile-lock svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}html body .campaign-page .journal-head :is(.campaign-home,.journal-gallery-open,.music-controls>button,.music-settings>summary){box-sizing:border-box;display:inline-flex!important;align-items:center;justify-content:center;height:36px!important;min-height:36px!important;padding:0 14px!important;font-size:13px!important;font-weight:700!important;line-height:1!important;font-family:Noto Sans TC,system-ui,sans-serif!important;letter-spacing:.04em!important}html body .campaign-page .journal-head .campaign-home{display:inline-flex;align-items:center;min-height:34px;padding:4px 14px;border:1px solid #c9a55a;border-radius:8px;background:linear-gradient(180deg,#b62836,#8c1f2a)!important;color:#fff1c9!important;font-family:Noto Sans TC,system-ui,sans-serif!important;font-size:14px;font-weight:700;letter-spacing:.04em;text-decoration:none!important;cursor:pointer}html body .campaign-page .journal-head>span{padding:3px 12px;border-radius:999px;background:#fffaf0d9;color:#6b4f1d;font-size:17px;font-weight:700;letter-spacing:.3em}html body .campaign-page:is(.chapter-select,.journal) .campaign-footnote{justify-self:center;width:max-content;max-width:100%;margin:16px auto 0;padding:3px 12px;border-radius:999px;background:#fffaf0d9;color:#5d584a}html body .campaign-page .chapter-tile.is-cleared:after{content:"✓ 已完成";position:absolute;top:10px;right:10px;padding:3px 10px;border:1px solid #c9a55a;border-radius:999px;background:#8c1f2ad9;color:#fff1c9;font-size:12px;font-weight:700}html body .campaign-page .tile-fx{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s}html body .campaign-page .tile-ch1 .tile-fx,html body .campaign-page .tile-ch2 .tile-fx{background:radial-gradient(ellipse 40% 22% at 20% 70%,#fff9 0,#fff0 70%),radial-gradient(ellipse 45% 20% at 70% 60%,#fff8 0,#fff0 70%),radial-gradient(ellipse 30% 16% at 45% 85%,#fff7 0,#fff0 70%);background-size:200% 100%;mix-blend-mode:screen}html body .campaign-page .tile-ch3 .tile-fx,html body .campaign-page .tile-ch4 .tile-fx{background:repeating-linear-gradient(170deg,#fff0 0 14px,#ffffff2e 15px,#fff0 17px 30px);background-size:100% 200%;-webkit-mask-image:linear-gradient(180deg,#0000 45%,#000 70%);mask-image:linear-gradient(180deg,#0000 45%,#000 70%);mix-blend-mode:screen}html body .campaign-page .chapter-tile:not(:disabled):is(:hover,:focus-visible) .tile-fx{opacity:1}html body .campaign-page .tile-ch1:not(:disabled):is(:hover,:focus-visible) .tile-fx,html body .campaign-page .tile-ch2:not(:disabled):is(:hover,:focus-visible) .tile-fx{animation:tile-mist 9s linear infinite}html body .campaign-page .tile-ch3:not(:disabled):is(:hover,:focus-visible) .tile-fx,html body .campaign-page .tile-ch4:not(:disabled):is(:hover,:focus-visible) .tile-fx{animation:tile-water 3.5s linear infinite}@keyframes tile-mist{0%{background-position:0 0}to{background-position:-200% 0}}@keyframes tile-water{0%{background-position:0 0}to{background-position:0 -200%}}html body .campaign-page .campaign-home.as-link,html body .campaign-page .journal-gallery-open{min-height:34px;padding:4px 14px;border:1px solid #c9a55a;border-radius:8px;background:linear-gradient(180deg,#b62836,#8c1f2a);color:#fff1c9;cursor:pointer}html body .campaign-page .journal-head .journal-gallery-open{margin-left:auto}html body .campaign-page .journal-head .journal-gallery-open+.music-controls{margin-left:8px}html body .campaign-page.journal[style*="--chapter-bg"]:before{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(#fffaf018,#fffaf030),var(--chapter-bg) center/cover no-repeat}.gallery,.gallery-view{position:fixed;inset:0;z-index:2147481000;display:grid;place-items:center;padding:16px;background:#531219e6;animation:campaign-result-in .25s ease-out both}.gallery-card{width:min(980px,100%);max-height:100%;overflow:auto;padding:18px 20px 22px;background:linear-gradient(180deg,#fdf8ea,#f3e7c8);border:2px solid #c9a55a;border-radius:16px;color:#2d2517}.gallery-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}.gallery-card h2{margin:0;font-family:"Noto Serif TC",serif;font-size:26px;letter-spacing:.2em;color:#8c1f2a}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}.gallery-item{position:relative;padding:0;border:2px solid #c9a55a;border-radius:12px;overflow:hidden;background:#272223;aspect-ratio:1672/941;cursor:zoom-in}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.gallery-item:not(:disabled):hover img{transform:scale(1.05)}.gallery-item span{position:absolute;left:0;right:0;bottom:0;padding:16px 12px 8px;background:linear-gradient(#0000,#000a);color:#fff1c9;font-size:13px;font-weight:700;text-align:left}.gallery-item.is-locked{cursor:not-allowed}.gallery-item.is-locked img{filter:blur(14px) grayscale(1) brightness(.35);transform:scale(1.1)}.gallery .gallery-item,.gallery-item span,html body .campaign-page .chapter-tile{color:#fff1c9!important}.gallery-item span{font-family:Noto Sans TC,system-ui,sans-serif!important}.gallery-item .tile-lock{position:absolute;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border:1px solid #c9a55a;border-radius:999px;background:#5d141ccc;font-size:14px;white-space:nowrap}.gallery-item .tile-lock svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}.gallery-view{cursor:zoom-out;grid-template-rows:auto auto auto;align-content:center;gap:12px}.gallery-view img{max-width:min(1280px,100%);max-height:78vh;border:2px solid #c9a55a;border-radius:10px;box-shadow:0 20px 50px #000a}.gallery-view p{max-width:760px;margin:0;color:#fff1c9;font-family:"Noto Serif TC",serif;line-height:1.8;text-align:center}.gallery-view .campaign-button{justify-self:center;min-height:40px;padding:6px 20px;border:1px solid #c9a55a;border-radius:8px;background:#fffaf0;color:#8c1f2a;cursor:pointer}.chapter-intro{position:fixed;inset:0;z-index:2147483100;display:grid;place-items:center;background:#f4ecd8;cursor:pointer;overflow:hidden;transition:opacity .5s ease}.chapter-intro.is-leaving{opacity:0}.intro-stage{position:absolute;inset:0;overflow:hidden;-webkit-mask-image:radial-gradient(circle,#000 0 38%,#000c 46%,#0000 58%);mask-image:radial-gradient(circle,#000 0 38%,#000c 46%,#0000 58%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:50% 42%;mask-position:50% 42%;-webkit-mask-size:0 0;mask-size:0 0;animation:intro-ink 1.35s cubic-bezier(.3,.6,.2,1) .12s forwards}.intro-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.intro-back{display:none}.intro-stage .intro-art{transform:scale(1.12);filter:brightness(1.35) saturate(.7) blur(6px);animation:intro-drift 4.2s cubic-bezier(.2,.7,.2,1) forwards}.intro-sweep{inset:-20% -60%;background:linear-gradient(105deg,#fff0 42%,#fff6 49%,#fffbe8cc 50%,#fff6 51%,#fff0 58%);transform:translateX(-60%);animation:intro-sweep 1.4s ease-in-out 1.15s forwards;mix-blend-mode:soft-light}.intro-mist,.intro-sweep{position:absolute;pointer-events:none}.intro-mist{inset:0;background:radial-gradient(ellipse 60% 30% at 10% 90%,#fff8,#fff0 70%),radial-gradient(ellipse 50% 25% at 90% 85%,#fff7,#fff0 70%);opacity:.9;animation:intro-mist 4s ease-out forwards}.intro-hint{position:absolute;bottom:22px;right:26px;padding:4px 12px;border-radius:999px;background:#0006;color:#fff1c9;font-size:12px;letter-spacing:.2em;opacity:0;animation:intro-hint .6s ease 1.8s forwards}@keyframes intro-ink{to{-webkit-mask-size:420% 420%;mask-size:420% 420%}}@keyframes intro-drift{0%{transform:scale(1.12);filter:brightness(1.35) saturate(.7) blur(6px)}35%{filter:brightness(1) saturate(1) blur(0)}to{transform:scale(1.02);filter:none}}@keyframes intro-sweep{to{transform:translateX(60%)}}@keyframes intro-mist{to{opacity:0;transform:translateX(6%)}}@keyframes intro-hint{to{opacity:1}}.chapter-intro.is-still .intro-stage{animation:none;-webkit-mask-image:none;mask-image:none}.chapter-intro.is-still .intro-stage .intro-art{animation:none;transform:none;filter:none}@media(max-aspect-ratio:1/1){.intro-stage .intro-back{display:block;filter:blur(26px) brightness(1.02) saturate(1.15);transform:scale(1.3)}.intro-stage .intro-art{object-fit:contain}}.chapter-intro.is-still :is(.intro-sweep,.intro-mist){display:none}@media(max-width:700px){html body .campaign-page .journal-head{flex-wrap:wrap;row-gap:8px}html body .campaign-page .journal-head>span{display:none}html body .campaign-page .journal-head :is(a,button,summary){white-space:nowrap}html body .campaign-page .journal-head .journal-gallery-open+.music-controls{margin-left:auto}.gallery-grid,html body .campaign-page .chapter-grid{grid-template-columns:1fr}html body .campaign-page .select-title{font-size:24px}}@media(prefers-reduced-motion:reduce){html body .campaign-page .chapter-tile,html body .campaign-page .chapter-tile img{transition:none}html body .campaign-page .tile-fx{display:none}}.single-table .boss-actor{flex:none;display:flex;flex-direction:column;gap:5px;align-items:stretch;min-height:190px;padding:5px;border:0;border-radius:0;background:transparent;color:#2d2517;box-sizing:border-box;overflow:hidden;pointer-events:none;animation:boss-enter .35s ease-out both}.single-table .boss-actor img{width:100%;height:148px;object-fit:cover;object-position:center 12%;border-radius:7px;background:#766354;animation:boss-swap .24s ease-out both}.single-table .boss-actor strong{display:block;font:700 13px/1.3 "Noto Serif TC",serif;color:#8c1f2a}.single-table .boss-actor p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:4px 0 0;font-size:12px;line-height:1.42}.single-table .boss-actor[data-pose=angry]{background:transparent}.single-table .boss-actor[data-pose=defeated]{border-color:#7d8591}@keyframes boss-swap{0%{opacity:.45;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes boss-enter{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}@media(max-height:680px) and (min-width:901px){.single-table .boss-actor{min-height:126px}.single-table .boss-actor img{height:88px}.single-table .boss-actor p{-webkit-line-clamp:2}}@media(max-width:900px),(pointer:coarse) and (max-height:600px){html body .single-table .table-seats:has(.boss-actor){overflow-x:visible;flex-wrap:wrap}.single-table .table-seats .boss-actor{position:static;flex:1 1 100%;width:100%;min-height:98px;display:grid;grid-template-columns:72px 1fr;align-items:center;box-shadow:none}.single-table .boss-actor img{width:72px;height:86px}.single-table .boss-actor p{-webkit-line-clamp:3}}@media(prefers-reduced-motion:reduce){.single-table .boss-actor,.single-table .boss-actor img{animation:none}}.journey-panel{max-width:1060px!important}.journey-panel>p{line-height:1.8}.journey-route{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:24px 0}.journey-route li{display:grid;gap:4px;text-align:center;border:1px solid #b8a483;padding:12px 4px;border-radius:8px;background:#efe7d5;color:#554b37}.journey-route .current{background:#40383a;color:#fff5de}.journey-route .done{background:#d5dfc9}.journey-opponent{border-left:4px solid #416765;padding:8px 20px;margin:24px 0;background:#ffffff80}.journey-opponent small{font-size:14px;line-height:1.7}.journey-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.journey-card{min-width:0;background:#fff9eb;border:1px solid #c5b38d;border-radius:10px;padding:10px;color:#362f31}.journey-card summary{display:grid;gap:6px;cursor:pointer;list-style:none}.journey-card summary img{width:100%;height:140px;object-fit:contain}.journey-card summary b{font-size:17px}.journey-card summary span{font-size:13px}.journey-card p{font-size:14px;line-height:1.7;margin:8px 0}.journey-rewards{margin-top:30px;border-top:1px solid #b8a483;padding-top:22px}.journey-reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.journey-reward-grid .campaign-button{width:100%;margin-top:10px;white-space:normal}.journey-panel .stop-actions{margin-top:24px}.is-disabled{opacity:.5;cursor:not-allowed}.journey-ai{font-size:13px;line-height:1.6;max-width:100%;text-align:left}.journey-ai summary{cursor:pointer;font-weight:700}.journey-ai ol{max-height:200px;overflow-y:auto;padding-left:24px}.journey-ai li{margin:6px 0}.campaign-banner .journey-ai{flex-basis:100%;background:#fff8;padding:5px 10px;border-radius:5px}.campaign-banner .journey-ai p{max-width:none;margin:5px 0}.victory-scroll .journey-ai{margin:10px 0;background:#ffffff80;padding:8px;border-radius:8px}@media(max-width:600px){.journey-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-reward-grid{grid-template-columns:1fr}.journey-route{gap:4px}.journey-route li{font-size:12px;padding:8px 2px}.journey-card summary img{height:120px}.journey-panel{padding:18px!important}.journey-panel h1{font-size:30px}.journey-panel h2{font-size:20px}}.single-table .campaign-banner .journey-ai[open]{position:fixed;top:120px;right:16px;z-index:250;width:min(420px,calc(100vw - 32px));max-height:55dvh;overflow:auto;box-sizing:border-box;background:#fff9eb;border:2px solid #b69b58;box-shadow:0 8px 28px #0004;padding:14px;color:#362f31}.single-table .campaign-banner .journey-ai[open] summary:after{content:" · 再按收起";font-size:11px;color:#6b624e}html body .campaign-page .journey-story{max-width:760px;margin:36px auto;padding:38px 44px}html body .campaign-page .journey-story h1{margin:12px 0 24px}html body .campaign-page .journey-story .journal-story{font-size:18px;line-height:2.1;margin:0 0 30px;max-width:38em}html body .campaign-page .journey-story .stop-goal{margin:0 0 28px;padding:16px 20px}html body .campaign-page .journey-story .stop-goal p{margin:6px 0 0;font-size:16px;line-height:1.8}html body .campaign-page .journey-story .stop-actions{margin:0;display:flex;gap:16px}.journey-options{margin-top:30px;border-top:1px solid #dacba9;padding-top:14px;color:#75664e;font-size:13px}.campaign-narration{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-14px 0 24px}.campaign-narration small{color:#8a3b30;font-size:12px}.campaign-narration .narration-button{min-height:36px;padding:6px 12px;cursor:pointer}.travel-card .campaign-narration{margin:0 0 14px}.travel-card .campaign-narration .narration-button{font-size:13px}.journey-options summary{cursor:pointer}.journey-options>div{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.journey-gifts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:28px 0}.journey-boss-intro{display:flex;align-items:center;gap:16px;margin:8px 0 20px;padding:10px 16px;border:1px solid #c9a55a;border-radius:12px;background:linear-gradient(110deg,#efe1c5,#fffaf0);overflow:hidden}.journey-boss-intro img{flex:none;width:105px;height:150px;object-fit:contain;filter:drop-shadow(0 4px 5px #0003)}.journey-boss-intro small{color:#8a6a2c;letter-spacing:.2em}.journey-boss-intro h2{margin:3px 0;font-family:"Noto Serif TC",serif}.journey-boss-intro p{margin:5px 0;line-height:1.65}@media(max-width:600px){.journey-boss-intro{gap:8px;padding:8px}.journey-boss-intro img{width:80px;height:118px}.journey-boss-intro h2{font-size:18px}.journey-boss-intro p{font-size:13px}}.journey-gift{display:grid;gap:16px;align-content:start}.journey-gift>img{display:block;width:100%;border-radius:10px}.journey-gift .campaign-button{font-size:14px;padding:8px;letter-spacing:0!important}@media(max-width:600px){html body .campaign-page .journey-story{padding:26px 22px;margin:20px auto}html body .campaign-page .journey-story .journal-story{font-size:16px;line-height:1.95}.journey-gifts{gap:10px}.journey-gift .campaign-button{font-size:12px}}html body .campaign-page.journey-connecting{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;max-width:none;margin:0;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;overflow:hidden}html body .campaign-page.journey-connecting p{position:relative;z-index:2;margin:0;max-width:calc(100vw - 48px);font-family:var(--font-title);font-weight:700;font-size:clamp(19px,3vw,28px);line-height:1.75;letter-spacing:.08em;text-wrap:balance;color:#762631;text-shadow:0 1px 0 #fff8}html body .campaign-page.journey-connecting>a{position:relative;z-index:2;font-family:var(--font-body);font-size:14px;letter-spacing:.08em}.journey-runway{position:fixed;inset:auto 0 0;height:38svh;overflow:hidden;pointer-events:none;z-index:1}.journey-runners{position:absolute;left:0;bottom:8svh;display:flex;align-items:flex-end;width:max-content;animation:journey-party-cross linear infinite;filter:drop-shadow(0 5px 3px #41372540);pointer-events:none}.journey-runners .wx-sprite{flex:none}.journey-runners.is-still{left:50%;animation:none;transform:translateX(-50%)}@keyframes journey-party-cross{0%{transform:translateX(calc(-100% - 32px))}to{transform:translateX(calc(100vw + 32px))}}@media(prefers-reduced-motion:reduce){.journey-runners{left:50%;animation:none;transform:translateX(-50%)}.journey-runners .wx-sprite{animation:none}}.single-table .boss-actor img{object-fit:contain;background:transparent;object-position:center center}.single-table .boss-actor[data-pose=surprised]{background:transparent}.single-table .boss-actor[data-pose=pleased]{border-color:#4b8986}.campaign-portrait.has-boss-art{background:transparent;border-color:transparent}.campaign-portrait.has-boss-art img{object-fit:contain;transform:none}.boss-result-line img{background:transparent;object-fit:contain}html body .campaign-page .journey-story.has-boss-entrance{max-width:1180px;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,40%);gap:28px;align-items:center}.journey-story-content{min-width:0}.journey-boss-full{grid-column:2;grid-row:1;display:block;width:100%;height:clamp(420px,72svh,740px);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 12px #851d2840);pointer-events:none}.has-boss-entrance .journey-story-content{grid-column:1;grid-row:1}.journey-repair{padding:12px 16px;background:#fff0c8;border-left:3px solid #bc8e38;font-size:14px;line-height:1.7}.travel-card.has-boss-entrance{width:min(54vw,680px);margin-right:clamp(260px,32vw,520px)}@media(max-width:900px){html body .campaign-page .journey-story.has-boss-entrance{padding:28px;gap:12px;grid-template-columns:minmax(0,1fr) minmax(180px,38%)}.journey-boss-full{height:470px}.travel-card.has-boss-entrance{width:min(54vw,620px);margin-right:35vw}}@media(max-width:600px){html body .campaign-page .journey-story.has-boss-entrance{display:flex;flex-direction:column;align-items:stretch;padding:24px 22px}.journey-boss-full{order:0;width:80%;height:380px;align-self:flex-end;margin:-6px -12px 0}.has-boss-entrance .journey-story-content{order:1}.travel-card.has-boss-entrance{width:calc(100% - 32px);margin-right:0;margin-top:285px}.travel-transition:has(.has-boss-entrance){overflow-y:auto;align-items:flex-start;padding-top:32px;padding-bottom:130px}}html body .travel-transition>.travel-boss{position:absolute;z-index:2;left:auto;right:clamp(24px,6vw,140px);bottom:12svh;width:clamp(260px,30vw,500px);height:min(80svh,780px);object-fit:contain;object-position:center bottom;margin:0}@media(max-width:900px){html body .travel-transition>.travel-boss{right:16px;width:32vw;height:65svh}}@media(max-width:600px){html body .travel-transition>.travel-boss{right:20px;top:32px;bottom:auto;width:65vw;height:260px}}.boss-motion{--boss-size:148px;position:relative;display:grid;place-items:center;overflow:hidden;flex:none;width:var(--boss-size);height:var(--boss-size);pointer-events:none}.boss-motion .boss-motion-probe{display:none!important}.boss-motion-drawing{display:block;width:var(--boss-size);height:var(--boss-size);max-width:100%;background-image:var(--boss-sheet);background-size:400% 400%;background-position:0 var(--boss-row);background-repeat:no-repeat;transform-origin:50% 90%;filter:drop-shadow(0 2px 2px #302a2c22)}.boss-motion.is-moving .boss-motion-drawing{animation:boss-drawn-frames var(--boss-cycle) step-end infinite,boss-living-body var(--boss-cycle) ease-in-out infinite}.boss-motion.has-idle-strip .boss-motion-drawing{background-size:800% 100%;background-position:0 0}.boss-motion.has-idle-strip.is-moving .boss-motion-drawing{animation:boss-idle-frames var(--boss-cycle) step-end infinite,boss-living-body var(--boss-cycle) ease-in-out infinite}.boss-motion .boss-motion-fallback{display:block;object-fit:contain;background:transparent}.boss-motion .boss-motion-fallback,.single-table .boss-actor .boss-motion-fallback{width:100%;height:100%;animation:none}.single-table .boss-actor>.boss-visual{width:100%;height:148px;border-radius:7px}@keyframes boss-drawn-frames{0%{background-position-x:0}25%{background-position-x:33.333333%}50%{background-position-x:66.666667%}75%{background-position-x:100%}}@keyframes boss-idle-frames{0%{background-position-x:0}12.5%{background-position-x:14.285714%}25%{background-position-x:28.571429%}37.5%{background-position-x:42.857143%}50%{background-position-x:57.142857%}62.5%{background-position-x:71.428571%}75%{background-position-x:85.714286%}87.5%{background-position-x:100%}}@keyframes boss-living-body{0%,to{transform:translate(0) rotate(-.45deg) scale(1)}25%{transform:translate(1px,-2px) rotate(.1deg) scale(1.012)}50%{transform:translate(-1px,-3px) rotate(.6deg) scale(1.018)}75%{transform:translate(-1px,-1px) rotate(.1deg) scale(1.008)}}@media(max-height:680px) and (min-width:901px){.single-table .boss-actor>.boss-visual{--boss-size:88px;height:88px}}@media(max-width:900px),(pointer:coarse) and (max-height:600px){.single-table .boss-actor>.boss-visual{--boss-size:72px;width:72px;height:86px}}@media(prefers-reduced-motion:reduce){.boss-motion.has-idle-strip.is-moving .boss-motion-drawing,.boss-motion.is-moving .boss-motion-drawing{animation:none}}html body .single-table .campaign-task-button{flex:0 0 auto;align-self:center;margin:0 0 0 auto;padding:6px 14px!important;min-height:36px!important;height:auto!important;width:auto!important;white-space:nowrap;font-size:13px!important;line-height:1.4!important;cursor:pointer}html body .campaign-task-dialog{box-sizing:border-box;width:min(520px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);margin:auto;padding:16px 20px 20px;overflow:auto;overscroll-behavior:contain;color:#2d2517;background:linear-gradient(180deg,#fdf8ea,#f6ecd2);border:2px solid #c9a55a;border-radius:14px;box-shadow:0 16px 40px #0006}html body .campaign-task-dialog::backdrop{background:#1b1721a6}html body .campaign-task-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}html body .campaign-task-dialog>header h2{margin:0;color:#8c1f2a;font-size:20px;line-height:1.4}html body .campaign-task-dialog>header button{flex:none;min-height:44px;margin:0;padding:6px 12px}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-banner{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px 12px;margin:0;padding:0;max-width:none;max-height:none;height:auto;overflow:visible;background:none;border:0;box-shadow:none;color:#2d2517}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-banner>.campaign-portrait{width:48px;height:48px}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-banner>div{display:flex;flex-direction:column;gap:4px;min-width:0;line-height:1.5}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-banner>div small{font-size:12px;color:#6d5327}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-banner>div strong{font-size:18px;white-space:normal}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-banner>div span{font-size:13px;color:#57452f}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-goal{grid-column:1/-1;display:block;margin:4px 0 0;padding:12px;border:1px solid var(--ch-accent,#c9a55a);border-radius:8px;background:var(--ch-soft,#fff4d6);color:#2d2517;font-size:16px;font-weight:700;line-height:1.7;white-space:normal;overflow-wrap:anywhere}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-goal b{display:block;margin-bottom:4px;font-size:12px;color:var(--ch-ink,#8c1f2a)}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-progress{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-progress span{padding:3px 9px;border-radius:999px;background:#e9dfc6;color:#2d2517;font-size:13px;line-height:1.5}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-progress span:first-child{background:var(--ch-ink,#8c1f2a);color:#fff1c9}html body :is(.campaign-task-dialog,.m3-mode-drawer) .campaign-back{grid-column:1/-1;justify-self:start;font-size:13px;color:#8c1f2a}.journey-hero-pick{margin:12px 0;padding:12px;border-radius:12px;background:rgba(255,250,240,.82);border:1px solid rgba(177,40,53,.25)}.journey-hero-pick>b{display:block;font-size:1.05rem}.journey-hero-pick>small{display:block;margin:2px 0 10px;color:#5a4a3a}.journey-hero-pick>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.journey-hero{display:flex;gap:10px;align-items:stretch;text-align:left;padding:8px;border-radius:10px;border:2px solid transparent;background:#fffaf0;cursor:pointer;color:inherit;font:inherit}.journey-hero:focus-visible,.journey-hero:hover{border-color:var(--voc,#B12835)}.journey-hero.chosen{border-color:var(--voc,#B12835);box-shadow:0 0 0 3px rgba(234,187,98,.35)}.journey-hero img{width:72px;height:108px;object-fit:cover;object-position:top;border-radius:8px;flex:none;background:#f3dcb5}.journey-hero span{display:flex;flex-direction:column;gap:3px;min-width:0}.journey-hero em{font-style:normal;color:var(--voc,#B12835);font-weight:700}.journey-hero small{font-size:.8rem;line-height:1.35;color:#4a3b2e}.journey-hero-current{margin:8px 0;font-size:.92rem}.journey-boss-job{margin-top:6px;font-size:.9rem;color:#8E1E2A}@media (max-width:560px){.journey-hero-pick>div{grid-template-columns:1fr}.journey-hero img{width:56px;height:84px}}html body .journey-hero-pick .journey-hero{background:#fffaf0!important;color:#2b2318!important;border:2px solid #e3d3ad!important;box-shadow:none!important;text-shadow:none!important}html body .journey-hero-pick .journey-hero.chosen{border-color:var(--voc,#B12835)!important;box-shadow:0 0 0 3px rgba(234,187,98,.45)!important;background:#fff4dc!important}html body .journey-hero-pick .journey-hero b{color:#2b2318!important}html body .journey-hero-pick .journey-hero em{color:var(--voc,#B12835)!important;font-weight:700}html body .journey-hero-pick .journey-hero small{color:#4a3b2e!important}.journey-story-line{margin:10px 0}.journey-story-line p{margin:5px 0;line-height:1.75}.journey-dialogue{font-size:15px}.journey-dialogue b{color:#76522c}.journey-story-line .narration-button{font-size:12px;padding:5px 10px;min-height:32px}.journey-chapter-intro{margin:10px 0}.journey-chapter-intro summary{cursor:pointer}.campaign-result-card{max-height:90dvh;overflow-y:auto}.journey-hero-actor{position:relative;flex:0 0 auto;max-width:100%;background:#fff7e7;color:#403626;z-index:30;font-size:12px}.journey-hero-actor summary{display:flex;gap:8px;align-items:center;cursor:pointer;padding:5px 12px;min-height:32px;box-sizing:border-box}.journey-hero-actor summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.journey-hero-actor summary small{flex:none}.journey-hero-voice-panel{position:absolute;top:100%;left:8px;width:min(340px,calc(100vw - 32px));padding:12px;background:#fff7e7;border:1px solid #a48652;border-radius:8px;box-shadow:0 4px 16px #0004}.boss-stage-dialogue .narration-button{padding:3px 8px;font-size:11px;min-height:28px}.voc-cut-dialogue{margin:4px 0;color:#fff6dc;text-align:center;font-size:clamp(14px,2vw,22px)}html body .campaign-page .journal-head{justify-content:flex-start}html body .campaign-page .journal-library-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:nowrap}html body .campaign-page .journal-head .journal-library-actions .journal-gallery-open,html body .campaign-page .journal-head .journal-library-actions .music-controls{margin-left:0}html body .journey-gift .journey-collection-badge{display:block;flex:none;align-self:center;border:1px solid #bbab89;border-radius:20px;background:#f5efe0;color:#626653;font:600 13px/1.5 Noto Sans TC,sans-serif;padding:4px 12px;margin:6px 0;text-align:center;white-space:normal}html body .journey-gift .journey-collection-badge.missing{background:#fff0dd;color:#993d31;border-color:#c88958}html body .journey-gift .journey-collection-badge.owned{background:#e8efde;color:#42634c;border-color:#9bb38f}html body .journey-gift .phone-reward-art{display:flex;align-items:center;justify-content:center;flex:1 1;min-height:0;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}html body .journey-gift .phone-reward-art img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain}html body .lobby-actions .lobby-ready{background:#fff8eb;color:#654936;border:1px solid #bd9b61}html body .lobby-actions .lobby-ready[aria-pressed=true],html body.wanxiang-theme .phone-lobby-footer>button[aria-pressed=true]{background:linear-gradient(#b62836,#8c1f2a)!important;color:#fff5db!important;border:2px solid #d4ad60!important;box-shadow:0 0 0 2px #b6283626!important}@media(max-width:700px){html body .campaign-page .journal-library-actions{gap:5px}html body .campaign-page .journal-head .journal-library-actions .music-controls{margin-left:0}}