:root {
    --project-size-mobile: 500px;
    --project-size-desktop: 550px;
    --project-size-desktop-max: 800px;
    --mini-project-size-mobile: calc(var(--project-size-mobile) / 2);
    --mini-project-size-desktop: calc(var(--project-size-desktop) / 2);
    --mini-project-size-desktop-max: calc(var(--project-size-desktop-max) / 2);
}
#search {
    margin-top: 10px;
    position: relative;
    margin-bottom: 10px;
}
#search > i {
    position: absolute;
    color: var(--disabled-color);
    font-size: 1rem;
    top: 50%;
    transform: translateY(-50%);
    left: 10px;
}
#search > input {
    padding-left: 40px;
    width: 100%;
    height: 2rem;
    font-size: 1rem;
}
.portfolio-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--project-size-mobile)), 1fr));
    gap: 5vw;
    justify-items: center;
    margin-top: 3vw;
}
.portfolio-content:not(.standout) {
    --project-size-mobile: var(--mini-project-size-mobile);
    --project-size-desktop: var(--mini-project-size-desktop);
    --project-size-desktop-max: var(--mini-project-size-desktop-max);
    justify-items: left;
}
.portfolio-project {
    width: 100%;
    max-width: var(--project-size-mobile);
}
.portfolio-project > strong {
    font-size: 5vw;
}
.project-image-container {
    margin-top: 5px;
    margin-bottom: 5px;
    border-width: var(--border-size);
    border-style: solid;
    border-color: var(--accent-color);
}
.tags-and-icon {
    display: flex;
    justify-content: space-between;
    vertical-align: middle;
    align-items: center;
}

.tags-and-icon > i {
    color: var(--accent-color);
    font-size: 2em;
}

h2.more-projects {
    font-size: calc(15px + 2.5vw);
    text-align: center;
    margin-top: 5vw;
    margin-bottom: 3vw;
}

#portfolio-tabbar {
    margin-top: 10px;
    margin-bottom: 10px;
}
#portfolio-tabbar > .tab {
    width: 100%;
}
#portfolio-tabbar-content {
    padding-bottom: 2em;
}

@media screen and (min-width: 800px) {
    h2.more-projects {
        font-size: 40px;
    }
    .portfolio-content {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--project-size-desktop)), 1fr));
    }
    .portfolio-project {
        flex-grow: 1;
        flex-shrink: 1;
        
        min-width: var(--project-size-desktop);
        max-width: var(--project-size-desktop-max);
    }
    .portfolio-project > strong {
        font-size: calc(1vw + 1em);
    }
    .tags {
        font-size: 1.3rem;
    }
    .tags-and-icon > i {
        font-size: calc(0.5vw + 2rem);
    }
    #search {
        margin-bottom: 0;
    }
    #search > i {
        font-size: 1.5rem;
    }
    #search > input {
        padding-left: 40px;
        width: 100%;
        height: 3rem;
        font-size: 2rem;
    }
}