/* Backdrop containers */ /* Stock backdrop projected app wide */ .rl-stock-background-container { position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; z-index: -3; pointer-events: none; overflow: hidden; background-color: #000; } .rl-stock-rotator { position: absolute; left: 50%; top: 50%; width: 100vmax; height: 100vmax; margin-left: -50vmax; margin-top: -50vmax; will-change: transform; animation: rl-stock-spin 33s linear infinite; } /* Tidal lays 40% of the container & then scales it 4x which is actually kinda smart (i should have thought of this..)*/ .rl-stock-overscan { position: absolute; left: 50%; top: 50%; width: 40vmax; height: 40vmax; margin-left: -20vmax; margin-top: -20vmax; transform: scale(4); } .rl-stock-art { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(28px) saturate(1.3); transform: scale(1.26); opacity: 0; /* Crossfade between the two layers on track change (again.. NOT AUDIO CROSSFADE) */ transition: opacity 600ms ease; } .rl-stock-art.rl-stock-art-active { opacity: 1; } .rl-stock-scrim { position: absolute; left: 0; top: 0; width: 100%; height: 100%; /* Both Tidal gradients */ background: radial-gradient( 120% 100% at 50% 38%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.12) 62%, rgba(0, 0, 0, 0.28) 100% ), linear-gradient( rgba(0, 0, 0, 0.34) 0%, rgba(0, 0, 0, 0.42) 24%, rgba(0, 0, 0, 0.5) 45%, rgba(0, 0, 0, 0.62) 72%, rgba(0, 0, 0, 0.76) 100% ); } /* Tidal stops its spin while paused */ .rl-stock-paused .rl-stock-rotator { animation-play-state: paused; } @keyframes rl-stock-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @media (prefers-reduced-motion: reduce) { .rl-stock-rotator { /* biome-ignore lint: Accessibility override needs priority */ animation: none !important; } } .global-background-container { position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; z-index: -3; pointer-events: none; overflow: hidden; /* Dark base under the shader */ background: #000; transform: translateZ(0); backface-visibility: hidden; } /* Make app chrome transparent for cover-everywhere background */ body, #wimp, main, [class^="_sidebarWrapper"], [class^="_mainContainer"], [data-test="main-layout-sidebar-wrapper"], [data-test="main-layout-header"], [data-test="feed-sidebar"], [data-test="footer-player"], [class^="_feedSidebarVStack"], [class^="_feedSidebarSpacer"], [class^="_feedSidebarItem"], [class^="_feedSidebarItemDiv"], [class^="_cellContainer"] { /* biome-ignore lint: Ensure background is fully cleared under theme CSS */ background: unset !important; } /* Make sidebar semi-transparent with optimized backdrop-filter */ [data-test="main-layout-sidebar-wrapper"] { /* biome-ignore lint: Must beat app inline styles for translucency */ background-color: rgba(0, 0, 0, 0.3) !important; /* biome-ignore lint: Must beat app inline styles for translucency */ backdrop-filter: blur(10px) !important; /* biome-ignore lint: Must beat app inline styles for translucency */ -webkit-backdrop-filter: blur(10px) !important; } /* Performance mode: reduce backdrop blur */ .performance-mode [data-test="main-layout-sidebar-wrapper"] { /* biome-ignore lint: Performance mode style requires priority */ backdrop-filter: blur(5px) !important; /* biome-ignore lint: Performance mode style requires priority */ -webkit-backdrop-filter: blur(5px) !important; } /* Feed sidebar panel - black tint background for readability */ [data-test="feed-sidebar"] { /* biome-ignore lint: Ensure readability over media */ background-color: rgba(0, 0, 0, 0.5) !important; /* biome-ignore lint: Ensure readability over media */ backdrop-filter: blur(10px) !important; /* biome-ignore lint: Ensure readability over media */ -webkit-backdrop-filter: blur(10px) !important; } /* Performance mode: reduce sidebar backdrop blur */ .performance-mode [data-test="feed-sidebar"] { /* biome-ignore lint: Performance mode style requires priority */ backdrop-filter: blur(5px) !important; /* biome-ignore lint: Performance mode style requires priority */ -webkit-backdrop-filter: blur(5px) !important; } /* Feed sidebar items - transparent */ [class*="_feedSidebarItem"], [class*="_feedSidebarItemDiv"], [class*="_cellContainer"], [data-test="feed-interval"], [data-test="feed-item"] { /* biome-ignore lint: Match theme transparency */ background-color: transparent !important; }