/* Clip translated pages without creating a horizontal scrolling surface. */
#app:has(.swipe-moving){overflow-x:clip}
#main.swipe-moving{will-change:transform}
.swipe-dots{position:fixed;z-index:22;left:50%;bottom:calc(var(--nav-h,64px) + env(safe-area-inset-bottom) + 8px);transform:translateX(-50%);display:flex;gap:6px;padding:6px 9px;border-radius:20px;background:var(--paper,#fff);box-shadow:0 1px 6px #0002;opacity:0;transition:opacity 180ms;pointer-events:none}
.has-ticker .swipe-dots{bottom:calc(var(--nav-h,64px) + var(--ticker-h,44px) + env(safe-area-inset-bottom) + 8px)}
.swipe-dots.visible{opacity:1}
.swipe-dots span{width:6px;height:6px;border:1px solid var(--teal,#0e8c8c);border-radius:50%}
.swipe-dots .current{background:var(--teal,#0e8c8c)}
.swipe-dots.swipe-reduced{transition:none}
@media(prefers-reduced-motion:reduce){.swipe-dots{transition:none}}
