/* Gallery r12 — free-flowing columns, native media ratios, no category filters. */
.portfolio .section-heading{display:block;margin-bottom:22px}
.portfolio .section-heading>.label{margin-bottom:24px}
.portfolio .section-heading h2{max-width:1100px}
.portfolio .section-intro{margin:0 0 40px;max-width:740px}
.work-grid{--gallery-gap:32px;--gallery-row-gap:42px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gallery-row-gap) var(--gallery-gap);align-items:start;position:relative}
.work-grid .work-card:nth-child(n){grid-column:auto;grid-row:auto;padding:0;margin:0;min-width:0}
.work-card[hidden]{display:none!important}
.work-grid .work-media{aspect-ratio:var(--ratio);max-height:none;width:100%}
.work-grid .work-media img{display:block}
.work-grid .work-media.contain img{padding:0}
.work-grid .work-meta{display:flex;flex-wrap:wrap;gap:5px 20px;justify-content:space-between;margin-top:16px}
.work-grid .work-meta .label:empty{display:none}
.work-grid .work-meta .label{font-size:10px;margin:0;line-height:1.4}
.work-grid .work-card h3{font-size:clamp(20px,1.8vw,28px);line-height:1.2;margin-top:7px;overflow-wrap:anywhere}
.work-product{margin:.4rem 0 0;color:var(--muted);font-size:.95rem}
/* Home is image-led; project details remain available in the click-open dialog. */
.home .portfolio .work-meta,
.home .portfolio .work-card h3,
.home .portfolio .work-product{display:none}
.gallery-empty{padding:32px 0;color:var(--muted)}
@media(min-width:641px){
 .work-grid.gallery-ready{display:block}
 .work-grid.gallery-ready .work-card:nth-child(n){position:absolute;top:var(--gallery-top,0px);left:0;width:calc((100% - var(--gallery-gap))/2)}
 .work-grid.gallery-ready .work-card[data-gallery-side=right]{left:calc((100% + var(--gallery-gap))/2)}
}
@media(max-width:950px){.work-grid{--gallery-gap:24px;--gallery-row-gap:34px}}
@media(max-width:640px){
 .work-grid{display:block;height:auto!important}
 .work-grid .work-card:nth-child(n){position:static;width:100%;margin-bottom:36px}
 .work-grid .work-card:last-child{margin-bottom:0}
 .work-grid .work-media{max-height:none;aspect-ratio:var(--ratio)}
 .work-grid .work-meta .label{font-size:9px}
 .work-grid .work-card h3{font-size:23px}
}
.dialog-controls [hidden],.work-preview[hidden]{display:none!important}
.work-media .work-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.work-media.contain .work-preview{object-fit:contain}
@media(prefers-reduced-motion:reduce){.work-preview{display:none}.work-media img{transition:none}.work-media:hover img{transform:none}}
.drive-stage{display:block!important;background:#0c0c0c}
.dialog-stage.drive-stage iframe{display:block;width:100%;height:min(65vh,650px);min-height:260px;border:0;background:#0c0c0c}
.drive-player-note{font-size:12px;line-height:1.5;color:#aaa;padding:12px 16px;margin:0}
.drive-cover-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:40px;background:#242424;color:white;text-align:center}
@media print{.work-grid.gallery-ready{display:grid;height:auto!important}.work-grid.gallery-ready .work-card:nth-child(n){position:static;width:auto;break-inside:avoid}}

/* r13 — a visual-only modular sequence: wide film, portrait, then a mosaic. */
@media(max-width:640px){.home .work-card[data-media-kind=image][data-card-height=tall] .work-media,.home .work-card[data-media-kind=image][data-card-height=extra] .work-media{aspect-ratio:var(--image-mobile-ratio)}}
.home .portfolio .media-kind,.home .portfolio .work-card[data-media-kind=image] .media-open{display:none}
.home .portfolio .work-media .media-open{left:18px;right:auto;bottom:18px;width:40px;height:40px;font-size:14px}
.home .portfolio .work-media{isolation:isolate;overflow:hidden}
.home .portfolio .work-media img{transition:transform 750ms cubic-bezier(.2,.65,.3,1)}
.home .portfolio .work-media:hover img{transform:scale(1.025)}
.home .portfolio .work-media:focus-visible{outline:3px solid var(--red,#CB2C31);outline-offset:5px}
.home .work-card.visual-wait{opacity:0;transform:translateY(22px)}
.home .work-card.visual-in{opacity:1;transform:none;transition:opacity .65s ease,transform .8s cubic-bezier(.2,.65,.3,1)}
@media(min-width:641px){
 .home .work-grid.modular-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:var(--module-unit,210px);gap:18px;align-items:stretch}
 .home .work-grid.modular-gallery .work-card:nth-child(n){position:relative;left:auto;top:auto;width:auto;height:100%;grid-column:var(--module-column)/span var(--module-columns);grid-row:var(--module-row)/span var(--module-rows);margin:0;padding:0}
 .home .work-grid.modular-gallery .work-media{height:100%;aspect-ratio:auto}
 .home .work-grid.modular-gallery .work-media img{width:100%;height:100%;object-fit:cover}
 .home .work-grid.modular-gallery .work-media.contain img{object-fit:contain}
}
@media(min-width:641px) and (max-width:950px){.home .work-grid.modular-gallery{gap:12px}.home .portfolio .work-media .media-open{width:32px;height:32px;left:12px;bottom:12px}}
@media(max-width:640px){.home .work-grid .work-card:nth-child(n){margin-bottom:14px}.home .work-grid .work-card:last-child{margin-bottom:0}}
@media(prefers-reduced-motion:reduce){.home .work-card.visual-wait,.home .work-card.visual-in{opacity:1;transform:none;transition:none}.home .portfolio .work-media img{transition:none}.home .portfolio .work-media:hover img{transform:none}}
.home .portfolio .work-card[data-media-kind=image][data-click-video=true] .media-open{display:grid;place-items:center}
@media print{.home .work-grid.modular-gallery{display:block}.home .work-grid.modular-gallery .work-media{height:auto;aspect-ratio:var(--ratio)}.home .work-card.visual-wait{opacity:1;transform:none}}
