.projects-placeholder-section {
    background: var(--color-background);
    padding: 80px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.projects-title {
    color: var(--color-text);
    margin: 0 0 80px;
}

/* Work section header: bold line, "WORK" title, and intro text — left-aligned,
   same width as the project list below it. */
.work-intro {
    width: 100%;
    max-width: 2000px;
    margin: 0 0 80px;
    text-align: left;
}

.work-intro-line {
    width: min(400px, 100%);
    height: 3px;
    margin: 0 0 24px;
    border: none;
    background: var(--color-text);
}

.work-intro-title {
    margin: 0;
    color: var(--color-text);
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.05;
}

.work-intro-text {
    margin: 16px 0 0;
    max-width: 400px;
    color: var(--color-text);
    font-size: 1.05rem;
    line-height: 1.6;
}

/* Stacks the labeled groups; the gap is the space between the full-time and
   freelance/solo sections. */
#project-list {
    display: flex;
    flex-direction: column;
    gap: 100px;
    width: 100%;
    max-width: 2000px;
}

/* Bold line above each group heading — same thickness & max width as the WORK line */
.work-group-line {
    width: min(400px, 100%);
    height: 3px;
    margin: 0 0 24px;
    border: none;
    background: var(--color-text);
}

/* Left-aligned group heading (all caps) sitting over the group's cards */
.work-group-heading {
    margin: 0 0 40px;
    color: var(--color-text);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
    text-align: left;
    text-transform: uppercase;
}

/* The 2-column card grid within each group */
.work-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--project-card-gap);
}

.project-card {
    width: 100%;
}

.project-card-image-link {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    text-decoration: none;
}

.project-card-image-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.project-card:hover .project-card-image-link img { transform: scale(1.04); }

/* Soft fade at the bottom of the card so the overlaid title/subtitle stay
   readable even over a light/white cover image. */
.project-card-vignette {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    height: var(--project-card-vignette-height);
    pointer-events: none;
    background: linear-gradient(to top,
        color-mix(in srgb, var(--project-card-vignette-color) var(--project-card-vignette-strength), transparent) 0%,
        transparent 100%);
}

.project-card-info {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    padding: 20px;
}

.project-card-name {
    margin: 0;
    color: var(--project-card-title-color);
    font-size: var(--project-card-title-size);
    font-weight: 700;
    line-height: 1.3;
}

.project-card-subname {
    margin: 4px 0 0;
    color: var(--project-card-subtitle-color);
    font-size: var(--project-card-subtitle-size);
    font-weight: 400;
    line-height: 1.3;
}

@media (max-width: 768px) {
    .work-grid { grid-template-columns: 1fr; }
}
