.banner{overflow:hidden}.banner-track{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;touch-action:pan-x pan-y pinch-zoom}.banner-track::-webkit-scrollbar{display:none}.banner-slide{flex:0 0 100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always}.banner-slide img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}.banner-track.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}#dots{z-index:1}#dots button{position:relative}#dots button:before{content:'';position:absolute;inset:-7px -2px}
