/* Local stage composition. No logic slots or shop formation targets are moved. */
#arena[data-composition],.duel-stage[data-composition]{height:clamp(420px,calc(100svh - 245px),570px);position:relative;isolation:isolate;overflow:hidden}
#arena[data-composition] .unit,.duel-stage[data-composition] .unit{width:82px;height:94px;min-height:44px;min-width:44px;padding:0;transition:top .4s,left .4s}
#arena[data-composition] .unit img,.duel-stage[data-composition] .unit img{height:72px;max-width:80px;bottom:12px;object-fit:contain;width:auto;left:50%;transform:translateX(-50%)}
#arena[data-composition] .unit:before,.duel-stage[data-composition] .unit:before{left:18px;right:18px;bottom:8px;height:7px;z-index:-1}
#arena[data-composition] .unit .pips,.duel-stage[data-composition] .unit .pips{visibility:hidden}
#arena[data-composition] .unit[data-character=bodyguard] img,#arena[data-composition] .unit[data-character=fisher] img,.duel-stage[data-composition] .unit[data-character=bodyguard] img,.duel-stage[data-composition] .unit[data-character=fisher] img{height:76px}
#arena[data-composition] .stage-health,.duel-stage[data-composition] .stage-health{z-index:16;transform:translate(-50%,0);margin:0;min-width:46px;height:20px;display:flex;align-items:center;gap:2px;padding:0 3px;border-radius:3px;background:#f3e4c1e8;color:#304e48;box-shadow:0 1px 1px #392d2433;font:700 14px/20px system-ui;font-variant-numeric:tabular-nums;white-space:nowrap}
#arena[data-composition] .stage-health small,.duel-stage[data-composition] .stage-health small{font:400 12px/20px system-ui;color:#655541}.hp-heart{font-size:9px;color:#86634a}
#arena[data-composition] .vfx-status,.duel-stage[data-composition] .vfx-status{z-index:17;gap:2px;transform:none}
#arena[data-composition] .box,.duel-stage[data-composition] .box{width:36px;height:36px;min-height:0;min-width:0;z-index:11;padding:0;background:transparent;border:0;box-shadow:none;transform:translate(-50%,-50%)}
#arena[data-composition] .box img,.duel-stage[data-composition] .box img{width:34px;height:32px;object-fit:contain}
#arena[data-composition] .char13-effect,.duel-stage[data-composition] .char13-effect{z-index:18;width:46px;height:46px}
#arena[data-composition] .new-skill-art,.duel-stage[data-composition] .new-skill-art{z-index:18;width:46px;height:46px}
#arena[data-composition] .new-song_heal,.duel-stage[data-composition] .new-song_heal{width:54px;height:38px}
#arena[data-composition] .target-feedback,.duel-stage[data-composition] .target-feedback{z-index:19;font-size:12px;line-height:17px;padding:1px 3px}
.duel-stage[data-composition]{background:#263c43 url('assets/stage/battle-stage-full.webp') center 80%/auto 150% no-repeat;margin-top:10px}
.duel-stage[data-composition] .unit{position:absolute;transform:translate(-50%,-100%);border:0;box-shadow:none;background:transparent}
.duel-stage[data-composition] .unit img{position:absolute}
.duel-stage[data-composition] .unit:active{transform:translate(-50%,-100%)}
.duel-stage[data-composition] .fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:14}
.duel-replay-caption{font-size:12px;line-height:1.5;padding:8px}
@media(max-width:350px){#arena[data-composition],.duel-stage[data-composition]{height:350px}#arena[data-composition] .unit,.duel-stage[data-composition] .unit{width:64px;height:72px}#arena[data-composition] .unit img,.duel-stage[data-composition] .unit img{height:50px;max-width:58px}#arena[data-composition] .unit[data-character=bodyguard] img,#arena[data-composition] .unit[data-character=fisher] img,.duel-stage[data-composition] .unit[data-character=bodyguard] img,.duel-stage[data-composition] .unit[data-character=fisher] img{height:53px}#arena[data-composition] .unit:before,.duel-stage[data-composition] .unit:before{left:14px;right:14px}#arena[data-composition] .char13-effect,.duel-stage[data-composition] .char13-effect{width:38px;height:38px}#arena[data-composition] .new-skill-art,.duel-stage[data-composition] .new-skill-art{width:38px;height:38px}}
@media(min-width:700px){#arena[data-composition],.duel-stage[data-composition]{height:610px;max-width:960px;margin-inline:auto}#arena[data-composition] .unit,.duel-stage[data-composition] .unit{width:108px;height:106px}#arena[data-composition] .unit img,.duel-stage[data-composition] .unit img{height:84px;max-width:102px}#arena[data-composition] .unit[data-character=bodyguard] img,#arena[data-composition] .unit[data-character=fisher] img,.duel-stage[data-composition] .unit[data-character=bodyguard] img,.duel-stage[data-composition] .unit[data-character=fisher] img{height:90px}}
@media(prefers-reduced-motion:reduce){#arena[data-composition] .unit,.duel-stage[data-composition] .unit{transition:none}}
.book-card strong,#actor-title{overflow-wrap:normal;word-break:normal;line-height:1.5}

#actor-title .book-secondary{display:inline-block;white-space:nowrap;letter-spacing:1px}.book-card .book-secondary{display:block;font-size:12px;letter-spacing:.3px;white-space:nowrap}

@font-face{font-family:PaperBookSecondary;src:url('assets/fonts/paper-book-secondary.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
#actor-title .book-secondary,.book-card .book-secondary{display:block;font-family:PaperBookSecondary,'KaiTi','STKaiti',serif;font-weight:400;letter-spacing:1px;color:#7c6146;white-space:nowrap}
#actor-title .book-secondary{font-size:18px;line-height:1.7;margin-top:5px}
.book-card .book-secondary{font-size:15px;line-height:1.6;margin-top:3px}

.biography .book-secondary{display:block;font-family:PaperBookSecondary,'KaiTi','STKaiti',serif;font-weight:400;font-size:16px;line-height:1.6;letter-spacing:1px;color:#7c6146;margin-top:3px}

.book-primary-row{display:inline-flex;align-items:center;justify-content:center;gap:8px;max-width:100%;vertical-align:middle}.book-primary-row .book-faction{display:inline-flex;align-items:center;margin:0;flex:none}
