/* Transparent background: OBS composites the page over the stream */
:root {
  --size: 64px;
  --speaking: #43b581;
  --idle-opacity: 0.55;
  --gap: 10px;
  --lift: 6px;
  color-scheme: dark;
}

html, body {
  margin: 0;
  background: transparent;
  overflow: hidden;
  font: 700 calc(var(--size) * 0.28) / 1.2 system-ui, "Segoe UI", Roboto, "Noto Sans", sans-serif;
  color: #fff;
}

#members {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--gap);
  padding: calc(var(--lift) + 4px) 12px 12px;
}

body.row #members {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
}

.member {
  display: flex;
  align-items: center;
  gap: 10px;
  opacity: var(--idle-opacity);
  transition: opacity 120ms ease, transform 160ms cubic-bezier(.3, 1.6, .5, 1);
}

body.row .member {
  flex-direction: column;
  gap: 6px;
}

.member.speaking {
  opacity: 1;
  transform: translateY(calc(var(--lift) * -1));
}

body.no-bounce .member.speaking { transform: none; }
body.only-speaking .member:not(.speaking) { display: none; }
body.hide-self .member.self { display: none; }
body.no-names .name { display: none; }

.avatar {
  position: relative;
  flex: none;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 3px solid transparent;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  font-size: calc(var(--size) * 0.4);
  background: var(--fallback, #5865f2) center / cover no-repeat;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}

.member.speaking .avatar {
  border-color: var(--speaking);
  box-shadow: 0 0 calc(var(--size) * 0.25) var(--speaking);
}

.avatar.has-image .initial { display: none; }

.muted-icon {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: calc(var(--size) * 0.36);
  height: calc(var(--size) * 0.36);
  border-radius: 50%;
  background: #ed4245;
  display: none;
  place-items: center;
}

.muted-icon svg { width: 62%; height: 62%; }
.member.muted .muted-icon { display: grid; }

.name {
  max-width: 16em;
  padding: 2px 8px;
  border-radius: 6px;
  background: rgba(0, 0, 0, .65);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: 0 1px 2px #000;
}

#notice {
  display: inline-block;
  margin: 12px;
  padding: 6px 10px;
  border-radius: 6px;
  background: rgba(160, 20, 20, .85);
  font-size: 14px;
}
