.character-slider{position:relative;height:clamp(280px,32vw,490px);margin:75px calc(-1 * max(6vw,(100vw - 1320px)/2)) 0;overflow:hidden;touch-action:pan-y;cursor:grab;user-select:none;direction:ltr;contain:layout paint}
.character-slider.is-dragging{cursor:grabbing}.character-slider:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #ffffff80}
.character-slider-stage{position:absolute;inset:0;overflow:hidden}
.character-slide{position:absolute;top:0;left:0;height:100%;overflow:hidden;background:#173d34;will-change:transform;contain:layout paint;pointer-events:none}
.character-slide .portrait{position:absolute;width:auto;max-width:none;height:100%;left:50%;top:0;transform:translateX(-50%);object-fit:cover;-webkit-user-drag:none}
.character-slide .character-name{position:absolute;right:3px;bottom:10px;writing-mode:vertical-rl;text-orientation:mixed;color:white;font:900 38px/.88 Inter,Arial,sans-serif;letter-spacing:-.045em;white-space:nowrap;transform-origin:bottom right}
@media(max-width:600px){.character-slider{height:310px;margin-top:45px}.character-slide .character-name{bottom:8px;right:2px}}

.character-pose-dialog{width:min(1400px,96vw);max-width:96vw;max-height:94dvh;padding:48px 16px 12px;border:0;border-radius:14px;background:#fff;color:#173d34;overflow:auto;box-shadow:0 25px 90px #0006}
.character-pose-dialog::backdrop{background:#101b18d9;backdrop-filter:blur(8px)}
.character-pose-dialog>img{display:block;width:100%;height:auto;max-height:calc(94dvh - 100px);object-fit:contain}
.character-pose-dialog>p{text-align:center;font-size:15px;font-weight:800;margin:12px 0 0}
.character-pose-dialog .pose-close{position:absolute;right:12px;top:8px;width:36px;height:36px;border:0;border-radius:50%;background:#173d34;color:white;font:26px/1 Arial;cursor:pointer}
.character-pose-dialog[open]{animation:pose-appear .22s ease-out}body:has(.character-pose-dialog[open]){overflow:hidden}
@keyframes pose-appear{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.character-pose-dialog[open]{animation:none}}
