/* 写真が主役の、余白のない帯状ギャラリー。外部ライブラリ不要。 */
#taiyakiGallery { --photo-size: 360px; position: relative; margin: 0; padding: 0; background: #eee9dc; }
#taiyakiGallery .taiyaki-gallery__viewport { overflow-x: auto; overflow-y: hidden; }
#taiyakiGallery .taiyaki-gallery__track { display: flex; width: max-content; }
#taiyakiGallery .taiyaki-gallery__group { display: flex; flex: none; margin: 0; padding: 0; list-style: none; }
#taiyakiGallery li { flex: none; width: var(--photo-size); height: var(--photo-size); }
#taiyakiGallery img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
#taiyakiGallery.is-running .taiyaki-gallery__viewport { overflow: hidden; }
#taiyakiGallery.is-running .taiyaki-gallery__track { animation: taiyaki-flow 72s linear infinite; }
/* Pausing the existing animation preserves its exact position on resume. */
#taiyakiGallery.is-running.is-paused .taiyaki-gallery__track,
#taiyakiGallery.is-running .taiyaki-gallery__viewport:focus-visible .taiyaki-gallery__track { animation-play-state: paused; }
#taiyakiGallery:not(.is-running) .taiyaki-gallery__group[aria-hidden] { display: none; }
#taiyakiGallery :focus-visible { outline: 2px solid #7b4b30; outline-offset: -3px; }
@keyframes taiyaki-flow { to { transform: translateX(var(--gallery-shift)); } }
@media (max-width: 979px) { #taiyakiGallery { --photo-size: calc(100vw / 3); } }
@media (prefers-reduced-motion: reduce) {
    #taiyakiGallery.is-running .taiyaki-gallery__track { animation: none; }
    #taiyakiGallery.is-running .taiyaki-gallery__viewport { overflow-x: auto; }
    #taiyakiGallery .taiyaki-gallery__group[aria-hidden] { display: none; }
}
