.main-flexbox {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 80vw;
    margin-bottom: 0;

    @media only screen and (max-width: 880px) and (min-aspect-ratio: 3/2) {
        & {
            width: calc(100% - 7rem);
        }
    }
}

.flex-gallery {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
    padding: 2rem;
    width: 100%;

    @media only screen and (max-width: 880px) and (min-aspect-ratio: 3/2) {
        & {
            padding: 0 2rem 1rem 0;
        }
    }

    & li {
        margin: 2px;
        background-color: var(--theme-background-colour);
    }

    & img {
        max-height: var(--gallery-size);
    }

    & .image {
        font-size: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(0, 0, 0, 0);
        margin: 6px;
        transition: transform .3s linear;        

        &:hover {
            transform: scale(1.4);
            z-index: 1;
        }

        @media only screen and (max-width: 880px) {
            & {
                transition: transform .25s linear;

                &:hover {
                    transform: scale(1.25);
                }
            }
        }

        @media only screen and (max-width: 480px) {
            & {
                transition: transform .25s linear;

                &:hover {
                    transform: scale(1.05);
                }
            }
        }

        /* motion accessability concerns */
        @media (prefers-reduced-motion) {
            & {
                transition: none;

                &:hover {
                    transform: none;
                }
            }
        }
    }

}

#enlarged-photo-container {
    position: fixed;
    top: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 12;
    height: 100%;
    width: 100vw;
    backdrop-filter: blur(5px);

    &.visible {
        display: flex;
    }

    & img {
        position: relative;
        max-width: 96vw;
        max-height: 96vh;
        object-fit: contain;
    }

    & .left-swipe,
    & .right-swipe {
        position: absolute;
        background-color: var(--theme-transparant-background-colour);
        height: 10vh;
        min-height: 4rem;
        width: 10vh;
        min-width: 4rem;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 3rem;
        font-weight: 900;
        user-select: none;
        margin: .2rem;
        z-index: 1;
        border-radius: 50%;

        & .arrow {
            height: 30%;
            filter: invert();
            left: .2vw;
        }
    }

    & .left-swipe {
        transform: rotate(180deg);
        left: 4vw;
    }

    & .right-swipe {
        right: 4vw;
    }

    /* reducing likeliness of full-size images being downloaded from site */
    @media print {
        & {
            display: none;
        }
    }

}