:root{--bg-page: #0c0c0e;--bg-surface: #16161a;--bg-elevated: #1c1c21;--bg-input: #232328;--border-subtle: rgba(255, 255, 255, .06);--border-default: rgba(255, 255, 255, .1);--text-primary: #f0f0f2;--text-secondary: #a1a1aa;--text-muted: #71717a;--accent: #f59e0b;--accent-hover: #fbbf24;--accent-muted: rgba(245, 158, 11, .15);--link: #38bdf8;--link-hover: #7dd3fc;--error: #f87171;--success: #4ade80;--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--topbar-height: 52px}html{font-size:118.75%}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--bg-page);color:var(--text-primary);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration:none;transition:color .15s ease}a:hover{color:var(--link-hover);text-decoration:underline}input,button,select{font:inherit}button{cursor:pointer}.loading{padding:2rem;text-align:center;color:var(--text-secondary)}.btn-primary{background:var(--accent);color:var(--bg-page);border:none;padding:.5rem 1rem;border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:background .15s ease}.btn-primary:hover{background:var(--accent-hover)}.layout{min-height:100vh;display:flex;flex-direction:column}.topbar{height:var(--topbar-height);background:var(--bg-surface);border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;position:sticky;top:0;z-index:100;flex-shrink:0}.topbar-left{display:flex;align-items:center;gap:.75rem}.topbar-logo{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.2rem;letter-spacing:-.02em;color:var(--text-primary);text-decoration:none;transition:color .15s ease}.topbar-logo:hover{color:var(--accent);text-decoration:none}.topbar-logo-img{height:28px;width:auto}.topbar-right{display:flex;align-items:center;gap:1rem}.topbar-user{display:flex;align-items:center;gap:.4rem;color:var(--text-secondary);font-size:.9rem}.topbar-logout-btn{display:flex;align-items:center;gap:.35rem;background:none;border:1px solid var(--border-default);color:var(--text-secondary);padding:.35rem .75rem;border-radius:var(--radius-sm);font:inherit;font-size:.85rem;cursor:pointer;transition:color .15s ease,border-color .15s ease}.topbar-logout-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.topbar-auth-link{display:flex;align-items:center;gap:.35rem;color:var(--text-secondary);font-size:.9rem;text-decoration:none}.topbar-auth-link:hover{color:var(--text-primary);text-decoration:none}.topbar-register-btn{display:flex;align-items:center;gap:.35rem;background:var(--accent);color:var(--bg-page);padding:.4rem .85rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;text-decoration:none;transition:background .15s ease}.topbar-register-btn:hover{background:var(--accent-hover);text-decoration:none}.layout-lower{display:flex;flex:1;min-height:0}.sidebar{width:240px;min-width:240px;background:var(--bg-surface);border-right:1px solid var(--border-default);display:flex;flex-direction:column;padding:1rem 0;box-shadow:var(--shadow-sm);position:sticky;top:var(--topbar-height);height:calc(100vh - var(--topbar-height));overflow-y:auto}.sidebar-nav{flex:1;overflow:auto}.nav-section{margin-bottom:1.5rem}.nav-section-title{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:0 1.25rem .5rem}.nav-section-title--collapsible{cursor:pointer;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none}.nav-section-title--collapsible:hover{color:var(--text-secondary)}.nav-section-arrow{font-size:.65rem}.nav-list{list-style:none;margin:0;padding:0}.nav-list li{margin:0}.nav-list li.nav-item-sub a{padding-left:2.5rem;font-size:.88rem;color:var(--text-muted);border-left-width:2px}.nav-list li.nav-item-sub a:hover,.nav-list li.nav-item-sub a.active{color:var(--text-primary)}.nav-list li.nav-item-sub a.active{color:var(--accent)}.nav-expandable{display:flex;align-items:center}.nav-expandable a{flex:1}.nav-expand-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem .75rem;font-size:.8rem;line-height:1}.nav-expand-btn:hover{color:var(--text-primary)}.nav-list a{display:flex;align-items:center;gap:.6rem;padding:.5rem 1.25rem;color:var(--text-secondary);font-size:1rem;text-decoration:none;border-left:3px solid transparent;margin-left:0;transition:color .15s ease,background .15s ease}.nav-list a:hover{color:var(--text-primary);background:var(--accent-muted);text-decoration:none}.nav-list a.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-muted)}.nav-icon{flex-shrink:0;opacity:.55;transition:opacity .15s ease}.nav-list a:hover .nav-icon,.nav-list a.active .nav-icon{opacity:1}.layout-body{flex:1;min-width:0;display:flex;flex-direction:column}.main{flex:1;padding:1.5rem}.homepage{position:relative;min-height:calc(100vh - 3rem);display:flex;align-items:center;justify-content:center;overflow:hidden}.homepage-img-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.homepage-img-bg-image{width:100%;height:100%;object-fit:cover;object-position:center;opacity:.2;filter:blur(8px) saturate(.6);transform:scale(1.05)}.homepage-content{position:relative;z-index:1;text-align:center;max-width:520px;padding:2rem 1rem}.homepage-title{margin:0 0 .75rem;font-size:clamp(2rem,5vw,2.75rem);font-weight:700;letter-spacing:-.03em;color:var(--text-primary);line-height:1.2}.homepage-tagline{margin:0 0 .5rem;font-size:1.2rem;font-weight:500;color:var(--accent);line-height:1.4}.homepage-desc{margin:0 0 2rem;font-size:1rem;color:var(--text-secondary);line-height:1.6}.homepage-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.homepage-cta{display:inline-block;padding:.65rem 1.35rem;border-radius:var(--radius-sm);font-weight:500;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.homepage-cta.btn-primary{color:var(--bg-page)}.homepage-cta-secondary{background:transparent;border:1px solid var(--border-default);color:var(--text-primary)}.homepage-cta-secondary:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);text-decoration:none}.homepage-featured{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-default);width:100%}.homepage-featured-title{margin:0 0 1.25rem;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.homepage-featured-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.25rem;max-width:480px;margin:0 auto}.featured-release-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.75rem;background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-default);color:inherit;text-decoration:none;transition:border-color .2s ease,background .2s ease,transform .1s ease}.featured-release-card:hover{border-color:var(--accent);background:var(--bg-elevated);text-decoration:none;transform:translateY(-2px)}.featured-release-cover-wrap{position:relative;margin-bottom:.5rem}.featured-release-cover{width:100px;height:100px;object-fit:cover;border-radius:4px;display:block}.featured-release-cover-placeholder{width:100px;height:100px;background:var(--bg-elevated);border-radius:4px}.featured-release-source{display:block;margin-top:.35rem;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.featured-release-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.featured-release-title{font-size:.9rem;font-weight:600;color:var(--text-primary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.featured-release-artist{font-size:.8rem;color:var(--text-muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.auth-page{display:flex;align-items:center;justify-content:center;min-height:60vh}.auth-card{width:100%;max-width:380px;padding:2rem;background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-md)}.auth-card h1{margin-top:0;margin-bottom:1.25rem;font-size:1.5rem;font-weight:600;letter-spacing:-.02em}.auth-card form label{display:block;margin-bottom:.75rem;color:var(--text-secondary);font-size:.9rem}.auth-card form input{display:block;width:100%;padding:.6rem .75rem;margin-top:.25rem;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease}.auth-card form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.auth-card .error{color:var(--error);margin-bottom:.75rem;font-size:.9rem}.auth-card .btn{width:100%;padding:.7rem;margin-top:.5rem;border-radius:var(--radius-sm);border:none;cursor:pointer;font-weight:500;transition:background .15s ease,transform .05s ease}.auth-card .btn:active{transform:scale(.99)}.auth-card .btn-primary{background:var(--accent);color:#0c0c0e}.auth-card .btn-primary:hover{background:var(--accent-hover)}.auth-footer{margin-top:1.25rem;font-size:.9rem;color:var(--text-muted)}.auth-divider{margin:1rem 0 .5rem;text-align:center;color:var(--text-muted);font-size:.9rem}.btn-google{display:block;width:100%;padding:.65rem;margin-top:.5rem;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-primary);text-align:center;text-decoration:none;cursor:pointer;font-weight:500;transition:background .15s ease,border-color .15s ease}.btn-google:hover{background:var(--bg-input);border-color:var(--border-default)}.discover-page{max-width:900px;margin:0 auto;padding:1rem}.discover-hero{margin-bottom:2rem}.discover-hero h1{margin:0 0 .5rem;font-size:1.6rem;font-weight:600;letter-spacing:-.02em}.discover-tagline{margin:0;color:var(--text-secondary);font-size:1rem;line-height:1.5}.discover-tagline strong{color:var(--text-primary)}.discover-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.discover-card{display:block;padding:1.35rem;background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-default);color:inherit;text-decoration:none;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.discover-card:hover{border-color:var(--accent);background:var(--bg-elevated);box-shadow:var(--shadow-md);text-decoration:none}.discover-card-badge{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:.5rem;font-weight:600}.discover-card-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.discover-card-desc{margin:0;font-size:.9rem;color:var(--text-muted);line-height:1.45}.breadcrumb{font-size:.9rem;margin-bottom:.75rem;color:var(--text-muted)}.breadcrumb a{color:var(--link)}.muted{color:var(--text-muted);font-size:.9rem}.provenance-page{max-width:720px;margin:0 auto;padding:1rem}.provenance-page h1{margin:0 0 .5rem;font-weight:600;letter-spacing:-.02em}.provenance-intro{color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.5}.provenance-placeholder{background:var(--bg-surface);padding:1.35rem;border-radius:var(--radius-md);border:1px solid var(--border-default)}.provenance-placeholder ul{margin:.5rem 0 1rem;padding-left:1.5rem}.provenance-placeholder .muted{margin-bottom:0}.provenance-card-tags{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:.35rem;font-size:.8rem}.provenance-card-tag{padding:.2rem .5rem;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary)}.provenance-card-tag-color{background:#f59e0b33;color:var(--accent)}.pv-badge{font-size:.7rem;font-weight:700;padding:.15rem .45rem;line-height:1.3;white-space:nowrap;display:inline-block}.pv-badge-audio{font-family:Courier New,monospace;letter-spacing:.05em;border-radius:3px;border:1px solid}.pv-audio-aaa{background:#052e16;color:#4ade80;border-color:#166534}.pv-audio-aad{background:#052e16;color:#86efac;border-color:#14532d}.pv-audio-add{background:#1a1a1a;color:#a3a3a3;border-color:#333}.pv-audio-ddd{background:#1a1a1a;color:#737373;border-color:#333}.pv-badge-grade{border-radius:3px 3px 8px 8px;padding:.2rem .55rem .3rem;text-align:center;min-width:1.6rem}.pv-grade-Ap{background:linear-gradient(135deg,#b45309,#d97706);color:#fff;box-shadow:0 0 6px #d9770666}.pv-grade-A{background:linear-gradient(135deg,#92400e,#b45309);color:#fde68a}.pv-grade-B{background:#1e3a5f;color:#7dd3fc}.pv-grade-C{background:#2a2a2a;color:#a3a3a3}.pv-grade-D{background:#1a1a1a;color:#525252}.pv-badge-fomo{border-radius:12px;padding:.15rem .5rem}.pv-badge-fomo:before{content:"🔥";font-size:.65rem}.pv-fomo-high{background:#450a0a;color:#fca5a5;border:1px solid #7f1d1d}.pv-fomo-medium{background:#451a03;color:#fed7aa;border:1px solid #78350f}.badge-legend{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:1rem;padding:.5rem .75rem;background:#111;border-radius:6px;border:1px solid #262626}.badge-legend-item{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:#737373}.page.collection-stats{max-width:960px}.collection-stats .breadcrumb{margin-bottom:.5rem;font-size:.9rem;color:var(--text-secondary)}.collection-stats .breadcrumb a{color:var(--link)}.collection-stats h1{margin-top:0;margin-bottom:.25rem;font-weight:600;letter-spacing:-.02em}.collection-stats .subtitle{color:var(--text-secondary);margin-bottom:1.5rem}.collection-stats .chart-wrap{background:var(--bg-surface);border-radius:var(--radius-md);padding:1.25rem;margin-bottom:1rem;border:1px solid var(--border-default)}.collection-stats .chart-tooltip{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.9rem}.collection-stats .error{color:var(--error)}.wishlist-share-bar{background:var(--bg-surface);padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-default);margin-bottom:1rem}.wishlist-grid{display:flex;flex-direction:column;gap:.75rem}.wishlist-card{background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-default);padding:1rem;transition:border-color .2s ease,box-shadow .2s ease}.wishlist-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.wishlist-card--purchased{opacity:.55}.wishlist-card-inner{display:flex;gap:1rem;align-items:flex-start}.wishlist-card-cover-wrap{flex-shrink:0}.wishlist-card-cover{width:140px;height:140px;object-fit:cover;border-radius:6px;background:#222}.wishlist-card-cover-placeholder{display:block;background:linear-gradient(135deg,#1c1c21,#2a2a30)}.wishlist-card-body{flex:1;min-width:0}.wishlist-card-title{margin:0 0 .15rem;font-size:1.05rem;font-weight:600;color:var(--text-primary);line-height:1.3}.wishlist-card-artist{font-size:.95rem;color:var(--text-secondary);margin-bottom:.35rem}.wishlist-card-label{font-size:.85rem;color:var(--text-muted);margin-bottom:.4rem}.wishlist-card-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.4rem}.wishlist-badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);font-size:.75rem;font-weight:500}.wishlist-badge--aaa{background:#f59e0b33;color:var(--accent);font-weight:600}.wishlist-badge--purchased{background:#22c55e33;color:#22c55e}.wishlist-card-rating{font-size:.85rem;color:var(--text-muted);margin-bottom:.35rem}.wishlist-card-desc{font-size:.88rem;font-style:italic;color:var(--text-secondary);margin:.3rem 0}.wishlist-card-note{font-size:.85rem;color:var(--text-muted);margin:.2rem 0}.wishlist-card-actions{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.wishlist-card-link{font-size:.85rem;color:var(--link);text-decoration:none}.wishlist-card-link:hover{text-decoration:underline}.wishlist-card-remove{background:none;border:1px solid var(--border-default);color:var(--text-muted);padding:.25rem .6rem;border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:color .15s ease,border-color .15s ease}.wishlist-card-remove:hover{color:#ef4444;border-color:#ef4444}.wishlist-promo{text-align:center;margin-top:3rem;padding:2rem;background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-default)}.delight-card{background:var(--card-bg, #1a1a2e);border:1px solid var(--border-color, #333);border-left:3px solid var(--accent-color, #e94560);border-radius:8px;padding:12px 16px;margin:12px 0}.delight-card--compact{padding:8px 12px;margin:8px 0}.delight-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.delight-card__type{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-color, #e94560);font-weight:600}.delight-card__dismiss{background:none;border:none;color:var(--text-muted, #888);font-size:1.2rem;cursor:pointer;padding:0 4px;line-height:1}.delight-card__dismiss:hover{color:var(--text-color, #eee)}.delight-card__text{font-size:.9rem;line-height:1.5;color:var(--text-color, #e0e0e0);margin:0}a.album-link{color:inherit;text-decoration:none;transition:color .15s}a.album-link:hover,a.album-link:hover .collection-title,a.album-link:hover .wishlist-card-title,a.album-link:hover .rec-card-title{color:var(--link-hover, #7dd3fc)}.dash-daily-spin{border-left:3px solid var(--accent)}.dash-spin-body{display:flex;gap:.8rem;align-items:flex-start;margin-top:.4rem}.dash-spin-cover{border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.dash-spin-text{margin:0;font-size:.9rem;line-height:1.55;color:var(--text-primary)}.dash-spin-dismiss{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:.2rem .4rem;margin-left:auto}.dash-spin-dismiss:hover{color:var(--text-primary)}.collection-pressing-insight{margin:.3rem 0 .2rem;padding:.4rem .6rem;font-size:.8rem;line-height:1.45;color:var(--text-secondary);border-left:2px solid var(--accent-muted);background:var(--bg-elevated);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.collection-pressing-insight p{margin:0}.collection-insight-refs,.dash-spin-refs{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.collection-ref-link{font-size:.7rem;color:var(--text-muted);text-decoration:none;padding:.1rem .4rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.collection-ref-link:hover{color:var(--link);border-color:var(--link)}
