/* One continuous composition: full covers, natural captions, no shared row height. */
.archive-grid.archive-mosaic{
 --mosaic-gap:24px;
 --archive-row-gap:32px;
 display:block;
 columns:3;
 column-gap:var(--mosaic-gap);
}
.archive-grid.archive-mosaic .archive-card{
 display:block;
 width:100%;
 min-width:0;
 break-inside:avoid;
 border:0;
 outline:0;
 padding:0!important;
 margin:0 0 var(--archive-row-gap)!important;
 background:transparent;
}
.archive-grid.archive-mosaic .archive-card>a{display:block;height:auto;outline-offset:4px}
.archive-grid.archive-mosaic .archive-cover{height:auto;aspect-ratio:var(--cover-ratio)!important}
.archive-grid.archive-mosaic .archive-original{object-fit:contain;transform:none!important}
.archive-grid.archive-mosaic .project-info{
 height:auto;
 min-height:0;
 padding:12px 0 0;
 border:0;
 gap:12px;
 align-items:flex-start;
}
.archive-grid.archive-mosaic .project-info h3{font-size:clamp(17px,1.45vw,23px);line-height:1.4}
.archive-grid.archive-mosaic .project-info p{font-size:12px;line-height:1.6;margin-top:5px}
.archive-grid.archive-mosaic.is-masonry{
 display:grid;
 columns:auto;
 grid-template-columns:repeat(3,minmax(0,1fr));
 grid-auto-flow:row dense;
 grid-auto-rows:4px;
 column-gap:var(--mosaic-gap);
 row-gap:0;
 align-items:start;
}
.archive-grid.archive-mosaic.is-masonry .archive-card{
 grid-column:auto!important;
 grid-row:auto / span var(--card-rows,1);
 margin:0!important;
 align-self:start;
}
@media(max-width:1100px){
 .archive-grid.archive-mosaic{columns:2;--mosaic-gap:20px;--archive-row-gap:28px}
 .archive-grid.archive-mosaic.is-masonry{grid-template-columns:repeat(2,minmax(0,1fr))}
 .archive-grid.archive-mosaic .project-info h3{font-size:19px}
}
@media(max-width:600px){
 .archive-grid.archive-mosaic{columns:1;--archive-row-gap:28px}
 .archive-grid.archive-mosaic.is-masonry{grid-template-columns:minmax(0,1fr)}
 .archive-grid.archive-mosaic .project-info h3{font-size:21px}
}
/* The video itself provides the introduction; retain its accessible region label. */
.project-films{padding-top:24px}
/* Controls are enhanced only when JavaScript is available; no-JS shows all work. */
.archive-filters{display:flex;flex-wrap:wrap;gap:0 24px;border-block:1px solid var(--line);margin-block:0 28px;padding-block:4px}
.archive-filters[hidden],.archive-grid.archive-mosaic .archive-card[hidden]{display:none!important}
.archive-filters button{position:relative;background:none;border:0;border-radius:0;color:var(--muted);font:inherit;font-size:13px;line-height:1.5;min-height:44px;padding:10px 0;cursor:pointer}
.archive-filters button[aria-pressed=true]{color:var(--ink)}
.archive-filters button[aria-pressed=true]:after{content:'';position:absolute;inset-inline:0;bottom:-5px;height:2px;background:var(--ink)}
.archive-filters button:hover{color:var(--ink)}
.archive-filters button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.archive-filter-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){.archive-filters{gap:0 20px;margin-bottom:24px}.archive-filters button{font-size:12px}}
