/* Explain: Layout utilities and styles for a mosaic gallery. - */
.texture-section {
    position: relative;
    overflow: hidden;
}

.texture-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(color-mix(in srgb, var(--primary-color) 3.5%, transparent) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--primary-color) 3%, transparent) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: radial-gradient(circle at 30% 10%, black 0%, transparent 62%);
}

.texture-section > * {
    position: relative;
    z-index: 1;
}

.hero-cinema::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 28%;
    pointer-events: none;
    background: radial-gradient(ellipse at bottom, color-mix(in srgb, var(--copper-color) 18%, transparent), transparent 58%);
}

.gallery-mosaic {
    display: grid;
    grid-auto-rows: 260px;
    gap: 1rem;
}

.gallery-frame {
    overflow: hidden;
    border-radius: 1.75rem;
    background: color-mix(in srgb, var(--snow-color) 8%, transparent);
    box-shadow: var(--shadow-soft);
}

@media (min-width: 768px) {
    .gallery-mosaic {
        grid-template-columns: repeat(6, 1fr);
        grid-auto-rows: 220px;
    }

    .gallery-frame:nth-child(6n+1) {
        grid-column: span 4;
        grid-row: span 2;
    }

    .gallery-frame:nth-child(6n+2) {
        grid-column: span 2;
    }

    .gallery-frame:nth-child(6n+3) {
        grid-column: span 2;
    }

    .gallery-frame:nth-child(6n+4),
    .gallery-frame:nth-child(6n+5),
    .gallery-frame:nth-child(6n+6) {
        grid-column: span 2;
    }
}

@media (max-width: 767px) {
    .hero-cinema {
        min-height: 92vh;
    }
}