/* L'Impostore — dedicated social-deduction game UI */
.game-view[data-game="impostore"]{position:relative;isolation:isolate;min-height:calc(100vh - 82px)}
.game-view[data-game="impostore"]:before{content:"";position:fixed;z-index:-2;inset:82px 0 0;background:radial-gradient(circle at 72% 8%,rgba(28,216,203,.14),transparent 32%),radial-gradient(circle at 16% 72%,rgba(119,69,237,.2),transparent 34%),linear-gradient(145deg,#050816 0%,#0b1028 48%,#070812 100%)}
.game-view[data-game="impostore"]:after{content:"";position:fixed;z-index:-1;inset:82px 0 0;pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(125,240,233,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(125,240,233,.045) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,black,transparent 88%)}

.impostor-screen{--imp-accent:#38ded2;--imp-rgb:56,222,210;max-width:1240px;padding:38px 28px 76px;margin:0 auto;position:relative}
.impostor-screen.viewer-impostor{--imp-accent:#ff527c;--imp-rgb:255,82,124}
.impostor-screen .assassin-top{align-items:center;margin:0 0 22px;padding:0 4px}
.impostor-screen .assassin-top>div:first-child{display:grid;gap:8px}
.impostor-screen .assassin-top .kicker{width:max-content;padding:7px 11px;border:1px solid rgba(var(--imp-rgb),.3);border-radius:7px;background:rgba(var(--imp-rgb),.08);color:var(--imp-accent);font-size:9px;font-weight:800;letter-spacing:.18em}
.impostor-screen .assassin-top h2{margin:0;font-size:clamp(34px,4.5vw,58px);line-height:.98;letter-spacing:-.05em;text-wrap:balance}
.impostor-screen .timer{width:78px;height:78px;border:1px solid rgba(var(--imp-rgb),.22);border-radius:23px;background:rgba(5,9,22,.72);box-shadow:0 16px 42px rgba(0,0,0,.28),inset 0 0 24px rgba(var(--imp-rgb),.06);backdrop-filter:blur(14px)}
.impostor-screen .timer svg{filter:drop-shadow(0 0 5px rgba(var(--imp-rgb),.7))}.impostor-screen .timer circle:last-child{stroke:var(--imp-accent)}
.impostor-screen .timer b{font-size:19px}.impostor-screen .timer span{color:rgba(255,255,255,.48);font-size:7px;letter-spacing:.16em}

.impostor-screen .assassin-layout{grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:18px;align-items:stretch}
.impostor-screen .role-card,.impostor-screen .assassin-board{border-color:rgba(var(--imp-rgb),.16);background:rgba(7,11,27,.82);box-shadow:0 30px 90px rgba(0,0,0,.38);backdrop-filter:blur(18px)}
.impostor-screen .role-card{min-height:510px;padding:38px 30px;border-radius:28px;justify-content:flex-end;isolation:isolate}
.impostor-screen .role-card:before{z-index:-2;width:310px;height:310px;top:-125px;left:50%;transform:translateX(-50%);background:var(--imp-accent);filter:blur(105px);opacity:.22}
.impostor-screen .role-card:after{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(118deg,transparent 18%,rgba(255,255,255,.06) 46%,transparent 63%),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 6px);mask-image:linear-gradient(to bottom,black,transparent 86%)}
.impostor-screen .role-card>span{width:116px;height:116px;display:grid;place-items:center;margin:0 auto auto;border:1px solid rgba(var(--imp-rgb),.34);border-radius:34px;background:linear-gradient(145deg,rgba(var(--imp-rgb),.2),rgba(4,7,18,.65));color:var(--imp-accent);font-size:54px;filter:drop-shadow(0 0 24px rgba(var(--imp-rgb),.5));box-shadow:inset 0 0 38px rgba(var(--imp-rgb),.1),0 20px 55px rgba(0,0,0,.3)}
.impostor-screen .role-card small{color:var(--imp-accent);font-size:9px;font-weight:800;letter-spacing:.2em}
.impostor-screen .role-card h3{max-width:100%;margin:11px 0 14px;font-size:clamp(29px,3vw,43px);line-height:1;letter-spacing:-.04em;overflow-wrap:anywhere;text-shadow:0 0 28px rgba(var(--imp-rgb),.26)}
.impostor-screen .role-card p{max-width:260px;color:#aeb5cb;font-size:12px;line-height:1.7}
.impostor-screen .role-card.dead{filter:grayscale(.8);opacity:.64}

.impostor-screen .assassin-board{min-height:510px;padding:30px;border-radius:28px;position:relative;overflow:hidden}
.impostor-screen .assassin-board:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--imp-accent),transparent 38%);height:2px;opacity:.7}
.impostor-screen .phase-copy{max-width:620px;margin:2px auto 26px;text-align:left}
.impostor-screen .phase-copy:before{content:"MISSIONE ATTUALE";display:block;margin-bottom:9px;color:var(--imp-accent);font-size:8px;font-weight:800;letter-spacing:.2em}
.impostor-screen .phase-copy h3{font-size:clamp(25px,3vw,35px);line-height:1.1;letter-spacing:-.035em}
.impostor-screen .phase-copy p{max-width:560px;margin-top:10px;color:#929caf;font-size:12px;line-height:1.65}
.impostor-screen .assassin-event{position:relative;padding:16px 18px 16px 46px;border-color:rgba(var(--imp-rgb),.3);border-radius:16px;background:rgba(var(--imp-rgb),.08);color:#f6f8ff;text-align:left;font-weight:650;box-shadow:inset 3px 0 var(--imp-accent)}
.impostor-screen .assassin-event:before{content:"!";position:absolute;left:17px;top:50%;width:20px;height:20px;display:grid;place-items:center;transform:translateY(-50%);border-radius:50%;background:var(--imp-accent);color:#07101a;font-size:11px;font-weight:900}

.impostor-screen .suspect-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.impostor-screen .suspect{min-width:0;min-height:72px;padding:12px;border-color:rgba(255,255,255,.075);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));position:relative;overflow:hidden;transition:transform 180ms cubic-bezier(.23,1,.32,1),border-color 180ms ease-out,background-color 180ms ease-out,box-shadow 180ms ease-out}
.impostor-screen .suspect:before{content:"";position:absolute;inset:auto 0 0;height:2px;background:var(--imp-accent);opacity:0;transform:scaleX(.25);transition:opacity 180ms ease-out,transform 220ms cubic-bezier(.23,1,.32,1)}
.impostor-screen .suspect-avatar{width:43px;height:43px;flex:0 0 auto;border-radius:14px;background:linear-gradient(145deg,rgba(var(--imp-rgb),.46),#182038);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.impostor-screen .suspect>span{min-width:0}.impostor-screen .suspect strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.impostor-screen .suspect small{color:#7f8a9d;font-size:8px;font-weight:700;letter-spacing:.08em}
.impostor-screen .suspect.is-me strong:after{content:"TU";margin-left:7px;padding:2px 4px;border-radius:4px;background:rgba(var(--imp-rgb),.14);color:var(--imp-accent);font-size:6px;letter-spacing:.1em;vertical-align:2px}
.impostor-screen .suspect-state{position:absolute;right:12px;top:12px;width:7px;height:7px;border-radius:50%;background:#394257;box-shadow:0 0 0 4px rgba(57,66,87,.12)}
.impostor-screen .suspect.ready .suspect-state{background:#51e39b;box-shadow:0 0 0 4px rgba(81,227,155,.11),0 0 13px rgba(81,227,155,.55)}
.impostor-screen .suspect.voted .suspect-state{background:#f3ba51;box-shadow:0 0 0 4px rgba(243,186,81,.1),0 0 13px rgba(243,186,81,.4)}
.impostor-screen .suspect.selected{border-color:var(--imp-accent);background:rgba(var(--imp-rgb),.12);box-shadow:0 0 0 3px rgba(var(--imp-rgb),.08),0 14px 32px rgba(0,0,0,.28)}
.impostor-screen .suspect.selected:before,.impostor-screen .suspect.ready:before{opacity:1;transform:scaleX(1)}
.impostor-screen .suspect.dead{opacity:.28;filter:grayscale(1);text-decoration:none}.impostor-screen .suspect.dead:after{content:"FUORI";position:absolute;right:10px;bottom:8px;color:#ff7695;font-size:7px;font-weight:900;letter-spacing:.12em}
.impostor-screen .action-status{margin:20px 0 0;color:#8993a8;font-size:10px;letter-spacing:.02em}
.impostor-screen .phase-ready-button{max-width:520px;margin:19px auto 0;border:1px solid rgba(var(--imp-rgb),.46);border-radius:16px;background:linear-gradient(110deg,rgba(var(--imp-rgb),.95),rgba(118,70,231,.95));box-shadow:0 16px 38px rgba(var(--imp-rgb),.2);font-size:11px;letter-spacing:.03em;transition:transform 160ms cubic-bezier(.23,1,.32,1),box-shadow 180ms ease-out,filter 180ms ease-out}

.impostor-screen.phase-word .role-card,.impostor-screen.phase-question .phase-copy,.impostor-screen.phase-impostor-vote .phase-copy,.impostor-screen.phase-impostor-verdict .assassin-event{animation:impEnter 260ms cubic-bezier(.23,1,.32,1) both}
.impostor-screen .suspect{animation:impPlayerIn 240ms cubic-bezier(.23,1,.32,1) both}.impostor-screen .suspect:nth-child(2){animation-delay:35ms}.impostor-screen .suspect:nth-child(3){animation-delay:70ms}.impostor-screen .suspect:nth-child(4){animation-delay:105ms}.impostor-screen .suspect:nth-child(5){animation-delay:140ms}.impostor-screen .suspect:nth-child(n+6){animation-delay:175ms}
@keyframes impEnter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes impPlayerIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}

@media(hover:hover) and (pointer:fine){.impostor-screen .suspect.actionable:hover{transform:translateY(-3px);border-color:rgba(var(--imp-rgb),.55);background:rgba(var(--imp-rgb),.09);box-shadow:0 15px 34px rgba(0,0,0,.3)}.impostor-screen .suspect.actionable:hover:before{opacity:1;transform:scaleX(1)}.impostor-screen .phase-ready-button:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 20px 46px rgba(var(--imp-rgb),.3)}}
.impostor-screen .suspect.actionable:active,.impostor-screen .phase-ready-button:active{transform:translateY(1px)}
.impostor-screen .suspect:focus-visible,.impostor-screen .phase-ready-button:focus-visible{outline:2px solid #fff;outline-offset:3px}

@media(max-width:900px){.impostor-screen{padding:24px 18px 64px}.impostor-screen .assassin-layout{grid-template-columns:1fr}.impostor-screen .role-card{min-height:270px;display:grid;grid-template-columns:96px 1fr;grid-template-rows:auto auto 1fr;column-gap:24px;text-align:left;justify-items:start}.impostor-screen .role-card>span{width:88px;height:88px;grid-row:1/4;margin:0;font-size:40px}.impostor-screen .role-card h3{margin:8px 0}.impostor-screen .role-card p{max-width:560px}.impostor-screen .assassin-board{min-height:420px}}
@media(max-width:650px){.impostor-screen{padding-inline:13px}.impostor-screen .assassin-top h2{font-size:32px}.impostor-screen .timer{width:66px;height:66px;border-radius:19px}.impostor-screen .assassin-layout{gap:13px}.impostor-screen .role-card{min-height:0;padding:22px;grid-template-columns:66px 1fr;column-gap:17px;border-radius:22px}.impostor-screen .role-card>span{width:62px;height:62px;border-radius:20px;font-size:29px}.impostor-screen .role-card h3{font-size:28px}.impostor-screen .role-card p{grid-column:1/-1;margin-top:13px}.impostor-screen .assassin-board{padding:21px 15px;border-radius:22px}.impostor-screen .suspect-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.impostor-screen .suspect{min-height:67px;padding:10px}.impostor-screen .suspect-avatar{width:38px;height:38px;border-radius:12px}}
@media(max-width:390px){.impostor-screen .suspect-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.impostor-screen .role-card,.impostor-screen .phase-copy,.impostor-screen .assassin-event,.impostor-screen .suspect{animation:impFade 140ms ease-out both}.impostor-screen .suspect,.impostor-screen .phase-ready-button{transition:opacity 140ms ease-out,border-color 140ms ease-out}@keyframes impFade{from{opacity:.55}to{opacity:1}}}
