@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,400;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap";:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}:root{--bg:#120e0b;--bg-elevated:#1c1612;--bg-card:#241c16;--ink:#f6efe4;--ink-muted:#c4b5a0;--ink-faint:#8a7a68;--gold:#d4a574;--gold-bright:#e8c49a;--rust:#b85c38;--sage:#7a8f6a;--line:#d4a5742e;--shadow:0 18px 50px #00000073;--radius:18px;--font-display:"Cormorant Garamond", "Times New Roman", serif;--font-body:"DM Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}#root{min-height:100vh}a{color:var(--gold-bright);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--ink)}code{color:var(--gold-bright);background:#d4a5741f;border-radius:6px;padding:.12em .4em;font-size:.9em}.app{min-height:100vh;padding-bottom:2rem;position:relative}.app.has-player{padding-bottom:6.5rem}.bg-glow{pointer-events:none;z-index:0;background:radial-gradient(80% 50% at 15% -10%,#b85c3838,#0000 55%),radial-gradient(60% 40% at 90% 10%,#7a8f6a1f,#0000 50%),radial-gradient(50% 30% at 50% 100%,#d4a57414,#0000 60%);position:fixed;inset:0}.site-header,main,.site-footer{z-index:1;width:min(1120px,100% - 2rem);margin-inline:auto;position:relative}.site-header{padding-top:1.5rem}.header-inner{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0 1.5rem;display:flex}.brand{align-items:center;gap:.85rem;display:flex}.brand-avatar{object-fit:cover;border-radius:50%;width:2.75rem;height:2.75rem;box-shadow:0 0 0 1px #e8c49a59}.brand-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:.72rem}.brand-title{font-family:var(--font-display);letter-spacing:.02em;margin:.1rem 0 0;font-size:1.65rem;font-weight:600;line-height:1}.header-nav{gap:1.25rem;display:flex}.header-nav a{color:var(--ink-muted);letter-spacing:.04em;font-size:.92rem;text-decoration:none}.header-nav a:hover{color:var(--gold-bright)}.hero{padding:3.5rem 0 2.5rem}.hero-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0 0 .75rem;font-size:.78rem}.hero-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:clamp(2.4rem,6vw,3.75rem);font-weight:500;line-height:1.12}.hero-title span{color:var(--ink-muted);font-style:italic;font-weight:400}.hero-lede{max-width:36rem;color:var(--ink-muted);margin:1.25rem 0 0;font-size:1.05rem;line-height:1.65}.songs-section{padding:1rem 0 3rem}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem;margin-bottom:1.75rem;display:flex}.section-title{font-family:var(--font-display);margin:0;font-size:2rem;font-weight:600}.section-lede{color:var(--ink-faint);margin:.35rem 0 0;font-size:.95rem}.section-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.song-search{align-items:center;min-width:min(260px,100%);display:flex;position:relative}.song-search-icon{color:var(--ink-faint);pointer-events:none;position:absolute;left:.85rem}.song-search input{border:1px solid var(--line);background:var(--bg-elevated);width:100%;min-width:200px;color:var(--ink);font:inherit;border-radius:999px;outline:none;padding:.55rem 2.25rem .55rem 2.4rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.song-search input::placeholder{color:var(--ink-faint)}.song-search input:focus{border-color:#d4a5748c;box-shadow:0 0 0 3px #b85c382e}.song-search-clear{appearance:none;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:1.75rem;height:1.75rem;font-size:1.25rem;line-height:1;display:grid;position:absolute;right:.45rem}.song-search-clear:hover{color:var(--ink);background:#d4a5741f}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sort-control{background:var(--bg-elevated);border:1px solid var(--line);border-radius:999px;padding:.25rem;display:inline-flex}.sort-control button{appearance:none;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.5rem 1rem;font-size:.85rem;transition:background .15s,color .15s}.sort-control button.is-on{color:var(--ink);background:linear-gradient(135deg,#b85c38e6,#d4a5748c)}.sort-control button:not(.is-on):hover{color:var(--ink)}.search-empty{border-radius:var(--radius);border:1px dashed var(--line);color:var(--ink-muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin:2rem 0;padding:1.5rem;display:flex}.search-empty-clear{appearance:none;border:1px solid var(--line);background:var(--bg-elevated);color:var(--gold-bright);font:inherit;cursor:pointer;border-radius:999px;padding:.4rem .9rem;font-size:.9rem}.search-empty-clear:hover{color:var(--ink);border-color:#d4a57473}.song-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.35rem;display:grid}.song-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(165deg,#241c16f2,#16110dfa);flex-direction:column;transition:border-color .2s,transform .2s;display:flex;overflow:hidden}.song-card:hover{border-color:#d4a57466;transform:translateY(-2px)}.song-card.is-active{box-shadow:var(--shadow), 0 0 0 1px #b85c3840;border-color:#b85c38a6}.song-thumb{aspect-ratio:1;cursor:pointer;background:#0a0806;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.song-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .45s,filter .3s}.song-card:hover .song-thumb img{transform:scale(1.04)}.song-card.is-playing .song-thumb img{filter:brightness(.72)}.play-badge{color:var(--ink);opacity:0;background:radial-gradient(circle,#00000059,#0000 70%);place-items:center;transition:opacity .2s;display:grid;position:absolute;inset:0}.song-thumb:hover .play-badge,.song-card.is-active .play-badge{opacity:1}.play-badge svg{background:linear-gradient(145deg, var(--rust), #8a3f22);border-radius:50%;width:3.25rem;height:3.25rem;padding:.85rem;box-shadow:0 8px 24px #00000073}.eq{align-items:flex-end;gap:3px;height:18px;display:flex;position:absolute;bottom:.85rem;left:.85rem}.eq i{background:var(--gold-bright);border-radius:2px;width:3px;animation:.9s ease-in-out infinite eq;display:block}.eq i:first-child{height:40%;animation-delay:0s}.eq i:nth-child(2){height:80%;animation-delay:.15s}.eq i:nth-child(3){height:55%;animation-delay:.3s}@keyframes eq{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1)}}.song-meta{flex-direction:column;flex:1;gap:.3rem;padding:1.1rem 1.15rem 1.25rem;display:flex}.song-meta-top{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.song-title{font-family:var(--font-display);margin:0;font-size:1.45rem;font-weight:600;line-height:1.2}.song-duration{color:var(--ink-faint);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.82rem}.song-subtitle{color:var(--gold);margin:0;font-size:.9rem}.song-date{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin:.15rem 0 0;font-size:.8rem}.song-desc{color:var(--ink-muted);margin:.45rem 0 0;font-size:.9rem;line-height:1.5}.song-copyright{letter-spacing:.03em;color:var(--ink-faint);margin:.5rem 0 0;font-size:.72rem;line-height:1.4}.song-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;padding-top:.85rem;display:flex}.song-action-group{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.like-btn,.share-btn{appearance:none;border:1px solid var(--line);color:var(--ink-muted);font:inherit;cursor:pointer;background:#120e0b73;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.82rem;transition:border-color .15s,color .15s,background .15s,transform .12s;display:inline-flex}.like-btn:hover,.share-btn:hover{color:var(--gold-bright);border-color:#d4a57473}.like-btn.is-liked{color:#e8a0a8;background:#b846501f;border-color:#e8a0a873}.like-btn.is-liked:hover{color:#f0c0c5}.like-btn:active,.share-btn:active{transform:scale(.96)}.share-menu{position:relative}.share-menu.is-open .share-btn{color:var(--gold-bright);border-color:#d4a57480}.like-count,.share-count{min-width:1.15rem;color:var(--gold-bright);font-variant-numeric:tabular-nums;text-align:center;background:#d4a5742e;border-radius:999px;padding:.05rem .35rem;font-size:.72rem}.like-btn.is-liked .like-count{color:#f0c0c5;background:#e8a0a838}.share-panel{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1c1612f7;border:1px solid #d4a57459;border-radius:14px;min-width:11.5rem;padding:.55rem;position:absolute;bottom:calc(100% + .45rem);left:0;box-shadow:0 14px 36px #0000008c}.share-panel-title{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .35rem;padding:.15rem .45rem;font-size:.7rem}.share-list{margin:0;padding:0;list-style:none}.share-list button{appearance:none;width:100%;color:var(--ink-muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.5rem .55rem;font-size:.88rem}.share-list button:hover{color:var(--ink);background:#d4a5741f}.song-sc-link{color:var(--sage);font-size:.82rem;text-decoration:none}.song-sc-link:hover{color:var(--gold-bright)}.song-card.is-pending .song-thumb{cursor:not-allowed}.song-card.is-pending .song-thumb img{filter:saturate(.85)brightness(.9)}.song-card.is-pending:hover{transform:none}.pending-badge{letter-spacing:.12em;text-transform:uppercase;color:var(--ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#120e0bc7;border:1px solid #d4a57459;border-radius:999px;padding:.35rem .7rem;font-size:.72rem;position:absolute;bottom:.75rem;right:.75rem}.song-pending-note{color:var(--gold);letter-spacing:.02em;margin:.2rem 0 0;font-size:.8rem}.about-section{border-top:1px solid var(--line);padding:2rem 0 3rem}.about-section p{max-width:40rem;color:var(--ink-muted);line-height:1.7}.about-note{font-size:.92rem;color:var(--ink-faint)!important}.site-footer{border-top:1px solid var(--line);color:var(--ink-faint);padding:1.5rem 0 2rem;font-size:.85rem}.site-footer p{margin:0}.back-to-top{z-index:60;color:var(--gold-bright);font:inherit;letter-spacing:.04em;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#1c1612eb;border:1px solid #d4a57466;border-radius:999px;align-items:center;gap:.35rem;padding:.65rem .95rem;font-size:.85rem;transition:transform .15s,border-color .15s,color .15s;display:inline-flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 12px 32px #00000073}.back-to-top:hover{color:var(--ink);border-color:#e8c49aa6;transform:translateY(-2px)}.app.has-player .back-to-top{bottom:5.75rem}@media (width<=540px){.section-tools{justify-content:stretch;width:100%}.song-search{flex:1;min-width:0}.song-search input{min-width:0}}.player-bar{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#1c1612eb;border:1px solid #d4a57459;border-radius:999px;align-items:center;gap:.9rem;width:min(560px,100% - 1.5rem);padding:.65rem .75rem .65rem .65rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #0000008c}.player-cover{object-fit:cover;border-radius:50%;flex-shrink:0;width:48px;height:48px;box-shadow:0 0 0 2px #d4a57459}.player-info{flex:1;min-width:0}.player-title{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.15rem;font-weight:600;overflow:hidden}.player-sub{color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;margin:.1rem 0 0;font-size:.78rem;overflow:hidden}.player-toggle{cursor:pointer;width:2.75rem;height:2.75rem;color:var(--ink);background:linear-gradient(145deg, var(--rust), #8a3f22);border:0;border-radius:50%;flex-shrink:0;place-items:center;transition:transform .15s;display:grid}.player-toggle:hover{transform:scale(1.05)}@media (width<=540px){.hero{padding-top:2.25rem}.header-nav{gap:.85rem}}
