/* Gallery screen */
#gallery .section-heading.centered {
    margin-bottom: 0;
}

#gallery .section-summary {
    max-width: 920px;
}

#gallery .gallery-stage {
    margin-top: 0;
}

.cinematic-grid img {
    transition: transform .35s ease, filter .35s ease, box-shadow .35s ease;
    filter: saturate(.9) contrast(1.03);
}

.cinematic-grid img:hover {
    transform: scale(1.03);
    filter: saturate(1.08) contrast(1.08);
    box-shadow: 0 0 28px rgba(255, 255, 255, .14), 0 0 34px rgba(94, 242, 255, .24);
}

.gallery-stage {
    position: relative;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.gallery-stage::before {
    content: "";
    position: absolute;
    inset: 24px 12% auto;
    height: 220px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(176, 77, 255, .18), transparent 66%);
    filter: blur(30px);
    opacity: .9;
    pointer-events: none;
}

.gallery-showcase {
    position: relative;
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    grid-template-rows: 251px 251px auto;
    gap: 18px;
    align-items: start;
}

.gallery-showcase::before {
    content: "";
    position: absolute;
    inset: 4% 14% auto;
    height: 260px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(255, 109, 214, .18), transparent 68%);
    filter: blur(34px);
    opacity: .92;
    pointer-events: none;
}

.gallery-feature {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: stretch;
}

.gallery-ribbon,
.gallery-rail {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 18px;
}

.gallery-ribbon--top {
    grid-column: 2;
    grid-row: 1;
    grid-template-columns: 1fr 1.22fr 1fr;
}

.gallery-ribbon--bottom {
    grid-column: 1 / -1;
    grid-row: 3;
    grid-template-columns: 1.18fr .82fr .82fr 1.18fr;
}

.gallery-rail {
    grid-column: 2;
    grid-row: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
}

.gallery-card {
    position: relative;
    overflow: hidden;
    min-height: 148px;
    padding: 8px;
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(10, 18, 40, .76), rgba(7, 12, 28, .62));
    border: 1px solid rgba(94, 242, 255, .16);
    box-shadow: 0 18px 48px rgba(0, 0, 0, .28), inset 0 0 0 1px rgba(255, 255, 255, .03);
    backdrop-filter: blur(20px);
    transition: transform .32s ease, box-shadow .32s ease, border-color .32s ease;
}

.gallery-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(94, 242, 255, .12), transparent 38%, rgba(176, 77, 255, .14));
    opacity: .9;
    pointer-events: none;
}

.gallery-card:hover {
    transform: translateY(-6px);
    border-color: rgba(94, 242, 255, .34);
    box-shadow: 0 22px 54px rgba(0, 0, 0, .36), 0 0 28px rgba(94, 242, 255, .18);
}

.gallery-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 22px;
    border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: var(--shadow);
    transition: transform .4s ease, filter .4s ease;
}

.gallery-card:hover img {
    transform: scale(1.035);
    filter: saturate(1.05) contrast(1.04);
}

.gallery-card--hero {
    height: 100%;
    min-height: 0;
}

.gallery-card--wide {
    min-height: 220px;
}

.gallery-card--portrait {
    min-height: 232px;
}

.gallery-card--stacked {
    min-height: 178px;
}

.gallery-card--tilt-left {
    transform: rotate(-2deg);
}

.gallery-card--tilt-right {
    transform: rotate(2deg);
}

.gallery-card--tilt-left:hover {
    transform: rotate(-2deg) translateY(-6px);
}

.gallery-card--tilt-right:hover {
    transform: rotate(2deg) translateY(-6px);
}

.gallery-hero-card {
    grid-column: span 6;
    grid-row: span 2;
    min-height: 370px;
}

.gallery-card--stack {
    grid-column: span 3;
    min-height: 176px;
}

.gallery-card--tall {
    grid-row: span 2;
    min-height: 370px;
}

.gallery-card--film {
    grid-column: span 3;
    min-height: 170px;
}

.gallery-card--focus {
    grid-column: span 4;
    min-height: 220px;
}

.gallery-card--pulse::before,
.gallery-card--glow::before,
.gallery-card--closing::before {
    content: "";
    position: absolute;
    inset: auto -20% -35% auto;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(94, 242, 255, .24), transparent 68%);
    pointer-events: none;
}

.gallery-card--mini {
    grid-column: span 2;
    min-height: 144px;
}

.gallery-card--closing {
    grid-column: span 4;
    min-height: 144px;
}

@media (max-width:1200px) {
    .gallery-stage {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }

    .gallery-showcase {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .gallery-feature,
    .gallery-ribbon--top,
    .gallery-rail,
    .gallery-ribbon--bottom {
        grid-column: auto;
        grid-row: auto;
    }

    .gallery-ribbon--top,
    .gallery-ribbon--bottom,
    .gallery-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gallery-hero-card {
        grid-column: span 8;
        min-height: 320px;
    }

    .gallery-card--stack,
    .gallery-card--tall,
    .gallery-card--film,
    .gallery-card--focus,
    .gallery-card--wide,
    .gallery-card--closing {
        grid-column: span 4;
        grid-row: auto;
        min-height: 210px;
    }

    .gallery-card--mini {
        grid-column: span 2;
        min-height: 150px;
    }
}

@media (max-width:760px) {
    .gallery-stage {
        grid-template-columns: 1fr;
    }

    .gallery-ribbon--top,
    .gallery-ribbon--bottom,
    .gallery-rail {
        grid-template-columns: 1fr;
    }

    .gallery-card,
    .gallery-feature,
    .gallery-hero-card,
    .gallery-card--stack,
    .gallery-card--tall,
    .gallery-card--film,
    .gallery-card--focus,
    .gallery-card--wide,
    .gallery-card--mini,
    .gallery-card--closing,
    .gallery-card--portrait,
    .gallery-card--stacked,
    .gallery-card--tilt-left,
    .gallery-card--tilt-right {
        grid-column: auto;
        grid-row: auto;
        min-height: 220px;
        height: auto;
        transform: none;
    }

    .gallery-card:hover,
    .gallery-card--tilt-left:hover,
    .gallery-card--tilt-right:hover {
        transform: translateY(-4px);
    }
}
