body {
    font-family: "IBM Plex Serif", serif;
    padding: 2rem;
}

.row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

a {
    font-weight: 800;
    color: black;
    transition: all 0.1s;
    text-decoration-color: #fcba03;
    text-decoration-thickness: 3px;
}
a:active {
    opacity: 80%;
}
a:hover {
    text-decoration-color: #888;
}

p {
    line-height: 200%;
}

.home-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 4rem;
}

.photo-container {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.photo-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, min-content);
    gap: 1rem;
}
.photo-grid-7 {
    display: flex;
    flex-wrap: wrap;
    max-width: 62rem;
    gap: 1rem;
}

.photo-box {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #eee;
    border-radius: 0.5rem;
    transition: all 0.1s;
}
.photo-box.small {
    width: 8rem;
    height: 8rem;
    padding: 0.5rem;
}
.photo-box.large {
    width: 20rem;
    height: 20rem;
    padding: 1rem;
}
.photo-box.full {
    width: min(62rem, 100vw - 6rem);
    height: min(62rem, 100vw - 6rem);
    padding: 2rem;
}
.photo-box.disabled {
    background-color: #ccc;
}
a .photo-box:hover {
    background-color: #ddd;
}

.photo-box img {
    max-width: 100%;
    max-height: 100%;
}

@media (prefers-color-scheme: dark) {
    body {
        background-color: black;
        color: white;
    }
    a {
        color: white;
    }
    .photo-box {
        background-color: #111;
    }
    .photo-box.disabled {
        background-color: #333;
    }
    a .photo-box:hover {
        background-color: #222;
    }
}

@media only screen and (max-width: 768px) {
    .photo-box.large {
    	width: 8rem;
    	height: 8rem;
    	padding: 0.5rem;
    }
    .photo-box.full {
    	padding: 0.5rem;
    }
    .photo-grid-3 {
        display: grid;
        grid-template-columns: repeat(2, min-content);
        gap: 1rem;
    }
}
