:root{--bg-color:#0f172a;--card-bg:#1e293b;--card-hover:#334155;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-red:#ef4444;--accent-red-bg:#ef444433;--accent-green:#10b981;--accent-green-bg:#10b98133;--border-color:#334155;--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--shadow-subtle:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-hover:0 10px 15px -3px #00000080, 0 4px 6px -4px #00000080}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}.layout{max-width:1400px;margin:0 auto;padding:2rem 1.5rem}.page-header{text-align:center;margin-bottom:3rem}.main-title{letter-spacing:-.02em;background:linear-gradient(135deg,#f8fafc 0%,#94a3b8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.1}.main-title a{-webkit-text-fill-color:transparent;text-decoration:none}.description{max-width:600px;margin:.5rem auto;font-size:1.125rem}.subtle-text{color:var(--text-secondary)}.interactive-text{margin-top:1rem}.share-link{color:#60a5fa;cursor:pointer;border-bottom:1px dashed #60a5fa80;font-weight:500;text-decoration:none;transition:color .2s}.share-link:hover{color:#93c5fd;border-bottom-color:#93c5fd}.filter-section{flex-direction:column;align-items:center;margin-bottom:3rem;display:flex}.filter-header{text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:1rem;font-size:.875rem;font-weight:600}.filter-controls{border:1px solid var(--border-color);background:#1e293b80;border-radius:100px;gap:.75rem;padding:.5rem;display:flex}.filter-toggle{cursor:pointer;opacity:.6;filter:grayscale(.5);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:1.5rem;transition:all .2s;display:flex}.filter-toggle:hover{background:var(--card-hover);opacity:.9;transform:scale(1.05)}.filter-toggle.active{background:var(--card-bg);opacity:1;filter:none;box-shadow:inset 0 0 0 1px var(--border-color)}.shared-view-banner{text-align:center;border-radius:var(--radius-lg);background:linear-gradient(135deg,#1e40af33 0%,#581c8733 100%);border:1px solid #93c5fd33;margin-bottom:3rem;padding:2rem}.shared-view-banner h2{color:#e0e7ff;margin-top:0;font-size:1.5rem}.album-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));justify-items:center;gap:2rem;display:grid}@media (max-width:600px){.album-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}}.album-card{background:var(--card-bg);border-radius:var(--radius-lg);width:100%;max-width:260px;box-shadow:var(--shadow-subtle);border:1px solid var(--border-color);flex-direction:column;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),box-shadow .3s,opacity .3s;display:flex;overflow:hidden}.album-card.semi-hidden{opacity:.3;filter:grayscale(.8);transform:scale(.95)}.album-card:hover{box-shadow:var(--shadow-hover);border-color:#475569;transform:translateY(-8px)}.album-card.semi-hidden:hover{opacity:.8;filter:grayscale(0);transform:translateY(-4px)scale(.98)}.album-top-wrapper{aspect-ratio:1;background:#0f172a;width:100%;position:relative}.album-rank{z-index:10;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.125rem;font-weight:800;display:flex;position:absolute;top:12px;left:12px}.album-image-link{width:100%;height:100%;display:block}.album-cover{object-fit:cover;width:100%;height:100%;transition:transform .5s}.album-card:hover .album-cover{transform:scale(1.05)}.album-vote{border-bottom:1px solid var(--border-color);background:#0f172a66;justify-content:space-evenly;padding:.75rem;transition:background-color .3s;display:flex}.album-vote.voted-like{background:var(--accent-green-bg)}.album-vote.voted-dislike{background:var(--accent-red-bg)}.album-vote>span{cursor:pointer;border-radius:var(--radius-sm);opacity:.7;padding:.25rem 1rem;font-size:1.25rem;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),background-color .2s}.album-vote>span:hover{opacity:1;background:#ffffff1a;transform:scale(1.2)}.album-title{color:var(--text-primary);margin:0;padding:1rem;font-size:1rem;font-weight:600;line-height:1.4}.album-artist{color:var(--text-secondary);margin-bottom:.25rem;font-size:.875rem;font-weight:500;display:block}@media (max-width:600px){.album-title{padding:.75rem;font-size:.875rem}.album-artist{font-size:.75rem}}
