@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@500;600;700&display=swap";:root{--bg-canvas: #0b0814;--bg-surface: #141026;--bg-surface-2: #1b1533;--bg-elevated: #241d44;--bg-overlay: rgba(7, 5, 14, .84);--text-primary: #f4efff;--text-secondary: #ccbff0;--text-muted: #9b8dbf;--accent-primary: #b36bff;--accent-secondary: #7c3aed;--accent-ink: #fbf8ff;--stroke-soft: #352a59;--stroke-strong: #4d3b7d;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--shadow-sm: 0 10px 24px rgba(0, 0, 0, .24);--shadow-md: 0 20px 46px rgba(0, 0, 0, .35);--shadow-lg: 0 34px 86px rgba(0, 0, 0, .45);--font-display: "Outfit", "DM Sans", "Segoe UI", sans-serif;--font-body: "DM Sans", "Segoe UI", "Roboto", sans-serif;--motion-fast: .16s ease;--motion-med: .26s ease;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--bg-app: var(--bg-canvas);--bg-panel: var(--bg-surface-2);--bg-panel-2: var(--bg-surface);--bg-input: var(--bg-surface);--accent: var(--accent-primary);--accent-2: var(--accent-secondary);--accent-3: #c9a4ff;--border-subtle: var(--stroke-soft);--border-strong: var(--stroke-strong);--panel-soft: var(--bg-surface);--panel-highlight: var(--bg-elevated);--ink: #100c1e;--transition-fast: var(--motion-fast);--transition-med: var(--motion-med)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background-color:#0b0814}body{font-family:var(--font-body);font-size:16.5px;color:var(--text-primary);line-height:1.45;letter-spacing:.004em;background:radial-gradient(1100px 700px at -8% -18%,rgba(179,107,255,.2),transparent 60%),radial-gradient(900px 660px at 112% -2%,rgba(124,58,237,.16),transparent 58%),linear-gradient(180deg,#110c1f,#0b0814);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.01) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.01) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(circle at center,black 36%,transparent 100%);mask-image:radial-gradient(circle at center,black 36%,transparent 100%)}.toast-host{position:fixed;top:max(14px,calc(10px + var(--safe-top)));right:max(14px,calc(10px + var(--safe-right)));z-index:1300;width:min(92vw,360px);display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{pointer-events:auto;border-radius:12px;border:1px solid var(--stroke-soft);background:linear-gradient(180deg,#1e173afa,#140f27fa);box-shadow:0 14px 34px #00000061;color:var(--text-primary);padding:.58rem .72rem .62rem;animation:toastIn .2s ease-out;cursor:pointer}.toast-title{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:.2rem;color:#ead5ff}.toast-message{font-size:.84rem;line-height:1.36;color:#f3ebff}.toast-success{border-color:#6ee7b773;background:linear-gradient(180deg,#14322cf2,#112421f2)}.toast-warning{border-color:#fbbf2473;background:linear-gradient(180deg,#3d2c15f2,#271c0df2)}.toast-error{border-color:#f8717173;background:linear-gradient(180deg,#401c29f2,#2c141ef2)}.toast-hide{animation:toastOut .2s ease-in forwards}input,select,textarea,button{font:inherit}button,select,input,textarea{transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast),color var(--motion-fast),transform var(--motion-fast)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(179,107,255,.78);outline-offset:2px}.site-nebula{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.site-nebula:before,.site-nebula:after{content:"";position:absolute;width:60vw;height:60vw;border-radius:999px;filter:blur(88px);opacity:.1;animation:nebulaDrift 20s ease-in-out infinite alternate}.site-nebula:before{background:#b36bff;top:-18vw;left:-12vw}.site-nebula:after{background:#7c3aed;bottom:-20vw;right:-12vw;animation-delay:1.1s}.main-container{max-width:1360px;margin:0 auto;padding:max(2.15rem,calc(1.4rem + var(--safe-top))) 2rem max(3.3rem,calc(2rem + var(--safe-bottom)))}#app{min-height:calc(100vh - var(--safe-top) - var(--safe-bottom));min-height:calc(100dvh - var(--safe-top) - var(--safe-bottom))}.app-header{display:flex;flex-direction:column;gap:1.15rem;margin-bottom:1.7rem}.app-title{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(1.68rem,3.9vw,2.85rem);letter-spacing:.01em;line-height:.98}.collection-stats{margin:0;color:var(--text-secondary);font-size:.9rem;letter-spacing:.02em}.btn-primary,.btn-chip,.btn-ghost{border-radius:999px;border:1px solid transparent;cursor:pointer}.btn-primary{min-height:38px;padding:.52rem 1rem;background:linear-gradient(135deg,#c386ff,#9e5eff 46%,#7c3aed);color:var(--accent-ink);font-size:.88rem;font-weight:700;text-transform:none;letter-spacing:.01em;box-shadow:0 14px 30px #7c3aed59}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 18px 38px #7c3aed6b}.btn-chip{min-height:32px;padding:.35rem .76rem;background:#ffffff05;border-color:var(--stroke-soft);color:var(--text-secondary);font-size:.72rem;letter-spacing:.04em;text-transform:none;display:inline-flex;align-items:center;gap:.42rem}.btn-chip:hover{border-color:var(--accent-primary);color:var(--text-primary)}.btn-ghost{min-height:36px;padding:.45rem .88rem;background:#ffffff05;border-color:var(--stroke-soft);color:var(--text-secondary);font-size:.86rem}.btn-ghost:hover{color:var(--text-primary);border-color:var(--stroke-strong);background:#ffffff0f}.view-tabs{display:flex;gap:.38rem;margin-bottom:1.2rem;padding:.34rem;width:fit-content;border-radius:999px;border:1px solid var(--stroke-soft);background:linear-gradient(180deg,#1b1632f5,#141026f5);box-shadow:var(--shadow-sm)}.tab-btn{border:none;background:transparent;color:var(--text-muted);border-radius:999px;padding:.46rem .9rem;font-size:.76rem;font-weight:600;letter-spacing:.03em;text-transform:none;cursor:pointer}.tab-btn:hover{color:var(--text-secondary)}.tab-btn.active{color:#fefbff;background:linear-gradient(135deg,#bf82ff,#7c3aed);box-shadow:0 8px 18px #7c3aed6b}.controls-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.78rem;align-items:center;padding:.7rem;margin-bottom:1.85rem;border-radius:var(--radius-md);border:1px solid var(--stroke-soft);background:linear-gradient(180deg,#1c1634fa,#141026fa);box-shadow:var(--shadow-md)}.controls-secondary{display:inline-flex;align-items:center;gap:.58rem}.search-container{position:relative;min-height:44px;display:flex;align-items:center;border-radius:999px;border:1px solid var(--stroke-soft);background:#ffffff04}.search-container:hover{border-color:var(--stroke-strong)}.search-container input{width:100%;height:44px;padding:0 2.45rem;line-height:normal;border:none;outline:none;background:transparent;color:var(--text-primary);font-size:.92rem;font-weight:500}.search-container input::placeholder{color:var(--text-muted);opacity:.92}.sort-select{min-height:44px;min-width:150px;padding:0 2rem 0 .92rem;border-radius:999px;border:1px solid var(--stroke-soft);background:#ffffff04;color:var(--text-secondary);font-size:.84rem;font-weight:500}.sort-select:hover{border-color:var(--stroke-strong)}.view-toggle{display:inline-flex;align-items:center;gap:.22rem;min-height:44px;padding:.2rem;border-radius:999px;border:1px solid var(--stroke-soft);background:#ffffff04}.view-toggle .view-btn{width:32px;height:32px;border:none;border-radius:999px;background:transparent;color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer}.view-toggle .view-btn:hover{color:var(--text-secondary)}.view-toggle .view-btn.active{color:#fff;background:linear-gradient(135deg,#bf82ff,#7c3aed);box-shadow:0 8px 16px #7c3aed5c}.featured-section{position:relative;overflow:hidden;margin-bottom:2.05rem;padding:1.34rem;display:grid;grid-template-columns:178px 1fr;gap:1.25rem;align-items:center;border-radius:var(--radius-lg);border:1px solid var(--stroke-soft);background:linear-gradient(120deg,#261e45f2,#1c1632fa);box-shadow:var(--shadow-md)}.featured-section:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(179,107,255,.16),transparent 36%,rgba(124,58,237,.12))}.featured-cover-container{width:100%;aspect-ratio:1 / 1;border-radius:14px;overflow:hidden;border:1px solid var(--stroke-strong);box-shadow:var(--shadow-sm);background:#100d1f;position:relative}.featured-info{position:relative;z-index:1}.featured-label{margin-bottom:.5rem;color:#d8b8ff;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.featured-title{margin:0;font-family:var(--font-display);font-weight:600;font-size:clamp(1.28rem,3.1vw,1.85rem);line-height:1.02}.featured-artist{margin-top:.28rem;color:var(--text-secondary);font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.featured-title-wrap{min-width:0}.featured-header-row{margin-top:.56rem;display:flex;flex-direction:column;gap:.62rem}.featured-actions{display:flex;gap:.62rem;flex-wrap:wrap;align-items:center}.featured-fact-strip{margin-top:.72rem;padding:.54rem .68rem;border-radius:11px;border:1px solid rgba(201,164,255,.24);border-left:3px solid rgba(195,134,255,.9);background:linear-gradient(145deg,#b36bff1f,#7c3aed14)}.featured-fact-kicker{display:inline-block;margin-bottom:.2rem;color:#eedfff;font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;opacity:.95}.featured-fact-copy{margin:0;color:#efe7ff;font-size:.82rem;line-height:1.34;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(min-width:981px){.featured-section{grid-template-columns:148px minmax(0,1fr);gap:.88rem;padding:.9rem .96rem}.featured-title{font-size:clamp(1.12rem,1.8vw,1.5rem)}.featured-artist{font-size:.84rem}.featured-header-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.76rem;margin-top:.48rem}.featured-actions{flex-wrap:nowrap;justify-content:flex-end}.featured-fact-strip{margin-top:.62rem;padding:.5rem .62rem;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.62rem}.featured-fact-kicker{margin:0;white-space:nowrap}.featured-fact-copy{font-size:.81rem;line-height:1.3}}.shuffle-anim .featured-cover-container img{animation:remixPulse .18s linear infinite}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1.45rem 1.15rem}.album-object{min-width:0;transition:transform var(--motion-fast)}.album-object:hover{transform:translateY(-5px)}.album-cover-container{aspect-ratio:1 / 1;position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--stroke-soft);background:#120f22;box-shadow:var(--shadow-sm)}.album-cover-img{width:100%;height:100%;object-fit:cover;transition:transform var(--motion-med),filter var(--motion-med)}.album-object:hover .album-cover-img{transform:scale(1.05);filter:saturate(1.05)}.album-object:hover .album-cover-container{border-color:var(--vibe-color, var(--stroke-strong));box-shadow:0 16px 34px var(--vibe-color, rgba(0, 0, 0, .38))}.album-meta{padding-top:.68rem}.album-meta .album-artist{font-family:var(--font-display);font-weight:600;font-size:.91rem;color:var(--text-primary)}.album-meta .album-title{font-size:.81rem;color:var(--text-secondary)}.edit-trigger-btn{position:absolute;right:8px;bottom:8px;width:32px;height:32px;border-radius:999px;border:1px solid rgba(255,255,255,.26);background:#07060cbd;color:#f2ecff;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.85);transition:all var(--motion-fast);z-index:5}.album-cover-container:hover .edit-trigger-btn{opacity:1;transform:scale(1)}.edit-trigger-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.list-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.11em;border-bottom:1px solid var(--stroke-soft)}.list-row{border:1px solid transparent;border-radius:12px;background:#ffffff03}.list-row:hover{border-color:var(--stroke-soft);background:#ffffff08}.list-edit-btn{background:transparent;border:1px solid var(--stroke-soft);color:var(--text-muted)}.list-edit-btn:hover{border-color:var(--stroke-strong);color:var(--text-primary)}.timeline-container{border-left:2px solid var(--stroke-soft)}.site-footer{margin-top:4rem;padding:2rem 0 1rem;border-top:1px solid var(--stroke-soft);text-align:center;color:var(--text-muted)}.site-footer button{background:none;border:none;color:var(--text-secondary);cursor:pointer}.site-footer button:hover{color:var(--accent-primary)}.rec-card{transition:transform var(--motion-fast),border-color var(--motion-fast)}.rec-card:hover{transform:translateY(-4px);border-color:var(--accent-primary)!important}.modal-surface{background:linear-gradient(180deg,#21193cfa,#18132dfa);border:1px solid var(--stroke-soft);border-radius:16px;color:var(--text-primary);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-title{font-family:var(--font-display);letter-spacing:.03em}#viewer-modal-content{border:1px solid var(--stroke-soft);border-radius:16px;overflow:hidden}.cd-scale{transform:scale(.91);transform-origin:center bottom}.cd-spine:before{content:"";position:absolute;top:0;left:0;bottom:0;width:14px;background:linear-gradient(90deg,#c9a4ff61,#ffffff08);border-right:1px solid rgba(201,164,255,.24);opacity:0;transform:translate(-5px);transition:all var(--motion-med);pointer-events:none;z-index:2}.cd-spine:hover:before{opacity:1;transform:translate(0)}.skeleton{background:linear-gradient(90deg,#18122d 20%,#302454,#18122d 70%);background-size:240% 100%;animation:shimmer 1.8s linear infinite}.skeleton-card{aspect-ratio:1 / 1;border-radius:12px}.fade-in{animation:fadeIn .26s ease-out}.spinner{display:inline-block;animation:spin 1s linear infinite}.input-reset{background:#1d1833;border:1px solid var(--stroke-soft);color:var(--text-primary);border-radius:var(--radius-sm);padding:.67rem .88rem}.input-reset:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #b36bff40}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.flex-center{display:flex;align-items:center;justify-content:center}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#141027}::-webkit-scrollbar-thumb{background:#3f2f66;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#533f86}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.98)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes remixPulse{0%{transform:translateY(0);opacity:1}50%{transform:translateY(-8px);opacity:.66}to{transform:translateY(0);opacity:1}}@keyframes shimmer{0%{background-position:220% 0}to{background-position:-20% 0}}@keyframes nebulaDrift{0%{transform:translate3d(-2%,-3%,0) scale(.96)}to{transform:translate3d(5%,3%,0) scale(1.07)}}@media(max-width:980px){.controls-bar{grid-template-columns:1fr;gap:.62rem;padding:.62rem}.controls-secondary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem}.sort-select{min-width:0;width:100%}.featured-section{grid-template-columns:1fr;text-align:center}.featured-cover-container{max-width:220px;margin:0 auto}}@media(max-width:768px){.main-container{padding:max(1rem,calc(.8rem + var(--safe-top))) 1rem max(2rem,calc(1.2rem + var(--safe-bottom)))}.controls-bar{border-radius:14px;margin-bottom:1.45rem}.search-container{min-height:42px}.search-container input{height:42px;font-size:.9rem;padding:0 2.32rem}.controls-secondary{grid-template-columns:1fr auto}.sort-select{min-height:40px;font-size:.82rem}.view-toggle{min-height:40px}.view-toggle .view-btn{width:30px;height:30px}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.95rem}.view-tabs{width:100%;justify-content:center}.tab-btn{flex:1;text-align:center}.toast-host{right:max(12px,calc(8px + var(--safe-right)));left:max(12px,calc(8px + var(--safe-left)));width:auto}}@media(max-width:520px){.controls-secondary{grid-template-columns:1fr}.view-toggle{justify-self:start}}
