.bandcamp-page{margin:-16px;min-height:calc(100vh - 64px);min-height:calc(100dvh - 64px);box-sizing:border-box;overflow-x:hidden;background:var(--bg-primary);color:var(--text-primary);padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}.bandcamp-page *,.bandcamp-page *:before,.bandcamp-page *:after{box-sizing:border-box}.bandcamp-container{width:min(1180px,100%);max-width:100%;margin:0 auto;padding-inline:24px}.bandcamp-hero{position:relative;min-height:420px;background-size:cover;background-position:center;border-bottom:1px solid var(--border-subtle)}.bandcamp-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,12,.35) 0%,rgba(8,8,12,.72) 70%,rgba(8,8,12,.85) 92%,var(--bg-primary) 100%),linear-gradient(90deg,#08080c99,#08080c26)}.bandcamp-hero-content{position:relative;z-index:1;min-height:420px;padding-block:56px;display:grid;grid-template-columns:148px 1fr;gap:32px;align-items:end}.bandcamp-avatar{width:148px;height:148px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.85);box-shadow:var(--shadow-xl)}.bandcamp-kicker{margin:0;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#ffffffb3}.bandcamp-artist-info h1{margin:10px 0 6px;font-size:clamp(2rem,5vw,3.5rem);line-height:1.08;letter-spacing:-.02em;color:#fff}.bandcamp-genre{margin:0;font-size:15px;font-weight:500;color:#ffffffd1}.bandcamp-bio{margin:14px 0 0;max-width:680px;font-size:15px;line-height:1.7;color:#ffffffe0}.bandcamp-bio .ant-btn-link{color:#fff;font-weight:600}.bandcamp-actions-row{margin-top:26px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.bandcamp-follow-btn.ant-btn{height:44px;border-radius:var(--radius-md);padding:0 24px;font-weight:600;background:var(--accent-gradient);color:#fff;border:none;box-shadow:0 8px 24px var(--accent-glow);transition:transform var(--transition-base) ease,box-shadow var(--transition-base) ease}@media(hover:hover)and (pointer:fine){.bandcamp-follow-btn.ant-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px var(--accent-glow);color:#fff}}.bandcamp-follow-btn.ant-btn:active{box-shadow:0 6px 16px var(--accent-glow)}.bandcamp-stats{display:flex;gap:18px;font-size:13px;color:#ffffffc7}.bandcamp-stats strong{color:#fff;font-weight:700}.track-list-section{padding-block:44px}.section-heading{margin-bottom:24px}.section-heading h2{margin:0;font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:-.01em;color:var(--text-primary)}.section-heading p{margin:8px 0 0;font-size:14px;color:var(--text-secondary)}.track-list-grid{display:grid;gap:12px}.track-item{display:grid;grid-template-columns:64px 1fr auto auto;gap:16px;align-items:center;padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface);transition:transform var(--transition-base) ease,background-color var(--transition-base) ease,border-color var(--transition-base) ease,box-shadow var(--transition-base) ease}@media(hover:hover)and (pointer:fine){.track-item:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-md)}}.track-item:active{border-color:var(--accent)}.track-item.is-active{border-color:var(--accent);background:var(--accent-soft)}.track-cover-wrap{position:relative;width:64px;height:64px;border-radius:var(--radius-base);overflow:hidden}.track-cover{width:100%;height:100%;object-fit:cover}.track-locked-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:500;color:#f5f5f7;background:#0009;backdrop-filter:blur(2px)}.track-main{min-width:0}.track-main h3{margin:0;font-size:15px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis}.track-main p{margin:6px 0 0;font-size:13px;color:var(--text-secondary)}.track-meta{display:flex;align-items:center;gap:8px}.track-duration{min-width:48px;font-size:13px;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.track-price-tag.ant-tag{margin:0;padding:4px 12px;font-size:12px;font-weight:600;border-radius:var(--radius-xl);color:var(--accent);background:var(--accent-soft)}.track-actions{display:flex;gap:8px}.track-play-btn.ant-btn{height:38px;border-radius:var(--radius-base);color:var(--text-primary);background:var(--bg-glass-tinted);transition:background-color var(--transition-base) ease}.track-play-btn.ant-btn .anticon{font-size:20px;color:var(--accent)}@media(hover:hover)and (pointer:fine){.track-play-btn.ant-btn:hover{background:var(--accent-soft);color:var(--text-primary)}}.track-play-btn.ant-btn:active{background:var(--accent-soft);color:var(--text-primary)}.track-buy-btn.ant-btn,.track-unlocked-btn.ant-btn{height:38px;border-radius:var(--radius-base);font-weight:600}.track-buy-btn.ant-btn{border:none;background:var(--accent-gradient);color:#fff;box-shadow:0 4px 14px var(--accent-glow)}@media(hover:hover)and (pointer:fine){.track-buy-btn.ant-btn:hover{color:#fff;transform:translateY(-1px);box-shadow:0 6px 18px var(--accent-glow)}}.track-unlocked-btn.ant-btn{border:1px solid var(--border-subtle);background:transparent;color:var(--text-secondary)}@media(max-width:900px){.bandcamp-hero-content{grid-template-columns:1fr;align-items:center;gap:18px}.bandcamp-avatar{width:112px;height:112px}.track-item{grid-template-columns:56px 1fr;grid-template-areas:"cover main" "cover meta" "actions actions";align-items:start;gap:12px}.track-cover-wrap{grid-area:cover;width:56px;height:56px}.track-main{grid-area:main}.track-meta{grid-area:meta}.track-actions{grid-area:actions}}@media(max-width:640px){.bandcamp-container{padding-inline:16px}.bandcamp-hero{min-height:380px}.bandcamp-hero-content{min-height:380px;padding-block:38px}.bandcamp-actions-row{width:100%;align-items:stretch}.bandcamp-follow-btn.ant-btn{width:100%}.bandcamp-stats{width:100%;justify-content:space-between}.track-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}}
