@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;800&display=swap'); :root { --primary-hsl: 350 89% 60%; --primary-color: hsl(var(--primary-hsl)); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; user-select: none; } img { pointer-events: none; -webkit-user-drag: none; } #background-wrapper { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: -2; overflow: hidden; } #background { position: absolute; width: 100%; height: 100%; background-size: cover; background-position: center; background-repeat: no-repeat; filter: brightness(0.2) saturate(0) blur(0.1vh); transition: background-image 1s ease-in-out; z-index: -2; } #gradient-layer { position: absolute; width: 100%; height: 100%; z-index: -1; pointer-events: none; overflow: hidden; } #gradient-layer::before, #gradient-layer::after { content: ""; position: absolute; width: 60vw; height: 60vw; filter: blur(80px); pointer-events: none; z-index: -1; border-radius: 50%; } #gradient-layer::before { bottom: 0; left: 0; background: radial-gradient( circle at bottom left, rgba(0, 255, 140, 0.3) 0%, rgba(0, 255, 140, 0.1) 40%, transparent 80% ); transform: translate(-20%, 20%); } #gradient-layer::after { top: 0; right: 0; background: radial-gradient( circle at top right, rgba(0, 255, 140, 0.3) 0%, rgba(0, 255, 140, 0.1) 40%, transparent 80% ); transform: translate(20%, -20%); } .center { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; } @keyframes zoom-in-out { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } } .center img { width: 15vw; animation: zoom-in-out 3s infinite ease-in-out; } .progress-container { width: 80vw; height: 0.6vh; background-color: rgba(23, 23, 23, 0.7); border-radius: 2vh; position: fixed; bottom: 10vh; left: 50%; transform: translateX(-50%); overflow: hidden; } .progress-line { height: 100%; width: 0%; background-color: #00ff8c; border-radius: 2vh; transition: width 0.3s ease-in-out; } .loading-text { position: absolute; bottom: calc(10vh + 1.5vh); left: 20%; font-size: 1.2vh; font-weight: 500; color: #ffffff; } .song-display { position: fixed; bottom: 10.5vh; left: 9vw; height: 6.5vh; display: flex; align-items: center; padding: 0 2vh; border-radius: 1vh; gap: 1.3vh; } .song-title, .song-artist { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; } .song-info { width: 8vw; /* 👈 stała szerokość – nie przeskakuje przy zmianie tytułu */ display: flex; flex-direction: column; position: relative; padding-left: 1.5vh; justify-content: center; height: 100%; overflow: hidden; } .song-info::before { content: ""; position: absolute; left: 0; top: 10%; width: 0.2vh; height: 75%; background-color: white; border-radius: 1vh; } .song-title { font-size: 1.5vh; font-weight: 600; position: relative; color: white; display: inline-block; background: white; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-fill-color: transparent; background-image: linear-gradient( 90deg, white 0%, white 45%, #00ff8c 50%, white 55%, white 100% ); background-size: 300% 100%; background-position: 100% 0; animation: shimmer-line 12s linear infinite; } @keyframes shimmer-line { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } .song-artist { font-size: 1.2vh; font-weight: 400; color: rgba(255, 255, 255, 0.8); margin-top: 0.2vh; } .song-btn { background: none; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: transform 0.1s ease, background-color 0.2s ease; padding: 0.5vh; border-radius: 50%; } .song-btn:hover { background-color: rgba(255, 255, 255, 0.1); transform: scale(1.05); } .song-btn:active { transform: scale(0.95); } .song-controls { display: flex; align-items: center; gap: 2vh; /* 👈 między ikonami */ flex-shrink: 0; /* 👈 nie pozwól im się zsuwać bliżej */ } .song-btn svg { width: 2.2vh; height: 2.2vh; fill: white; } .song-btn.play { background: white; border-radius: 50%; width: 4.2vh; height: 4.2vh; } .song-btn.play svg { width: 1.6vh; height: 1.6vh; fill: black; } .volume-status { position: fixed; bottom: 15vh; left: 50%; transform: translateX(-50%); text-align: center; z-index: 1000; color: #fff; background-color: rgba(0, 0, 0, 0.6); padding: 1vh 2vh; border-radius: 0.5vh; font-size: 1vh; font-weight: 500; backdrop-filter: blur(8px); } .fade-out { opacity: 0; transition: opacity 0.5s ease-out; } .fade-in { opacity: 1; transition: opacity 0.5s ease-in; } .bottom-bar { position: fixed; bottom: 0; left: 0; width: 100%; background: rgba(0, 0, 0, 0.6); padding: 0.8vh 0; text-align: center; font-size: 1.4vh; font-weight: 400; color: rgba(255, 255, 255, 0.8); backdrop-filter: blur(8px); } .bottom-bar .bold { font-weight: 600; color: rgba(255, 255, 255, 1); } .welcome-text { font-size: 1.8vh; font-weight: 600; color: white; margin-top: 2vh; line-height: 1.5; } .player-nick { color: #00ff8c; font-weight: 600; font-size: 1.8vh; } .loading-subtext { font-size: 1vh; font-weight: 400; color: rgba(255, 255, 255, 0.7); display: block; margin-top: 0.6vh; } #volume-control { position: fixed; top: 0.8vh; right: -7.5vh; display: flex; align-items: center; gap: 1vh; background: transparent; padding: 0; border-radius: 0; z-index: 10000; width: 25vh; max-width: 25vh; } #mute-button { background: transparent; border: none; padding: 0; outline: none; display: flex; align-items: center; justify-content: center; width: 2.5vh; height: 2.5vh; color: white; font-size: 1.6vh; line-height: 1; } #mute-button svg { background: transparent !important; fill: currentColor; width: 1.6vh; height: 1.6vh; } #mute-button i { background: transparent; font-size: 1.6vh; color: white; line-height: 1; } #mute-button:hover { color: #00ff8c; } #volume-slider { -webkit-appearance: none; -moz-appearance: none; appearance: none; width: 50%; height: 0.5vh; border-radius: 0.3vh; cursor: pointer; transition: background-color 0.3s ease; margin-top: 0; /* usuń przesunięcie */ --value: 0.2; background: linear-gradient( to right, rgb(255, 255, 255) 0%, rgb(255, 255, 255) calc(var(--value) * 100%), rgba(177, 177, 177, 0.5) calc(var(--value) * 100%), rgba(177, 177, 177, 0.5) 100% ); display: block; } #volume-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 1.4vh; height: 1.4vh; background: white; border-radius: 50%; cursor: pointer; transition: background-color 0.3s ease; position: relative; z-index: 1; margin-top: 0; /* usuń przesunięcie */ } #volume-slider::-moz-range-track { height: 0.6vh; border-radius: 0.3vh; background: transparent; } #volume-slider::-moz-range-thumb { width: 1.4vh; height: 1.4vh; background: white; border-radius: 50%; cursor: pointer; transition: background-color 0.3s ease; position: relative; z-index: 1; margin-top: 0; } #volume-slider:hover::-webkit-slider-thumb, #volume-slider:hover::-moz-range-thumb { background-color: #00ff8c; }