/* Collection: only title, subtitle and media. */
.cr-project-gallery { background: var(--cr-ink); padding-bottom: clamp(32px,5vw,72px); }
.cr-project-gallery__heading { padding-top: clamp(46px,6vw,86px); padding-bottom: clamp(32px,4vw,58px); }
.cr-project-gallery .cr-project-gallery__heading h1 { max-width:1100px; margin:0; color:var(--cr-paper); font-family:var(--cr-serif); font-size:clamp(2rem,3.4vw,3.65rem); font-style:italic; font-weight:400; line-height:1.14; letter-spacing:-.035em; overflow-wrap:anywhere; }
.cr-project-gallery__heading h1::before { content:''; display:block; width:42px; height:1px; margin-bottom:24px; background:var(--cr-accent); }
.cr-project-gallery__heading > p { max-width:700px; margin:18px 0 0; color:var(--cr-muted); font-size:.96rem; line-height:1.7; }
.cr-project-gallery .cr-project-mosaic { columns:4; column-gap:12px; padding:0 12px; background:transparent; }
.cr-project-mosaic .cr-masonry-gallery__item { margin:0 0 12px; break-inside:avoid; border-radius:12px; }
.cr-project-mosaic a { display:block; position:relative; color:#fff; isolation:isolate; }
.cr-project-mosaic a:focus-visible { outline:2px solid var(--cr-accent); outline-offset:-4px; }
.cr-project-mosaic img { display:block; width:100%; height:auto; }
.cr-project-mosaic__film a { min-height:190px; aspect-ratio:4 / 3; background:#20201c; }
.cr-project-mosaic__film a::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 40%,rgba(0,0,0,.8)); pointer-events:none; }
.cr-project-mosaic__film img { width:100%; height:100%; object-fit:cover; }
.cr-project-mosaic__play { position:absolute; z-index:1; top:50%; left:50%; display:grid; place-items:center; width:54px; height:54px; padding-left:3px; border:1px solid rgba(255,255,255,.7); border-radius:50%; color:#fff; background:rgba(0,0,0,.3); transform:translate(-50%,-50%); transition:background .2s,color .2s; }
.cr-project-mosaic__film a:is(:hover,:focus-visible) .cr-project-mosaic__play { background:var(--cr-action-bg); background-size:180% 100%; background-position:100% 50%; color:var(--cr-action-text); border-color:var(--cr-action-edge); box-shadow:inset 0 1px 0 #fff5,0 8px 28px #bd945955; }
.cr-project-mosaic__label { position:absolute; z-index:1; bottom:18px; left:20px; right:20px; font-size:.78rem; line-height:1.5; overflow-wrap:anywhere; }
/* Shared viewer: navigation never covers the native playback controls. */
body.lightbox-is-open { overflow: hidden; }
html:has(.cr-lightbox[open]) { overflow: hidden; }
.cr-lightbox[data-lightbox] { box-sizing:border-box; width:min(96vw,1500px); height:min(92vh,980px); height:min(92dvh,980px); margin:auto; padding:64px 72px 38px; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:12px; background:#0d0d0d; }
.cr-lightbox[data-lightbox] figure { height:100%; min-height:0; grid-template-rows:minmax(0,1fr) auto; }
.cr-lightbox[data-lightbox] :is(img,video) { display:block; width:100%; height:100%; min-height:0; object-fit:contain; background:#080808; }
.cr-lightbox[data-lightbox] [hidden] { display:none !important; }
.cr-lightbox[data-lightbox] figcaption { padding-top:12px; min-width:0; line-height:1.4; }
.cr-lightbox[data-lightbox] [data-lightbox-caption] { overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.cr-lightbox[data-lightbox] [data-lightbox-counter] { flex:0 0 auto; white-space:nowrap; }
.cr-lightbox[data-lightbox] :is(.cr-lightbox__nav,.cr-lightbox__close) { width:44px; height:44px; min-width:44px; min-height:44px; padding:0; z-index:3; }
.cr-lightbox[data-lightbox] .cr-lightbox__close { top:10px; right:14px; }
.cr-lightbox[data-lightbox] .cr-lightbox__nav--prev { left:14px; }
.cr-lightbox[data-lightbox] .cr-lightbox__nav--next { right:14px; }
.cr-lightbox[data-lightbox] .cr-lightbox__error { position:absolute; z-index:2; left:15%; right:15%; top:42%; margin:0; padding:20px; background:#171717; border:1px solid var(--cr-accent); color:#fff; text-align:center; }
.cr-lightbox__error a { display:inline-block; padding:12px; color:var(--cr-accent); text-decoration:underline; }
@media (max-width:1280px) { .cr-project-gallery .cr-project-mosaic { columns:3; } }
@media (max-width:900px) { .cr-project-gallery .cr-project-mosaic { columns:2; } }
@media (max-width:600px) {
  .cr-lightbox[data-lightbox] { width:100%; height:100vh; height:100dvh; border:0; border-radius:0; padding:max(64px,env(safe-area-inset-top)) 12px max(76px,calc(env(safe-area-inset-bottom) + 64px)); }
  .cr-lightbox[data-lightbox] .cr-lightbox__close { top:max(10px,env(safe-area-inset-top)); right:max(14px,env(safe-area-inset-right)); }
  .cr-lightbox[data-lightbox] .cr-lightbox__nav { top:auto; bottom:max(14px,env(safe-area-inset-bottom)); transform:none; }
  .cr-lightbox[data-lightbox] .cr-lightbox__nav--prev { left:calc(50% - 54px); }
  .cr-lightbox[data-lightbox] .cr-lightbox__nav--next { right:calc(50% - 54px); }
  .cr-lightbox[data-lightbox] figcaption { font-size:.7rem; gap:12px; }
}
@media (max-width:520px) {
  .cr-project-gallery .cr-project-mosaic { columns:1; padding:0 8px; }
  .cr-project-mosaic .cr-masonry-gallery__item { margin-bottom:8px; border-radius:8px; }
  .cr-project-gallery__heading > p { font-size:.9rem; }
}
