.image-gallery {
    margin-top: 1rem;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 30px;
}

.gallery-item {
    border-radius: var(--card-border-radius);
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
    transition: all var(--animation-duration) var(--transition-easing);
    cursor: pointer;
    aspect-ratio: 16 / 9;
    line-height: 0;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

.gallery-item.portrait {
    aspect-ratio: 5 / 7;
}

/* 1 item */
.gallery-item:first-child:nth-last-child(1),
.gallery-item:first-child:nth-last-child(1)~.gallery-item {
    width: 1200px;
}

/* 2 items */
.gallery-item:first-child:nth-last-child(2),
.gallery-item:first-child:nth-last-child(2)~.gallery-item {
    width: 880px;
}

/* 3 items */
.gallery-item:first-child:nth-last-child(3),
.gallery-item:first-child:nth-last-child(3)~.gallery-item {
    width: 580px;
}

/* 4 items */
.gallery-item:first-child:nth-last-child(4),
.gallery-item:first-child:nth-last-child(4)~.gallery-item {
    width: 420px;
}

/* 5 items */
.gallery-item:first-child:nth-last-child(5),
.gallery-item:first-child:nth-last-child(5)~.gallery-item {
    width: 330px;
}

/* 6 items */
.gallery-item:first-child:nth-last-child(6),
.gallery-item:first-child:nth-last-child(6)~.gallery-item {
    width: 270px;
}

/* 8 items 2*4 */
.gallery-item:first-child:nth-last-child(8),
.gallery-item:first-child:nth-last-child(8)~.gallery-item {
    width: 420px;
}

/* 10 items 2*5 */
.gallery-item:first-child:nth-last-child(10),
.gallery-item:first-child:nth-last-child(10)~.gallery-item {
    width: 330px;
}

/* 12 items 2*6 */
.gallery-item:first-child:nth-last-child(12),
.gallery-item:first-child:nth-last-child(12)~.gallery-item {
    width: 270px;
}

.narrative-section-title {
    color: var(--gold);
    font-size: 1.875rem;
    line-height: 2.25rem;
    margin-top: 3rem;
    margin-bottom: 1.5rem;
}

/* Responsive Design */
@media (max-width: 1200px) {
    .hero-title {
        font-size: 2.5rem;
    }

    .hero-subtitle {
        font-size: 1rem;
    }
}