.band-card[data-v-28b3c6f7]{position:relative;display:block;background:var(--ink);text-decoration:none;color:inherit;cursor:pointer;overflow:hidden;transition:background .2s;border:1px solid var(--rule)}.band-card[data-v-28b3c6f7]:hover{background:var(--ink-2)}.band-card__photo[data-v-28b3c6f7]{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--ink-3)}.band-card__photo img[data-v-28b3c6f7]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;filter:contrast(1.05) saturate(.95);transition:transform .5s ease}.band-card:hover .band-card__photo img[data-v-28b3c6f7]{transform:scale(1.06)}.band-card__photo[data-v-28b3c6f7]:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,hsla(0,0%,4%,.9));pointer-events:none}.band-card__placeholder[data-v-28b3c6f7]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:64px;background:var(--ink-3)}.band-card__num[data-v-28b3c6f7]{position:absolute;top:12px;left:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--paper);background:var(--blood);padding:4px 8px;z-index:2}.band-card__voted[data-v-28b3c6f7]{top:12px;font-family:var(--font-block);font-size:11px;letter-spacing:.12em;padding:6px 10px;text-transform:uppercase;transform:rotate(3deg);border:2px solid var(--ink)}.band-card__play[data-v-28b3c6f7],.band-card__voted[data-v-28b3c6f7]{position:absolute;right:12px;color:var(--ink);background:var(--paper);z-index:2}.band-card__play[data-v-28b3c6f7]{bottom:12px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:none}.band-card:hover .band-card__play[data-v-28b3c6f7]{opacity:1;transform:translateY(0)}.band-card__action[data-v-28b3c6f7]{position:absolute;bottom:12px;right:60px;width:32px;height:32px;background:transparent;color:var(--paper);border:1px solid var(--rule-strong);display:flex;align-items:center;justify-content:center;z-index:3;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s,background .15s,color .15s;cursor:pointer}.band-card:hover .band-card__action[data-v-28b3c6f7]{opacity:1;transform:translateY(0)}.band-card__action[data-v-28b3c6f7]:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}.band-card__meta[data-v-28b3c6f7]{padding:16px 18px 18px;border-top:1px solid var(--rule);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.band-card__info[data-v-28b3c6f7]{min-width:0}.band-card__title[data-v-28b3c6f7]{font-family:var(--font-block);font-weight:400;font-size:16px;line-height:1;margin:0 0 6px;text-transform:uppercase;letter-spacing:.01em;color:var(--paper);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.band-card__city[data-v-28b3c6f7]{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.band-card__votes[data-v-28b3c6f7]{font-family:var(--font-display);font-size:32px;line-height:.85;color:var(--blood)}.band-card__votes .lbl[data-v-28b3c6f7]{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;color:var(--muted);text-align:right;margin-top:2px}.band-card__arrow[data-v-28b3c6f7]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--muted);border:1px solid var(--rule-strong);transition:color .15s,background .15s,border-color .15s;flex-shrink:0}.band-card:hover .band-card__arrow[data-v-28b3c6f7]{color:var(--paper);background:var(--blood);border-color:var(--blood)}.band-card__vote[data-v-28b3c6f7]{display:flex;width:calc(100% - 36px);margin:0 18px 18px}.band-card__toast[data-v-28b3c6f7]{position:absolute;bottom:12px;left:12px;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;background:var(--paper);color:var(--ink);padding:6px 10px;z-index:4;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--blood);animation:cardToast-28b3c6f7 .25s ease}@keyframes cardToast-28b3c6f7{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.band-card__title[data-v-28b3c6f7]{font-size:18px;white-space:normal}}.toast[data-v-a72c71a6]{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:var(--paper);color:var(--ink);padding:16px 24px;font-family:var(--font-block);font-size:13px;letter-spacing:.1em;text-transform:uppercase;z-index:200;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--blood);display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px)}@media(max-width:600px){.toast[data-v-a72c71a6]{bottom:16px;left:16px;right:16px;transform:none;font-size:12px;padding:14px 18px;box-shadow:4px 4px 0 var(--blood)}}.toast--error[data-v-a72c71a6]{box-shadow:6px 6px 0 var(--blood-3)}.toast--warning[data-v-a72c71a6]{box-shadow:6px 6px #d29922}.toast--info[data-v-a72c71a6]{box-shadow:6px 6px 0 var(--ink)}.toast__check[data-v-a72c71a6]{width:24px;height:24px;background:var(--blood);color:var(--paper);display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast--error .toast__check[data-v-a72c71a6]{background:var(--blood-3)}.toast--warning .toast__check[data-v-a72c71a6]{background:#d29922}.toast--info .toast__check[data-v-a72c71a6]{background:var(--ink)}.toast__message[data-v-a72c71a6]{flex:1;font-family:var(--font-block);font-size:inherit;line-height:1.2;letter-spacing:.1em}.toast-enter-active[data-v-a72c71a6]{animation:toast-in-a72c71a6 .25s ease}.toast-leave-active[data-v-a72c71a6]{animation:toast-out-a72c71a6 .2s ease forwards}@keyframes toast-in-a72c71a6{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toast-out-a72c71a6{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(20px)}}@media(max-width:600px){@keyframes toast-in-a72c71a6{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out-a72c71a6{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}}
