/* Social audio spaces */
.party-top { display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:flex-start; margin-bottom:1rem; }
.party-top-actions { display:flex; gap:.45rem; flex-wrap:wrap; }
.party-stage {
  display:grid; grid-template-columns: 1.4fr .8fr; gap:1rem;
}
.party-now {
  display:grid; grid-template-columns: 140px 1fr; gap:1rem;
  padding:1rem; border:1px solid var(--border); border-radius: var(--radius);
  background: var(--bg-elevated);
}
.party-art {
  aspect-ratio:1; border-radius:14px;
  background: linear-gradient(145deg, var(--cover-grad-a), var(--cover-grad-b));
  background-size:cover; background-position:center;
}
.party-progress { display:grid; grid-template-columns:auto 1fr auto; gap:.45rem; align-items:center; margin:.65rem 0; }
.party-host-controls { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.party-host-controls select {
  font:inherit; color:var(--fg); background:var(--bg); border:1px solid var(--border);
  border-radius:10px; padding:.35rem .5rem; max-width:220px;
}
.party-side {
  padding:1rem; border:1px solid var(--border); border-radius:var(--radius);
  background: var(--bg-elevated);
}
.party-members { list-style:none; padding:0; margin:0 0 1rem; display:flex; flex-direction:column; gap:.35rem; }
.party-members li { font-size:.9rem; }
.party-members .host { color: var(--accent); font-weight:600; }
.reaction-pad { display:flex; flex-wrap:wrap; gap:.35rem; margin-bottom:.6rem; }
.reaction-pad button {
  font-size:1.25rem; border:1px solid var(--border); background:var(--bg);
  border-radius:12px; padding:.35rem .55rem; cursor:pointer;
}
.reaction-stream { max-height:180px; overflow:auto; font-size:.85rem; display:flex; flex-direction:column; gap:.25rem; }
.reaction-fly {
  position:fixed; inset:0; pointer-events:none; z-index:70; overflow:hidden;
}
.fly-emoji {
  position:absolute; bottom:6rem; left:50%; font-size:2rem;
  animation: flyUp 1.6s ease-out forwards;
}
@keyframes flyUp {
  from { transform: translate(-50%,0) scale(.6); opacity:0; }
  20% { opacity:1; }
  to { transform: translate(calc(-50% + var(--dx,0px)), -55vh) scale(1.2); opacity:0; }
}

.cover-original {
  display:grid; grid-template-columns: 120px 1fr auto; gap:1rem; align-items:center;
  padding:1rem; border:1px solid var(--border); border-radius:var(--radius);
  background: var(--bg-elevated); margin-bottom:1.25rem;
}
.cover-original .art {
  width:120px; height:120px; border-radius:12px;
  background: linear-gradient(145deg, var(--cover-grad-a), var(--cover-grad-b));
  background-size:cover; background-position:center;
}
.vote-pill {
  border:1px solid var(--border); background:var(--bg); border-radius:999px;
  padding:.35rem .75rem; cursor:pointer; font:inherit;
}
.vote-pill.is-on { border-color:var(--accent); color:var(--accent); }

.identify-stage { display:flex; flex-direction:column; align-items:center; gap:1rem; padding:2rem 1rem; }
.identify-orb {
  position:relative; width:160px; height:160px; border-radius:50%;
  border:0; cursor:pointer; color:#fff;
  background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--accent) 80%, white), var(--accent) 45%, var(--secondary));
  box-shadow: 0 16px 40px color-mix(in srgb, var(--accent) 35%, transparent);
}
.identify-orb .orb-ring {
  position:absolute; inset:-10px; border-radius:50%;
  border:2px solid color-mix(in srgb, var(--accent) 50%, transparent);
  opacity:0;
}
.identify-orb.is-listening .orb-ring {
  animation: pulseRing 1.2s ease-out infinite;
  opacity:1;
}
@keyframes pulseRing {
  from { transform:scale(.85); opacity:.8; }
  to { transform:scale(1.25); opacity:0; }
}
.orb-label { font-weight:600; position:relative; z-index:1; }

@media (max-width: 900px) {
  .party-stage, .party-now, .cover-original { grid-template-columns: 1fr; }
}
