.swipe-root { position: relative; overflow: hidden; touch-action: pan-y; }
/* 各パネルは自分の高さのまま（flex の stretch で一番高い隣の表に揃うと、月の高さ合わせ data-fit-cur が効かず下に空きが出る） */
.swipe-strip { display: flex; align-items: flex-start; width: 300%; transform: translateX(-33.333333%); will-change: transform; }
.swipe-panel { flex: 0 0 33.333333%; min-width: 0; }
.swipe-panel-empty { min-height: 1px; }

.swipe-hint-host {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    pointer-events: none;
    z-index: 2;
}
.swipe-hint {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem 1.1rem;
    border-radius: 999px;
    background: rgba(51, 51, 51, .84);
    color: #fff;
    font-size: .85rem;
    font-weight: bold;
    letter-spacing: .04em;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
    animation: swipe-hint-in .25s ease-out, swipe-hint-out .35s ease-in 2.6s forwards;
}
.swipe-hint-arrow { font-size: 1.4rem; line-height: 1; margin-top: -.1rem; animation: swipe-hint-arrow 1.2s ease-in-out infinite; }
.swipe-hint-arrow.right { animation-delay: .6s; }
.swipe-hint-hand {
    width: 14px; height: 14px; border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .25);
    animation: swipe-hint-hand 1.2s ease-in-out infinite;
}
@keyframes swipe-hint-in { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: none; } }
@keyframes swipe-hint-out { to { opacity: 0; transform: scale(.95); } }
@keyframes swipe-hint-arrow { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
@keyframes swipe-hint-hand { 0%, 100% { transform: translateX(-9px); } 50% { transform: translateX(9px); } }
@keyframes swipe-nudge {
    0%, 100% { transform: translateX(-33.333333%); }
    25% { transform: translateX(calc(-33.333333% - 14px)); }
    75% { transform: translateX(calc(-33.333333% + 14px)); }
}
.swipe-nudge { animation: swipe-nudge 1.2s ease-in-out 2; }

@media (prefers-reduced-motion: reduce) {
    .swipe-nudge, .swipe-hint-arrow, .swipe-hint-hand { animation: none; }
}
