.artist-card{cursor:pointer;color:inherit;text-decoration:none}
.audio-bars{display:flex;gap:2px;height:14px;align-items:end;opacity:0;transition:.25s}
.artist-card:hover .audio-bars,.artist-card:focus-visible .audio-bars{opacity:1}
.audio-bars span{--bar-idle:.3;--bar-peak:.78;display:block;width:2px;height:100%;background:currentColor;transform:scaleY(var(--bar-idle));transform-origin:50% 100%;animation:bars .7s ease-in-out infinite alternate;animation-play-state:paused}
.audio-bars span:nth-child(2){--bar-idle:.62;--bar-peak:1;animation-delay:.15s}
.audio-bars span:nth-child(3){--bar-idle:.42;--bar-peak:.86;animation-delay:.3s}
.artist-card:hover .audio-bars span,.artist-card:focus-visible .audio-bars span{animation-play-state:running}
@keyframes bars{from{transform:scaleY(var(--bar-idle))}to{transform:scaleY(var(--bar-peak))}}
@media(prefers-reduced-motion:reduce){.audio-bars span{animation:none}}
.artist-modal{position:fixed;inset:0;background:#050505f5;color:#eee;z-index:100;display:grid;grid-template-columns:42% 58%;opacity:0;pointer-events:none;transition:.35s;overflow:auto}
.artist-modal.open{opacity:1;pointer-events:auto}
.artist-modal .visual{min-height:100svh;background:linear-gradient(0deg,#05050577,#05050511),url('assets/hero-concert-v2.jpg') center/cover;filter:grayscale(1)}
.artist-modal .content{padding:8vw 7vw;position:relative}
.artist-modal .close{position:absolute;right:35px;top:30px;border:1px solid #666;color:white;background:0;width:46px;height:46px;border-radius:50%;font-size:24px;cursor:pointer}
.artist-modal .meta{font:10px Manrope;text-transform:uppercase;letter-spacing:.2em;color:#999}
.artist-modal h2{font:500 clamp(50px,7vw,110px)/.9 Manrope;letter-spacing:-.07em;margin:35px 0}
.artist-modal .role{font:italic 25px Georgia;color:#aaa}
.artist-modal .bio{max-width:670px;line-height:1.8;color:#aaa}
.artist-modal .facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid #333;margin-top:55px;padding-top:25px}
.artist-modal .facts b{display:block;font-size:9px;text-transform:uppercase;color:#666;margin-bottom:8px}
.artist-modal .facts span{font-size:12px}
.artist-modal .book{display:inline-block;margin-top:50px;background:#eee;color:#111;text-decoration:none;padding:17px 22px;font-size:11px}
.profile-note{font-size:9px;color:#666;margin-top:25px}
@media(max-width:760px){.artist-modal{grid-template-columns:1fr}.artist-modal .visual{min-height:38vh}.artist-modal .content{padding:50px 7vw}.artist-modal .facts{grid-template-columns:1fr}}
