/**
 * mesh.art — Shared card styles
 */
.m-grid{max-width:1100px;margin:1.5rem auto 4rem;padding:0 2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem}
.m-card{background:rgba(255,255,255,0.55);border:1px solid rgba(139,105,20,0.06);border-radius:12px;overflow:hidden;cursor:pointer;text-decoration:none;color:inherit;transition:transform 0.3s,box-shadow 0.3s;animation:m-fadeUp 0.4s ease both;display:flex;flex-direction:column}
.m-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.08)}
@keyframes m-fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.m-card-img{aspect-ratio:4/3;background:#d5d0c9;overflow:hidden;display:flex;align-items:center;justify-content:center}
.m-card-img img{width:100%;height:100%;object-fit:cover}
.m-card-img-empty{font-family:'Lato',sans-serif;font-size:2.4rem;font-weight:900;color:rgba(139,105,20,0.18)}
.m-card-body{padding:1rem 1.1rem;flex:1;display:flex;flex-direction:column}
.m-card-title{font-size:1rem;font-weight:600;color:#1a1a1a;margin-bottom:0.15rem;line-height:1.3}
.m-card-subtitle{font-size:0.78rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:#8b6914;margin-bottom:0.3rem}
.m-card-meta{font-size:0.75rem;color:#6a6a6a;margin-bottom:0.4rem}
.m-card-desc{font-size:0.82rem;color:#5a5a5a;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:0.5rem}
.m-card-badges{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:auto;padding-top:0.4rem}
.m-badge{padding:0.15rem 0.5rem;border-radius:10px;font-size:0.62rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;white-space:nowrap}
.m-badge-gold{background:rgba(139,105,20,0.08);color:#8b6914}
.m-badge-blue{background:rgba(59,130,246,0.08);color:#3b82f6}
.m-badge-purple{background:rgba(168,85,247,0.08);color:#a855f7}
.m-badge-green{background:rgba(34,197,94,0.08);color:#16a34a}
.m-badge-coral{background:rgba(234,88,12,0.08);color:#ea580c}
.m-badge-gray{background:rgba(0,0,0,0.04);color:#6a6a6a}
@media(max-width:768px){.m-grid{padding:0 1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}
@media(max-width:480px){.m-grid{grid-template-columns:1fr}}
