:root{--venue-logo-tile:#f2f3f4;--venue-surface:hsl(var(--card));--venue-border:hsl(var(--border));--venue-ink:hsl(var(--foreground));--venue-accent:#dbe54b;--venue-muted:hsl(var(--muted-foreground));--venue-gradient:linear-gradient(135deg,hsl(var(--secondary)),hsl(var(--background)))}
main .grid .gym-card-media img{aspect-ratio:4/3;height:100%;margin:0;background:transparent}.gym-card-media .gym-monogram{position:absolute}.gym-card-media[data-media-type=aquatic],.gym-card-media[data-media-type=waterpark]{--venue-gradient:linear-gradient(135deg,hsl(var(--accent)),hsl(var(--background)))}
.gym-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--venue-border);border-radius:8px;background:var(--venue-surface);color:var(--venue-ink);text-decoration:none;cursor:pointer}.gym-card:hover{border-color:var(--venue-accent)}.gym-card-media{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;overflow:hidden;background:var(--venue-gradient);flex-shrink:0}.gym-card-media img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;margin:0;border-radius:0;transition:filter .2s}.gym-card:hover img{filter:brightness(1.05)}.gym-card-logo{background:var(--venue-logo-tile);padding:24px}.gym-card-logo img{object-fit:contain;width:100%;height:100%;background:transparent}.gym-card-body{display:flex;flex-direction:column;gap:8px;padding:16px;flex:1}.gym-card-body strong{font-size:16px;line-height:1.4;overflow-wrap:anywhere}.gym-card-body>span{font-size:12px;color:var(--venue-muted)}.gym-card-body .gym-type,.gym-card-body .gym-playable{color:var(--venue-accent)}.gym-monogram{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border:1px solid var(--venue-accent);border-radius:8px;color:var(--venue-accent);font-size:28px;font-weight:700;background:var(--venue-gradient)}.gym-monogram[hidden],.gym-card-media img[hidden]{display:none!important}.gym-live-row{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:12px}.gym-live-row .gym-card{flex:0 0 220px;scroll-snap-align:start}.gym-photo-credits{font-size:12px;line-height:1.6;margin:20px 0}.gym-photo-credits summary{cursor:pointer}.gym-photo-credits ul{padding-left:18px}.gym-photo-credits p{margin:8px 0}@media(prefers-reduced-motion:reduce){.gym-card-media img{transition:none}}