/* =======================================================================
   BENTO-BOX PREVIEW (HOMEPAGE)
   ======================================================================= */
.masonry-preview-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 240px; /* Slightly taller for more impact */
    gap: 20px;
    padding: 0 15px;
    perspective: 1000px;
}

.masonry-preview-item {
    position: relative;
    border-radius: 24px; /* More rounded for "bento" look */
    overflow: hidden;
    cursor: pointer;
    background: #eef2f7;
    box-shadow: 0 15px 35px rgba(0,0,0,0.05);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0; /* Handled by GSAP scroll trigger */
    transform: translateY(30px);
}

/* Bento Grid Spans */
.masonry-preview-item:nth-child(1) { grid-column: span 2; grid-row: span 2; } /* Large Hero */
.masonry-preview-item:nth-child(2) { grid-column: span 1; grid-row: span 1; }
.masonry-preview-item:nth-child(3) { grid-column: span 1; grid-row: span 2; } /* Tall Accent */
.masonry-preview-item:nth-child(4) { grid-column: span 1; grid-row: span 1; }
.masonry-preview-item:nth-child(5) { grid-column: span 1; grid-row: span 1; }
.masonry-preview-item:nth-child(6) { grid-column: span 2; grid-row: span 1; } /* Wide Accent */
.masonry-preview-item:nth-child(7) { grid-column: span 1; grid-row: span 1; }
.masonry-preview-item:nth-child(8) { grid-column: span 4; grid-row: span 1; } /* Bottom Full Width Banner */

.masonry-preview-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s cubic-bezier(0.165, 0.84, 0.44, 1), 
                filter 0.6s ease;
    filter: brightness(0.95) contrast(1.05);
}

.masonry-preview-item:hover {
    transform: translateY(-8px) scale(1.01);
    box-shadow: 0 25px 50px rgba(0,0,0,0.15);
    z-index: 10;
}

.masonry-preview-item:hover img {
    transform: scale(1.1);
    filter: brightness(1.05) contrast(1.1);
}

/* Stunning Glass Overlay */
.masonry-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.5), transparent 70%);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    backdrop-filter: blur(0px);
    transition: all 0.4s ease;
}

.masonry-overlay i {
    color: white;
    font-size: 2.5rem;
    padding: 20px;
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
    border-radius: 50%;
    transform: scale(0.5) rotate(-45deg);
    transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.masonry-preview-item:hover .masonry-overlay {
    opacity: 1;
    backdrop-filter: blur(5px);
}

.masonry-preview-item:hover .masonry-overlay i {
    transform: scale(1) rotate(0deg);
}

/* Staggered Entrance Helper (if GSAP is not used) */
.reveal-item.active {
    opacity: 1;
    transform: translateY(0);
}

/* Responsive Masonry */
@media (max-width: 1100px) {
    .masonry-preview-grid {
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 200px;
    }
    .masonry-preview-item:nth-child(8) { grid-column: span 3; }
}

@media (max-width: 768px) {
    .masonry-preview-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 180px;
    }
    .masonry-preview-item:nth-child(1) { grid-column: span 2; grid-row: span 2; }
    .masonry-preview-item:nth-child(6) { grid-column: span 2; }
    .masonry-preview-item:nth-child(8) { grid-column: span 2; }
}

@media (max-width: 480px) {
    .masonry-preview-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 250px;
        gap: 15px;
    }
    .masonry-preview-item { grid-column: span 1 !important; grid-row: span 1 !important; }
}
