body{
overflow-x:hidden;
margin:0;
font-family:Arial;
background:#000;
color:white;
}

/* layout */

.container{
    display:flex;
    justify-content:center;
    align-items:flex-start;
    gap:24px;
    margin:18px auto 0 auto;
    max-width:1100px;
    padding:0 20px;
    box-sizing:border-box;
    flex-wrap:wrap;        /* allows stacking when needed */
}

/* artwork window */

.visual{
    position:relative;
    flex:1 1 380px;      /* can shrink if needed */
    max-width:380px;
    width:100%;
    aspect-ratio: 380 / 460;
    overflow:hidden;
    border-radius:20px;
    box-shadow:0 10px 40px rgba(0,0,0,0.45);
    background:black;
}

/* track artwork */

#trackArt{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:70%;
    object-fit:contain;
    background:black;
}



/* lyrics viewport (bottom focus area) */

#lyricsViewport{
position:absolute;
top:68%;
left:0;
width:100%;
height:26%;
overflow:hidden;
z-index:3;
}

/* lyric container */

#lyrics{
position: relative;
text-align:center;
font-size:17px;
line-height:32px;
transition:transform 0.7s cubic-bezier(.22,.61,.36,1);
padding: 40px 18px 50px 18px;
word-wrap:break-word;   /* ⭐ prevents overflow */
overflow-wrap:break-word;
}

/* individual lyric lines */

.lyricLine{
opacity:0.15;
transform:scale(0.92);
transition:all 0.6s ease;
color:#ffffff;
height:32px;
}

/* active lyric */

.lyricLine.active{
opacity:1;
transform:scale(1.08);
color:#ffffff;
text-shadow:
0 0 8px rgba(255,255,255,0.8),
0 0 18px rgba(255,255,255,0.6),
0 0 28px rgba(255,255,255,0.4);
}

/* =========================
   PLAYER PANEL
========================= */

.player{
    flex:1 1 360px;
    max-width:360px;
    width:100%;
    max-height:460px;        /* ⭐ keeps player same height as artwork */
    box-sizing:border-box;
    background:rgba(0,0,0,0.5);
    padding:18px;
    border-radius:12px;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}

.player *{
    max-width:100%;
    box-sizing:border-box;
}
.visual, .player{
    max-width:100%;
}

/* =========================
   CONTROLS
========================= */
.controlBtn{
    opacity:0.5;
}

.controlBtn.active{
    opacity:1;
    box-shadow:0 0 10px rgba(255,255,255,0.8);
}
.controlsBar{
    display:flex;
    align-items:center;
    gap:10px;
    margin:12px 0 8px 0;
}

.controlsBar button{
    font-size:16px;
    padding:6px 9px;
    background:#222;
    border:none;
    border-radius:6px;
    cursor:pointer;
    color:white;
}

.controlsBar button:hover{
    background:#444;
}

#playPause{
    font-size:18px;
    padding:7px 12px;
}

.progressBar{
    display:flex;
    align-items:center;
    gap:12px;
    margin:6px 0 14px 0;
    width:100%;
}

#progress{
    flex:1;
    min-width:0;
}

#timeDisplay{
    width:90px;
    font-size:14px;
    opacity:0.85;
    text-align:center;
}

#loopBtn{
    opacity:0.5;
}

/* =========================
   VOLUME
========================= */

.volume{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:20px;
}

.volume input[type="range"]{
    flex:1;
    min-width:0;
}

#muteBtn{
    font-size:16px;
    padding:6px 10px;
    background:#222;
    border:none;
    border-radius:6px;
    cursor:pointer;
    color:white;
}

#muteBtn:hover{
    background:#444;
}

#downloadBtn svg {
    fill: none;
    stroke: white;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* fix range sliders overflowing player */

input[type="range"]{
    width:100%;
    min-width:0;
    margin:0;
}

/* =========================
   PLAYLIST
========================= */

#playlist{
    list-style:none;
    padding:0;
    margin:0;
    flex:1;
    overflow-y:auto;
    overflow-x:hidden;
    width:100%;
    box-sizing:border-box;
}

#playlist li{
    padding:10px 18px;
    cursor:pointer;
    border-bottom:1px solid rgba(255,255,255,0.1);
    box-sizing:border-box;      /* keeps items inside playlist width */
    width:100%;
}

#playlist li:hover{
    background:rgba(255,255,255,0.1);
}

@media (max-width:768px){

.container{
flex-direction:column;
align-items:center;
}

#lyrics{
font-size:15px;
line-height:1.8;
padding:40px 15px 60px 15px;
}

}

