
/* Square detail views keep the supplied artwork photograph intact. */
.photo-detail{display:block;position:relative;overflow:hidden;aspect-ratio:1;width:100%}
.art-frame figure:has(.photo-detail){display:grid;place-items:center}
.art-frame .photo-detail{width:auto;height:100%;max-width:100%}
.lightbox-stage .photo-detail{width:min(100%,calc(100vh - 240px));align-self:center}
.photo-detail>img,.art-frame .photo-detail>img,.lightbox-stage .photo-detail>img{position:absolute;width:var(--detail-width);height:var(--detail-height);left:var(--detail-left);top:var(--detail-top);max-width:none;max-height:none;object-fit:fill;transform:none}

/* A fine frame keeps each artwork's photographs and description together. */
.gallery-grid .art-card{border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:0;min-width:0}
.gallery-grid .art-frame{box-shadow:none}
.gallery-grid .art-frame:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.gallery-grid .art-meta{padding:20px 18px 22px}
.gallery-grid.editorial .art-meta{padding:22px 22px 22px 0}
@media(max-width:720px){.gallery-grid.editorial .art-meta{padding:20px 18px 22px}}


/* Small card actions sit below the caption; the conversation stays in the viewer. */
.gallery-card-social{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}
.gallery-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.gallery-card-actions .heart-button,.gallery-card-comment{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:44px;max-width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);font:500 .8rem/1.2 var(--sans);cursor:pointer;touch-action:manipulation}
.gallery-card-actions svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gallery-card-actions .heart-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}
.gallery-card-actions .heart-button[aria-pressed=true] svg{fill:currentColor}
.gallery-card-actions button:hover{background:var(--panel)}
.gallery-card-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.gallery-card-actions button:disabled{opacity:.6;cursor:wait}
.gallery-card-actions [hidden]{display:none}
.gallery-grid .art-meta .art-description{margin:0;color:var(--muted);font-size:.92rem}
.gallery-grid .art-meta .gallery-card-status{margin:8px 0 0;color:var(--muted);font-size:.8rem;line-height:1.4}
.gallery-card-status:empty{display:none}
.gallery-card-composer{margin-top:12px}
.gallery-card-composer[hidden]{display:none}
.gallery-card-composer label{display:grid;gap:7px;font-size:.85rem;color:var(--ink)}
.gallery-card-composer textarea{box-sizing:border-box;width:100%;min-height:90px;max-height:200px;padding:10px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:16px/1.45 var(--sans);resize:vertical}
.gallery-card-composer form>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.gallery-card-composer button,.gallery-card-composer a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);font:500 .8rem/1.3 var(--sans);cursor:pointer}
.gallery-card-composer [data-card-view-comments]{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.gallery-card-composer button:focus-visible,.gallery-card-composer a:focus-visible,.gallery-card-composer textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gallery-card-composer [type=submit]{background:var(--accent);color:var(--paper)}
.gallery-card-composer :disabled{opacity:.6;cursor:wait}
.gallery-card-composer p{font-size:.85rem;line-height:1.5}

/* Compact, equal-height previews open the same photo viewer. */
.gallery-grid:not(.editorial) .art-card{display:flex;flex-direction:column}
.gallery-grid .art-meta{display:flex;flex-direction:column;min-width:0;padding:12px 16px 8px}
.gallery-grid.editorial .art-meta{padding:12px 16px 8px}
.gallery-grid .art-meta .art-facts{margin:0 0 4px}
.gallery-grid .art-meta h3{min-height:0;margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gallery-grid .art-meta .art-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;line-height:1.5;height:4.5em;min-height:4.5em;margin:0}
.gallery-grid .art-more{align-self:flex-start;display:inline-flex;align-items:center;min-width:44px;min-height:24px;margin-top:2px;color:var(--accent);font:600 .85rem/1.4 var(--sans);text-decoration:underline;text-underline-offset:3px}
.gallery-grid .art-more:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.gallery-grid .gallery-card-social{margin-top:4px;padding-top:4px}

/* Album rows use their photo height for readable, top-aligned copy. */
.gallery-grid .art-more[hidden]{display:inline-flex;visibility:hidden;pointer-events:none}
.gallery-grid.editorial{gap:32px}
.gallery-grid.editorial .art-card{grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);align-items:start;gap:0}
.gallery-grid.editorial .art-meta{padding:18px 20px 14px;align-self:start}
.gallery-grid.editorial .art-meta h3{order:-2;white-space:normal;overflow:visible;font-size:1.85rem;line-height:1.15;margin:0 0 6px}
.gallery-grid.editorial .art-meta .art-facts{order:-1;margin:0 0 12px;color:var(--muted)}
.gallery-grid.editorial .art-meta .art-description{height:auto;min-height:0;-webkit-line-clamp:var(--preview-lines,8);line-clamp:var(--preview-lines,8)}
.gallery-grid.editorial .art-more[hidden]{display:none}
.gallery-grid.editorial .gallery-card-social{margin-top:8px;padding-top:8px}
@media(max-width:720px){
  .gallery-grid.editorial .art-card{grid-template-columns:1fr}
  .gallery-grid.editorial .art-meta{padding:14px 16px 12px}
}
