.meetup-festival__rack {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    width: 100%;
    max-width: 100%;
}

@media (min-width: 768px) {
    .meetup-festival__rack {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .meetup-festival__rack {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.meetup-festival__cover { height: 24rem; }

.meetup-festival__piece--rise:hover { transform: scale(1.05); transition: transform .2s ease; }

.meetup-festival__vessel--glass { backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }

.masonry-grid__card--hover:hover {
    transform: scale(1.05);
}

.masonry-grid__media--xl { height: 20rem; }
.masonry-grid__media--lg { height: 16rem; }
.masonry-grid__media--md { height: 18rem; }
.masonry-grid__media--sm { height: 15rem; }

.masonry-grid__img--zoom {
    transition: transform 0.5s ease;
}
.masonry-grid__card:hover .masonry-grid__img--zoom {
    transform: scale(1.1);
}

.masonry-grid__overlay--fade {
    opacity: 0;
    transition: opacity 0.3s ease;
}
.masonry-grid__card:hover .masonry-grid__overlay--fade {
    opacity: 1;
}

.masonry-grid__badge--fade {
    opacity: 0;
    transition: opacity 0.3s ease;
}
.masonry-grid__card:hover .masonry-grid__badge--fade {
    opacity: 1;
}

.masonry-grid__panel--slide {
    transform: translateY(100%);
    transition: transform 0.3s ease;
}
.masonry-grid__card:hover .masonry-grid__panel--slide {
    transform: translateY(0);
}

/* Layout / motion — colors stay in Blade / @sem */

.gallery-mosaic-row__tile {
  flex: 1 1 200px;
  min-width: 200px;
  max-width: 320px;
  transition: transform 0.3s ease;
}

.gallery-mosaic-row__tile:hover {
  transform: scale(1.05);
}

.gallery-mosaic-row__media {
  aspect-ratio: 4 / 3;
  width: 100%;
  overflow: hidden;
}

.gallery-mosaic-row__title {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

