.controls{position:relative;grid-template-columns:54px minmax(0,1fr) 54px;gap:0}
.poster-track{position:relative;display:block;height:560px;overflow:hidden;padding:0;scroll-snap-type:none;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;cursor:grab}
.poster-track.dragging{cursor:grabbing}
.poster-track:focus-visible{outline:2px solid var(--yellow);outline-offset:4px;border-radius:8px}
.poster-card,.poster-card:hover,.poster-card.selected{position:absolute;top:34px;left:50%;display:block;width:300px;height:430px;margin:0;padding:0;opacity:0;pointer-events:none;transform:translate3d(calc(-50% + var(--x,0px)),var(--y,0px),0) rotate(var(--r,0deg)) scale(var(--s,.7));transform-origin:50% 100%;transition:none}
.poster-card.visible{opacity:var(--opacity,1);pointer-events:auto;will-change:transform}
.poster-card.selected{outline:3px solid var(--yellow);outline-offset:6px}
.poster-card:focus-visible{outline:3px solid var(--cream);outline-offset:6px}
.poster-card img{pointer-events:none;-webkit-user-drag:none}
.controls>button{position:relative;z-index:130;cursor:pointer}
.controls>button:disabled{opacity:.3;cursor:default}
.controls>button:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}
.poster-caption{margin-top:-58px}
.poster-open-hint{margin:0;text-align:center;color:#b7c7c0;font:500 .6rem/1.6 var(--mono);letter-spacing:.04em;text-transform:uppercase}
.poster-dots{display:flex;max-width:850px;margin:20px auto 28px;justify-content:center;flex-wrap:wrap;gap:6px}
.poster-dots button{min-width:47px;min-height:34px;padding:7px 9px;border:1px solid #ffffff38;border-radius:5px;color:var(--cream);background:transparent;font:500 .62rem var(--mono);cursor:pointer;transition:background .15s,color .15s}
.poster-dots button:hover{border-color:var(--yellow)}
.poster-dots button.active{border-color:var(--yellow);color:var(--ink);background:var(--yellow)}
.poster-dots button:focus-visible{outline:2px solid var(--cream);outline-offset:3px}
@media(max-width:900px){.poster-track{height:475px}.poster-card,.poster-card:hover,.poster-card.selected{width:245px;height:350px}.poster-caption{margin-top:-55px}}
@media(max-width:560px){.controls{margin-inline:-14px;grid-template-columns:38px minmax(0,1fr) 38px}.controls>button{width:38px;height:38px}.poster-track{height:390px}.poster-card,.poster-card:hover,.poster-card.selected{top:24px;width:190px;height:275px}.poster-caption{margin-top:-62px;font-size:2.2rem}.poster-dots{max-width:330px}.poster-dots button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.poster-dots button{transition:none}}
