.photo-tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; }
.photo-tile { position:relative; min-height:320px; background:linear-gradient(160deg,#111,#666); color:#fff; text-decoration:none; display:flex; align-items:flex-end; overflow:hidden; border:1px solid #ccc; }
.photo-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.photo-tile .overlay { position:relative; width:100%; padding:14px; background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.78)); }
.photo-tile-title { font-size:26px; font-weight:900; line-height:1.1; }
.photo-masonry { column-count:3; column-gap:18px; }
.photo-card { break-inside:avoid; margin:0 0 18px; border:1px solid #ccc; background:#fff; display:block; color:#111; text-decoration:none; }
.photo-card img { display:block; width:100%; aspect-ratio:4 / 3; height:auto; object-fit:cover; background:#e9e3d7; }
.photo-card .meta { padding:10px 12px; }
.photo-card .meta strong { display:block; margin-bottom:5px; }
.photo-placeholder { min-height:160px; display:flex; align-items:center; justify-content:center; text-align:center; padding:18px; background:linear-gradient(135deg,#eee,#d2d2d2); }
.photo-toolbar--tight { margin-bottom: 0; }
.photo-toolbar--end { justify-content: flex-end; }
.photo-photo-delete-actions { margin-top: 14px; }
.photo-card-link-reset { color: inherit; text-decoration: none; display: block; }
@media (max-width: 1100px) { .photo-masonry { column-count:2; } }
@media (max-width: 720px) { .photo-masonry { column-count:1; } }
@media (max-width: 640px) { .photo-tiles { grid-template-columns:1fr; } }
