/* ============================================================
   PARTY — game-specific styles
   ============================================================ */

/* ---------------- CHWAZI ---------------- */
.finger-area{position:relative;flex:1;min-height:62vh;margin:8px 0;touch-action:none;user-select:none;overflow:hidden}
.finger-ring{
  position:absolute;width:96px;height:96px;border-radius:50%;border:7px solid #fff;
  display:flex;align-items:center;justify-content:center;pointer-events:none;
  transition:opacity .5s, transform .5s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 0 0 3px rgba(0,0,0,.25), 0 8px 24px rgba(0,0,0,.3);
}
.finger-ring span{width:30px;height:30px;border-radius:50%}
.finger-ring.win{z-index:5;animation:winPulse 1s ease-in-out infinite}
@keyframes winPulse{50%{box-shadow:0 0 0 3px rgba(0,0,0,.25), 0 0 44px 10px rgba(255,255,255,.5)}}
.finger-hint{position:absolute;inset:0;padding:30px 26px}
.finger-count{position:absolute;inset:0;pointer-events:none}
.finger-won{position:absolute;inset:0;pointer-events:none}

/* wheel */
.wheel-wrap{position:relative;width:min(78vw,320px);aspect-ratio:1}
.wheel-ptr{position:absolute;top:-6px;left:50%;transform:translateX(-50%);z-index:6;color:var(--cream);font-size:30px;filter:drop-shadow(0 2px 0 rgba(0,0,0,.4))}
.wheel{position:relative;width:100%;height:100%;border-radius:50%;border:6px solid var(--cream);box-shadow:0 10px 0 rgba(0,0,0,.35), inset 0 0 0 3px var(--ink)}
.wheel-label{position:absolute;top:0;left:50%;width:0;height:50%;transform-origin:bottom center;display:flex;align-items:center;justify-content:center;pointer-events:none;font-family:var(--font-display);font-weight:800;font-size:15px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.wheel-label span{display:block;white-space:nowrap}
.wheel-hub{position:absolute;top:50%;left:50%;width:46px;height:46px;border-radius:50%;background:var(--cream);border:4px solid var(--ink);transform:translate(-50%,-50%);z-index:4}

/* ---------------- shared game scaffolding ---------------- */
.setup{padding:8px 22px 30px}
.setup h2{font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:-1px;margin-bottom:4px}
.setup .lead{color:#A99AD6;font-size:14.5px;margin-bottom:20px}
.field{margin-bottom:22px}
.field > label{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#9C8ED0;margin-bottom:11px}
.role-card-big{
  border:3px solid var(--ink);border-radius:22px;padding:26px 22px;color:var(--ink);box-shadow:var(--shadow);width:100%;max-width:360px;text-align:center;
}
.secret-word{font-family:var(--font-display);font-weight:800;font-size:46px;line-height:1;letter-spacing:-1.5px}
.tier-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:30px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}

/* big vote / choice buttons */
.bigchoice{display:grid;gap:13px}
.choice-btn{
  border:3px solid var(--ink);border-radius:18px;padding:20px;font-family:var(--font-display);font-weight:800;font-size:24px;
  color:var(--ink);cursor:pointer;box-shadow:var(--shadow);transition:transform .14s cubic-bezier(.34,1.56,.64,1),box-shadow .14s;text-align:center;
}
.choice-btn:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.choice-btn:active{transform:translateY(3px);box-shadow:var(--shadow-sm)}

/* vote tally list */
.tally{display:flex;flex-direction:column;gap:9px}
.tally-row{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.1);border-radius:13px;padding:11px 14px}
.tally-bar{flex:1;height:10px;border-radius:10px;background:rgba(255,255,255,.1);overflow:hidden}
.tally-bar > i{display:block;height:100%;border-radius:10px;transition:width .6s cubic-bezier(.22,1,.36,1)}

/* card reader (hot take / sneak prompt) */
.bigcard{
  background:var(--cream);color:var(--ink);border:3px solid var(--ink);border-radius:24px;box-shadow:var(--shadow-lg);
  padding:34px 28px;width:100%;max-width:380px;min-height:230px;display:flex;flex-direction:column;justify-content:center;text-align:center;
}
.bigcard .q{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1.05;letter-spacing:-1px}

/* team blocks (alias) */
.teamblock{border:3px solid var(--ink);border-radius:18px;padding:14px 16px;box-shadow:var(--shadow-sm)}
.teamblock h4{font-family:var(--font-display);font-weight:800;font-size:20px;color:var(--ink)}

/* quest pips row (avalon) */
.questline{display:flex;gap:10px;align-items:center;justify-content:center}
.questnode{width:46px;height:46px;border-radius:14px;border:3px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--cream);position:relative}
.questnode.good{background:var(--teal);border-color:var(--cream);color:#06281f}
.questnode.evil{background:var(--coral);border-color:var(--cream);color:#fff}
.questnode.cur{box-shadow:0 0 0 4px rgba(255,255,255,.18)}
.questnode small{position:absolute;bottom:-18px;font-family:var(--font-mono);font-size:9px;color:#9082BE;font-weight:700}

/* night narration */
.night{background:rgba(0,0,0,.28);border:1.5px solid rgba(255,255,255,.12);border-radius:18px;padding:26px 22px;text-align:center}

/* ---------------- WORD SNEAK overlay ---------------- */
.sneak-overlay{position:absolute;inset:0;z-index:40;background:rgba(8,5,20,.72);display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease both}
.sneak-sheet{width:100%;max-width:520px;background:#1E1640;border-top:3px solid var(--grape);border-radius:24px 24px 0 0;padding:24px 22px 30px;animation:sheetUp .3s cubic-bezier(.22,1,.36,1) both}

/* ---------------- EXIT CONFIRM ---------------- */
.exit-overlay{position:fixed;inset:0;z-index:50;background:rgba(8,5,20,.78);display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .2s ease both}
.exit-sheet{width:100%;max-width:360px;background:#1E1640;border:3px solid var(--ink);border-radius:24px;padding:28px 24px 24px;text-align:center;box-shadow:var(--shadow-lg);animation:pop .35s cubic-bezier(.34,1.56,.64,1) both}

/* ---------------- CHWAZI player pick ---------------- */
.finger-pick{position:absolute;inset:0;padding:24px 22px;pointer-events:auto;z-index:6}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

/* ---------------- ALIAS HEADS UP ---------------- */
.heads-up-active .bigcard.heads-up-card{min-height:280px;justify-content:center}
.heads-up-card .secret-word{text-align:center}

/* ---------------- WOULD YOU RATHER ---------------- */
.wyr-options{display:flex;flex-direction:column;gap:10px;text-align:left;width:100%}
.wyr-opt{display:flex;gap:12px;align-items:flex-start;font-family:var(--font-body);font-size:17px;font-weight:600;line-height:1.25;color:var(--ink)}
.wyr-letter{flex-shrink:0;width:32px;height:32px;border-radius:10px;background:var(--ink);color:var(--cream);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:16px}
.wyr-or{text-align:center;font-family:var(--font-mono);font-size:12px;color:#897B6A;text-transform:uppercase;letter-spacing:2px}
.wyr-split-bar{display:flex;width:100%;max-width:360px;height:48px;border-radius:14px;overflow:hidden;border:3px solid var(--ink);box-shadow:var(--shadow-sm)}
.wyr-split-a,.wyr-split-b{display:flex;align-items:center;justify-content:center;min-width:40px;font-family:var(--font-display);font-weight:800;font-size:20px;color:#fff;transition:width .6s cubic-bezier(.22,1,.36,1)}
.wyr-split-a{background:var(--teal);color:#06281f}
.wyr-split-b{background:var(--coral)}

/* ---------------- WAVELENGTH ---------------- */
.wavelength-wrap{width:100%;max-width:400px}
.wavelength-labels{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}
.wavelength-pole{font-family:var(--font-display);font-weight:800;font-size:18px;line-height:1.05;letter-spacing:-.5px;max-width:42%;color:var(--cream)}
.wavelength-pole-r{text-align:right}
.wavelength-track{position:relative;height:52px;border-radius:14px;border:3px solid var(--ink);overflow:visible;touch-action:none;background:var(--cream)}
.wavelength-track.interactive{cursor:grab}
.wavelength-track.interactive:active{cursor:grabbing}
.wavelength-gradient{position:absolute;inset:0;border-radius:11px;background:linear-gradient(90deg,var(--coral),var(--gold),var(--teal),var(--sky),var(--grape))}
.wavelength-thumb{position:absolute;top:50%;width:28px;height:44px;margin-left:-14px;transform:translateY(-50%);background:var(--cream);border:3px solid var(--ink);border-radius:10px;box-shadow:var(--shadow-sm);pointer-events:none;z-index:4}
.wavelength-marker{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}
.wavelength-marker i{display:block;width:18px;height:18px;border-radius:50%;border:3px solid var(--ink)}
.wavelength-marker.target i{background:var(--gold)}
.wavelength-marker.guess i{background:var(--grape)}
.wavelength-marker span{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#B6A6E8;font-weight:700}
