/* Phone controller: one sentence plus two huge buttons. */
body.player { display: flex; flex-direction: column; min-height: 100dvh; overflow: hidden; touch-action: manipulation; user-select: none; }

.bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: max(10px, env(safe-area-inset-top)) 16px 10px;
  background: var(--stage-2);
}
.me { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 1.05rem; }
.me-emoji { font-size: 1.6rem; line-height: 1; }
.lang {
  border: 2px solid var(--stage-3); background: transparent; border-radius: 999px;
  padding: 4px 12px; font-weight: 700; font-size: .9rem; min-height: 36px;
}

.app { flex: 1; display: flex; flex-direction: column; padding: 16px; padding-bottom: max(16px, env(safe-area-inset-bottom)); }

.card { flex: 1; display: flex; flex-direction: column; gap: 14px; }
.card.center { justify-content: center; align-items: center; text-align: center; }
.card h1 { font-size: clamp(1.6rem, 8vw, 2.4rem); line-height: 1.15; font-weight: 800; }
.card p { font-size: 1.1rem; max-width: 30ch; }
.game-name { color: var(--muted); font-weight: 700; }
.card .lobby-emoji { font-size: 6rem; line-height: 1; }

/* Majority vs. Minority */
.mm { flex: 1; display: flex; flex-direction: column; gap: 12px; }
.mm-head { display: flex; flex-direction: column; gap: 6px; }
.mm-round { color: var(--muted); font-weight: 700; }
.mm-rule { font-size: clamp(1.3rem, 6.5vw, 1.9rem); font-weight: 800; line-height: 1.15; }
.mm-choices { flex: 1; display: flex; flex-direction: column; gap: 12px; }
.choice {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  border: 0; border-radius: 24px; cursor: pointer;
  transition: transform .12s, opacity .2s, filter .2s;
}
.choice:active { transform: scale(.97); }
.choice-a { background: var(--a); color: var(--a-ink); }
.choice-b { background: var(--b); color: var(--b-ink); }
.choice-icon { font-size: clamp(3.5rem, 22vw, 6.5rem); line-height: 1; }
.choice-label { font-size: clamp(1.4rem, 7vw, 2rem); font-weight: 800; }
.choice.picked { box-shadow: 0 0 0 5px var(--paper); }
.choice.dim { opacity: .25; }
.is-ghost .choice:not(.picked) { filter: saturate(.35); }
.t-done .choice:not(.picked) { opacity: .25; pointer-events: none; }
.is-paused .choice { pointer-events: none; }

.mm-foot { text-align: center; font-weight: 700; font-size: 1.1rem; min-height: 1.6em; }
.mm-foot .time-up { display: none; }
.t-low .tap-now { color: var(--out); }
.t-done .tap-now { display: none; }
.t-done .mm-foot .time-up { display: inline; }

.result h1 { font-size: clamp(1.8rem, 9vw, 2.6rem); }
.result-good h1 { color: var(--good); }
.result-out h1 { color: var(--out); }
.result-ghost h1 { color: var(--ghost); }
.result-win h1 { color: var(--a); font-size: clamp(2.4rem, 12vw, 3.4rem); }
.result .split { max-width: 360px; }
.verdict { font-weight: 700; }
