:root{--c-bg:#f6f6ef;--c-bg-white:#fff;--c-text:#000;--c-text-muted:#666;--c-text-faint:#888;--c-primary:#4c79a8;--c-accent:#fe0606;--c-success:#4caf50;--c-spotify:#1db954;--c-error-bg:#fff0f0;--c-warning-bg:#fff8e6;--c-success-bg:#d4edda;--c-border:#e0e0e0;--c-border-light:#eee;--c-border-lighter:#f5f5f5;--font:Verdana,Geneva,sans-serif;--text-xs:7pt;--text-sm:8pt;--text-base:10pt;--text-md:11pt;--text-lg:14pt;--sp-0:1px;--sp-1:2px;--sp-2:4px;--sp-3:6px;--sp-4:8px;--sp-5:10px;--sp-6:12px;--sp-7:16px;--sp-8:20px;--sp-9:24px;--sp-10:32px;--size-icon-sm:16px;--size-icon-md:18px;--size-icon-lg:24px;--size-thumb-xs:24px;--size-thumb-sm:32px;--size-thumb-md:40px;--size-thumb-lg:50px;--size-thumb-xl:80px;--size-thumb-2xl:120px;--size-input-height:26px;--size-label-width:80px;--max-w-form:300px;--max-w-create:500px;--max-w-content:700px;--max-w-feed:800px;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #00000026;--shadow-lg:0 8px 24px #0000002e;--transition-fast:.1s;--transition-base:.15s;--transition-slow:.3s}
*,:before,:after{box-sizing:border-box}html,body{height:auto}body{background:var(--c-bg-white);color:var(--c-text);font:var(--text-base)/1.4 var(--font);margin:var(--sp-4);word-wrap:break-word;overflow-wrap:break-word;padding:0;overflow-x:hidden}a{color:var(--c-text);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;border-radius:var(--radius-sm)}.link-muted{color:var(--c-text-faint)}.link-muted:hover{text-decoration:underline}
.btn{padding:var(--sp-2)var(--sp-6);font-size:var(--text-base);font-family:var(--font);cursor:pointer;height:var(--size-input-height);box-sizing:border-box;border-radius:var(--radius-sm);border:none;line-height:1}.btn--primary{background:var(--c-accent);color:#fff}.btn--primary:disabled{cursor:not-allowed;background:#ccc}.btn--secondary{background:var(--c-text-muted);color:#fff}.btn--spotify{background:var(--c-spotify);color:#fff}.btn--small{font-size:var(--text-sm);padding:var(--sp-1)var(--sp-3);border-radius:var(--radius-sm)}.icon-btn{cursor:pointer;padding:var(--sp-1);color:var(--c-text-muted);transition:opacity var(--transition-base),color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;line-height:1;display:flex}.icon-btn:hover{opacity:1}.icon-btn--active{color:var(--c-primary)}.icon-btn--muted{color:var(--c-text-faint)}.icon-btn--inline{vertical-align:middle;margin:0;padding:0;display:inline-flex}.vote-btn{padding:var(--sp-1);color:var(--c-text-faint);font-size:var(--text-base);background:0 0;border:none;justify-content:center;align-items:center;line-height:1;display:flex}.vote-btn--voted{visibility:hidden;pointer-events:none}.vote-btn--voting{opacity:.6;animation:.6s ease-in-out infinite votePulse}.vote-btn--disabled{opacity:.5;cursor:not-allowed}.save-btn{cursor:pointer;padding:var(--sp-1);color:var(--c-text-muted);background:0 0;border:none;justify-content:center;align-items:center;line-height:1;display:flex}.save-btn--saved{color:var(--c-primary)}.track-save-btn{cursor:pointer;color:var(--c-primary);vertical-align:middle;transition:opacity var(--transition-base),color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;line-height:1;display:inline-flex}.track-save-btn:hover{opacity:1}.track-save-btn--saved{color:var(--c-primary);opacity:1}.track-save-icon{color:inherit}.track-save-btn--saved .track-save-icon{fill:currentColor}.comment-collapse-btn{cursor:pointer;padding:0 var(--sp-1);color:var(--c-text-muted);font-size:var(--text-sm);background:0 0;border:none;flex-shrink:0;align-items:center;line-height:1;display:flex}.comment-collapse-btn:hover{color:var(--c-accent)}.saved-track-remove{cursor:pointer;padding:var(--sp-1);opacity:.8;transition:opacity var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.saved-track-remove:hover{opacity:1}.link-btn{color:var(--c-text);font-size:var(--text-base);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:none}.link-btn:hover{text-decoration:underline}.link-btn:disabled{color:var(--c-text-muted);cursor:default}
.form-input{border:1px solid var(--c-border-light);padding:var(--sp-1)var(--sp-2);font-size:var(--text-base);font-family:var(--font);box-sizing:border-box;line-height:1}.form-input::placeholder{color:var(--c-text-muted);opacity:.5}.form-input--wide{width:220px;height:var(--size-input-height)}.form-textarea{border:1px solid var(--c-border-light);padding:var(--sp-2);font-size:var(--text-base);font-family:var(--font);box-sizing:border-box;resize:vertical;line-height:1.4}select{border:1px solid var(--c-border-light);padding:var(--sp-1)var(--sp-2);font-size:var(--text-base);font-family:var(--font);box-sizing:border-box}
.alert{padding:var(--sp-5);margin-bottom:var(--sp-5);border-radius:var(--radius-sm);border:1px solid;font-size:9pt}.alert--error{color:#721c24;background:#f8d7da;border-color:#f5c6cb}.alert--success{background:var(--c-success-bg);color:#155724;border-color:#c3e6cb}.alert--info{color:var(--c-primary);border-color:var(--c-primary);background:#e6f0f7}
@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.image-wrapper{flex-shrink:0;display:inline-block}.image-placeholder{border-radius:var(--radius-sm);background:#e0e0e0;flex-shrink:0}.image-placeholder--loading{background:linear-gradient(90deg,#e8e8e8 25%,#d8d8d8 50%,#e8e8e8 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}.artist-image.image-placeholder,.image-wrapper .image-placeholder{border-radius:var(--radius-md)}.artist-track-image.image-placeholder{border-radius:var(--radius-sm)}.image--loading{opacity:0}.image--loaded{opacity:1}.spotify-embed{margin-top:var(--sp-4);border-radius:var(--radius-lg);max-width:var(--max-w-create);height:80px;position:relative;overflow:hidden}.spotify-embed-skeleton{border-radius:var(--radius-lg);z-index:1;background:linear-gradient(90deg,#282828 25%,#333 50%,#282828 75%) 0 0/200% 100%;justify-content:center;align-items:center;width:100%;height:80px;transition:opacity .3s ease-out,visibility .3s ease-out;animation:2s ease-in-out infinite shimmer;display:flex;position:absolute;inset:0}.spotify-embed-skeleton--hidden{opacity:0;visibility:hidden;pointer-events:none}.spotify-embed-skeleton__content{justify-content:center;align-items:center;gap:var(--sp-4);color:var(--c-spotify);font-family:var(--font);font-size:var(--text-base);display:flex}.spotify-embed-skeleton__icon{justify-content:center;align-items:center;display:flex}.spotify-embed-skeleton__icon svg{width:24px;height:24px}.spotify-embed-skeleton__text{color:var(--c-spotify)}.spotify-embed-skeleton[role=button]{cursor:pointer}.spotify-embed-skeleton[role=button]:hover{background:#333;animation:none}.spotify-embed-skeleton[role=button]:hover .spotify-embed-skeleton__content{color:#fff}.spotify-embed__iframe{border-radius:var(--radius-lg);opacity:0;width:100%;height:80px;transition:opacity .3s ease-in;position:absolute;inset:0}.spotify-embed__iframe--loaded{opacity:1}.spotify-embed-placeholder{justify-content:center;align-items:center;gap:var(--sp-4);border-radius:var(--radius-lg);width:100%;height:80px;color:var(--c-spotify);cursor:pointer;font-family:var(--font);font-size:var(--text-base);transition:background var(--transition-base),color var(--transition-base);background:linear-gradient(90deg,#282828 25%,#333 50%,#282828 75%) 0 0/200% 100%;border:none;animation:2s ease-in-out infinite shimmer;display:flex}.spotify-embed-placeholder:hover{color:#fff;background:#333;animation:none}.spotify-embed-placeholder svg{flex-shrink:0}.skeleton-image{border-radius:var(--radius-sm);background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;flex-shrink:0;animation:1.5s ease-in-out infinite shimmer}.skeleton-image--small{width:var(--size-thumb-sm);height:var(--size-thumb-sm)}.skeleton-info{gap:var(--sp-3);flex-direction:column;flex:1;min-width:0;display:flex}.skeleton-line{border-radius:var(--radius-sm);background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-line--title{width:70%;height:14px}.skeleton-line--artist{width:50%;height:var(--sp-5)}
.toast-base{background:var(--c-bg)!important;border:1px solid var(--c-text-faint)!important;color:var(--c-text)!important;font-size:var(--text-base)!important;font-family:var(--font)!important}.toast-success{background:var(--c-bg)!important;border:1px solid var(--c-success)!important}.toast-error{background:var(--c-error-bg)!important;border:1px solid var(--c-accent)!important}.toast-warning{background:var(--c-warning-bg)!important;border:1px solid var(--c-accent)!important}
.welcome-banner{padding:var(--sp-6)var(--sp-7);margin-bottom:var(--sp-4);background:var(--c-bg-white);border:1px solid var(--c-border-light);border-radius:var(--radius-md);font-size:var(--text-sm);grid-template-rows:auto 1fr auto;gap:0;width:100%;max-width:100%;display:grid}.welcome-banner__row{display:flex}.welcome-banner__row--top{justify-content:flex-end;align-items:flex-start}.welcome-banner__row--middle{margin-top:var(--sp-6);align-items:flex-start}.welcome-banner__row--bottom{min-height:0}.welcome-banner__content{flex:1;width:100%}.welcome-banner__title{margin:0 0 var(--sp-3)0;color:var(--c-text);font-weight:700}.welcome-banner__list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.welcome-banner__list li{gap:var(--sp-1);color:var(--c-text-muted);grid-template-columns:max-content 1fr;line-height:1.4;display:grid}.welcome-banner__label{color:var(--c-text);min-width:var(--size-thumb-lg);flex-shrink:0;font-weight:400}.welcome-banner__description{color:var(--c-text-muted)}.welcome-banner__icon{color:var(--c-text-muted);margin:0 var(--sp-1);display:inline}.welcome-banner__icon-svg{vertical-align:middle;margin:0 var(--sp-1);display:inline-block}.welcome-banner__close{color:var(--c-text-muted);font-size:var(--text-xs);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;flex-shrink:0;padding:0}.welcome-banner__close:hover{color:var(--c-text)}
.page-wrapper{background:0 0}.main-table{background:var(--c-bg)}.header-bar{background:var(--c-primary)}.header-inner{padding:var(--sp-1);padding-left:3px}.footer-bar{background:var(--c-primary);height:1px}.footer-spacer{height:var(--sp-5)}.footer-content{display:inline-block}.footer-links{font-size:var(--text-sm);color:var(--c-text-faint)}.footer-links:after{content:" · "}.footer-link{color:var(--c-text-faint);text-decoration:none}.footer-link:hover{text-decoration:underline}.footer-copyright{font-size:var(--text-sm);color:var(--c-text-faint)}.spacer-row{height:var(--sp-5)}.main-content{padding:var(--sp-5);max-width:100%;overflow:visible}.main-feed-column{width:100%;max-width:var(--max-w-feed)}.page-loading-skeleton{padding:var(--sp-5)0}@media (min-width:751px){.header-bar{height:var(--sp-9)}}
.logo-cell{width:var(--size-icon-md);padding-right:var(--sp-2)}.site-logo{width:var(--size-icon-md);height:var(--size-icon-md);background:var(--c-bg-white);border:1px solid var(--c-bg-white);color:var(--c-primary);justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.site-logo:hover{text-decoration:underline;-webkit-text-decoration-color:var(--c-primary);text-decoration-color:var(--c-primary)}.nav-cell{height:var(--sp-5);line-height:12pt}.user-cell{text-align:right;padding-right:var(--sp-2)}.nav-top{font-size:var(--text-base);color:#fff}.site-name{margin-right:var(--sp-5)}.nav-link{color:#fff;text-decoration:none}.nav-link:hover{text-decoration:underline}.nav-link--bold{font-weight:700}.nav-link--disabled{color:#ffffff80;cursor:not-allowed}.nav-link--disabled:hover{text-decoration:none}.user-karma{color:#fff}.navbar{align-items:center;gap:var(--sp-6);grid-template-columns:1fr auto;width:100%;display:grid}.nav-separator{padding:0 var(--sp-2);color:#ffffff4d}.nav-left,.nav-right{align-items:center;gap:0;font-size:9pt;display:flex}.nav-left-top,.nav-left-bottom,.nav-right-top,.nav-right-bottom{align-items:center;display:flex}.nav-logo{font-weight:700;font-size:var(--text-base)}.nav-right-separator{display:inline}.remaining-text{margin-left:var(--sp-2)}.desktop-only{display:inline}.mobile-only{display:none}@media (min-width:751px){.header-row--mobile-nav{display:none}}.nav-links-desktop{display:inline}.nav-links-mobile{display:none}.nav-brand-container{flex-direction:column;display:flex}
.feed{background:var(--c-bg)}.feed--transparent{background:0 0}.feed-empty{padding:var(--sp-8)0;color:var(--c-text-muted)}.feed-empty-link{color:var(--c-text);text-decoration:underline}.feed-empty-link:hover{color:var(--c-primary)}.feed-container{background:var(--c-bg)}.feed-page-title{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.feed-loading{color:var(--c-text-muted);padding:var(--sp-8)0;font-size:var(--text-base)}.feed-more{margin-top:var(--sp-7);padding-top:var(--sp-5)}.feed-more-link{color:var(--c-text);font-size:var(--text-base);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:none}.feed-more-link:hover{text-decoration:underline}.feed-more-link:disabled{color:var(--c-text-muted);cursor:default}.feed-sort-controls{align-items:center;gap:var(--sp-6);margin-bottom:var(--sp-4);padding:var(--sp-2)0;flex-wrap:wrap;display:flex}.post-card--header .feed-sort-controls{padding-left:var(--size-icon-sm)}.feed-sort-tabs{gap:var(--sp-1);padding:var(--sp-1);border-radius:var(--radius-md);background:#0000000a;display:flex}.feed-sort-tab{align-items:center;gap:var(--sp-2);padding:var(--sp-2)var(--sp-5);font-size:var(--text-base);color:var(--c-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-base);background:0 0;border:none;font-family:inherit;display:inline-flex}.feed-sort-tab:hover{color:var(--c-text);background:#0000000a}.feed-sort-tab--active{color:var(--c-text);box-shadow:var(--shadow-sm);background:#fff}.feed-sort-tab--active svg{color:var(--c-accent)}.feed-time-filter{position:relative}.feed-time-filter-btn{align-items:center;gap:var(--sp-2);padding:var(--sp-2)var(--sp-5);font-size:var(--text-base);color:var(--c-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-base);background:#0000000a;border:none;font-family:inherit;display:inline-flex}.feed-time-filter-btn:hover{color:var(--c-text);background:#0000000f}.dropdown-chevron{transition:transform var(--transition-base)}.dropdown-chevron--open{transform:rotate(180deg)}.feed-time-dropdown{top:calc(100% + var(--sp-2));border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;min-width:120px;padding:var(--sp-2);animation:dropdownFadeIn var(--transition-base)ease;background:#fff;position:absolute;left:0}.feed-time-option{width:100%;padding:var(--sp-3)var(--sp-6);font-size:var(--text-base);color:var(--c-text-muted);cursor:pointer;text-align:left;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;font-family:inherit;display:block}.feed-time-option:hover{color:var(--c-text);background:#0000000a}.feed-time-option--active{color:var(--c-text);background:#4c79a814}.feed-mode-toggle{font-size:var(--text-base);color:var(--c-text);margin-bottom:var(--sp-4);padding:var(--sp-2)0;font-weight:400}.feed-mode-option{align-items:center;gap:var(--sp-1);color:var(--c-text-muted);transition:color var(--transition-base);font-weight:400;display:inline-flex}.feed-mode-option:hover{color:var(--c-primary)}.feed-mode-option--active{color:var(--c-text);font-weight:400}.feed-mode-option .hot-score-icon,.feed-mode-option--active .hot-score-icon{color:var(--c-accent)}.hot-score-icon{color:var(--c-accent);fill:var(--c-accent);flex-shrink:0}.pagination-info{font-size:var(--text-sm);color:var(--c-text-muted);margin-bottom:var(--sp-5);text-align:right}.pagination-link{color:var(--c-text);font-weight:500;text-decoration:none}.pagination-link:hover{color:#333;text-decoration:underline}.pagination-disabled{color:var(--c-text-faint);opacity:.6}
.post-card{gap:var(--sp-1);padding:var(--sp-2)0;font-size:var(--text-base);transition:all var(--transition-slow)ease-out;background:0 0;align-items:flex-start;line-height:1.4;display:flex;position:relative}.post-card--header{margin-bottom:var(--sp-5);padding:0}.post-card--header .post-content{width:100%}.post-rank{color:var(--c-text-faint);text-align:right;min-width:30px;font-size:var(--text-base);flex-shrink:0;line-height:1.4}.post-actions{gap:var(--sp-1);flex-shrink:0;align-items:center;padding-top:1px;display:flex}.post-content{flex:1;min-width:0}.post-title-row{margin-bottom:var(--sp-1);font-size:var(--text-base)}.post-title-row .track-save-btn{margin-right:var(--sp-2);vertical-align:-1px}.post-meta{font-size:var(--text-xs);color:var(--c-text-faint);align-items:center;gap:var(--sp-1);flex-wrap:wrap;display:flex}.post-karma{margin-left:var(--sp-4);color:var(--c-success)}.song-title{color:var(--c-text);font-weight:400;text-decoration:none}.song-title:hover{text-decoration:underline}.song-artist{font-size:var(--text-sm);color:var(--c-text-muted)}.song-artist-link{color:inherit;text-decoration:none}.song-artist-link:hover{text-decoration:underline}.song-info-row{margin-bottom:var(--sp-1);font-size:var(--text-sm);color:var(--c-primary);line-height:1.4;display:block}.song-info-row .track-save-btn{margin-right:var(--sp-2);vertical-align:-2px}.song-info-row .song-artist{color:var(--c-primary)}.song-info-icon{font-size:var(--text-base);line-height:1}.song-info-title{color:var(--c-primary);text-decoration:none}.song-info-title:hover{text-decoration:underline}.song-description{color:var(--c-text-muted);margin:var(--sp-2)0 var(--sp-3)0;font-size:9pt;line-height:1.4}.song-meta-link{color:var(--c-text-faint);text-decoration:none}.song-meta-link:hover{text-decoration:underline}.song-meta-link--loading{opacity:.6;pointer-events:none}.youtube-embed{width:100%;max-width:var(--max-w-create);margin-top:var(--sp-4);border-radius:var(--radius-lg);background:#000;position:relative;overflow:hidden}.youtube-embed:before{content:"";padding-top:56.25%;display:block}.youtube-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.youtube-embed--comment{max-width:min(560px,100%);margin-top:0}.youtube-title-link{color:var(--c-primary);cursor:pointer;text-decoration:underline}.youtube-title-link:hover{color:var(--c-text)}.youtube-inline-modal{z-index:1100;padding:var(--sp-6);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.youtube-inline-modal__backdrop{cursor:pointer;background:#000000b3;border:0;position:absolute;inset:0}.youtube-inline-modal__panel{border-radius:var(--radius-lg);width:min(860px,100%);box-shadow:var(--shadow-md);background:#101010;position:relative;overflow:hidden}.youtube-inline-modal__header{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3)var(--sp-4);color:#f3f4f6;background:#171717;display:flex}.youtube-inline-modal__title{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.youtube-inline-modal__close{color:#f3f4f6;border-radius:var(--radius-sm);padding:2px var(--sp-3);font-size:var(--text-sm);cursor:pointer;background:#262626;border:1px solid #3f3f46}.youtube-inline-modal__close:hover{background:#3f3f46}.youtube-embed--modal{border-radius:0;max-width:100%;margin-top:0}
.comment{font-size:9pt;font-family:var(--font);color:var(--c-text)}.comment-wrapper{margin-top:var(--sp-6)}.comment-header{font-size:var(--text-sm);color:var(--c-text-muted);margin-bottom:var(--sp-1);align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.comment-text{white-space:pre-wrap;word-wrap:break-word;line-height:1.4}.comment-video{margin-bottom:var(--sp-3)}.comment-form-hint{margin-top:var(--sp-2);font-size:var(--text-sm);color:var(--c-text-faint)}.comment-actions{margin-top:var(--sp-3);font-size:var(--text-xs);color:var(--c-text);align-items:center;gap:var(--sp-2);display:flex}.comment-action-link{color:var(--c-text);text-decoration:underline}.comment-action-link:hover{text-decoration:underline}.comment-text--new{color:var(--c-primary);transition:color var(--transition-slow)}.comment-text--own{color:var(--c-accent)}.comment-highlighted>table .comment-text{animation:4s ease-out commentHighlight}.comment-children{grid-template-rows:1fr;transition:grid-template-rows .4s cubic-bezier(.4,0,.2,1);display:grid}.comment-children--collapsed{grid-template-rows:0fr}.comment-children-inner{opacity:1;transition:opacity var(--transition-slow);overflow:hidden}.comment-children--collapsed .comment-children-inner{opacity:0;transition:opacity .2s}.reply-form-table{border-collapse:collapse;margin-top:var(--sp-4);margin-bottom:var(--sp-6)}.comment-textarea{width:500px;min-width:400px;min-height:120px;padding:var(--sp-2);font-size:var(--text-base);font-family:var(--font);border:1px solid var(--c-border-light);box-sizing:border-box}.comments-page{padding:0 0 var(--sp-5)0;font-family:var(--font);font-size:var(--text-base)}.comments-header{font-size:var(--text-base);margin-bottom:var(--sp-7);font-weight:400}.comments-loading,.comments-empty{color:var(--c-text-muted);padding:var(--sp-8)0}.comments-list{flex-direction:column;display:flex}.comment-item{padding:var(--sp-4)0}.comment-item-header{font-size:var(--text-sm);color:var(--c-text-muted);margin-bottom:var(--sp-2);display:block}.comment-item-meta{font-size:var(--text-sm);color:var(--c-text-muted);margin-bottom:var(--sp-1)}.comment-item-user{color:var(--c-text-muted);margin-right:var(--sp-2);font-weight:400;text-decoration:none}.comment-item-user:hover{text-decoration:underline}.comment-item-time{color:var(--c-text-muted);margin-right:var(--sp-2)}.comment-item-reply-indicator{color:var(--c-text-muted);font-style:italic}.comment-item-content{color:var(--c-text);margin-bottom:var(--sp-3);word-wrap:break-word;overflow-wrap:break-word;white-space:pre-wrap;cursor:pointer;font-size:9pt;line-height:1.5;text-decoration:none;display:block}.comment-item-content:hover{text-decoration:underline}.comment-item-context{font-size:var(--text-sm);color:var(--c-text-muted);margin-bottom:var(--sp-1)}.comment-item-song{color:var(--c-text-muted);text-decoration:none}.comment-item-song:hover{text-decoration:underline}.comment-item-song-title{color:var(--c-text-muted);text-decoration:none}.comment-item-song-title:hover{text-decoration:underline}.comment-item-artist{color:var(--c-text-muted);font-style:normal}.comments-more{margin-top:var(--sp-7);padding-top:var(--sp-5)}.comments-more-link{color:var(--c-text);font-size:var(--text-base);text-decoration:none}.comments-more-link:hover{text-decoration:underline}.timestamp{color:var(--c-text-faint);font-size:var(--text-sm)}
.profile-section{margin-bottom:var(--sp-8)}.profile-section-header{margin-bottom:var(--sp-7)}.profile-section-title{color:var(--c-text);font-size:var(--text-base);font-weight:400}.profile-section-link{align-items:center;gap:var(--sp-4);color:var(--c-text);text-decoration:none;display:flex}.profile-section-link:hover{text-decoration:underline}.profile-section-link .profile-section-title{color:var(--c-text)}.profile-section-count{color:var(--c-text-faint);font-size:9pt}.profile-table{border-spacing:0;border-collapse:collapse}.profile-label{color:var(--c-text-muted);vertical-align:top;padding-right:var(--sp-5);width:var(--size-label-width)}.profile-value{vertical-align:top}.profile-link{font-size:var(--text-sm);color:var(--c-text-muted);white-space:nowrap;text-decoration:none}.profile-link:hover{text-decoration:underline}.profile-about-wrapper{overflow-wrap:break-word;word-break:break-word;max-width:500px;display:inline}.profile-about-display{overflow-wrap:break-word;word-break:break-word;display:inline}.user-songs-header{align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-8);display:flex}.user-songs-back-link{color:var(--c-primary);font-size:var(--text-base);text-decoration:none}.user-songs-back-link:hover{text-decoration:underline}.user-songs-title{font-size:var(--text-md);color:var(--c-text)}.user-songs-count{color:var(--c-text-faint);margin-left:var(--sp-2);font-size:9pt}.user-songs-spotify-link{font-size:var(--text-sm)}.user-songs-separator{color:var(--c-text-muted);font-size:var(--text-sm)}.user-songs-username-link{color:inherit;text-decoration:none}.user-songs-username-link:hover{text-decoration:underline}.user-submissions-page,.user-comments-page,.saved-posts-page,.saved-songs-page{font-family:var(--font);font-size:var(--text-base)}.user-submissions-page .feed-container,.saved-posts-page .feed-container{max-width:var(--max-w-feed)}.page-loading{color:var(--c-text-muted);padding:var(--sp-8)0;text-align:center}
.artist-page{font-family:var(--font);font-size:var(--text-base);max-width:var(--max-w-content);overflow:hidden}.artist-loading,.artist-error{color:var(--c-text-muted);padding:var(--sp-8)0}.artist-header{gap:var(--sp-7);margin-bottom:var(--sp-9);align-items:flex-start;max-width:100%;display:flex;overflow:hidden}.artist-header .image-wrapper--responsive{width:var(--size-thumb-2xl);height:var(--size-thumb-2xl);flex-shrink:0}.artist-image{width:var(--size-thumb-2xl);height:var(--size-thumb-2xl);object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.artist-info{min-width:0;overflow:hidden}.artist-name{font-size:var(--text-lg);margin:0 0 var(--sp-3)0;color:var(--c-text);align-items:center;gap:var(--sp-3);font-weight:700;display:flex}.artist-name-save-btn{color:var(--c-text)}.artist-meta{font-size:var(--text-sm);color:var(--c-text-muted);margin-bottom:var(--sp-4);word-wrap:break-word;overflow-wrap:break-word}.artist-meta-separator{margin:0 var(--sp-3)}.artist-spotify-link{font-size:var(--text-sm);color:var(--c-spotify);text-decoration:none}.artist-spotify-link:hover{text-decoration:underline}.artist-section{margin-bottom:var(--sp-9);max-width:100%;overflow:hidden}.artist-section-title{font-size:var(--text-base);margin:0 0 var(--sp-6)0;color:var(--c-text);font-weight:400}.artist-tracks{gap:var(--sp-1);flex-direction:column;max-width:100%;display:flex;overflow:hidden}.artist-empty{font-size:var(--text-sm);color:var(--c-text-muted);margin:0}.artist-track-row{align-items:center;display:flex;position:relative;overflow:hidden}.artist-track-add-btn{background:var(--c-primary);color:#fff;cursor:pointer;z-index:1;width:20px;height:20px;transition:background var(--transition-base);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition-delay:.1s;display:flex;position:absolute;top:50%;left:4px;transform:translateY(-50%)}.artist-track-add-btn:hover{background:var(--c-text)}.artist-track-add-btn:disabled{cursor:wait;background:var(--c-text-muted)}.artist-track-add-spinner{border:1.5px solid #0000;border-top-color:#fff;border-radius:50%;width:10px;height:10px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.artist-track{align-items:center;gap:var(--sp-5);padding:var(--sp-3)var(--sp-4);border-radius:var(--radius-sm);color:var(--c-text);transition:transform var(--transition-base),width var(--transition-base),background var(--transition-base);z-index:2;box-sizing:border-box;background:#fff;width:100%;text-decoration:none;transition-delay:.1s;display:flex;position:relative}.artist-track:hover{background:#f0f0f0;text-decoration:none}.artist-track-row:hover .artist-track{width:calc(100% - 28px);transform:translate(28px)}.artist-track-number{width:var(--size-icon-md);text-align:right;color:var(--c-text-muted);flex-shrink:0;font-size:9pt}.artist-track-image{width:var(--size-thumb-md);height:var(--size-thumb-md);object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.artist-track-info{flex:1;min-width:0;overflow:hidden}.artist-track-name{text-overflow:ellipsis;white-space:nowrap;font-size:9pt;overflow:hidden}.artist-track-album{font-size:var(--text-sm);color:var(--c-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.artist-track-duration{font-size:var(--text-sm);color:var(--c-text-muted);flex-shrink:0}.artist-albums{gap:var(--sp-6);grid-template-columns:repeat(4,1fr);display:grid}.artist-album{color:var(--c-text);min-width:0;text-decoration:none;display:block}.artist-album:hover{text-decoration:none}.artist-album:hover .artist-album-name{text-decoration:underline}.artist-album-image-container{aspect-ratio:1;border-radius:var(--radius-sm);width:100%;margin-bottom:var(--sp-3);background:#e0e0e0;position:relative;overflow:hidden}.artist-album-image-container .image-wrapper,.artist-album-image-container .image-wrapper--responsive{width:100%!important;height:100%!important;position:absolute!important;inset:0!important}.artist-album-image{object-fit:cover;object-position:center;border-radius:var(--radius-sm);width:100%!important;height:100%!important}.artist-album-name{text-overflow:ellipsis;white-space:nowrap;font-size:9pt;line-height:1.3;overflow:hidden}.artist-album-meta{font-size:var(--text-sm);color:var(--c-text-muted);margin-top:var(--sp-1);line-height:1.3}
.create-page{max-width:var(--max-w-create);font-family:var(--font);font-size:var(--text-base);padding:0}.create-loading{color:var(--c-text-muted);padding:var(--sp-8)0}.create-title{font-size:var(--text-base);margin:0 0 var(--sp-7)0;color:var(--c-text);font-weight:700}.create-connect-section{background:var(--c-error-bg);padding:var(--sp-7);margin-bottom:var(--sp-7)}.create-connect-message{margin-bottom:var(--sp-6)}.create-connect-message strong{margin-bottom:var(--sp-2);color:var(--c-text);display:block}.create-connect-message p{color:var(--c-text-muted);margin:0;font-size:9pt;line-height:1.4}.create-connect-warning{margin-top:var(--sp-3);color:var(--c-accent);font-size:var(--text-sm)}.create-form{gap:var(--sp-6);flex-direction:column;display:flex}.create-field{align-items:flex-start;gap:var(--sp-4);display:flex}.create-field--column{align-items:stretch;gap:var(--sp-2);flex-direction:column}.create-field--column .create-label{min-width:auto;padding-top:0}.create-song-picker--full-width,.create-topic-input--full-width,.create-description-input--full-width{width:100%}.create-char-count--no-margin{margin-left:0}.create-label{font-size:var(--text-base);color:var(--c-text-muted);min-width:var(--size-thumb-lg);padding-top:var(--sp-2);flex-shrink:0;display:block}.create-label-optional{color:var(--c-text-faint);font-weight:400;font-size:var(--text-sm)}.create-song-picker{flex:1;position:relative}.create-song-trigger{align-items:center;gap:var(--sp-4);padding:var(--sp-2)var(--sp-4);border:1px solid var(--c-border-light);cursor:pointer;min-height:var(--size-input-height);box-sizing:border-box;border-radius:var(--radius-sm);background:#fff;display:flex}.create-song-trigger:hover{border-color:var(--c-text)}.create-song-trigger--selected{border-color:var(--c-primary);background:#f8fafc}.create-trigger-placeholder{color:var(--c-text);font-size:var(--text-base)}.create-trigger-image{width:var(--size-thumb-xs);height:var(--size-thumb-xs);object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.create-trigger-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.create-trigger-title{color:var(--c-text);text-overflow:ellipsis;white-space:nowrap;font-size:9pt;overflow:hidden}.create-trigger-artist{font-size:var(--text-sm);color:var(--c-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.create-trigger-change{font-size:var(--text-sm);color:var(--c-text-muted);flex-shrink:0;text-decoration:underline}.create-trigger-arrow{color:var(--c-text-muted);flex-shrink:0;margin-left:auto}.create-dropdown{top:calc(100% + var(--sp-1));border:1px solid var(--c-border-light);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:100;animation:dropdownFadeIn var(--transition-base)ease;background:#fff;position:absolute;left:0;right:0}.create-dropdown-search{padding:var(--sp-3);border-bottom:1px solid var(--c-border-light);position:relative}.create-dropdown-input{width:100%;padding:var(--sp-2)var(--sp-3);font-size:var(--text-base);height:auto}.create-dropdown-status{right:var(--sp-5);font-size:var(--text-sm);color:var(--c-text-muted);position:absolute;top:50%;transform:translateY(-50%)}.create-dropdown-results{max-height:250px;overflow-y:auto}.create-dropdown-label{font-size:var(--text-sm);color:var(--c-text-muted);padding:var(--sp-3)var(--sp-4);border-bottom:1px solid var(--c-border-light);background:#f9f9f9}.create-dropdown-item{align-items:center;gap:var(--sp-4);padding:var(--sp-3)var(--sp-4);cursor:pointer;border-bottom:1px solid var(--c-border-lighter);transition:background var(--transition-fast);display:flex}.create-dropdown-item:last-child{border-bottom:none}.create-dropdown-item:hover{background:var(--c-border-lighter)}.create-dropdown-item--skeleton{cursor:default}.create-dropdown-image{width:var(--size-thumb-sm);height:var(--size-thumb-sm);object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.create-dropdown-info{flex:1;min-width:0}.create-dropdown-title{color:var(--c-text);text-overflow:ellipsis;white-space:nowrap;font-size:9pt;overflow:hidden}.create-dropdown-artist{font-size:var(--text-sm);color:var(--c-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.create-dropdown-empty{padding:var(--sp-7);text-align:center;color:var(--c-text-muted);font-size:9pt}.create-topic-input{height:var(--size-input-height);min-height:var(--size-input-height);flex:1}.create-description-input{resize:vertical;height:100px;min-height:100px;max-height:400px;font-family:var(--font);font-size:var(--text-base);box-sizing:border-box;flex:none;width:100%;line-height:1.4;display:block;overflow:auto}.create-helper-text{font-size:var(--text-sm);color:var(--c-text-faint);line-height:1.4}.create-char-count{font-size:var(--text-sm);color:var(--c-text-muted);text-align:right;margin-top:var(--sp-1)}.create-char-count--warning{color:var(--c-accent)}.create-error{color:var(--c-accent);margin:0;font-size:9pt}.create-actions{margin-top:var(--sp-2)}
.search-results{gap:var(--sp-2);flex-direction:column;display:flex}.search-result-item{padding:var(--sp-5);cursor:pointer;gap:var(--sp-5);border-radius:var(--radius-sm);background:#fff;align-items:center;font-size:9pt;transition:all .2s;display:flex}.search-result-item:hover{background:var(--c-border-lighter)}.search-result-item--selected{background:#e8f0f8}.search-result-item--selected .search-result-title{color:var(--c-primary)}.search-result-item--selected .search-result-artist,.search-result-item--selected .search-result-album{color:#555}.search-result-image{width:var(--size-thumb-lg);height:var(--size-thumb-lg);object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.search-result-info{flex:1;min-width:0}.search-result-title{margin-bottom:var(--sp-1);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.search-result-artist{font-size:var(--text-sm);opacity:.8;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-result-album{font-size:var(--text-xs);opacity:.7;margin-top:var(--sp-1)}.nav-search-container{display:inline;position:relative}.nav-search-overlay{display:none}.nav-search-input{font-size:var(--text-base);color:#fff;width:80px;font-family:var(--font);line-height:inherit;vertical-align:baseline;transition:width var(--transition-base);background:0 0;border:none;border-radius:0;outline:none;height:auto;padding:0}.nav-search-input::placeholder{color:#ffffff80}.nav-search-input:focus{width:120px}.nav-search-popover{top:calc(100% + var(--sp-3));background:var(--c-bg-white);border:1px solid var(--c-border);border-radius:var(--radius-md);width:320px;max-height:420px;box-shadow:var(--shadow-lg);z-index:1000;position:absolute;left:0;overflow-y:auto}.nav-search-loading,.nav-search-empty{padding:var(--sp-6);text-align:center;color:var(--c-text-muted);font-size:var(--text-sm)}.nav-search-section{border-bottom:1px solid var(--c-border-lighter)}.nav-search-section:last-child{border-bottom:none}.nav-search-section-title{padding:var(--sp-3)var(--sp-4);font-size:var(--text-xs);color:var(--c-text-faint);text-transform:uppercase;letter-spacing:.5px;background:var(--c-bg);font-weight:500}.nav-search-item{align-items:center;gap:var(--sp-4);padding:var(--sp-3)var(--sp-4);cursor:pointer;transition:background var(--transition-fast);display:flex}.nav-search-item:hover{background:var(--c-border-lighter)}.nav-search-item-image{object-fit:cover;border-radius:var(--radius-sm);background:var(--c-border-lighter);flex-shrink:0;width:32px;height:32px}.nav-search-item-image--round{border-radius:50%}.nav-search-item-image--placeholder{font-size:var(--text-md);color:var(--c-text-muted);border-radius:50%;justify-content:center;align-items:center;display:flex}.nav-search-item-info{flex:1;min-width:0}.nav-search-item-title{font-size:var(--text-sm);color:var(--c-text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.nav-search-item-subtitle{font-size:var(--text-xs);color:var(--c-text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;overflow:hidden}.nav-search-item--post,.nav-search-item--user{padding-left:var(--sp-5)}
.spotify-status{justify-content:space-between;align-items:center;gap:var(--sp-5);padding:var(--sp-5);font-size:9pt;display:flex}.spotify-status--connected{background:#e6f7e6}.spotify-status--disconnected{background:#ffe6e6}.spotify-connected-text{color:var(--c-spotify);font-weight:400}.spotify-badge{padding:var(--sp-2)var(--sp-5);background:var(--c-spotify);color:#fff;font-size:var(--text-sm);border-radius:var(--radius-sm);text-transform:lowercase;font-weight:400;display:inline-block}.spotify-embed-container{margin-top:var(--sp-4);border-radius:var(--radius-lg);background:#282828;max-width:400px;overflow:hidden}.spotify-embed--song-page{max-width:var(--max-w-create);max-height:400px}.spotify-embed--song-page iframe{max-width:100%;max-height:400px}
.saved-tracks-list{gap:var(--sp-1);flex-direction:column;display:flex}.saved-track-item{align-items:center;gap:var(--sp-8);padding:var(--sp-3)0;font-size:var(--text-base);line-height:1.4;display:flex}.saved-track-remove{cursor:pointer;transition:opacity var(--transition-fast);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}.saved-track-remove:hover{opacity:.7}.saved-track-spotify-link{color:var(--c-spotify);transition:opacity var(--transition-fast);flex-shrink:0;align-items:center;text-decoration:none;display:flex}.saved-track-spotify-link:hover{opacity:.7}.saved-track-info{gap:var(--sp-0);flex-direction:column;flex:1;min-width:0;display:flex}.saved-track-title{color:var(--c-text);white-space:nowrap;text-overflow:ellipsis;text-decoration:none;display:block;overflow:hidden}.saved-track-title:hover{text-decoration:underline}.saved-track-artist{color:var(--c-text-muted);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.saved-track-artist .song-artist-link{color:var(--c-text-muted);text-decoration:none}.saved-track-artist .song-artist-link:hover{text-decoration:underline}.song-artist-name-fallback{color:var(--c-text-muted)}.playlist-privacy-toggle{align-items:center;display:inline-flex}.playlist-toggle-btn{align-items:center;gap:var(--sp-2);cursor:pointer;font-family:var(--font);font-size:var(--text-sm);background:0 0;border:none;padding:0;display:inline-flex}.playlist-toggle-track{background:var(--c-border);width:28px;height:14px;transition:background var(--transition-base);border-radius:7px;position:relative}.playlist-toggle-btn.is-public .playlist-toggle-track{background:var(--c-spotify)}.playlist-toggle-thumb{background:var(--c-bg-white);width:10px;height:10px;transition:transform var(--transition-base);border-radius:50%;position:absolute;top:2px;left:2px}.playlist-toggle-btn.is-public .playlist-toggle-thumb{transform:translate(14px)}.playlist-toggle-label{color:var(--c-text-muted);transition:color var(--transition-base)}.playlist-toggle-btn.is-public .playlist-toggle-label{color:var(--c-spotify)}.playlist-toggle-btn:hover .playlist-toggle-label{color:var(--c-text)}.visitor-playlist-link{align-items:center;gap:var(--sp-1);color:var(--c-spotify);text-decoration:none;display:inline-flex}.visitor-playlist-link:hover{text-decoration:underline}.visitor-playlist-link .external-link-icon{opacity:.8;flex-shrink:0}.user-songs-username-link{color:var(--c-text);text-decoration:none}.user-songs-username-link:hover{text-decoration:underline}
.auth-page{font-family:var(--font);font-size:var(--text-base);padding:var(--sp-5);max-width:var(--max-w-content)}.auth-title{margin-bottom:var(--sp-7);font-weight:700}.auth-form{gap:var(--sp-5);max-width:var(--max-w-form);flex-direction:column;display:flex}.auth-field{align-items:center;display:flex}.auth-field--stacked{align-items:flex-start;gap:var(--sp-1);flex-direction:column}.auth-label{width:var(--size-label-width);flex-shrink:0;display:inline-block}.auth-input{border:1px solid var(--c-border-light);width:220px;height:var(--size-input-height);padding:var(--sp-1)var(--sp-2);box-sizing:border-box;font-size:var(--text-base);font-family:var(--font);line-height:1}.auth-input--short{width:180px}.auth-field .profile-edit-input-row{justify-content:space-between;width:220px}.auth-char-count{font-size:var(--text-sm);color:var(--c-text-faint);margin-left:auto}.auth-actions{margin-left:var(--size-label-width)}.auth-links{margin-top:var(--sp-8)}.auth-forgot{margin-left:var(--size-label-width);font-size:var(--text-sm)}.auth-confirmation{max-width:var(--max-w-form)}.auth-confirmation-text{color:var(--c-text-muted);margin-bottom:var(--sp-3)}.auth-confirmation-email{color:var(--c-text);margin-bottom:var(--sp-6);word-break:break-all;font-weight:700}.auth-confirmation-instructions{color:var(--c-text-muted);font-size:var(--text-sm);margin-bottom:var(--sp-8);line-height:1.5}.auth-confirmation-actions{margin-bottom:var(--sp-8)}.auth-resend-btn{align-items:center;gap:var(--sp-2);display:inline-flex}.auth-resend-btn .spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-field--checkbox{margin-top:var(--sp-3)}.auth-checkbox-label{align-items:center;gap:var(--sp-3);cursor:pointer;margin-left:var(--size-label-width);display:flex}.auth-checkbox{cursor:pointer;border:1px solid var(--c-border-light);width:14px;height:14px;accent-color:var(--c-primary);flex-shrink:0;margin:0}.auth-checkbox-text{font-size:var(--text-sm);color:var(--c-text-muted);line-height:1.4}.auth-link{color:var(--c-text);text-decoration:underline}.auth-link:hover{color:var(--c-primary)}
.post-page{font-family:var(--font);font-size:var(--text-base)}.post-page__loading,.post-page__error{font-family:var(--font)}.post-page__error-detail{font-size:var(--text-sm);color:var(--c-text-faint);margin-top:var(--sp-5)}.post-page__login-prompt{margin-bottom:var(--sp-7);color:var(--c-text-faint);font-size:var(--text-sm)}.post-page__description-video{margin-bottom:var(--sp-7)}.post-page__comments-header{color:var(--c-text-faint);font-size:var(--text-sm);margin-bottom:var(--sp-7);border-bottom:1px solid var(--c-border);padding-bottom:var(--sp-4)}.post-page__no-comments{color:var(--c-text-faint);font-size:var(--text-sm)}.post-page__load-more{margin-top:var(--sp-8);text-align:center}.post-page__load-more-btn{color:var(--c-text-faint);font-size:var(--text-sm);cursor:pointer;padding:var(--sp-5)var(--sp-8);background:0 0;border:none;text-decoration:underline}.post-page__load-more-btn:disabled{cursor:default}
.profile-page{font-family:var(--font);font-size:var(--text-base)}.profile-page__error-detail{font-size:var(--text-sm);color:var(--c-text-faint);margin-top:var(--sp-2)}.profile-page__sections{margin-top:var(--sp-8)}.profile-page__logout{margin-top:var(--sp-10);justify-content:flex-end;display:flex}.profile-edit-row{gap:var(--sp-2);flex-direction:column;display:flex}.profile-edit-actions{gap:var(--sp-2);display:flex}.profile-edit-input-row{align-items:center;gap:var(--sp-2);display:flex}.profile-username-display{color:var(--c-primary);font-weight:400}.profile-not-connected{color:var(--c-text-faint)}.error-inline{font-size:var(--text-sm);color:#721c24;margin-top:var(--sp-1)}.back-link{font-size:var(--text-sm);margin-top:var(--sp-5);display:inline-block}
