.BottomPlayer-module-scss-module__YTmOta__player{background:var(--surface-0);border-top:1px solid var(--rule);height:72px;padding:0 var(--space-5);z-index:1000;justify-content:space-between;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.BottomPlayer-module-scss-module__YTmOta__miniProgress{background:var(--rule);cursor:pointer;z-index:1;height:2px;transition:height .15s;position:absolute;top:-2px;left:0;right:0}.BottomPlayer-module-scss-module__YTmOta__miniProgress:hover{height:4px}.BottomPlayer-module-scss-module__YTmOta__miniProgressFill{background:var(--ink-primary);height:100%;transition:width .15s linear}.BottomPlayer-module-scss-module__YTmOta__trackInfo{align-items:center;gap:var(--space-3);cursor:pointer;min-width:220px;max-width:30%;display:flex}.BottomPlayer-module-scss-module__YTmOta__cover{flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.BottomPlayer-module-scss-module__YTmOta__coverPlaceholder{background:var(--surface-1);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.BottomPlayer-module-scss-module__YTmOta__coverPlaceholderGlyph{font-family:var(--font-mono);font-size:var(--type-sm);color:var(--ink-muted)}.BottomPlayer-module-scss-module__YTmOta__meta{flex-direction:column;gap:2px;display:flex;overflow:hidden}.BottomPlayer-module-scss-module__YTmOta__titleRow{align-items:center;gap:var(--space-2);display:flex;overflow:hidden}.BottomPlayer-module-scss-module__YTmOta__title{color:var(--ink-primary);font-size:var(--type-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.BottomPlayer-module-scss-module__YTmOta__playingIndicator{flex-shrink:0;align-items:flex-end;gap:2px;height:12px;display:flex}.BottomPlayer-module-scss-module__YTmOta__waveformBar{background-color:var(--blood,#6b0000);width:2px;animation:.6s ease-in-out infinite alternate BottomPlayer-module-scss-module__YTmOta__waveform}@keyframes BottomPlayer-module-scss-module__YTmOta__waveform{0%{height:3px}to{height:12px}}.BottomPlayer-module-scss-module__YTmOta__artist{font-family:var(--font-mono);color:var(--ink-muted);font-size:var(--type-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.BottomPlayer-module-scss-module__YTmOta__favWrap{margin-left:var(--space-3)}.BottomPlayer-module-scss-module__YTmOta__controls{align-items:center;gap:var(--space-2);flex-direction:column;flex:1;max-width:600px;display:flex}.BottomPlayer-module-scss-module__YTmOta__buttons{align-items:center;gap:var(--space-5);display:flex}.BottomPlayer-module-scss-module__YTmOta__btn{color:var(--ink-muted);cursor:pointer;padding:var(--space-1);background:0 0;border:none;align-items:center;transition:color .15s;display:flex}.BottomPlayer-module-scss-module__YTmOta__btn:hover{color:var(--ink-primary)}.BottomPlayer-module-scss-module__YTmOta__playBtn{background:var(--ink-primary);color:var(--surface-0);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:opacity .15s;display:flex}.BottomPlayer-module-scss-module__YTmOta__playBtn:hover{opacity:.85}.BottomPlayer-module-scss-module__YTmOta__playBtn:active{opacity:.7}.BottomPlayer-module-scss-module__YTmOta__time{font-family:var(--font-mono);color:var(--ink-muted);font-size:var(--type-xs);font-variant-numeric:tabular-nums;text-align:center;-webkit-user-select:none;user-select:none;min-width:38px}.BottomPlayer-module-scss-module__YTmOta__progressBar{background:var(--rule);cursor:pointer;flex:1;height:2px;transition:height .1s;position:relative}.BottomPlayer-module-scss-module__YTmOta__progressBar:hover{height:4px}.BottomPlayer-module-scss-module__YTmOta__progressFill{background:var(--ink-primary);height:100%;transition:width .1s linear;position:relative}.BottomPlayer-module-scss-module__YTmOta__volumeControl{align-items:center;gap:var(--space-2);justify-content:flex-end;min-width:140px;display:flex}.BottomPlayer-module-scss-module__YTmOta__volumeIcon{color:var(--ink-muted);flex-shrink:0}.BottomPlayer-module-scss-module__YTmOta__volumeSlider{appearance:none;background:var(--rule);cursor:pointer;outline:none;width:90px;height:2px}.BottomPlayer-module-scss-module__YTmOta__volumeSlider::-webkit-slider-thumb{appearance:none;background:var(--ink-primary);cursor:pointer;width:10px;height:10px;transition:opacity .1s}.BottomPlayer-module-scss-module__YTmOta__volumeSlider::-webkit-slider-thumb:hover{opacity:.8}.BottomPlayer-module-scss-module__YTmOta__sheetBackdrop{z-index:1999;background:#000000b3;animation:.2s BottomPlayer-module-scss-module__YTmOta__fadeIn;position:fixed;inset:0}@keyframes BottomPlayer-module-scss-module__YTmOta__fadeIn{0%{opacity:0}to{opacity:1}}.BottomPlayer-module-scss-module__YTmOta__sheet{z-index:2000;background:var(--surface-0);border-top:1px solid var(--rule);padding:var(--space-6);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));align-items:center;gap:var(--space-5);flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) BottomPlayer-module-scss-module__YTmOta__sheetSlideUp;display:flex;position:fixed;bottom:0;left:0;right:0}@keyframes BottomPlayer-module-scss-module__YTmOta__sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.BottomPlayer-module-scss-module__YTmOta__sheetClose{top:var(--space-4);right:var(--space-4);border:1px solid var(--rule);color:var(--ink-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:32px;height:32px;transition:color .15s,border-color .15s;display:flex;position:absolute}.BottomPlayer-module-scss-module__YTmOta__sheetClose:hover{color:var(--ink-primary);border-color:var(--ink-muted)}.BottomPlayer-module-scss-module__YTmOta__sheetCover{flex-shrink:0;width:200px;height:200px;position:relative;overflow:hidden}.BottomPlayer-module-scss-module__YTmOta__sheetCoverEmpty{background:var(--surface-1);justify-content:center;align-items:center;width:200px;height:200px;display:flex}.BottomPlayer-module-scss-module__YTmOta__sheetMeta{text-align:center;flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.BottomPlayer-module-scss-module__YTmOta__sheetTitle{font-family:var(--font-mono);font-size:var(--type-lg);color:var(--ink-primary);font-weight:700}.BottomPlayer-module-scss-module__YTmOta__sheetArtist{font-family:var(--font-mono);font-size:var(--type-sm);color:var(--ink-secondary)}.BottomPlayer-module-scss-module__YTmOta__sheetAlbum{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em}.BottomPlayer-module-scss-module__YTmOta__sheetProgress{align-items:center;gap:var(--space-3);width:100%;max-width:400px;display:flex}.BottomPlayer-module-scss-module__YTmOta__sheetControls{justify-content:center;align-items:center;gap:var(--space-7);display:flex}.BottomPlayer-module-scss-module__YTmOta__sheetPlayBtn{width:52px;height:52px}.BottomPlayer-module-scss-module__YTmOta__sheetFav{justify-content:center;display:flex}@media (max-width:768px){.BottomPlayer-module-scss-module__YTmOta__player{padding:0 var(--space-4);height:56px;bottom:calc(60px + env(safe-area-inset-bottom,0px))}.BottomPlayer-module-scss-module__YTmOta__trackInfo{flex:1;min-width:auto;max-width:none;overflow:hidden}.BottomPlayer-module-scss-module__YTmOta__cover,.BottomPlayer-module-scss-module__YTmOta__coverPlaceholder{width:36px;height:36px}.BottomPlayer-module-scss-module__YTmOta__volumeControl{display:none}.BottomPlayer-module-scss-module__YTmOta__controls{flex:none;max-width:none}.BottomPlayer-module-scss-module__YTmOta__buttons{gap:var(--space-3)}.BottomPlayer-module-scss-module__YTmOta__btnSkip{display:flex}.BottomPlayer-module-scss-module__YTmOta__playBtn{width:40px;height:40px}.BottomPlayer-module-scss-module__YTmOta__miniProgress,.BottomPlayer-module-scss-module__YTmOta__miniProgress:hover{height:2px}.BottomPlayer-module-scss-module__YTmOta__sheet{padding:var(--space-5);padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px))}.BottomPlayer-module-scss-module__YTmOta__sheetCover,.BottomPlayer-module-scss-module__YTmOta__sheetCoverEmpty{width:160px;height:160px}}
.toolbar{z-index:1000;background:var(--surface-0);border-bottom:1px solid var(--rule);width:100%;height:56px;position:sticky;top:0}.toolbar-inner{align-items:center;gap:var(--space-6);max-width:1200px;height:100%;padding:0 var(--space-6);margin:0 auto;display:flex}.toolbar-brand{font-family:var(--font-mono);font-weight:800;font-size:var(--type-lg);color:var(--ink-primary);letter-spacing:.05em;flex-shrink:0;text-decoration:none}.toolbar-nav{align-items:center;gap:var(--space-5);display:flex}.toolbar-link{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.15em;white-space:nowrap;font-weight:500;text-decoration:none;transition:color .15s}.toolbar-link:hover,.toolbar-link.is-active{color:var(--ink-primary)}.toolbar-right{align-items:center;gap:var(--space-4);margin-left:auto;display:flex}.toolbar-search{position:relative}.search-input{font-family:var(--font-body);font-size:var(--type-sm);color:var(--ink-primary);background:var(--surface-1);border:1px solid var(--rule);padding:var(--space-2) var(--space-3);outline:none;width:180px;transition:border-color .15s,width .2s}.search-input:focus{border-color:var(--ink-muted);width:260px}.search-input::placeholder{color:var(--ink-muted)}.search-spinner{border:1.5px solid var(--ink-muted);border-top-color:var(--ink-primary);width:12px;height:12px;right:var(--space-3);border-radius:50%;animation:.6s linear infinite spin;display:inline-block;position:absolute;top:50%;transform:translateY(-50%)}@keyframes spin{to{transform:translateY(-50%)rotate(360deg)}}.search-dropdown{top:calc(100% + var(--space-2));background:var(--surface-1);border:1px solid var(--rule);width:340px;padding:var(--space-3);z-index:1010;max-height:420px;position:absolute;left:0;overflow-y:auto}.search-section{margin-bottom:var(--space-4)}.search-section:last-child{margin-bottom:0}.search-section-label{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.15em;color:var(--ink-muted);margin-bottom:var(--space-2);padding:0 var(--space-2);font-weight:600}.search-item{align-items:center;gap:var(--space-3);padding:var(--space-2);color:var(--ink-primary);text-decoration:none;transition:background .1s;display:flex}.search-item:hover{background:var(--surface-2);color:var(--ink-primary)}.search-thumb{background:var(--surface-2);flex-shrink:0;width:32px;height:32px;position:relative;overflow:hidden}.search-thumb--empty{background:var(--surface-3)}.search-item-info{flex-direction:column;min-width:0;display:flex}.search-item-title{font-size:var(--type-sm);font-weight:500}.search-item-sub{font-size:var(--type-xs);color:var(--ink-secondary)}.search-empty{color:var(--ink-muted);font-size:var(--type-sm);text-align:center;padding:var(--space-5) 0}.toolbar-action{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-primary);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--rule);padding:var(--space-2) var(--space-3);cursor:pointer;white-space:nowrap;background:0 0;font-weight:500;text-decoration:none;transition:border-color .15s,color .15s}.toolbar-action:hover{border-color:var(--ink-muted);color:var(--ink-primary)}.toolbar-action--dim{color:var(--ink-muted);border-color:#0000}.toolbar-action--dim:hover{color:var(--blood);border-color:#0000}.mobile-search-overlay{top:0;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom,0px));z-index:1100;padding:env(safe-area-inset-top,12px) var(--space-4) 0;flex-direction:column;justify-content:flex-start;align-items:center;display:flex;position:fixed}.mobile-search-backdrop{background:#00000059;animation:.15s cmdFadeIn;position:absolute;inset:0}@keyframes cmdFadeIn{0%{opacity:0}to{opacity:1}}.mobile-search-panel{background:var(--surface-0);border:1px solid var(--rule);z-index:1;width:100%;max-width:480px;margin-top:var(--space-3);flex-direction:column;animation:.2s cubic-bezier(.16,1,.3,1) cmdSlideDown;display:flex;position:relative}@keyframes cmdSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.mobile-search-bar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--rule);display:flex}.mobile-search-bar .search-input{width:auto;font-size:16px;font-family:var(--font-mono);color:var(--ink-primary);background:0 0;border:none;flex:1;padding:0}.mobile-search-bar .search-input:focus{border:none;outline:none;width:auto}.mobile-search-bar .search-input::placeholder{color:var(--ink-muted);font-family:var(--font-mono)}.mobile-search-cancel{font-size:var(--type-lg);color:var(--ink-muted);cursor:pointer;padding:var(--space-2);background:0 0;border:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;line-height:1;display:flex}.mobile-search-results{max-height:50vh;padding:var(--space-3) var(--space-4);overflow-y:auto}.bottom-tab-bar{width:100%;height:calc(60px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface-0);border-top:1px solid var(--rule);z-index:1000;justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0}.tab-item{color:var(--ink-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;cursor:pointer;background:0 0;border:none;border-top:2px solid #0000;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:8px;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:flex}.tab-item:hover,.tab-item.is-active{color:var(--ink-primary);border-top-color:var(--ink-primary)}.tab-item svg{stroke-width:1.5px;width:18px;height:18px}@media (max-width:768px){.toolbar-nav,.toolbar-search{display:none}.toolbar{height:calc(48px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}.toolbar-inner{padding:0 var(--space-4)}.toolbar-action{padding:var(--space-1) var(--space-2);font-size:10px}}@media (min-width:769px){.bottom-tab-bar,.mobile-search-overlay{display:none}}
.ios-install-banner{bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:1100;animation:.4s cubic-bezier(.16,1,.3,1) iosSlideUp;position:fixed;left:50%;transform:translate(-50%)}@keyframes iosSlideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.ios-install-content{-webkit-backdrop-filter:blur(20px);background:#1e1e1ef2;border:1px solid #ffffff1f;border-radius:14px;align-items:center;gap:12px;min-width:280px;max-width:calc(100vw - 32px);padding:14px 16px;display:flex;box-shadow:0 8px 32px #00000080}.ios-install-icon{color:#fff;background:#ffffff1a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.ios-install-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ios-install-text strong{color:#fff;letter-spacing:.3px;font-size:14px;font-weight:600}.ios-install-text span{color:#fff9;font-size:13px;line-height:1.3}.ios-install-close{color:#fff6;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;padding:4px;font-size:16px;line-height:1;transition:color .2s}.ios-install-close:hover{color:#fff}.ios-install-arrow{background:#1e1e1ef2;border-bottom:1px solid #ffffff1f;border-right:1px solid #ffffff1f;width:16px;height:16px;margin:-8px auto 0;transform:rotate(45deg)}@media (min-width:769px){.ios-install-banner{display:none}}

*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{overscroll-behavior-y:none;overflow-x:clip}:root{--surface-0:#08080a;--surface-1:#111114;--surface-2:#1a1a1f;--surface-3:#242429;--ink-primary:#e0ddd8;--ink-secondary:#807c76;--ink-muted:#4a4843;--rule:#1f1f24;--blood:#6b0000;--bg-primary:var(--surface-0);--bg-secondary:var(--surface-1);--bg-elevated:var(--surface-2);--bg-hover:var(--surface-2);--text-primary:var(--ink-primary);--text-secondary:var(--ink-secondary);--text-muted:var(--ink-muted);--text-main:var(--ink-primary);--text-dim:var(--ink-secondary);--accent:#fff;--accent-hover:var(--ink-primary);--accent-glow:transparent;--accent-subtle:#ffffff0a;--accent-blood:var(--blood);--border:var(--rule);--border-accent:#ffffff1f;--radius:0;--radius-sm:0;--radius-md:0;--radius-lg:0;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", monospace;--font-body:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-data:"IBM Plex Mono", "JetBrains Mono", monospace;--font-display:var(--font-mono);--type-xs:.75rem;--type-sm:.875rem;--type-base:1rem;--type-lg:1.25rem;--type-xl:1.75rem;--type-2xl:2.5rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px}body{font-family:var(--font-body);font-size:var(--type-base);background:var(--surface-0);color:var(--ink-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px));line-height:1.5;position:relative;overflow-x:hidden}a{color:inherit;text-decoration:none;transition:color .15s}a:hover{color:var(--ink-primary)}
.nav-links{gap:var(--space-5);align-items:center;display:flex}
.main-content{padding:calc(56px + var(--space-4)) var(--space-6) var(--space-9);max-width:1200px;margin:0 auto;overflow-x:hidden}
.index{padding-bottom:var(--space-9)}.fav-section{margin-bottom:var(--space-8)}.empty-state{text-align:center;padding:var(--space-9) 0;color:var(--ink-muted)}.empty-state h2{font-family:var(--font-mono);font-size:var(--type-lg);margin-bottom:var(--space-3);color:var(--ink-secondary);font-weight:600}.empty-state p{font-size:var(--type-sm);color:var(--ink-muted)}.empty-state a{color:var(--ink-primary);text-decoration:none}.empty-state a:hover{text-decoration:underline}.index-hero{align-items:baseline;gap:var(--space-4);padding:var(--space-7) 0 var(--space-8);display:flex}.index-title{font-family:var(--font-mono);font-size:clamp(var(--type-xl), 5vw, var(--type-2xl));letter-spacing:-.02em;text-transform:uppercase;color:var(--ink-primary);white-space:nowrap;font-weight:800}.index-rule{background:var(--rule);height:1px;min-width:var(--space-6);flex:1}.index-tagline{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.2em;color:var(--ink-muted);white-space:nowrap;font-weight:500}.index-section{margin-bottom:var(--space-8)}.index-list{margin:0;padding:0;list-style:none}.index-list-item{align-items:baseline;gap:var(--space-2);padding:var(--space-3) var(--space-2);color:var(--ink-primary);border-bottom:1px solid #0000;text-decoration:none;transition:background .1s;display:flex}.index-list-item:hover{background:var(--surface-1)}.index-list-artist{flex-shrink:0;font-weight:500}.index-list-sep{color:var(--ink-muted);flex-shrink:0}.index-list-title{font-weight:400}.index-list-year{font-family:var(--font-data);font-size:var(--type-xs);color:var(--ink-muted);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto}.index-list-meta{font-size:var(--type-xs);color:var(--ink-secondary);font-family:var(--font-data);flex-shrink:0;margin-left:auto}
.section-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.section-title{font-family:var(--font-mono);font-size:var(--type-xs);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-secondary);font-weight:600}.section-count{font-family:var(--font-data);font-size:var(--type-xs);color:var(--ink-muted);font-variant-numeric:tabular-nums}.section-link{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:500;text-decoration:none;transition:color .15s}.section-link:hover{color:var(--ink-primary)}.section-rule{background:var(--rule);height:1px;margin:var(--space-3) 0 var(--space-4)}.section-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:baseline;display:flex}.section-header h2{font-family:var(--font-mono);font-size:var(--type-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-secondary);font-weight:600}.section-header a{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:500;text-decoration:none;transition:color .15s}.section-header a:hover{color:var(--ink-primary)}
.records-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.record{gap:var(--space-2);color:var(--ink-primary);flex-direction:column;text-decoration:none;display:flex}.record:hover{color:var(--ink-primary)}.record:hover .record-cover{outline:1px solid var(--ink-muted)}.record-cover{aspect-ratio:1;background:var(--surface-1);outline:1px solid #0000;width:100%;transition:outline-color .15s;position:relative;overflow:hidden}.record-image{object-fit:cover}.record-cover-empty{background:linear-gradient(135deg, var(--surface-1), var(--surface-2));width:100%;height:100%}.record-meta{flex-direction:column;gap:2px;display:flex}.record-title{font-size:var(--type-sm);font-weight:500;line-height:1.3}.record-sub{font-size:var(--type-xs);color:var(--ink-secondary);line-height:1.3}.cards-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.card{gap:var(--space-2);color:var(--ink-primary);cursor:pointer;background:0 0;border:none;border-radius:0;flex-direction:column;padding:0;text-decoration:none;display:flex}.card:hover{filter:none;box-shadow:none;background:0 0;transform:none}.card-img-wrapper{aspect-ratio:1;background:var(--surface-1);width:100%;box-shadow:none;margin-bottom:var(--space-2);border-radius:0;position:relative;overflow:hidden}.card-artist .card-img-wrapper{border-radius:0}.card-image{object-fit:cover}.card-image-placeholder{background:linear-gradient(135deg, var(--surface-1), var(--surface-2));width:100%;height:100%;color:var(--ink-muted);justify-content:center;align-items:center;font-size:0;display:flex}.card-content{flex-direction:column;gap:2px;display:flex}.card h3{font-size:var(--type-sm);white-space:normal;text-overflow:unset;font-weight:500;line-height:1.3;overflow:visible}.card p{color:var(--ink-secondary);font-size:var(--type-xs);white-space:normal;text-overflow:unset;line-height:1.3;overflow:visible}
.artist-header{align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-7);display:flex}.artist-photo-wrap{background:var(--surface-1);flex-shrink:0;width:200px;height:200px;position:relative;overflow:hidden}.artist-photo-empty{background:linear-gradient(135deg, var(--surface-1), var(--surface-2));width:100%;height:100%}.artist-photo{object-fit:cover;width:200px;height:200px;box-shadow:none;border-radius:0;position:relative;overflow:hidden}.artist-photo-placeholder{background:var(--surface-1);width:200px;height:200px;box-shadow:none;border-radius:0;justify-content:center;align-items:center;font-size:0;display:flex}.artist-name,.artist-info h1{font-family:var(--font-mono);font-size:clamp(var(--type-xl), 4vw, var(--type-2xl));letter-spacing:-.02em;text-transform:uppercase;margin-bottom:var(--space-2);font-weight:800;line-height:1.1}.artist-bio{color:var(--ink-secondary);font-size:var(--type-sm);max-width:600px;margin-bottom:var(--space-3);line-height:1.6}.artist-info p{color:var(--ink-secondary);font-size:var(--type-sm);max-width:600px;line-height:1.6}.artist-tags{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.artist-actions{gap:var(--space-3);margin-top:var(--space-4);align-items:center;display:flex}.bio-wrap{margin-bottom:var(--space-3)}.bio-toggle{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);margin-top:var(--space-2);cursor:pointer;text-underline-offset:3px;text-transform:lowercase;letter-spacing:.05em;background:0 0;border:none;padding:0;text-decoration:underline;transition:color .15s}.bio-toggle:hover{color:var(--ink-secondary)}.artist-meta-line{gap:var(--space-3);margin-bottom:var(--space-3);align-items:center;display:flex}.artist-meta-item{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-secondary);letter-spacing:.05em}.artist-status-active{color:#6b8}.artist-status-disbanded{color:var(--ink-muted);text-decoration:line-through}.artist-status-on-hold{color:#ca7}.tag-group{border-style:dashed}.disco-list{flex-direction:column;display:flex}.disco-item{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--rule);color:var(--ink-primary);text-decoration:none;transition:background .1s;display:flex}.disco-item:hover{background:var(--surface-1)}.disco-item:last-child{border-bottom:none}.disco-cover{background:var(--surface-1);flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.disco-info{flex-direction:column;gap:2px;min-width:0;display:flex}.disco-title{font-size:var(--type-sm);font-weight:500;line-height:1.3}.disco-meta{gap:var(--space-2);align-items:center;display:flex}.disco-type{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);background:var(--surface-1);border:1px solid var(--rule);padding:1px var(--space-1);font-size:10px;font-weight:600;line-height:1.3}.disco-year{font-family:var(--font-data);font-size:var(--type-xs);color:var(--ink-secondary)}.play-all-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--rule);color:var(--ink-primary);font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.12em;cursor:pointer;background:0 0;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.play-all-btn:hover{border-color:var(--ink-muted);background:var(--surface-1)}.play-all-icon{flex-shrink:0}.play-all-count{color:var(--ink-muted);font-weight:400}
.album-header{align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-7);display:flex}.album-cover{background:var(--surface-1);flex-shrink:0;width:240px;height:240px;position:relative;overflow:hidden}.album-cover-empty{background:linear-gradient(135deg, var(--surface-1), var(--surface-2));width:100%;height:100%}.album-cover-placeholder{background:var(--surface-1);width:240px;height:240px;box-shadow:none;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;font-size:0;display:flex}.album-meta{flex-direction:column;justify-content:flex-end;min-height:240px;display:flex}.album-title,.album-meta h1{font-family:var(--font-mono);font-size:clamp(var(--type-xl), 3vw, var(--type-2xl));letter-spacing:-.02em;text-transform:uppercase;margin-bottom:var(--space-3);font-weight:800;line-height:1.1}.album-details{align-items:baseline;gap:var(--space-1);font-size:var(--type-sm);color:var(--ink-secondary);flex-wrap:wrap;display:flex}.album-dot{color:var(--ink-muted);-webkit-user-select:none;user-select:none}.album-artist-link{color:var(--ink-primary);font-weight:500;text-decoration:none;transition:color .15s}.album-artist-link:hover{color:var(--ink-secondary)}.album-year,.album-stat{font-family:var(--font-data);font-variant-numeric:tabular-nums}.album-actions{gap:var(--space-3);margin-top:var(--space-4);align-items:center;display:flex}.album-type{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.15em;margin-bottom:var(--space-2);color:var(--ink-muted);font-weight:600}.album-dot{color:var(--ink-muted)}.album-release-type{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);background:var(--surface-1);border:1px solid var(--rule);padding:1px var(--space-1);font-size:10px;font-weight:600}.album-label-link{color:var(--ink-secondary);font-style:italic;text-decoration:none;transition:color .15s}.album-label-link:hover{color:var(--ink-primary)}.album-label-row{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--type-xs);display:flex}.album-catno{font-family:var(--font-data);font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:var(--type-xs)}.album-catno:before{content:"[";color:var(--rule)}.album-catno:after{content:"]";color:var(--rule)}
.tracklist{list-style:none}.track-row{padding:var(--space-2) var(--space-3);cursor:pointer;border-bottom:1px solid #0000;grid-template-columns:36px 1fr 32px 56px;align-items:center;transition:background .1s;display:grid}.track-row:hover,.track-row.is-playing{background:var(--surface-1)}.track-number{font-family:var(--font-data);color:var(--ink-muted);font-size:var(--type-sm);font-variant-numeric:tabular-nums;text-align:center}.track-row:hover .track-number{color:var(--ink-secondary)}.track-row.is-playing .track-number{color:var(--ink-primary)}.track-title{font-size:var(--type-base);font-weight:400}.track-row.is-playing .track-title{color:var(--ink-primary);font-weight:500}.track-duration{font-family:var(--font-data);color:var(--ink-muted);font-size:var(--type-sm);text-align:right;font-variant-numeric:tabular-nums}
.favorite-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:color .2s,transform .2s;display:flex}.favorite-btn:hover{color:var(--accent);transform:scale(1.15)}.favorite-btn.is-favorited{color:var(--accent-blood)}.favorite-btn.is-favorited:hover{color:#a80505}
.access-tooltip{display:inline-block;position:relative}.access-tooltip-content{background:var(--bg-elevated);border:1px solid var(--border-accent);border-radius:var(--radius-sm);color:var(--accent);white-space:nowrap;cursor:pointer;z-index:10;padding:8px 14px;font-size:13px;transition:background .2s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000080}.access-tooltip-content:hover{background:var(--accent-subtle)}.access-tooltip-content:after{content:"";border:6px solid #0000;border-top-color:var(--border-accent);position:absolute;top:100%;left:50%;transform:translate(-50%)}
.modal-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface-0);border:1px solid var(--rule);padding:var(--space-6);width:100%;max-width:420px;position:relative}.modal-card{background:var(--surface-0);border:1px solid var(--rule);padding:var(--space-6);width:100%;max-width:440px}.modal-head{margin-bottom:var(--space-5);justify-content:space-between;align-items:baseline;display:flex}.modal-title{font-family:var(--font-mono);font-size:var(--type-lg);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.modal-close{color:var(--ink-muted);font-size:var(--type-lg);cursor:pointer;background:0 0;border:none;padding:0;line-height:1;transition:color .15s}.modal-close:hover{color:var(--ink-primary)}.modal-card h2{font-family:var(--font-mono);font-size:var(--type-lg);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2);color:var(--ink-primary);font-weight:700}.modal-card p{color:var(--ink-secondary);font-size:var(--type-sm);margin-bottom:var(--space-5);line-height:1.5}.modal-body{max-height:200px;margin-bottom:var(--space-5);overflow-y:auto}.modal-hint{color:var(--ink-muted);font-size:var(--type-sm)}.modal-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.modal-list-item{text-align:left;width:100%;padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--rule);cursor:pointer;color:var(--ink-primary);font-family:inherit;font-size:var(--type-sm);justify-content:space-between;align-items:center;transition:border-color .15s;display:flex}.modal-list-item:hover{border-color:var(--ink-muted)}.modal-list-title{font-weight:500}.modal-list-badge{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em}.modal-divider{background:var(--rule);height:1px;margin:var(--space-5) 0}.modal-section{padding:0}.modal-dropzone{border:1px dashed var(--rule);padding:var(--space-5) var(--space-4);text-align:center;cursor:pointer;align-items:center;gap:var(--space-2);flex-direction:column;transition:border-color .15s;display:flex}.modal-dropzone:hover{border-color:var(--ink-muted)}.modal-dropzone-icon{color:var(--ink-muted)}.modal-dropzone-text{font-size:var(--type-sm);color:var(--ink-secondary)}.modal-subtitle{font-family:var(--font-mono);font-size:var(--type-sm);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-4);color:var(--ink-secondary);font-weight:600}.modal-form{gap:var(--space-4);flex-direction:column;display:flex}.modal-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--rule);color:var(--ink-primary);font-size:var(--type-sm);font-family:var(--font-body);background:0 0;outline:none;transition:border-color .15s}.modal-input:focus{border-color:var(--ink-muted)}.modal-input::placeholder{color:var(--ink-muted)}.modal-checkbox-label{align-items:center;gap:var(--space-2);font-size:var(--type-sm);color:var(--ink-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.modal-checkbox{width:16px;height:16px;accent-color:var(--ink-primary);cursor:pointer}.modal-error{padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--blood,var(--rule));color:var(--blood,var(--ink-primary));font-size:var(--type-xs);font-family:var(--font-mono);margin-bottom:var(--space-4)}.modal-field{margin-bottom:var(--space-4)}.modal-label{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.15em;color:var(--ink-muted);margin-bottom:var(--space-1);font-weight:600;display:block}.modal-textarea{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--rule);color:var(--ink-primary);font-size:var(--type-sm);font-family:var(--font-body);resize:vertical;background:0 0;outline:none;min-height:80px;transition:border-color .15s}.modal-textarea:focus{border-color:var(--ink-muted)}.modal-actions{gap:var(--space-3);margin-top:var(--space-5);justify-content:flex-end;display:flex}.modal-success{text-align:center;padding:var(--space-3) 0}.modal-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.modal-input select,select.modal-input{appearance:none;cursor:pointer}
.favorites-header{margin-bottom:32px}.favorites-header h1{font-family:var(--font-display);letter-spacing:2px;margin-bottom:8px;font-size:clamp(24px,3vw,28px);font-weight:700}.favorites-header p{color:var(--text-secondary);font-size:15px}
.upload-container{max-width:800px;margin:0 auto}.upload-subtitle{color:var(--ink-secondary);font-size:var(--type-sm);margin-bottom:var(--space-6)}.upload-dropzone{border:1px dashed var(--rule);padding:var(--space-9) var(--space-6);text-align:center;cursor:pointer;background:0 0;transition:border-color .15s,background .15s}.upload-dropzone:hover,.upload-dropzone.is-dragging{border-color:var(--ink-muted);background:var(--surface-1)}.upload-dropzone-text{font-family:var(--font-mono);font-size:var(--type-base);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-primary);margin-bottom:var(--space-2);font-weight:600}.upload-dropzone-hint{font-size:var(--type-sm);color:var(--ink-muted)}.upload-album-card{background:var(--surface-1);border:1px solid var(--rule);padding:var(--space-5);margin-bottom:var(--space-5)}.upload-album-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.upload-label{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.15em;margin-bottom:var(--space-1);font-weight:600}.upload-value{font-size:var(--type-base);color:var(--ink-primary);font-weight:500}.upload-card-divider{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--rule);align-items:center;gap:var(--space-3);display:flex}.upload-checkbox-label{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--type-sm);color:var(--ink-primary);-webkit-user-select:none;user-select:none;display:flex}.upload-checkbox{width:16px;height:16px;accent-color:var(--ink-primary);cursor:pointer}.upload-checkbox-hint{font-size:var(--type-xs);color:var(--ink-muted)}.upload-track-list{border:1px solid var(--rule);margin-bottom:var(--space-5);overflow:hidden}.upload-track-header{padding:var(--space-2) var(--space-4);background:var(--surface-1);font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;grid-template-columns:40px 1fr 60px;font-weight:600;display:grid}.upload-track-row{padding:var(--space-3) var(--space-4);border-top:1px solid var(--rule);font-size:var(--type-sm);grid-template-columns:40px 1fr 60px;align-items:center;display:grid}.upload-track-num{font-family:var(--font-data);color:var(--ink-muted);text-align:center;font-variant-numeric:tabular-nums}.upload-track-title{font-weight:500}.upload-track-dur{font-family:var(--font-data);color:var(--ink-muted);text-align:right;font-variant-numeric:tabular-nums}.upload-warning{margin:var(--space-4) 0;padding:var(--space-4);background:var(--surface-1);border:1px solid var(--rule);font-size:var(--type-xs);color:var(--ink-secondary);line-height:1.5}.upload-warning strong{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-1);color:var(--ink-primary);display:block}.upload-warning-hint{color:var(--ink-muted)}.upload-warning-list{margin:var(--space-2) 0 0;padding-left:var(--space-5);color:var(--ink-muted)}.upload-actions{gap:var(--space-3);justify-content:flex-end;margin-top:1rem;display:flex}.upload-actions--center{justify-content:center}.upload-loading{text-align:center;padding:var(--space-9) var(--space-5);color:var(--ink-secondary)}.upload-loading-hint{font-size:var(--type-xs);color:var(--ink-muted);margin-top:var(--space-2);max-width:400px;margin-left:auto;margin-right:auto}.upload-spinner{border:2px solid var(--rule);border-top-color:var(--ink-primary);width:24px;height:24px;margin:0 auto var(--space-4);border-radius:50%;animation:.6s linear infinite spin}.upload-progress{background:var(--surface-1);border:1px solid var(--rule);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--type-sm)}.upload-progress-head{justify-content:space-between;align-items:center;display:flex}.upload-progress-pct{font-family:var(--font-data);font-size:var(--type-xs);color:var(--ink-muted);font-variant-numeric:tabular-nums}.upload-progress-track{margin-top:var(--space-2);background:var(--surface-2);height:2px;overflow:hidden}.upload-progress-bar{background:var(--ink-primary);height:100%;transition:width .5s}.upload-done{text-align:center;background:var(--surface-1);border:1px solid var(--rule);padding:var(--space-8) var(--space-6)}.upload-done h2{font-family:var(--font-mono);font-size:var(--type-xl);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-3);font-weight:700}.upload-done-title{font-size:var(--type-base);margin-bottom:var(--space-1)}.upload-done-meta{font-size:var(--type-sm);color:var(--ink-secondary);margin-bottom:var(--space-6)}.upload-error{background:var(--surface-1);border:1px solid var(--rule);color:var(--ink-primary);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--type-sm)}.btn-primary{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;background:var(--ink-primary);color:var(--surface-0);border:1px solid var(--ink-primary);padding:var(--space-3) var(--space-5);cursor:pointer;align-items:center;font-weight:700;text-decoration:none;transition:opacity .15s;display:inline-flex}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-secondary);border:1px solid var(--rule);padding:var(--space-3) var(--space-5);cursor:pointer;background:0 0;align-items:center;font-weight:500;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.btn-secondary:hover{border-color:var(--ink-muted);color:var(--ink-primary)}
.private-badge{color:var(--accent);letter-spacing:.5px;text-transform:uppercase;background:#ffffff0f;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}
.empty-state{text-align:center;color:var(--text-secondary);padding:80px 20px}.empty-state h2{font-family:var(--font-display);color:var(--text-primary);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;font-size:24px}
@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.bulk-summary{gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--rule);margin-bottom:var(--space-4);font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-secondary);flex-wrap:wrap;display:flex}.bulk-summary-item strong{color:var(--ink-primary);font-weight:700}.bulk-summary-item--dim strong{color:var(--ink-muted)}.bulk-summary-item--error strong{color:var(--blood)}.bulk-queue{margin-top:var(--space-4)}.bulk-album-card{border:1px solid var(--rule);padding:var(--space-3) var(--space-4);margin-bottom:-1px;transition:background .15s}.bulk-album-card--duplicate{opacity:.4}.bulk-album-card--uploading,.bulk-album-card--done{background:var(--surface-1)}.bulk-album-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.bulk-album-info{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.bulk-album-folder{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);font-weight:600}.bulk-album-meta{font-size:var(--type-sm);color:var(--ink-primary);font-weight:500}.bulk-album-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.bulk-album-tracks{font-family:var(--font-data);font-size:var(--type-xs);color:var(--ink-muted);font-variant-numeric:tabular-nums}.bulk-status{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-1) var(--space-2);border:1px solid var(--rule);font-weight:600}.bulk-status--pending{color:var(--ink-muted)}.bulk-status--previewing{color:var(--ink-secondary)}.bulk-status--ready{color:var(--ink-primary);border-color:var(--ink-muted)}.bulk-status--duplicate{color:var(--ink-muted);text-decoration:line-through}.bulk-status--uploading{color:var(--ink-secondary)}.bulk-status--done{color:var(--ink-primary);border-color:var(--ink-primary)}.bulk-status--error{color:var(--blood);border-color:var(--blood)}.bulk-album-link{font-family:var(--font-mono);font-size:var(--type-sm);color:var(--ink-muted);text-decoration:none;transition:color .15s}.bulk-album-link:hover{color:var(--ink-primary)}.bulk-album-error{margin-top:var(--space-2);font-size:var(--type-xs);color:var(--blood);font-family:var(--font-mono)}.bulk-album-checkbox{width:16px;height:16px;accent-color:var(--ink-primary);cursor:pointer;flex-shrink:0;margin:0}.bulk-album-card--deselected,.bulk-album-card--skipped{opacity:.35}.bulk-status--skipped{color:var(--ink-muted);font-style:italic}.bulk-select-toggle{border:1px solid var(--rule);color:var(--ink-secondary);font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-1) var(--space-3);cursor:pointer;background:0 0;margin-left:auto;transition:color .15s,border-color .15s}.bulk-select-toggle:hover{color:var(--ink-primary);border-color:var(--ink-muted)}.bulk-notif-link{margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--type-xs);color:#c44;cursor:pointer;text-underline-offset:3px;letter-spacing:.03em;background:0 0;border:none;padding:0;text-decoration:underline;transition:color .15s;display:block}.bulk-notif-link:hover{color:#e55}.bulk-notif-status{font-family:var(--font-mono);font-size:var(--type-xs);letter-spacing:.03em;display:block}.bulk-notif-status--on{color:#4a4}.bulk-notif-status--off{color:#c44}.bulk-done-label{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-primary);align-items:center;font-weight:600;display:flex}@media (max-width:768px){.bulk-summary{gap:var(--space-2);flex-direction:column}.bulk-album-header{flex-direction:column;align-items:flex-start}.bulk-album-right{justify-content:flex-end;width:100%}}
.nav-mobile-actions,.mobile-search-overlay,.mobile-menu-overlay{display:none}@media (max-width:768px){.main-content{padding:calc(48px + env(safe-area-inset-top,0px) + var(--space-4)) var(--space-4) var(--space-9)}.index-hero{gap:var(--space-2);padding:var(--space-6) 0 var(--space-7);flex-direction:column}.index-title{font-size:clamp(var(--type-xl), 7vw, var(--type-2xl))}.index-rule{width:100%;display:block}.records-grid,.cards-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.record-title,.card h3{font-size:var(--type-xs)}.index-list-item{padding:var(--space-3) 0;font-size:var(--type-sm);flex-wrap:wrap}.index-list-year{margin-left:0}.section-title,.section-header h2{font-size:11px}.artist-header{text-align:center;align-items:center;gap:var(--space-4);padding:var(--space-4) 0 0;margin-bottom:var(--space-6);flex-direction:column}.artist-photo,.artist-photo-placeholder{border-radius:0;width:120px;height:120px}.artist-info h1{font-size:clamp(24px,6vw,32px)}.artist-info p{font-size:var(--type-sm)}.artist-meta-line,.artist-tags{justify-content:center}.artist-actions{padding-top:var(--space-3);border-top:1px solid var(--rule);justify-content:center;width:100%}.album-header{text-align:center;align-items:center;gap:var(--space-4);padding:var(--space-4) 0 0;margin-bottom:var(--space-5);flex-direction:column}.album-cover,.album-cover-placeholder{border-radius:0;width:180px;height:180px}.album-meta{flex-direction:column;align-items:center;min-height:auto;display:flex}.album-meta h1{font-size:clamp(22px,5vw,32px)}.album-details{font-size:var(--type-xs);flex-wrap:wrap;justify-content:center}.album-label-row{justify-content:center}.album-actions{padding-top:var(--space-3);border-top:1px solid var(--rule);justify-content:center;width:100%}.back-link{text-align:center;display:block}.track-row{padding:var(--space-3) var(--space-2);grid-template-columns:1fr 32px 48px;min-height:48px}.track-number{display:none}.track-title{font-size:var(--type-sm)}.track-duration{font-size:var(--type-xs)}.modal-overlay{align-items:flex-end}.modal-card{padding:var(--space-5) var(--space-4) env(safe-area-inset-bottom,20px);border-radius:0;max-width:none;max-height:90vh;margin:0;overflow-y:auto}.modal-card h2{font-size:var(--type-lg)}.modal-actions{flex-direction:column-reverse}.modal-actions .btn-primary,.modal-actions .btn-secondary{text-align:center;width:100%;padding:var(--space-3)}.nav-mobile-actions{align-items:center;gap:var(--space-1);display:flex}.mobile-search-overlay,.mobile-menu-overlay{display:flex}.mobile-menu{background:var(--surface-1);border-top:1px solid var(--rule);width:100%;padding:0 0 env(safe-area-inset-bottom,20px);border-radius:0;max-height:80vh;overflow-y:auto}.mobile-menu-link{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);font-size:var(--type-base);color:var(--ink-primary);min-height:48px;font-weight:500;display:flex}.mobile-menu-link:hover,.mobile-menu-link:active{background:var(--surface-2);color:var(--ink-primary)}.mobile-menu-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--rule)}.mobile-menu-logout{border:1px solid var(--rule);width:100%;color:var(--ink-secondary);font-family:var(--font-mono);font-size:var(--type-xs);letter-spacing:.1em;text-transform:uppercase;padding:var(--space-3);cursor:pointer;background:0 0;border-radius:0;font-weight:600}.mobile-menu-login{text-align:center;background:var(--ink-primary);width:100%;color:var(--surface-0);font-family:var(--font-mono);font-size:var(--type-xs);letter-spacing:.1em;text-transform:uppercase;padding:var(--space-3);border-radius:0;font-weight:700;display:block}.login-form{padding:var(--space-6) var(--space-4);margin:var(--space-4);border-radius:0}.login-title{font-size:var(--type-xl);letter-spacing:.1em}.login-button{padding:var(--space-4)}.favorites-header h1{font-size:clamp(22px,5vw,32px)}.upload-dropzone{padding:var(--space-7) var(--space-4)}.upload-album-card{padding:var(--space-4)}}@media (max-width:374px){.records-grid,.cards-grid{gap:var(--space-3);grid-template-columns:1fr}.index-title{font-size:var(--type-xl)}.album-cover,.album-cover-placeholder{width:150px;height:150px}.artist-photo,.artist-photo-placeholder{width:100px;height:100px}}
.nav-logout{border:1px solid var(--border);color:var(--text-secondary);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:20px;padding:6px 16px;font-family:inherit;font-size:12px;font-weight:500;transition:all .2s}.nav-logout:hover{border-color:var(--border-accent);color:var(--text-primary);background:#ffffff0a}.nav-login{letter-spacing:.5px;text-transform:uppercase;opacity:.6;border-radius:20px;padding:6px 20px;font-size:12px;font-weight:600;transition:all .2s;color:var(--accent)!important}.nav-login:hover{background:var(--accent);box-shadow:0 0 20px var(--accent-glow);color:var(--bg-primary)!important}
.login-container{min-height:calc(100vh - 60px);padding:var(--space-6) var(--space-4) var(--space-8);justify-content:center;align-items:flex-start;display:flex}.login-form{background:var(--surface-0);border:1px solid var(--rule);width:100%;max-width:400px;padding:var(--space-8) var(--space-6)}@media (max-width:768px){.login-container{padding:0}.login-form{padding:var(--space-6) var(--space-4);border-top:none;border-left:none;border-right:none}}.login-title{font-family:var(--font-mono);font-size:var(--type-2xl);letter-spacing:.15em;text-transform:uppercase;text-align:center;margin-bottom:var(--space-7);color:var(--ink-primary);font-weight:800}.login-error{background:var(--surface-1);border:1px solid var(--blood);padding:var(--space-3) var(--space-4);font-family:var(--font-mono);font-size:var(--type-xs);color:var(--blood);margin-bottom:var(--space-5);text-align:center;text-transform:uppercase;letter-spacing:.1em}.login-field{margin-bottom:var(--space-5)}.login-field label{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.15em;color:var(--ink-muted);margin-bottom:var(--space-2);font-weight:600;display:block}.login-field input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--rule);color:var(--ink-primary);font-size:16px;font-family:var(--font-body);background:0 0;outline:none;transition:border-color .15s}.login-field input::placeholder{color:var(--ink-muted)}.login-field input:focus{border-color:var(--ink-muted)}.login-button{width:100%;margin-top:var(--space-3);padding:var(--space-4);background:var(--ink-primary);color:var(--surface-0);border:1px solid var(--ink-primary);font-family:var(--font-mono);font-weight:800;font-size:var(--type-sm);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.login-button:hover{opacity:.85}.login-button:active{opacity:.7}.login-button:disabled{opacity:.4;cursor:not-allowed}
.enrich-button-wrapper{align-items:center;display:inline-flex}.enrich-btn{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-secondary);border:1px solid var(--rule);padding:var(--space-1) var(--space-3);cursor:pointer;align-items:center;gap:var(--space-2);background:0 0;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.enrich-btn:hover{border-color:var(--ink-muted);color:var(--ink-primary)}.enrich-btn--loading{opacity:.6;cursor:wait}.enrich-btn--force{margin-left:var(--space-2);padding:2px var(--space-2);font-size:11px}.enrich-spinner{border:1.5px solid var(--ink-muted);border-top-color:var(--ink-primary);border-radius:50%;width:12px;height:12px;animation:.6s linear infinite spin;display:inline-block}.enrich-msg{font-family:var(--font-mono);font-size:var(--type-xs);padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.enrich-msg--success{color:var(--ink-primary);background:var(--surface-1);border:1px solid var(--rule)}.enrich-msg--warn{color:var(--ink-secondary);background:var(--surface-1);border:1px solid var(--rule)}.enrich-msg--not-found{color:var(--ink-muted)}.enrich-msg--error{color:var(--blood);background:var(--surface-1);border:1px solid var(--rule)}
.tag{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:lowercase;letter-spacing:.05em;color:var(--ink-secondary);background:var(--surface-1);border:1px solid var(--rule);padding:2px var(--space-2);font-weight:500;text-decoration:none;transition:border-color .15s,color .15s}.tag:hover{border-color:var(--ink-muted);color:var(--ink-primary)}.tag-filter{gap:var(--space-2);padding-bottom:var(--space-3);margin-bottom:var(--space-5);scrollbar-width:thin;display:flex;overflow-x:auto}.tag-filter::-webkit-scrollbar{height:2px}.tag-filter::-webkit-scrollbar-track{background:0 0}.tag-filter::-webkit-scrollbar-thumb{background:var(--rule)}.tag-filter-item{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);border:1px solid var(--rule);padding:var(--space-1) var(--space-3);white-space:nowrap;background:0 0;font-weight:500;text-decoration:none;transition:border-color .15s,color .15s}.tag-filter-item:hover{border-color:var(--ink-muted);color:var(--ink-secondary)}.tag-filter-item.is-active{background:var(--ink-primary);color:var(--surface-0);border-color:var(--ink-primary)}.page-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.page-head-title{font-family:var(--font-mono);font-size:var(--type-xl);letter-spacing:-.02em;text-transform:uppercase;font-weight:800}.page-head-count{font-family:var(--font-data);font-size:var(--type-sm);color:var(--ink-muted);font-variant-numeric:tabular-nums}.page-title{font-family:var(--font-mono);font-size:var(--type-xl);letter-spacing:-.02em;text-transform:uppercase;font-weight:800}.tags{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.tags-scroll-container{gap:var(--space-2);width:100%;padding-bottom:var(--space-3);display:flex;overflow-x:auto}.tag-chip{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);border:1px solid var(--rule);padding:var(--space-1) var(--space-3);white-space:nowrap;background:0 0;border-radius:0;font-weight:500;text-decoration:none;transition:border-color .15s,color .15s}.tag-chip:hover{border-color:var(--ink-muted);color:var(--ink-secondary)}.tag-chip.active{background:var(--ink-primary);color:var(--surface-0);border-color:var(--ink-primary)}
.share-btn{cursor:pointer;color:var(--text-muted);-webkit-tap-highlight-color:transparent;appearance:none;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:color .2s,transform .2s;display:flex}.share-btn:hover{color:var(--accent);transform:scale(1.15)}
.pl-back{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-5);text-decoration:none;transition:color .15s;display:inline-block}.pl-back:hover{color:var(--ink-primary)}.pl-header{margin-bottom:var(--space-6)}.pl-meta-row{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.pl-owner{font-family:var(--font-mono);font-size:var(--type-sm);color:var(--ink-secondary)}.pl-visibility{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em}.pl-title{font-family:var(--font-mono);font-size:var(--type-2xl);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--space-2);font-weight:700}.pl-count{font-family:var(--font-mono);font-size:var(--type-sm);color:var(--ink-muted)}.pl-manager{border:1px solid var(--rule);padding:var(--space-5);margin-bottom:var(--space-6)}.pl-manager-toolbar{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;display:flex}.pl-manager-label{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.15em;color:var(--ink-muted);margin:0;font-weight:600}.pl-manager-actions{gap:var(--space-5);display:flex}.pl-action-link{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-secondary);cursor:pointer;text-transform:uppercase;letter-spacing:.1em;background:0 0;border:none;padding:0;transition:color .15s}.pl-action-link:hover{color:var(--ink-primary)}.pl-action-link--danger{color:var(--blood,#6b0000)}.pl-action-link--danger:hover{color:var(--ink-primary)}.pl-action-link:disabled{opacity:.4;cursor:not-allowed}.pl-edit-form{gap:var(--space-5);margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--rule);flex-direction:column;display:flex}.pl-title-input{font-size:var(--type-lg);font-weight:700}.pl-search{margin-top:var(--space-5)}.pl-search-wrap{position:relative}.pl-search-hint{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);position:absolute;top:50%;right:0;transform:translateY(-50%)}.pl-search-results{padding:var(--space-3) 0 0;flex-direction:column;margin:0;list-style:none;display:flex}.pl-search-item{padding:var(--space-3) 0;border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;display:flex}.pl-search-item-info{flex-direction:column;gap:2px;min-width:0;display:flex}.pl-search-item-title{font-size:var(--type-base);color:var(--ink-primary);font-weight:500}.pl-search-item-artist{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted)}.pl-search-item-add{border:1px solid var(--rule);color:var(--ink-muted);cursor:pointer;padding:var(--space-2);background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex}.pl-search-item-add:hover{color:var(--ink-primary);border-color:var(--ink-muted)}
.catalog-filters{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.filter-dropdown{position:relative}.filter-dropdown-trigger{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);border:1px solid var(--rule);padding:var(--space-1) var(--space-3);cursor:pointer;align-items:center;gap:var(--space-2);white-space:nowrap;background:0 0;font-weight:600;transition:border-color .15s,color .15s;display:flex}.filter-dropdown-trigger:hover{border-color:var(--ink-muted);color:var(--ink-secondary)}.filter-dropdown-trigger.is-active{border-color:var(--ink-primary);color:var(--ink-primary)}.filter-dropdown-count{font-family:var(--font-data);background:var(--ink-primary);color:var(--surface-0);justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;line-height:1;display:flex}.filter-dropdown-menu{z-index:100;background:var(--surface-1);border:1px solid var(--rule);scrollbar-width:thin;min-width:180px;max-height:280px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.filter-dropdown-option{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);cursor:pointer;font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-secondary);text-align:left;white-space:nowrap;background:0 0;border:none;transition:background .1s;display:flex}.filter-dropdown-option:hover{background:var(--surface-2);color:var(--ink-primary)}.filter-dropdown-option.is-selected{color:var(--ink-primary)}.filter-dropdown-check{color:var(--ink-muted);font-size:10px;line-height:1}.filter-dropdown-option.is-selected .filter-dropdown-check{color:var(--ink-primary)}.filter-clear{font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);padding:var(--space-1) var(--space-2);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;font-weight:500;text-decoration:underline;transition:color .15s}.filter-clear:hover{color:var(--ink-primary)}.pagination{justify-content:center;align-items:center;gap:var(--space-1);margin-top:var(--space-7);padding-bottom:var(--space-5);display:flex}.pagination-link{font-family:var(--font-data);font-size:var(--type-sm);font-variant-numeric:tabular-nums;color:var(--ink-muted);border:1px solid #0000;justify-content:center;align-items:center;width:36px;height:36px;text-decoration:none;transition:border-color .15s,color .15s;display:flex}.pagination-link:hover{border-color:var(--rule);color:var(--ink-primary)}.pagination-link.is-active{border-color:var(--ink-primary);color:var(--ink-primary);font-weight:700}.pagination-ellipsis{font-family:var(--font-data);font-size:var(--type-sm);color:var(--ink-muted);text-align:center;width:24px}@media (max-width:768px){.catalog-filters{gap:var(--space-1);padding-bottom:var(--space-2);flex-wrap:wrap}.filter-dropdown-trigger{padding:var(--space-1) var(--space-2);font-size:10px}.filter-dropdown-menu{-webkit-overflow-scrolling:touch;z-index:200;min-width:200px;max-height:260px}.pagination{margin-top:var(--space-5)}.pagination-link{width:32px;height:32px;font-size:var(--type-xs)}}.label-list{flex-direction:column;display:flex}.label-item{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--rule);color:var(--ink-primary);text-decoration:none;transition:background .1s;display:flex}.label-item:hover{background:var(--surface-1)}.label-item:last-child{border-bottom:none}.label-name{font-size:var(--type-sm);font-weight:500}.label-country{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);letter-spacing:.05em}
.back-link{font-family:var(--font-mono);font-size:var(--type-xs);color:var(--ink-muted);letter-spacing:.05em;text-transform:lowercase;margin-bottom:var(--space-4);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none;transition:color .15s;display:inline-block}.back-link:hover{color:var(--ink-primary)}

