body {
  margin: 0 auto;            /* center horizontally */
  max-width: 800px;
  min-height: 100vh;         /* keep full height if desired */
  background: #111;
  font-family: sans-serif;
}

.wrapper {
  margin: 25px;
  height: 375px;
  position: relative;
  text-align: center;
}

/* Container */
.player {
  width: 150px;
  margin: 0 auto;            /* center within non-flex wrapper */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
  overflow: hidden;
  background: #444;         /* visible container */
  border-radius: 100px;      
  padding: 25px;            
  height: 150px;             /* collapsed */
  transition: height 0.4s cubic-bezier(.68,-0.1,.27,1.0);
}

/* Shared button style */
.btn {
  width: 150px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  border: none;
  font-size: 50px;
  color: white;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(0);
  opacity: 1;
  transition: 
    opacity 0.1s ease, 
    transform 0.4s cubic-bezier(.68,-0.1,.27,1.0);
}

/* Initial states */
.main-btn {
  background: #aeaeae;
  z-index: 2;
}

.seek {
  background: #ffcc80;
  opacity: 1;
  transform: translateY(-175px);
  pointer-events: none;
  z-index: 1;
}

.pause {
  transform: translateY(0px); /* same as play, will fade in place */
}


/* Active wrapper */
.player.active {
  height: 325px; /* expands */
}

.player.active .play {
  opacity: 0;
  pointer-events: none;
}

.player.active .pause {
  opacity: 1;
  transform: translateY(0px);
  pointer-events: auto;
}

.player.active .seek {
  opacity: 1;
  transform: translateY(0px); /* slides down below main button */
  pointer-events: auto;
}




/* Lyrics container */
.lyrics {
  position: relative;          /* remove from flex flow */
  margin: 25px auto;           /* auto left/right to center */
  padding: 25px;
  /* horizontal centering achieved by auto margins, no transform */
  /* keep sizing from before */
  min-height: 0;
  overflow-y: auto;
  width: 90%;                  /* allow to scale with wrapper */
  max-width: 700px;
  max-height: 20vh;
  text-align: center;
  color: #aaa;
  font-size: 24px;
  line-height: 1.6;
  scrollbar-width: none;        /* Firefox */
  -ms-overflow-style: none;     /* IE 10+ */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

/* hide webkit scrollbars */
.lyrics::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.lyrics.visible {
  opacity: 1;
  visibility: visible;
}

.word {
  color: #aaa;
  transition: color 0.2s, font-size 0.2s;
}

.word.active {
  color: #fff;
  font-weight: bold;
}

/* additional highlight for specifically matched word */
.word.extra.active {
  font-size: 36px;
  text-shadow: 0 0 30px #c0c0c0;
}

.footer {
  position: fixed;          /* stick to viewport */
  bottom: 0;
  left: 0;
  width: 100vw;             /* full viewport width */
  padding: 15px 0;
  text-align: center;
  color: #666;
  font-size: 14px;
  border-top: 1px solid #222;
  background: #111;         /* match body for seamless look */
  box-sizing: border-box;  /* include padding in width calculation */
  z-index: 100;            /* sit above other content */
}
