 .jl-wall {
     --jl-row-gap: 41px;
     /* espacio entre filas */
     --jl-gap: 41px;
     /* espacio entre fotos */
     --jl-h: 250px;
     /* altura desktop */
     --jl-radius: 18px;
     display: grid;
     gap: var(--jl-row-gap);
     width: 100%;
     overflow: hidden;
 }

 @media (max-width:640px) {
     .jl-wall {
         --jl-h: 250px;
     }

     /* altura mobile */
 }

 .jl-row {
     overflow: hidden;
     width: 100%;
 }

 .jl-track {
     display: flex;
     width: max-content;
     will-change: transform;
     animation: jl-scroll var(--jl-speed) linear infinite;
     animation-play-state: paused;
     /* ⛔ inicia en pausa */
 }

 .jl-row.jl-ready .jl-track {
     animation-play-state: running;
 }

 /* ▶ cuando esté lista */
 .jl-reverse .jl-track {
     animation-direction: reverse;
 }

 .jl-set {
     display: flex;
     gap: var(--jl-gap);
     margin-right: var(--jl-gap);
     /* separa SET A y SET B */
 }

 .jl-item {
     margin: 0;
     flex: 0 0 auto;
     height: var(--jl-h);
     border-radius: var(--jl-radius);
     overflow: hidden
 }

 .jl-item img {
     display: block;
     height: 100%;
     width: auto;
     object-fit: cover;
 }

 @media (max-width:480px) {

     .jl-wall,
     .jl-set {
         gap: 21px;
     }

     .jl-wall {
         --jl-h: 180px;
     }
 }

 /* Bucle perfecto: el track contiene dos sets idénticos (A+B) */
 @keyframes jl-scroll {
     from {
         transform: translateX(0)
     }

     to {
         transform: translateX(-50%)
     }
 }

 /* Accesibilidad / respeto a preferencias del usuario */
 @media (prefers-reduced-motion: reduce) {
     .jl-track {
         animation: none;
     }
 }