/* Continuous ribbons use two compositor transforms, not a per-frame JS loop. */
.photo-wall{display:block!important;padding-block:14px 8px;min-width:0}
.photo-wall-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;--photo-width:320px;padding:10px 0 18px}
.photo-ribbon{overflow:hidden;min-width:0;padding:12px 0 20px;isolation:isolate;mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent)}
.photo-ribbon-track{display:flex;width:max-content;gap:24px;will-change:transform}
.photo-card{display:block;flex:0 0 var(--photo-width);width:var(--photo-width);position:relative;aspect-ratio:3/2;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--card);box-shadow:0 10px 24px #101b1618;cursor:zoom-in;animation:moment-float 11s ease-in-out infinite;animation-delay:calc(var(--card-index)*-1.3s)}
.photo-card img{display:block;width:100%;height:100%;aspect-ratio:auto!important;object-fit:cover;border-radius:3px;transform:none!important;box-shadow:none!important}
.photo-card:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.photo-wall-controls{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;column-gap:22px;row-gap:0;margin:8px 0 0;color:var(--muted)}
.photo-wall-note{font-size:11px;line-height:1.5;margin-right:auto}.photo-wall-controls button{font-size:11px;min-height:44px;white-space:nowrap}.photo-wall-controls button:disabled{opacity:.55;cursor:default}
.photo-wall[data-paused=true] .photo-card{animation-play-state:paused}
.photo-still-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:8px 0 18px}
.photo-browse-card{border:0;padding:0;background:var(--card);cursor:zoom-in;min-width:0}.photo-browse-card img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:5px}
body[data-motion=off] .photo-card{animation:none}@keyframes moment-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
@media(max-width:700px){.photo-wall-grid{gap:12px}.photo-ribbon{padding:8px 0 12px}.photo-card{padding:6px}.photo-wall-controls{column-gap:16px}.photo-wall-note{flex-basis:100%}.photo-still-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media(prefers-reduced-motion:reduce){.photo-card{animation:none}}
