/* Chapter views reuse the existing card layers, UI materials and portrait/name treatment. */
.is-chapter{isolation:isolate}
.chapter-screen{font-family:var(--font-ui, sans-serif);position:absolute;inset:0;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;color:var(--kit-ink,#292724);background:linear-gradient(165deg,#f4f0e6,#f4f0e6);animation:chapter-enter .16s ease-out both}
.chapter-header{position:relative;z-index:4;flex:0 0 64px;height:64px;display:flex;align-items:center;justify-content:space-between;padding:10px;box-sizing:border-box;background:linear-gradient(180deg,#f4f0e6f5,#f4f0e6ee);border-bottom:1px solid #aa854542}
.chapter-header .sheet-title{position:absolute;left:58px;right:58px;top:0;margin:0;height:64px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:clamp(17px,3.7vw,23px);line-height:1.2;pointer-events:none}
.chapter-header .icon-button{width:44px;height:44px;flex:0 0 44px;margin:0;z-index:1}
.chapter-header .icon-button:last-child:not(:first-child){margin-left:auto}
.chapter-header svg{width:22px;height:22px;fill:currentColor}
.chapter-scroll{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:16px 18px 24px}
.chapter-footer{position:relative;z-index:4;flex:0 0 auto;display:flex;flex-wrap:wrap;gap:8px;padding:8px 18px max(16px,env(safe-area-inset-bottom));background:linear-gradient(0deg,#f4f0e6fb,#f4f0e6e8);border-top:1px solid #aa854540;box-sizing:border-box}
.chapter-footer .primary-action{flex:1 0 45%;min-height:50px;min-width:0;margin:0}
.chapter-footer .secondary-action{flex:1 0 40%;min-width:0;min-height:44px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chapter-status{flex:0 0 100%;min-width:0;margin:0;color:var(--kit-quiet-ink,#706b63);font-size:12px;line-height:1.4}
.chapter-status:empty{display:none}
.chapter-own-deck{font-size:13px;padding-inline:8px}
.chapter-progress{flex:0 0 auto;display:flex;justify-content:center;padding:9px 16px 0}
.chapter-count-chip{display:inline-flex;align-items:center;justify-content:center;min-width:78px;min-height:27px;padding:2px 12px;border:1px solid #aa854566;border-radius:6px;background:linear-gradient(#f4f0e6,#f4f0e6);font-family:var(--font-ui, sans-serif);font-weight:700;font-size:12px;letter-spacing:.05em;box-shadow:inset 0 1px #b08a490a}
.chapter-map-scroll{padding:12px 18px 20px;scroll-behavior:auto}
.chapter-region{color:#f4efe3;position:relative;isolation:isolate;overflow:hidden;border:1px solid #aa85454d;border-radius:16px;padding:16px 12px 20px;margin-bottom:12px;background:#171614}
.chapter-region::after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(#171614b0,#171614c9 55%,#171614fa)}
.chapter-region-art{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7;pointer-events:none}
.chapter-region-title{font-size:15px;letter-spacing:.14em;text-align:center;margin:0 0 16px;color:#c9c0ae;text-shadow:0 2px 3px #171410}
.chapter-nodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:6px;row-gap:18px}
.chapter-node{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:0;background:none!important;border:0!important;box-shadow:none!important;color:inherit;touch-action:pan-y}
.chapter-node-medallion{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1px solid #aa8545;background:radial-gradient(circle at 37% 24%,#373229,#171614 62%,#171614);box-shadow:inset 0 0 0 4px #171410,0 3px 5px #17141077;font-family:var(--font-ui, sans-serif);font-size:19px;font-weight:700}
.chapter-node-mark{position:absolute;bottom:-3px;right:-4px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#171614;border:1px solid #aa8545;color:#c9c0ae}
.chapter-node-mark svg{width:12px;height:12px;fill:currentColor}
.chapter-node-title{font-size:10px;line-height:1.25;word-break:keep-all;min-height:25px;text-align:center;text-shadow:0 1px 2px #171410}
.chapter-node:disabled{opacity:.4;filter:grayscale(.45)}
.chapter-node.is-complete .chapter-node-medallion{border-color:#739e88;color:#aad3b4}
.chapter-node.is-current .chapter-node-medallion{border-color:#aa8545;color:#f4efe3;box-shadow:inset 0 0 0 4px #171410,0 0 14px #b08a4950,0 3px 5px #17141077}
.chapter-node:active:not(:disabled) .chapter-node-medallion{transform:scale(.94)}
.chapter-detail-scroll{display:flex;flex-direction:column;align-items:center;gap:16px}
.chapter-opponent{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;padding:4px 0;width:100%;min-height:0}
.chapter-card-button{display:block;position:relative;padding:0;border:0;background:none;box-shadow:none;color:inherit;touch-action:pan-y;aspect-ratio:2/3;flex:0 0 auto}
.chapter-card-button .game-card{width:100%;height:100%;pointer-events:none}
.chapter-hero{width:clamp(84px,25vw,126px)}
.chapter-equipment{display:flex;flex-direction:column;gap:8px;align-items:center}
.chapter-gear{width:clamp(42px,13vw,60px)}
.chapter-enemy-name{text-align:center;font-size:15px;line-height:1.3;margin:0}
.chapter-preview-rewards{width:100%;margin-top:4px;border-top:1px solid #aa854538;padding-top:16px}
.chapter-rewards-title{font-size:12px;text-align:center;color:var(--kit-ink,#292724);margin:0 0 14px}
.chapter-reward-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start;justify-items:center;width:100%;box-sizing:border-box}
.chapter-reward-card{width:100%;max-width:100px}
.chapter-item-reward{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:5px;border:0;background:none;box-shadow:none;color:inherit;touch-action:pan-y}
.chapter-item-icon{width:48px;height:48px;display:block;filter:drop-shadow(0 4px 5px #17141029)}
.chapter-item-icon svg{display:block;width:100%;height:100%}
.chapter-item-reward>b{font-family:var(--font-ui, sans-serif);font-size:15px}
.chapter-item-reward>span:last-child{font-size:10px;color:var(--kit-quiet-ink,#706b63)}
.chapter-story-replay{flex:0 0 100%;padding:5px;background:none;border:0;color:var(--kit-quiet-ink,#706b63);font-size:11px;box-shadow:none}
.chapter-story{background:#171614;isolation:isolate}
.chapter-story::before{content:'';position:absolute;z-index:-1;inset:0;background-image:linear-gradient(#17161499,#171614c4 60%,#171614f5),var(--chapter-backdrop);background-size:cover;background-position:center;pointer-events:none}
.chapter-story-stage{flex:1 1 auto;min-height:72px;display:flex;justify-content:center;align-items:center;padding:12px 24px;overflow:hidden}
.chapter-story-character{display:block;height:min(100%,40dvh);max-height:100%;max-width:74%;width:auto;aspect-ratio:2/3;object-fit:cover;object-position:center;border-radius:16px;box-shadow:0 9px 35px #17141036;border:1px solid #aa854566;animation:chapter-character .18s ease-out both}
.chapter-dialogue{position:relative;flex:0 0 auto;margin:0 16px 12px;min-height:0;padding:14px;background:linear-gradient(130deg,#f4f0e6f5,#f4f0e6ea);border:1px solid #aa854568;border-radius:16px;box-shadow:inset 0 1px #b08a490a}
.chapter-dialogue .tutorial-words{display:flow-root;min-width:0}
.chapter-dialogue .tutorial-profile{float:left;position:relative;width:64px;margin:0 12px 4px 0}
.chapter-dialogue .tutorial-portrait{width:60px;height:72px;overflow:hidden;border:1px solid #aa8545;border-radius:12px;background:#f4f0e6}
.chapter-dialogue .tutorial-avatar{width:100%;height:100%;object-fit:cover;object-position:50% 23%}
.chapter-dialogue .tutorial-speaker{position:relative;display:block;z-index:1;margin:-13px -3px 0;min-height:21px;padding:3px 5px;border:1px solid #aa8545;border-radius:6px;text-align:center;background:linear-gradient(#e6ddca,#f4f0e6);font-size:11px;line-height:1.2;box-shadow:0 2px 3px #1714101b}
.chapter-dialogue-copy{margin:0;font-size:14px;line-height:1.75;font-weight:600;overflow-wrap:break-word}
.chapter-story .chapter-footer .chapter-story-skip{flex:0 0 25%;font-size:12px}
.chapter-reward-screen>.chapter-reward-grid{flex:1 1 auto;min-height:0;overflow:auto;align-content:center;padding:24px;touch-action:pan-y;overscroll-behavior:contain}
@keyframes chapter-enter{from{opacity:0}to{opacity:1}}
@keyframes chapter-character{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:350px){.chapter-scroll{padding-inline:12px}.chapter-footer{padding-inline:12px}.chapter-story-stage{padding:10px 18px}.chapter-dialogue{margin-inline:12px;padding:12px}.chapter-dialogue-copy{font-size:13px}.chapter-reward-grid{gap:8px}.chapter-item-icon{width:40px;height:40px}.chapter-region{padding-inline:8px}}
@media(max-height:620px){.chapter-story-stage{padding:8px 18px}.chapter-story-character{height:min(100%,30dvh)}.chapter-dialogue{padding:10px;margin-bottom:8px}.chapter-dialogue-copy{line-height:1.6;font-size:13px}.chapter-header{flex-basis:64px}.chapter-opponent{gap:8px}.chapter-hero{width:82px}.chapter-gear{width:38px}.chapter-detail-scroll{gap:10px}.chapter-footer{padding-bottom:max(10px,env(safe-area-inset-bottom))}}
@media(max-height:430px) and (orientation:landscape){.chapter-story-stage{position:absolute;inset:76px 60% 72px 0;padding:4px 12px}.chapter-story-character{height:100%;max-width:100%}.chapter-dialogue{margin:16px 16px 16px 40%;flex:1 1 auto;overflow:auto}.chapter-reward-screen>.chapter-reward-grid{align-content:start}}
@media(prefers-reduced-motion:reduce){.chapter-screen,.chapter-story-character{animation:none}}
.chapter-node-medallion{background:url('assets/pass-ui-v2/level-medallion-black.png') center/116% no-repeat;border-color:transparent;box-shadow:none}
.chapter-node.is-current .chapter-node-medallion{color:#fff1c5;box-shadow:0 0 14px #b08a4950,0 3px 5px #17141077}
