/* Homepage image gallery: each half of the track is identical, so the wrap is seamless. */
.home-gallery { overflow: hidden; width: 100%; }
.home-gallery-header { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; padding-bottom: 32px; }
.home-gallery-header h2 { flex: none; max-width: 100%; }
@media (min-width: 1024px) { .home-gallery-header { padding-bottom: 40px; } }
.home-gallery-socials { display: flex; flex: none; flex-wrap: nowrap; align-items: center; gap: 24px; margin-left: auto; }
.home-gallery-socials a { display: inline-flex; width: 32px; height: 32px; flex: none; align-items: center; justify-content: center; }
.home-gallery-socials a:focus-visible { outline: 2px solid #7c3aed; outline-offset: 4px; border-radius: 4px; }
.home-gallery-row { overflow: hidden; width: 100%; }
.home-gallery-row + .home-gallery-row { margin-top: 14px; }
.home-gallery-track, .home-gallery-group, .home-gallery-cycle { display: flex; width: max-content; flex: none; }
.home-gallery-track { animation-timing-function: linear; animation-iteration-count: infinite; }
.home-gallery-row:has(.home-gallery-image:focus-visible) .home-gallery-track, .home-gallery-viewing .home-gallery-track { animation-play-state: paused; }
.home-gallery-cycle { gap: 14px; padding-right: 14px; }
.home-gallery-image { display: block; flex: none; padding: 0; border: 0; border-radius: 18px; background: transparent; cursor: pointer; }
.home-gallery-image:focus-visible { outline: 2px solid #7c3aed !important; outline-offset: 3px !important; }
.home-gallery-cycle img { display: block; width: clamp(180px, 17vw, 300px); aspect-ratio: 4 / 5; flex: none; border-radius: 18px; object-fit: cover; }
.home-gallery-left { animation-name: home-gallery-left; }
.home-gallery-right { animation-name: home-gallery-right; }
@keyframes home-gallery-left { to { transform: translateX(-50%); } }
@keyframes home-gallery-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.home-gallery-dialog { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(0, 0, 0, .94); color: #fff; }
.home-gallery-dialog[open] { display: flex; align-items: center; justify-content: center; }
.home-gallery-dialog::backdrop { background: rgba(0, 0, 0, .94); }
.home-gallery-dialog-image { display: block; max-width: calc(100vw - 32px); max-height: calc(100dvh - 96px); width: auto; height: auto; object-fit: contain; }
.home-gallery-dialog-close, .home-gallery-dialog-arrow { position: absolute; z-index: 1; display: flex; width: 48px; height: 48px; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, .5); border-radius: 50%; background: rgba(0, 0, 0, .55); color: #fff; cursor: pointer; }
.home-gallery-dialog-close:hover, .home-gallery-dialog-arrow:hover { background: rgba(255, 255, 255, .2); }
.home-gallery-dialog-close { top: 16px; right: 16px; font-size: 32px; line-height: 1; }
.home-gallery-dialog-arrow { top: 50%; transform: translateY(-50%); }
.home-gallery-dialog-prev { left: 16px; }
.home-gallery-dialog-next { right: 16px; }
.home-gallery-dialog-count { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); font-size: 14px; }
@media (max-width: 640px) { .home-gallery-dialog-close { top: 8px; right: 8px; } .home-gallery-dialog-prev { left: 8px; } .home-gallery-dialog-next { right: 8px; } }

[data-site-route='/'] .home-section-featured { padding-block: var(--site-section-space); }
[data-site-route='/'] .home-section-rewards, [data-site-route='/'] .home-gallery, [data-site-route='/'] [data-home-discover] { padding-top: var(--site-section-space); }
[data-site-route='/'] .home-section-rewards, [data-site-route='/'] .home-gallery { padding-bottom: 0; }
