.gallery-container { padding: 1rem; } .card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1rem; } .card-cell { cursor: pointer; border-radius: 8px; overflow: hidden; background: #1a1a2e; transition: transform 0.15s, box-shadow 0.15s; border: 2px solid transparent; } .card-cell:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4); } .card-cell.selected { border-color: #ffd700; box-shadow: 0 0 12px rgba(255, 215, 0, 0.5); } .card-image-wrapper { width: 100%; aspect-ratio: 5 / 7; overflow: hidden; background: #16213e; } .card-image-wrapper img { width: 100%; height: 100%; object-fit: cover; display: block; } .card-label { display: flex; justify-content: space-between; align-items: center; padding: 0.4rem 0.6rem; background: #0f3460; color: #eee; font-size: 0.8rem; } .card-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; min-width: 0; } .card-cost { flex-shrink: 0; margin-left: 0.4rem; font-weight: bold; color: #ffd700; } .filters { align-items: stretch; } .card-detail { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1050; background: #1a1a2e; border-radius: 12px; padding: 0; max-width: 700px; width: 90vw; max-height: 85vh; overflow-y: auto; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6); color: #eee; } .detail-close { position: absolute; top: 0.5rem; right: 0.5rem; z-index: 1; filter: invert(1); } .detail-layout { display: flex; gap: 1.5rem; padding: 1.5rem; } .detail-image { flex: 0 0 240px; } .detail-image img { width: 100%; border-radius: 8px; } .detail-info { flex: 1; min-width: 0; } .detail-info h2 { margin-top: 0; margin-bottom: 0.75rem; font-size: 1.4rem; } .detail-meta { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1rem; } .detail-info p { margin-bottom: 0.5rem; font-size: 0.9rem; line-height: 1.4; } .modal-backdrop { position: fixed; inset: 0; z-index: 1040; background: rgba(0, 0, 0, 0.6); } @media (max-width: 600px) { .detail-layout { flex-direction: column; padding: 1rem; } .detail-image { flex: 0 0 auto; max-width: 200px; margin: 0 auto; } .card-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 0.75rem; } }