@import url("public_release.css");

body { font-size: 16px; line-height: 1.6; }
a { color: #a1f2b1; text-underline-offset: 4px; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid #a1f2b1; outline-offset: 3px; }
.catalog { width: min(100%, 1280px); margin: auto; padding: 40px 40px 24px; flex: 1; }
.filters { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: end; padding: 20px; border: 1px solid #365448; border-radius: 12px; margin-bottom: 32px; }
.filter-field { display: grid; gap: 8px; min-width: 0; }
.filters label { font-size: .875rem; color: #c6d6cc; }
.filters input, .filters button { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #365448; border-radius: 8px; padding: 10px 14px; font: inherit; }
.filters input { background: #192923; color: #f4f7f5; }
.filters input::placeholder { color: #c6d6cc; }
.filters button { cursor: pointer; background: #a1f2b1; color: #12251b; font-weight: 700; }
.release-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.release-card { min-width: 0; }
.release-card a { display: block; text-decoration: none; color: inherit; }
.release-card a:hover .release-title, .release-card a:focus-visible .release-title { color: #a1f2b1; text-decoration: underline; }
.release-card__cover { display: block; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 12px; background: #283d34; }
.release-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cover-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: #a1f2b1; font: 700 2rem "Space Grotesk", sans-serif; }
.release-title { display: block; font: 700 clamp(18px, 2vw, 22px)/1.3 "Space Grotesk", sans-serif; margin-top: 16px; overflow-wrap: anywhere; }
.release-card .release-artists { margin: 8px 0 4px; color: #c6d6cc; font-size: .875rem; line-height: 1.6; overflow-wrap: anywhere; }
.release-date { margin: 0; color: #c6d6cc; font-size: .75rem; font-variant-numeric: tabular-nums; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 24px; flex-wrap: wrap; margin: 40px 0 8px; }
.pagination a { display: inline-flex; min-height: 44px; align-items: center; }
.load-status { min-height: 3.2em; text-align: center; color: #c6d6cc; }
.empty { padding: 32px 0 16px; margin: 0; color: #c6d6cc; }
.catalog-footer { text-align: center; padding: 24px 20px; border-top: 1px solid #365448; }
@media (max-width: 1099px) { .release-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 799px) { .release-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .catalog { padding: 24px 20px; }
  .filters { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 16px 12px; }
  .filter-field { grid-column: 1 / -1; }
  .release-grid { gap: 24px 12px; }
}
@media (max-width: 359px) { .release-grid { grid-template-columns: minmax(0, 1fr); } }

.release-card--reveal { animation: catalog-reveal 500ms ease-out var(--reveal-delay, 0ms) backwards; }
@keyframes catalog-reveal {
  from { opacity: .65; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}
@media (hover: hover) and (pointer: fine) {
  .release-card img { transition: transform 250ms ease; }
  .release-card a:hover img { transform: scale(1.035); }
}
@media (prefers-reduced-motion: reduce) {
  .release-card--reveal { animation: none; }
  .release-card img { transition: none; }
  .release-card a:hover img { transform: none; }
}
