:root{color:#f5f7fb;--role-civilian:#dbe4f0;--role-big-bro:#24a3ff;--role-daidai:#f4c95d;--role-undercover:#b46cff;font-synthesis:none;text-rendering:optimizelegibility;background:#f9fbff;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{background:#f9fbff}*{box-sizing:border-box}body{background:linear-gradient(135deg,#e53d4a38,#0000 34%),linear-gradient(315deg,#24a3ff29,#0000 38%),#101318;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:#fff;cursor:pointer;background:#e53d4a;border:0;border-radius:6px;padding:.75rem 1rem;transition:transform .16s,opacity .16s,background .16s}button:hover:not(:disabled){background:#ff4f5f;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.45}input,select{color:#fff;background:#ffffff14;border:1px solid #ffffff29;border-radius:6px;width:100%;padding:.78rem .9rem}label{color:#b8c0cc;gap:.45rem;font-size:.9rem;display:grid}.landing-shell{width:min(1180px,100vw - 2rem);min-height:100vh;margin:0 auto;padding:1rem 0 3rem}.site-nav{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#12161cc2;border:1px solid #ffffff1f;border-radius:999px;justify-content:center;gap:.35rem;width:fit-content;margin:0 auto;padding:.35rem;display:flex;position:sticky;top:1rem}.site-nav button{color:#b8c0cc;background:0 0;border-radius:999px;padding:.62rem 1.05rem}.site-nav button:hover:not(:disabled){color:#fff;background:#ffffff14;transform:none}.site-nav .site-nav-active{color:#fff;background:#e53d4a}.landing-stage{place-items:center;min-height:calc(100vh - 92px);padding:2rem 0 0;display:grid}.brand-hero{text-align:center;justify-items:center;gap:.8rem;display:grid}.brand-hero h1{color:#0000;letter-spacing:.02em;background:linear-gradient(120deg,#fff 8%,#cfe6ff 35%,#ff5361 58%,#fff 86%);-webkit-text-stroke:1px #fff3;text-shadow:0 6px #e53d4a94,0 13px #24a3ff33,0 26px 70px #0000009e,0 0 42px #24a3ff3d;-webkit-background-clip:text;background-clip:text;width:fit-content;margin:0;font-family:Impact,Arial Black,Segoe UI Black,Microsoft YaHei UI,system-ui,sans-serif;font-size:clamp(5.2rem,17vw,13.5rem);font-weight:950;line-height:.82;position:relative}.brand-hero h1:after{content:attr(data-text);z-index:-1;color:#e53d4a4d;filter:blur(1px);position:absolute;inset:0;transform:translate(.08em,.05em)}.home-access{width:min(880px,100%);margin:0 auto}.home-access-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.home-access-card{color:#15151f;text-align:left;cursor:pointer;opacity:0;min-height:104px;animation:.92s cubic-bezier(.2,.9,.22,1) forwards homeAccessWaveIn;animation-delay:calc(.18s + var(--access-index) * .18s);background:linear-gradient(135deg,#ffffff13,#ffffff06),#ffffff0b;border:1px solid #ffffff1a;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.48rem .78rem;padding:.95rem;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;display:grid;transform:translateY(18px)scale(.98);box-shadow:0 16px 42px #565e8014}.home-access-card:hover,.home-access-card:focus-visible{background:linear-gradient(135deg,#4dd1e13d,#e268d838),#ffffffd6;border-color:#e53d4a3d;transform:translateY(-4px)scale(1.01);box-shadow:0 20px 52px #565e8024}.home-access-card:active{transform:translateY(-1px)scale(.995)}.home-access-icon{aspect-ratio:1;color:#15151f;letter-spacing:0;background:linear-gradient(135deg,#4dd1e147,#e268d842),#ffffffd6;border-radius:8px;place-items:center;width:3.15rem;font-size:.78rem;font-weight:900;display:grid;box-shadow:inset 0 0 0 1px #15151f14}.home-access-card strong{color:#15151f;font-size:1.02rem;line-height:1.15;display:block}.home-access-card small{color:#15151f94;margin-top:.28rem;font-size:.82rem;line-height:1.25;display:block}.home-access-status{color:#15151fad;background:#15151f0e;border-radius:999px;grid-column:1/-1;width:fit-content;padding:.3rem .58rem;font-size:.78rem;font-weight:800;line-height:1}@keyframes homeAccessWaveIn{0%{opacity:0;transform:translateY(18px)scale(.98)}58%{opacity:1;transform:translateY(-5px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.home-access-card{opacity:1;animation:none;transform:none}}.play-panel,.profile-panel{width:min(480px,100%)}.play-mode-tabs{background:#ffffff0e;border:1px solid #ffffff1a;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:.45rem;margin:1rem 0 1.25rem;padding:.35rem;display:grid}.play-mode-tabs button{color:#b8c0cc;background:0 0;border-radius:6px;padding:.7rem .55rem}.play-mode-tabs button:hover:not(:disabled){color:#fff;background:#ffffff14;transform:none}.play-mode-tabs .play-mode-active{color:#fff;background:#e53d4a}.mode-empty{background:#ffffff0b;border:1px solid #ffffff1a;border-radius:6px;padding:1rem}.mode-empty h2,.mode-empty p{margin-bottom:0}.test-version-footer{text-align:center;color:#6f7886;padding:2rem 0 0;font-size:.82rem}.entry-panel,.announcement-panel,.host-panel,.team-column,.role-guide{background:#12161ce0;border:1px solid #ffffff1f;border-radius:8px;box-shadow:0 20px 70px #0000003d}.entry-panel{padding:2rem}.eyebrow{color:#e53d4a;letter-spacing:0;text-transform:uppercase;margin:0 0 .4rem;font-size:.76rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{margin-bottom:1rem;font-size:clamp(2rem,6vw,4.4rem);line-height:1}h2{font-size:1.15rem}h3{color:#c7cfda;font-size:.95rem}.subtitle,.muted{color:#98a2b2}.entry-form{gap:.8rem;margin-top:1.4rem;display:grid}.join-form{grid-template-columns:1fr auto;align-items:end}.join-form label{min-width:0}.error-text,.error-banner,.kicked-notice{color:#ffd5d9;background:#e53d4a24}.error-text{border-radius:6px;margin-top:1rem;padding:.8rem}.room-shell{width:min(1380px,100vw - 2rem);margin:0 auto;padding:1.5rem 0 2.5rem}.topbar{grid-template-columns:minmax(260px,1fr) minmax(300px,430px) auto;align-items:center;gap:1rem;margin-bottom:1rem;display:grid}.topbar-actions{justify-content:end;align-items:center;gap:.55rem;display:flex}.topbar h1{margin:0;font-size:clamp(2.4rem,8vw,5rem)}.room-code-row{align-items:center;gap:.75rem;display:flex}.help-button,.icon-button{color:#dbe4f0;background:#ffffff17;border:1px solid #ffffff2e;border-radius:50%;flex:none;place-items:center;display:grid}.help-button{border-radius:999px;gap:.45rem;width:auto;min-height:38px;padding:.35rem .7rem .35rem .42rem;font-weight:800;display:flex}.help-button:hover:not(:disabled),.icon-button:hover:not(:disabled){background:#ffffff29}.help-button span{color:#101318;background:#dbe4f0;border-radius:50%;place-items:center;width:26px;height:26px;font-size:1rem;display:grid}.help-button b{font-size:.9rem}.icon-button{width:36px;height:36px;padding:0;font-size:1.4rem;line-height:1}.status-pill{text-align:center;color:#dbe4f0;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;min-width:108px;padding:.75rem 1rem}.phase-status{text-align:left;grid-template-columns:minmax(0,1fr) auto;justify-self:center;align-items:center;gap:.75rem;width:min(430px,100%);min-width:0;padding:.92rem 1.25rem;display:grid;box-shadow:0 16px 46px #00000040}.phase-status span{color:#fff;font-size:clamp(1.35rem,2.2vw,2.1rem);font-weight:950;line-height:1}.phase-status strong{color:#fff;font-variant-numeric:tabular-nums;justify-self:end;font-size:clamp(1.65rem,3.2vw,2.8rem);font-weight:950;line-height:1}.phase-status small{color:#dbe4f0;white-space:nowrap;justify-self:end;font-size:.92rem}.phase-status-outcome{text-align:center;grid-template-columns:1fr;justify-items:center;padding:1rem 1.4rem}.phase-status-outcome strong{letter-spacing:.08em;text-shadow:0 10px 32px #00000052;justify-self:center;font-size:clamp(2.2rem,4.2vw,3.8rem)}.phase-status-settled{background:linear-gradient(135deg,#42d67a38,#ffffff0b),#12161ceb;border-color:#42d67a8c}.phase-status-win{background:linear-gradient(135deg,#42d67a57,#ffffff0e),#12161cf0;border-color:#42d67aa8}.ghost-button{color:#dbe4f0;background:#ffffff17}.error-banner{border-radius:8px;padding:.8rem 1rem}.kicked-notice{text-align:center;border:1px solid #e53d4a57;border-radius:8px;width:min(720px,100vw - 2rem);margin:4.75rem auto -3.5rem;padding:.9rem 1rem;font-weight:850}.modal-backdrop{z-index:60;background:#080a0dc2;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.room-notice-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:radial-gradient(circle at 18% 20%,#2ecde129,#0000 32%),radial-gradient(circle at 82% 18%,#ec68d729,#0000 32%),#f8faffad}.room-notice-modal{color:#151922;background:linear-gradient(135deg,#2ecde114,#ec68d71a),#fffffff5;border:1px solid #d6deebf5;border-radius:8px;grid-template-rows:auto minmax(0,1fr) auto;width:min(880px,100vw - 2rem);height:min(620px,100svh - 2rem);max-height:min(84svh,780px);animation:.18s cubic-bezier(.16,1,.3,1) both roomNoticeIn;display:grid;overflow:hidden;box-shadow:0 30px 96px #2d344833}.room-notice-header,.room-notice-footer{justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.room-notice-header{border-bottom:1px solid #d6deebc7;align-items:start}.room-notice-header h2,.room-notice-header p{margin-bottom:0}.room-notice-header .eyebrow{color:#e53d9a}.room-notice-header .icon-button{color:#151922;background:#ffffffeb;border:1px solid #b3bcccb8;box-shadow:0 10px 26px #2d34481f}.room-notice-header .icon-button:hover:not(:disabled){color:#fff;background:#e53d4a}.room-notice-body{padding:1rem;overflow:hidden}.room-notice-page{align-content:start;min-height:340px;display:grid}.room-notice-page-title{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.room-notice-page-title h3{color:#151922;align-items:center;gap:.45rem;margin-bottom:0;font-size:1rem;font-weight:950;display:flex}.room-notice-page-title h3:before{content:"";background:linear-gradient(#e53d4a,#e268d8);border-radius:999px;width:4px;height:1em}.room-notice-page-title span{color:#7a8596;flex:none;font-weight:850}.room-notice-copy-list{gap:.72rem;display:grid}.room-notice-copy-list p{color:#4f5d70;margin-bottom:.45rem;line-height:1.58}.room-notice-gameplay-page{gap:.72rem;display:grid}.room-notice-warning-list{background:linear-gradient(135deg,#e53d4a12,#e268d80f),#ffffff9e;border:1px solid #e53d4a2e;border-radius:6px;padding:.62rem .78rem}.room-notice-warning-list strong{color:#151922;margin-bottom:.32rem;font-size:.95rem;display:block}.room-notice-warning-list ul{color:#5c6677;gap:.18rem;margin:0;padding-left:1.15rem;font-size:.92rem;line-height:1.34;display:grid}.room-notice-warning-list li::marker{color:#e53d4a}.room-notice-combined-page{gap:.9rem;display:grid}.room-notice-flow-list{gap:.62rem;display:grid}.room-notice-flow-list p{color:#4f5d70;margin-bottom:0;line-height:1.58}.room-notice-role-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;display:grid}.room-notice-role-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.room-notice-role{background:#ffffffc7;border:1px solid #d6deebd1;border-top-width:3px;border-radius:6px;min-height:148px;padding:.8rem;box-shadow:0 12px 34px #2d34480f}.room-notice-role-civilian{border-top-color:#9aa8ba}.room-notice-role-big_bro{border-top-color:#48a8f2}.room-notice-role-daidai{border-top-color:#edb936}.room-notice-role-undercover{border-top-color:#a968ee}.room-notice-role-civilian .role-text-civilian{color:#536172}.room-notice-role-big_bro .role-text-big_bro{color:#1688dc}.room-notice-role-daidai .role-text-daidai{color:#b98500}.room-notice-role-undercover .role-text-undercover{color:#8f4bd8}.room-notice-role div{justify-content:space-between;align-items:start;gap:.65rem;margin-bottom:.55rem;display:flex}.room-notice-role strong{font-size:1.05rem}.room-notice-role span{color:#7a8596;flex:none;font-size:.78rem;font-weight:800}.room-notice-role p{color:#4f5d70;margin-bottom:0;font-size:.9rem;line-height:1.48}.room-notice-role small{color:#7a8596;margin-top:.52rem;font-size:.82rem;font-weight:760;line-height:1.42;display:block}.room-notice-footer{background:#ffffffb8;border-top:1px solid #d6deebc7}.room-notice-footer-hint{color:#7a8596;font-weight:800}.room-notice-checkbox{color:#4f5d70;cursor:pointer;align-items:center;gap:.55rem;font-weight:800;display:inline-flex}.room-notice-checkbox input{accent-color:#e53d4a;width:18px;height:18px}.room-notice-pager{justify-content:end;align-items:center;gap:.55rem;display:flex}.room-notice-pager button{min-width:120px}.room-notice-pager button:not(.ghost-button){color:#151922;background:linear-gradient(135deg,#2ecde147,#ec68d74d),#fff;box-shadow:0 12px 30px #2d34481f}.room-notice-pager button:not(.ghost-button):hover:not(:disabled){color:#fff;background:linear-gradient(135deg,#e53d4a,#e268d8)}@keyframes roomNoticeIn{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.identity-strip{z-index:20;border:1px solid #ffffff1f;border-radius:8px;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:1rem;display:grid;position:relative;overflow:visible}.identity-strip>div{background:#ffffff13;gap:.35rem;padding:1rem;display:grid}.identity-strip span,.player-row span{color:#98a2b2;font-size:.82rem}.identity-strip strong{font-size:1.2rem}.identity-label-row{align-items:center;gap:.55rem;min-width:0;display:flex}.identity-role-help{color:#dbe4f0;cursor:default;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;outline:none;flex:none;align-items:center;padding:.18rem .48rem;font-size:.72rem;font-weight:800;line-height:1.2;display:inline-flex;position:relative}.identity-role-popover{z-index:80;color:#dbe4f0;opacity:0;pointer-events:none;background:#141920fa;border:1px solid #ffffff24;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;width:min(760px,100vw - 2rem);padding:.85rem;transition:opacity .16s,transform .18s;display:grid;position:absolute;top:calc(100% + .72rem);left:50%;transform:translate(-32%)translateY(-6px);box-shadow:0 24px 90px #00000080}.identity-role-help:hover .identity-role-popover,.identity-role-help:focus-visible .identity-role-popover,.identity-role-help:focus-within .identity-role-popover{opacity:1;pointer-events:auto;transform:translate(-32%)translateY(0)}.identity-role-card{text-align:left;background:#ffffff0e;border:1px solid #ffffff1a;border-radius:6px;gap:.55rem;padding:.75rem;display:grid}.identity-role-card-civilian{border-top:3px solid var(--role-civilian)}.identity-role-card-big_bro{border-top:3px solid var(--role-big-bro)}.identity-role-card-daidai{border-top:3px solid var(--role-daidai)}.identity-role-card-undercover{border-top:3px solid var(--role-undercover)}.identity-role-card-top{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.identity-role-card-top strong{font-size:1rem}.identity-role-card-top span,.identity-role-card small{color:#98a2b2;font-size:.78rem}.identity-role-card p,.identity-role-card small{margin:0;line-height:1.5}.identity-role-card p{color:#dbe4f0;font-size:.88rem}.blackout-control{min-width:0}.blackout-header{justify-content:space-between;align-items:center;gap:.9rem;display:flex}.blackout-header>div{gap:.35rem;display:grid}.blackout-control small{color:#98a2b2;line-height:1.45}.switch-button{background:#59616c;border:1px solid #ffffff29;border-radius:999px;flex:none;width:58px;height:32px;padding:0;position:relative;box-shadow:inset 0 1px 4px #00000047}.switch-button:hover:not(:disabled){background:#68717d;transform:none}.switch-button span{background:#fff;border-radius:50%;width:24px;height:24px;transition:left .18s;position:absolute;top:50%;left:4px;transform:translateY(-50%);box-shadow:0 2px 7px #00000057}.switch-button-on span{left:28px}.privacy-actions{flex-wrap:wrap;gap:.45rem;display:flex}.compact-button{white-space:nowrap;padding:.48rem .65rem}.role-reveal{z-index:50;background:radial-gradient(circle,#e53d4a33,#0000 34%),#080a0dd6;place-items:center;padding:1rem;animation:2.2s forwards revealBackdrop;display:grid;position:fixed;inset:0}.role-reveal-card{text-align:center;background:linear-gradient(135deg,#ffffff1f,#ffffff0a),#12161cf0;border:1px solid #ffffff2e;border-radius:8px;gap:.65rem;min-width:min(520px,100vw - 2rem);padding:clamp(2rem,8vw,4.5rem);animation:2.2s cubic-bezier(.16,1,.3,1) forwards revealCard;display:grid;box-shadow:0 30px 100px #00000073}.role-reveal-card span{color:#b8c0cc;font-size:1rem;font-weight:800}.role-reveal-card strong{color:#fff;font-size:clamp(4rem,17vw,10rem);line-height:.95}.role-reveal-civilian{border-top:5px solid var(--role-civilian)}.role-reveal-big_bro{border-top:5px solid var(--role-big-bro)}.role-reveal-daidai{border-top:5px solid var(--role-daidai)}.role-reveal-undercover{border-top:5px solid var(--role-undercover)}.phase-prompt{z-index:90;pointer-events:auto;background:radial-gradient(circle,#e53d4a2e,#0000 36%),#080a0dc7;place-items:center;padding:1rem;animation:2.6s forwards revealBackdrop;display:grid;position:fixed;inset:0}.phase-prompt-card{border:1px solid #ffffff2e;border-top:5px solid var(--accent);text-align:center;background:linear-gradient(135deg,#e53d4a33,#ffffff0b),#12161cf5;border-radius:8px;gap:.75rem;min-width:min(620px,100vw - 2rem);padding:clamp(2.2rem,8vw,5rem);animation:2.6s cubic-bezier(.16,1,.3,1) forwards phasePromptCard;display:grid;position:relative;overflow:hidden;box-shadow:0 34px 110px #00000080}.phase-prompt-card:before{content:"";background:linear-gradient(110deg,#0000 0%,#ffffff2e 42%,#0000 62%);animation:2.6s forwards phasePromptSweep;position:absolute;inset:0;transform:translate(-120%)}.phase-prompt-card>*{position:relative}.phase-prompt-card span,.phase-prompt-card small{color:#b8c0cc;font-weight:800}.phase-prompt-card span{font-size:1rem}.phase-prompt-card strong{color:#fff;font-size:clamp(3.5rem,13vw,8.5rem);line-height:.95}.phase-prompt-card small{font-size:clamp(.95rem,2.4vw,1.18rem)}@keyframes revealBackdrop{0%{opacity:0}12%,82%{opacity:1}to{opacity:0}}@keyframes revealCard{0%{opacity:0;transform:scale(.84)translateY(18px)}14%{opacity:1;transform:scale(1.04)translateY(0)}24%,78%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.96)translateY(-14px)}}@keyframes phasePromptCard{0%{opacity:0;filter:blur(10px);transform:translateY(22px)scale(.88)}14%{opacity:1;filter:blur();transform:translateY(0)scale(1.04)}24%,78%{opacity:1;filter:blur();transform:translateY(0)scale(1)}to{opacity:0;filter:blur(6px);transform:translateY(-18px)scale(.96)}}@keyframes phasePromptSweep{0%,16%{transform:translate(-120%)}46%{transform:translate(120%)}to{transform:translate(120%)}}.announcement-panel{grid-template-columns:minmax(260px,1fr) minmax(300px,520px);align-items:end;gap:1rem;margin-bottom:1rem;padding:1rem;display:grid}.announcement-panel h2,.announcement-panel p{margin-bottom:0}.announcement-label{color:#4e6eea;font-weight:950;line-height:1.2}.announcement-text{color:#fff;font-size:1.35rem;font-weight:800;line-height:1.35}.announcement-form{grid-template-columns:1fr auto;align-items:end;gap:.65rem;display:grid}.layout-grid{grid-template-columns:minmax(240px,300px) minmax(420px,1fr);align-items:start;gap:1rem;display:grid}.layout-grid-member{grid-template-columns:minmax(240px,300px) minmax(420px,1fr)}.host-panel{padding:1rem}.host-actions{gap:.65rem;margin-bottom:1.2rem;display:grid}.host-pending-slot{margin-top:1rem}.host-pending-slot .pending-column{min-height:164px;padding:.85rem}.host-pending-slot .team-join-button{min-height:60px}.host-pending-slot .player-stack{gap:.5rem}.host-pending-slot .player-stack>.muted{margin:0;font-size:.9rem}.host-pending-slot .team-empty-slot,.host-pending-slot .player-row{min-height:60px}.host-hint{margin-bottom:.9rem;line-height:1.45}.end-game-trigger{color:#a42131;background:linear-gradient(135deg,#e53d4a29,#e268d81f),#ffffffdb;border:1px solid #e53d4a33;font-weight:900;box-shadow:inset 0 0 0 1px #ffffff94}.end-game-trigger:hover:not(:disabled),.end-game-trigger:focus-visible{color:#fff;background:linear-gradient(135deg,#e53d4aeb,#e268d8a3),#e53d4a}.end-game-actions{background:#ffffff0e;border:1px solid #ffffff1a;border-radius:6px;gap:.55rem;padding:.75rem;display:grid}.end-game-actions>span{color:#b8c0cc;font-size:.86rem}.end-game-actions>div{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.end-game-actions button:first-child:not(.ghost-button){background:#e53d4a}.end-game-actions button:last-child:not(.ghost-button){background:#2fb85a}.teams-panel{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.layout-grid-member .teams-panel,.layout-grid-host .teams-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.team-column{min-height:360px;padding:.82rem}.layout-grid-member .team-column{min-height:320px;padding:.82rem}.layout-grid-member .host-pending-slot .pending-column,.layout-grid-host .host-pending-slot .pending-column{min-height:164px}.team-a{border-top:3px solid #e53d4a}.team-b{border-top:3px solid #42d67a}.pending-column{border-top:3px solid #8b8ff5}.pending-join-button{border-color:#8b8ff56b}.team-header,.player-row{justify-content:space-between;align-items:center;gap:.55rem;display:flex}.team-header{border-bottom:1px solid #ffffff1a;margin-bottom:.52rem;padding-bottom:.48rem}.team-header span{color:#b8c0cc}.team-header h2{white-space:nowrap;margin-bottom:0}.team-a .team-header h2{color:#e53d4a}.team-b .team-header h2{color:#2fb85a}.team-header-meta{flex-wrap:wrap;justify-content:end;align-items:center;gap:.5rem;display:flex}.team-header-meta b{color:#fff;white-space:nowrap;border-radius:999px;padding:.25rem .55rem;font-size:.78rem}.team-join-button{color:#dbe4f0;background:linear-gradient(135deg,#ffffff14,#ffffff09),#ffffff09;border:1px dashed #ffffff2e;border-radius:8px;place-items:center;width:100%;height:60px;min-height:60px;margin:0;padding:.58rem .65rem;display:grid}.team-join-button:hover:not(:disabled){transform:translateY(-1px)}.team-join-button span{color:currentColor;place-items:center;font-size:1.85rem;font-weight:900;line-height:1;display:grid}.team-join-a{border-color:#e53d4a6b}.team-join-a span{color:#ff5a66}.team-join-b{border-color:#42d67a6b}.team-join-b span{color:#42d67a}.player-stack{gap:.45rem;display:grid}.team-empty-slot{background:#ffffff6b;border:1px solid #15151f0e;border-radius:6px;align-content:center;gap:.2rem;height:60px;min-height:60px;padding:.48rem .6rem;display:grid}.team-empty-slot strong{color:#15151f80;font-size:1rem;line-height:1.15}.team-empty-slot span{color:#15151f5c;font-size:.82rem;line-height:1.2}.player-row{background:#ffffff0e;border:1px solid #ffffff1a;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;height:60px;min-height:60px;padding:.58rem .65rem;display:grid;position:relative}.player-row-kickable{cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.player-row-kickable:hover,.player-row-kickable:focus-visible,.player-row-menu-open{background:linear-gradient(135deg,#e53d4a1a,#e268d814),#ffffff0e;border-color:#e268d86b;outline:none;box-shadow:0 12px 34px #00000038}.team-a .player-row-kickable:hover,.team-a .player-row-kickable:focus-visible,.team-a .player-row-menu-open{background:linear-gradient(135deg,#e53d4a1f,#ffffff0a),#ffffff0e;border-color:#e53d4a6b}.team-b .player-row-kickable:hover,.team-b .player-row-kickable:focus-visible,.team-b .player-row-menu-open{background:linear-gradient(135deg,#42d67a24,#ffffff0a),#ffffff0e;border-color:#42d67a70}.player-kick-menu{z-index:10;background:linear-gradient(135deg,#e53d4a1f,#ffffff0e),#11141bfa;border:1px solid #e53d4a59;border-radius:8px;gap:.35rem;min-width:126px;padding:.35rem;animation:.15s both kickMenuIn;display:grid;position:absolute;top:calc(100% - .35rem);right:.6rem;box-shadow:0 18px 48px #0000006b}.player-kick-menu button{width:100%;padding:.58rem .7rem}.player-kick-menu .player-menu-transfer{color:#15151f;background:#ffffffeb}.player-kick-menu .player-menu-transfer:hover:not(:disabled){background:#fff;transform:none}.player-kick-menu .player-menu-kick{color:#fff;background:#e53d4a}.player-kick-menu .player-menu-kick:hover:not(:disabled){background:#ff4f5f;transform:none}.layout-grid-member .player-row{background:linear-gradient(135deg,#ffffff12,#ffffff09),#ffffff0b;height:60px;min-height:60px;padding:.58rem .65rem}.player-row-main{gap:.16rem;min-width:0;padding-right:.55rem;display:grid}.player-row-plain{grid-template-columns:1fr}.player-row-plain .player-row-main{padding-right:0}.player-row-plain .player-row-side{display:none}.player-row-side{flex-wrap:wrap;justify-content:end;align-items:center;gap:.45rem;min-width:82px;display:flex}.player-row strong,.player-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-row b{flex:none}.ready-badge{background:0 0;border:0;border-radius:0;flex:none;justify-content:center;align-items:center;min-width:0;padding:0;font-size:.78rem;font-weight:900;line-height:1;display:inline-flex}.connection-badge{color:#98a2b2;background:0 0;border:0;border-radius:0;flex:none;justify-content:center;align-items:center;min-width:0;padding:0;font-size:.78rem;font-weight:900;line-height:1;display:inline-flex}.connection-badge-offline{color:#98a2b2}.team-a .ready-badge-ready{color:#e53d4a}.team-b .ready-badge-ready{color:#2fb85a}.role-badge{border-radius:999px;justify-content:center;align-items:center;min-width:52px;padding:.28rem .58rem;font-size:.86rem;line-height:1;display:inline-flex}.role-text-civilian,.role-badge-civilian{color:var(--role-civilian)}.role-badge-civilian{background:#dbe4f01a}.role-text-big_bro,.role-badge-big_bro{color:var(--role-big-bro)}.role-badge-big_bro{background:#24a3ff24}.role-text-daidai,.role-badge-daidai{color:var(--role-daidai)}.role-badge-daidai{background:#f4c95d24}.role-text-undercover,.role-badge-undercover{color:var(--role-undercover)}.role-badge-undercover{background:#b46cff24}.role-guide{margin-top:1rem;padding:1rem}.role-guide-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.65rem;display:flex}.role-guide-header h2{margin-bottom:0}.role-guide-summary{margin-bottom:0;line-height:1.55}.role-guide-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:.9rem;animation:.18s roleGuideReveal;display:grid}.role-card{background:#ffffff0e;border:1px solid #ffffff1a;border-radius:6px;align-content:start;min-height:168px;padding:.9rem;display:grid}.role-card-civilian{border-top:3px solid var(--role-civilian)}.role-card-big_bro{border-top:3px solid var(--role-big-bro)}.role-card-daidai{border-top:3px solid var(--role-daidai)}.role-card-undercover{border-top:3px solid var(--role-undercover)}.role-card-top{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.role-card-top strong{font-size:1.18rem}.role-card-top span{color:#b8c0cc;flex:none;font-size:.82rem}.role-card p{color:#dbe4f0;margin-bottom:.85rem;line-height:1.55}.role-card small{color:#98a2b2;line-height:1.45}@keyframes roleGuideReveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes kickMenuIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=980px){.layout-grid,.teams-panel,.topbar,.announcement-panel,.announcement-form{grid-template-columns:1fr}.role-guide-header{align-items:start;display:grid}.role-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){body{background:linear-gradient(160deg,#e53d4a33,#0000 28%),linear-gradient(18deg,#24a3ff29,#0000 34%),#101318}.landing-shell{width:min(100vw - 1rem,1180px);padding-top:.75rem}.modal-backdrop{padding:max(.5rem, env(safe-area-inset-top)) .5rem max(.5rem, env(safe-area-inset-bottom))}.room-notice-modal{width:100%;height:calc(100svh - 1rem);max-height:calc(100svh - 1rem)}.room-notice-header,.room-notice-footer{padding:.78rem}.room-notice-header h2{font-size:1.22rem;line-height:1.18}.room-notice-header .icon-button{width:38px;min-width:38px;height:38px;padding:0}.room-notice-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:.78rem;overflow:hidden auto}.room-notice-page{align-content:start;min-height:0}.room-notice-page-title{margin-bottom:.55rem}.room-notice-copy-list,.room-notice-gameplay-page,.room-notice-combined-page{gap:.58rem}.room-notice-copy-list p,.room-notice-flow-list p{margin-bottom:0;font-size:.92rem;line-height:1.42}.room-notice-warning-list{padding:.55rem .65rem}.room-notice-warning-list strong{margin-bottom:.26rem;font-size:.9rem}.room-notice-warning-list ul{gap:.12rem;padding-left:1rem;font-size:.84rem;line-height:1.28}.room-notice-role-grid,.room-notice-role-grid-compact{grid-template-columns:1fr;gap:.55rem}.room-notice-role{min-height:0;padding:.68rem}.room-notice-role div{gap:.2rem;margin-bottom:.38rem;display:grid}.room-notice-role strong{font-size:.98rem}.room-notice-role span,.room-notice-role p{font-size:.8rem;line-height:1.3}.room-notice-role small{margin-top:.34rem;font-size:.72rem;line-height:1.24}.room-notice-footer{grid-template-columns:1fr;gap:.62rem;display:grid}.room-notice-checkbox{justify-content:start;font-size:.9rem}.room-notice-pager{grid-template-columns:1fr 1fr;width:100%;display:grid}.room-notice-pager button{min-width:0;padding:.68rem .6rem}.landing-stage{min-height:calc(100svh - 76px);padding-top:1rem}.brand-hero{gap:.65rem;padding:0 .35rem}.brand-hero h1{text-shadow:0 4px #e53d4a8f,0 9px #24a3ff2e,0 18px 48px #000000a3;font-size:clamp(4.4rem,24vw,7.2rem)}.play-panel,.profile-panel{width:100%}.entry-panel{padding:1.15rem}.entry-panel h1{font-size:clamp(2rem,14vw,3.45rem)}.play-mode-tabs{grid-template-columns:1fr}.play-mode-tabs button,.home-rules-tabs button{min-height:44px}.home-access{width:min(100%,28rem)}.home-access-grid{grid-template-columns:1fr;gap:.55rem}.home-access-card{grid-template-columns:auto minmax(0,1fr) auto;min-height:72px;padding:.68rem}.home-access-icon{width:2.65rem}.home-access-status{white-space:nowrap;grid-column:auto;justify-self:end}.home-rules{min-height:auto;padding:3rem 0 2.5rem}.home-rules-heading{margin-bottom:.9rem}.home-rules-heading h2{font-size:clamp(2rem,12vw,3.35rem);line-height:1.05}.home-rules-panel{padding:.75rem}.home-info-card{min-height:0;padding:.9rem}.room-shell{width:min(100vw - .75rem,1380px);padding:.75rem 0 1.4rem}.topbar{grid-template-columns:1fr auto;align-items:start;gap:.5rem;margin-bottom:.65rem}.topbar>div:first-child{min-width:0}.topbar-actions{grid-area:1/2;align-self:start;gap:.35rem}.topbar-actions .ghost-button{white-space:nowrap;padding:.52rem .66rem}.topbar .phase-status{grid-area:2/1/auto/-1;justify-self:stretch;width:100%}.topbar h1{font-size:clamp(2.45rem,16vw,3.65rem);line-height:.9}.room-code-row{flex-wrap:wrap;gap:.5rem}.help-button{min-height:34px;padding:.24rem .52rem .24rem .32rem}.help-button span{width:23px;height:23px}.help-button b{font-size:.82rem}.phase-status{padding:.64rem .78rem}.phase-status span{font-size:clamp(1.05rem,6.4vw,1.52rem)}.phase-status strong{font-size:clamp(1.28rem,7.2vw,1.9rem)}.phase-status small{white-space:normal;text-align:right;min-width:0}.identity-strip{border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:.7rem}.identity-strip>div{min-width:0;padding:.66rem .72rem}.identity-strip strong{overflow-wrap:anywhere;font-size:1rem}.identity-strip span,.player-row span{font-size:.78rem}.blackout-control small{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.identity-label-row{flex-wrap:wrap;align-items:start;gap:.35rem}.identity-role-help{font-size:.68rem}.identity-role-popover{grid-template-columns:1fr;width:auto;max-height:min(70svh,560px);position:fixed;top:7rem;left:.75rem;right:.75rem;overflow:auto;transform:translateY(-6px)}.identity-role-help:hover .identity-role-popover,.identity-role-help:focus-visible .identity-role-popover,.identity-role-help:focus-within .identity-role-popover{transform:translateY(0)}.announcement-panel{gap:.65rem;margin-bottom:.75rem}.announcement-panel h2{font-size:.98rem}.announcement-text{font-size:1.05rem}.announcement-form{grid-template-columns:1fr}.announcement-form button,.host-actions button,.ready-button{min-height:44px}.host-panel{padding:.78rem}.host-panel h2{font-size:1.18rem}.host-hint{margin-bottom:.65rem;line-height:1.45}.host-actions{gap:.5rem;margin-bottom:.8rem}.layout-grid,.layout-grid-member{grid-template-columns:1fr;gap:.75rem}.host-panel{order:1}.teams-panel{order:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:.58rem}.team-column,.layout-grid-member .team-column{min-height:0;padding:.72rem}.team-header{margin-bottom:.55rem;padding-bottom:.52rem}.team-header h2{font-size:1.05rem}.team-header-meta{gap:.25rem}.team-join-button{margin-bottom:.5rem;padding:.48rem}.team-join-button span{font-size:1.7rem}.player-stack{gap:.5rem}.player-row,.layout-grid-member .player-row{min-height:58px;padding:.62rem}.player-row-side{min-width:72px}.player-row-main{padding-right:.62rem}.player-kick-menu{right:.35rem}}@media (width<=620px){.join-form{grid-template-columns:1fr}.identity-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.room-shell,.landing-shell{width:min(100vw - 1rem,1380px)}.site-nav{width:100%}.site-nav button{flex:1;padding-inline:.7rem}.home-rules{padding-top:3.5rem}.home-rules-tabs,.home-info-grid{grid-template-columns:1fr}.identity-role-popover{grid-template-columns:1fr;transform:translateY(-6px)}.identity-role-help:hover .identity-role-popover,.identity-role-help:focus-visible .identity-role-popover,.identity-role-help:focus-within .identity-role-popover{transform:translateY(0)}.entry-panel,.announcement-panel,.host-panel,.team-column,.role-guide{padding:.85rem}.role-guide-grid{grid-template-columns:1fr}}body:has(.brand-hero){color:#15151f;background:radial-gradient(circle at 18% 22%,#2ecde133,#0000 26%),radial-gradient(circle at 78% 18%,#ec68d72e,#0000 28%),radial-gradient(circle at 54% 86%,#7b5bf51f,#0000 32%),linear-gradient(#fff 0%,#f9fbff 58%,#f6f2ff 100%);overflow:hidden}body:has(.brand-hero) .landing-shell{color:#15151f;grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(.75rem,2.3vh,1.4rem);height:100svh;padding-bottom:.9rem;display:grid}body:has(.brand-hero) .site-nav{background:#ffffffeb;border-color:#15151f14;box-shadow:0 14px 34px #565e801a}body:has(.brand-hero) .site-nav button{color:#15151fa8}body:has(.brand-hero) .site-nav button:hover:not(:disabled){color:#15151f;background:#575c8414}body:has(.brand-hero) .site-nav .site-nav-active{color:#15151f;background:linear-gradient(135deg,#4fd6e347,#df77dd47),#ffffffc7;box-shadow:inset 0 0 0 1px #ffffff94}body:has(.brand-hero) .landing-stage{min-height:0;padding-top:0;position:relative;overflow:hidden}body:has(.brand-hero) .landing-stage:before{content:"";aspect-ratio:1;opacity:.86;pointer-events:none;background:radial-gradient(circle at 28%,#2cd5e12e,#0000 0 36%,#0000 58%),radial-gradient(circle at 72% 42%,#e764d62b,#0000 0 38%,#0000 60%),radial-gradient(circle at 50% 58%,#7e5cf21c,#0000 0 42%,#0000 62%);border-radius:50%;width:min(62vw,680px);position:absolute;inset:9vh auto auto 50%;transform:translate(-50%)}body:has(.brand-hero) .brand-hero{z-index:1;gap:1rem;position:relative}body:has(.brand-hero) .brand-hero h1{color:#15151f;-webkit-text-fill-color:#15151f;-webkit-text-stroke:0;letter-spacing:0;text-transform:none;text-shadow:0 12px 26px #48395b29;background:0 0;font-family:Cooper Black,Arial Rounded MT Bold,Microsoft YaHei UI,Microsoft YaHei,system-ui,sans-serif;font-size:clamp(5.6rem,17vw,14rem);font-weight:900;line-height:.86}body:has(.brand-hero) .brand-hero h1:after{content:none}body:has(.brand-hero) .home-rules-heading p{color:#15151f9e}body:has(.brand-hero) .rule-step span{color:#15151f9e}body:has(.brand-hero) .test-version-footer{color:#15151f9e}body:has(.brand-hero) .home-rules-tabs{background:#15151f0b;border-color:#15151f14}body:has(.brand-hero) .home-rules-tabs button{color:#15151fad}body:has(.brand-hero) .home-rules-tabs button:hover:not(:disabled){color:#15151f;background:#ffffff8c}body:has(.brand-hero) .home-rules-tabs .home-rules-tab-active{color:#15151f;background:linear-gradient(135deg,#4dd1e152,#e268d84d),#fff}:is(body:has(.brand-hero) .home-rules-copy h3,body:has(.brand-hero) .home-rules-heading h2,body:has(.brand-hero) .home-info-card>strong,body:has(.brand-hero) .home-info-card-top strong,body:has(.brand-hero) .rule-step strong,body:has(.brand-hero) .interface-card strong){color:#15151f}body:has(.brand-hero) .home-rules-copy p{color:#15151fc2}body:has(.brand-hero) .home-rules-lead{color:#15151fc2}body:has(.brand-hero) .home-info-card p{color:#15151fc2}:is(body:has(.brand-hero) .home-info-card small,body:has(.brand-hero) .home-info-card-top span){color:#15151f99}:is(body:has(.brand-hero) .rule-step,body:has(.brand-hero) .interface-card,body:has(.brand-hero) .home-info-card){color:#15151f;background:#ffffffad;border-color:#15151f14}body:has(.brand-hero) .home-info-card-civilian{border-top-color:var(--role-civilian)}body:has(.brand-hero) .home-info-card-big_bro{border-top-color:var(--role-big-bro)}body:has(.brand-hero) .home-info-card-daidai{border-top-color:var(--role-daidai)}body:has(.brand-hero) .home-info-card-undercover{border-top-color:var(--role-undercover)}@media (width<=760px){body:has(.brand-hero) .brand-hero h1{font-size:clamp(4.4rem,24vw,7.4rem)}}body{color:#15151f;background:radial-gradient(circle at 18% 18%,#2ecde129,#0000 26%),radial-gradient(circle at 82% 16%,#ec68d724,#0000 28%),radial-gradient(circle at 54% 86%,#7b5bf51a,#0000 32%),linear-gradient(#fff 0%,#f9fbff 58%,#f6f2ff 100%)}button{color:#15151f;background:linear-gradient(135deg,#4dd1e14d,#e268d84d),#fff;box-shadow:inset 0 0 0 1px #15151f14}button:hover:not(:disabled){background:linear-gradient(135deg,#4dd1e161,#e268d861),#fff}input,select{color:#15151f;background:#ffffffdb;border-color:#15151f24}label,.subtitle,.muted,.host-hint,.team-header span,.player-row span,.end-game-actions>span,.role-guide-summary,.identity-role-card small,.identity-role-card p,.role-card p,.role-card small,.test-version-footer{color:#15151f9e}.landing-shell,.room-shell,.entry-panel,.announcement-panel,.host-panel,.team-column,.role-guide,.modal-backdrop,.identity-strip,.identity-role-popover{color:#15151f}.entry-panel,.announcement-panel,.host-panel,.team-column,.role-guide,.home-rules-panel{background:#ffffffe6;border-color:#15151f17;box-shadow:0 18px 44px #565e801c}.modal-backdrop{background:#f6f2ffc7}.site-nav{background:#ffffffeb;border-color:#15151f14;box-shadow:0 14px 34px #565e801a}.site-nav button,.play-mode-tabs button,.home-rules-tabs button{color:#15151fa8;box-shadow:none;background:0 0}.site-nav button:hover:not(:disabled),.play-mode-tabs button:hover:not(:disabled),.home-rules-tabs button:hover:not(:disabled){color:#15151f;background:#575c8414}.site-nav .site-nav-active,.play-mode-tabs .play-mode-active,.home-rules-tabs .home-rules-tab-active{color:#15151f;background:linear-gradient(135deg,#4fd6e347,#df77dd47),#ffffffc7;box-shadow:inset 0 0 0 1px #ffffff94}.play-mode-tabs,.home-rules-tabs{background:#15151f0b;border-color:#15151f14}.topbar h1,.entry-panel h1,.profile-panel h1,.host-panel h2,.announcement-panel h2,.role-guide-header h2,.home-rules-copy h3,.home-rules-heading h2,.home-info-card>strong,.home-info-card-top strong,.interface-card strong,.rule-step strong,.player-row strong,.identity-strip strong,.announcement-text{color:#15151f}.announcement-label{color:#4e6eea}.eyebrow{color:#e95cbf}.room-code-row h1{text-shadow:none}.help-button,.icon-button,.ghost-button{color:#15151f;background:#ffffffc7;border-color:#15151f1a;box-shadow:inset 0 0 0 1px #ffffff94}.help-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.ghost-button:hover:not(:disabled){background:#15151f0f}.help-button span{color:#fff;background:linear-gradient(135deg,#4dd1e1f2,#e268d8e6),#7b5bf5}.status-pill,.phase-status{color:#15151f;background:#ffffffd1;border-color:#15151f1a;box-shadow:0 14px 34px #565e801f}.phase-status span,.phase-status strong,.phase-status small{color:#15151f;text-shadow:none}.phase-status-waiting{background:linear-gradient(135deg,#dbe4f070,#ffffffd1),#fff;border-color:#7b5bf533}.phase-status-playing{background:linear-gradient(135deg,#4dd1e142,#ffffffd1),#fff;border-color:#24a3ff47}.phase-status-voting{background:linear-gradient(135deg,#e53d4a2e,#f4c95d29),#fff;border-color:#e53d4a47}.phase-status-settled,.phase-status-win{background:linear-gradient(135deg,#42d67a33,#ffffffd1),#fff;border-color:#42d67a52}.phase-status-lose{background:linear-gradient(135deg,#e53d4a33,#b46cff1f),#fff;border-color:#e53d4a57}.identity-strip>div,.identity-role-card,.role-card,.home-info-card,.rule-step,.interface-card,.end-game-actions,.player-row{color:#15151f;background:#ffffffb8;border-color:#15151f17}.identity-strip>div,.player-row,.role-card,.identity-role-card,.home-info-card{box-shadow:none}.team-header{border-bottom-color:#15151f14}.player-row-with-side .player-row-main{border-right:0}.team-a .player-row-self{border-color:#e53d4a6b;box-shadow:inset 3px 0 #e53d4ab8}.team-b .player-row-self{border-color:#42d67a75;box-shadow:inset 3px 0 #42d67ac7}.team-winner{box-shadow:0 18px 44px #565e801c,0 0 0 1px #2fb85a3d}.team-loser{box-shadow:0 18px 44px #565e801c,0 0 0 1px #e53d4a42}.team-join-button{color:#15151f;box-shadow:none;background:#ffffff80;border-color:#15151f1f}.team-join-a:hover:not(:disabled){background:#e53d4a14}.team-join-b:hover:not(:disabled){background:#42d67a1a}.pending-column .team-header h2{color:#686de8}.pending-join-button{background:#ffffff8f;border-color:#686de842}.pending-join-button:hover:not(:disabled){background:#686de81a}.pending-join-button span{color:#686de8}.player-row-kickable:hover,.player-row-kickable:focus-visible,.player-row-menu-open{background:linear-gradient(135deg,#e53d4a12,#e268d81c),#ffffffc7;border-color:#e268d85c;box-shadow:0 12px 30px #843a7a1f}.team-a .player-row-kickable:hover,.team-a .player-row-kickable:focus-visible,.team-a .player-row-menu-open{background:linear-gradient(135deg,#e53d4a14,#ffffff9e),#ffffffc7;border-color:#e53d4a5c;box-shadow:0 12px 30px #e53d4a1a}.team-b .player-row-kickable:hover,.team-b .player-row-kickable:focus-visible,.team-b .player-row-menu-open{background:linear-gradient(135deg,#42d67a1a,#ffffffa3),#ffffffc7;border-color:#42d67a61;box-shadow:0 12px 30px #20a4561a}.player-kick-menu{background:#fff;border-color:#e53d4a47;box-shadow:0 18px 48px #565e802e}.ready-badge{background:0 0;border:0}.vote-count-badge{color:#a42131;background:linear-gradient(135deg,#e53d4a24,#e268d81a),#ffffffd1;border:1px solid #e53d4a38;border-radius:999px;padding:.28rem .58rem;font-size:.82rem;font-weight:950}.ready-badge-pending{color:#15151f94;background:0 0}.ready-badge-ready{color:#178a47;background:0 0}.connection-badge-offline{color:#15151f75;background:0 0}.blackout-control small{color:#15151f8f}.switch-button{background:#d7dde6;border-color:#15151f1f;box-shadow:inset 0 1px 4px #565e8038}.switch-button:hover:not(:disabled){background:#cbd3df}.switch-button span{background:#fff;box-shadow:0 2px 7px #565e8047}.switch-button-on{background:#42d67a;border-color:#42d67a75}.switch-button-on:hover:not(:disabled){background:#35c766}.error-text,.error-banner,.kicked-notice{color:#a42131;background:#e53d4a1a;border-color:#e53d4a38}.home-info-card-civilian,.role-card-civilian,.identity-role-card-civilian{border-top-color:var(--role-civilian)}.home-info-card-big_bro,.role-card-big_bro,.identity-role-card-big_bro{border-top-color:var(--role-big-bro)}.home-info-card-daidai,.role-card-daidai,.identity-role-card-daidai{border-top-color:var(--role-daidai)}.home-info-card-undercover,.role-card-undercover,.identity-role-card-undercover{border-top-color:var(--role-undercover)}@media (width<=760px){body{-webkit-text-size-adjust:100%;overflow-x:hidden}button,input,select{min-height:44px}.landing-shell,.room-shell{width:calc(100vw - .85rem)}.landing-shell{padding:.6rem 0 1.5rem}.site-nav{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:26rem;display:grid;top:.5rem}.site-nav button{white-space:nowrap;min-width:0;padding:.58rem .4rem}.landing-stage{min-height:calc(100svh - 6.5rem);padding-top:.6rem}.brand-hero{gap:.5rem;width:100%}.brand-hero h1{overflow-wrap:anywhere;max-width:100%;font-size:5rem;line-height:.9}body:has(.brand-hero) .brand-hero h1{overflow-wrap:anywhere;max-width:100%;font-size:5rem;line-height:.9}.home-rules-panel,.entry-panel,.announcement-panel,.host-panel,.team-column,.role-guide{border-radius:8px;padding:.85rem}.home-rules-tabs,.play-mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:.28rem;padding:.28rem}.home-rules-tabs button,.play-mode-tabs button{min-width:0;padding:.55rem .28rem;font-size:.86rem;line-height:1.15}body:has(.brand-hero) .landing-shell{gap:.75rem;width:calc(100vw - 1rem);padding-bottom:.55rem}body:has(.brand-hero) .test-version-footer{padding-top:0}.entry-panel{width:100%}.entry-form{gap:.72rem;margin-top:1rem}.room-shell{padding:.55rem 0 1.25rem}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:.55rem;display:grid}.topbar>div:first-child{grid-area:1/1/auto/-1}.topbar h1{font-size:2.75rem;line-height:.9}.topbar-actions{grid-area:2/2;align-self:start}.topbar-actions .ghost-button{white-space:nowrap;padding:.55rem .68rem}.room-code-row{align-items:start;gap:.45rem}.help-button{min-height:34px;padding:.22rem .5rem .22rem .3rem}.phase-status{grid-area:2/1;grid-template-columns:minmax(0,1fr) auto;width:100%;min-width:0;padding:.68rem .8rem}.phase-status span{font-size:1.2rem}.phase-status strong{font-size:1.5rem}.identity-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-bottom:.65rem}.identity-strip>div{min-width:0;padding:.68rem}.identity-strip strong{font-size:1rem;line-height:1.2}.blackout-control{grid-column:1/-1}.blackout-header{align-items:center}.announcement-panel{gap:.7rem;margin-bottom:.75rem}.announcement-form{grid-template-columns:1fr}.layout-grid,.layout-grid-member,.layout-grid-host{grid-template-columns:1fr;gap:.75rem}.player-control-panel{display:none}.host-panel{order:1}.teams-panel{order:2;grid-template-columns:1fr;gap:.72rem}.layout-grid-member .teams-panel{grid-template-columns:1fr}.team-header{align-items:center}.team-join-button{margin-bottom:.55rem}.player-row,.layout-grid-member .player-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:52px;padding:.56rem .62rem}.player-row-main{min-width:0;padding-right:.55rem}.player-row-main strong,.player-row strong{overflow-wrap:anywhere}.player-row-side{gap:.32rem;min-width:4.4rem}.ready-badge{min-width:0;padding:.24rem .5rem;font-size:.76rem}.vote-count-badge{white-space:nowrap;padding:.24rem .46rem;font-size:.76rem;line-height:1}.phase-prompt,.vote-overlay{padding:max(.75rem, env(safe-area-inset-top)) .75rem max(.75rem, env(safe-area-inset-bottom))}.phase-prompt-card{width:min(100%,28rem);min-width:0;padding:clamp(1.6rem,12vw,3.2rem) 1.25rem}.phase-prompt-card strong{font-size:clamp(3.2rem,18vw,5.4rem)}.vote-overlay{align-items:center;overflow:auto}.vote-overlay-card{width:min(100%,28rem);max-height:calc(100svh - 1.5rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:14px;padding:.95rem;overflow:auto}.vote-overlay-header{align-items:start;gap:.75rem;margin-bottom:.65rem}.vote-overlay-header h2{font-size:clamp(1.9rem,10vw,2.6rem)}.vote-overlay-timer{padding:.42rem .62rem;font-size:clamp(1.45rem,7vw,2.05rem)}.vote-overlay-copy{margin-bottom:.75rem;font-size:.92rem}.vote-overlay-list{gap:.48rem}.vote-overlay-choice{border-radius:10px;min-height:46px;padding:.58rem .72rem}.vote-overlay-choice strong{font-size:1rem}.vote-overlay-choice small{font-size:.78rem}.vote-overlay-choice i{width:1.7rem;height:1.7rem;font-size:1.12rem}.vote-overlay-actions{grid-template-columns:1fr;gap:.55rem;margin-top:.75rem}.vote-overlay-actions span{white-space:normal}.vote-overlay-actions button{width:100%}}@media (width<=420px){.brand-hero h1{font-size:4.2rem}body:has(.brand-hero) .brand-hero h1{font-size:4.2rem}.home-rules-tabs button,.play-mode-tabs button,.site-nav button{font-size:.82rem}.topbar{grid-template-columns:minmax(0,1fr) auto}.topbar-actions{grid-area:2/2;justify-content:end}.topbar-actions .ghost-button{width:auto;padding-inline:.58rem}.topbar .phase-status{grid-area:2/1}.identity-strip{grid-template-columns:1fr}.player-row,.layout-grid-member .player-row{grid-template-columns:minmax(0,1fr) auto}.player-row-main{padding-right:.5rem}.player-row-side{justify-content:end;min-width:4rem}.vote-count-badge,.ready-badge{font-size:.74rem}.phase-prompt-card{width:100%}.vote-overlay-header{grid-template-columns:1fr}.vote-overlay-timer{justify-self:start}.vote-overlay-card{width:100%;padding:.82rem}.vote-overlay-choice{grid-template-columns:minmax(0,1fr) 1.6rem}}@media (width<=980px){.layout-grid-member .teams-panel{grid-template-columns:1fr}}.role-badge{border:1px solid #15151f14;font-weight:900;box-shadow:inset 0 0 0 1px #ffffffb3}.role-badge-civilian{color:#5e6b7e;background:linear-gradient(135deg,#dbe4f0b8,#ffffffeb),#fff;border-color:#5e6b7e33}.role-badge-big_bro{color:#1379c8;background:linear-gradient(135deg,#24a3ff2e,#ffffffe6),#fff;border-color:#24a3ff47}.role-badge-daidai{color:#9a6910;background:linear-gradient(135deg,#f4c95d47,#ffffffe6),#fff;border-color:#cd951947}.role-badge-undercover{color:#7a3ed1;background:linear-gradient(135deg,#b46cff33,#ffffffe6),#fff;border-color:#b46cff4d}.role-reveal,.phase-prompt{background:radial-gradient(circle at 22% 22%,#2ecde129,#0000 28%),radial-gradient(circle at 78% 26%,#ec68d724,#0000 30%),#f6f2ffe6}.phase-prompt-settlement{background:radial-gradient(circle at 28% 24%,#42d67a29,#0000 30%),radial-gradient(circle at 78% 30%,#4fd6e31f,#0000 30%),#f6f2ffe6}.phase-prompt-result{background:radial-gradient(circle at 24% 22%,#f4c95d29,#0000 30%),radial-gradient(circle at 78% 28%,#ec68d724,#0000 30%),#f6f2ffe6}.role-reveal-card,.phase-prompt-card{color:#15151f;background:linear-gradient(135deg,#fffffff0,#ffffffd1),#fff;border-color:#15151f1a;box-shadow:0 28px 82px #565e8033}.phase-prompt-card{border-top-color:#e268d89e}.phase-prompt-settlement .phase-prompt-card{background:linear-gradient(135deg,#42d67a29,#ffffffe6),#fff;border-top-color:#42d67a}.phase-prompt-result .phase-prompt-card{background:linear-gradient(135deg,#f4c95d29,#ffffffe6),#fff;border-top-color:#f4c95d}.phase-prompt-card:before{background:linear-gradient(110deg,#0000 0%,#ffffff94 42%,#0000 62%)}.role-reveal-card span,.phase-prompt-card span,.phase-prompt-card small{color:#15151f99}.role-reveal-card strong,.phase-prompt-card strong{color:#15151f;text-shadow:none}.phase-prompt-card small{color:#15151fa3}.role-reveal-civilian{border-top-color:var(--role-civilian)}.role-reveal-big_bro{border-top-color:var(--role-big-bro)}.role-reveal-daidai{border-top-color:var(--role-daidai)}.role-reveal-undercover{border-top-color:var(--role-undercover)}.identity-role-help{color:#15151f9e;background:#ffffffb8;border-color:#15151f1a;box-shadow:inset 0 0 0 1px #ffffff94}.identity-role-help:hover,.identity-role-help:focus-visible,.identity-role-help:focus-within{color:#15151f;background:linear-gradient(135deg,#4fd6e32e,#df77dd2e),#ffffffe6;border-color:#7b5bf538}.identity-role-popover{color:#15151f;background:#fffffff5;border-color:#15151f1a;box-shadow:0 24px 70px #565e8033}.identity-role-card{background:#ffffffdb;border-color:#15151f14;border-top-width:4px}.identity-role-card p{color:#15151fc2}.identity-role-card small,.identity-role-card-top span{color:#15151f8a}.identity-role-card-top strong{color:#15151f}.end-game-actions button:first-child:not(.ghost-button),.player-kick-menu .player-menu-kick{color:#fff;box-shadow:none;background:linear-gradient(135deg,#e53d4ad6,#e268d88a),#e53d4a}.end-game-actions button:first-child:not(.ghost-button):hover,.player-kick-menu .player-menu-kick:hover:not(:disabled){background:linear-gradient(135deg,#e53d4aeb,#e268d89e),#e53d4a}.end-game-actions button:last-child:not(.ghost-button){color:#0f3d26;background:linear-gradient(135deg,#42d67a5c,#4fd6e32e),#fff;box-shadow:inset 0 0 0 1px #42d67a38}.team-header-meta b{color:#fff}.team-winner .team-header-meta b{background:#2fb85adb}.team-loser .team-header-meta b{background:#e53d4adb}.vote-overlay{z-index:70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(circle at 22% 22%,#2ecde124,#0000 28%),radial-gradient(circle at 78% 24%,#ec68d724,#0000 30%),#15121f94;place-items:center;padding:1rem;animation:.22s both voteOverlayBackdropIn;display:grid;position:fixed;inset:0}.vote-overlay-card{color:#15151f;background:#fffffff5;border:1px solid #15151f1a;border-top:6px solid #e95cbf;border-radius:18px;width:min(540px,100vw - 2rem);padding:1.35rem;animation:.24s cubic-bezier(.16,1,.3,1) both voteOverlayCardIn;box-shadow:0 30px 100px #18122447}.vote-overlay-header{justify-content:space-between;gap:1rem;margin-bottom:.8rem;display:flex}.vote-overlay-header h2{color:#15151f;margin:0;font-size:clamp(2rem,4.8vw,3.1rem);line-height:1}.vote-overlay-timer{color:#15151f;font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#4fd6e32e,#df77dd33),#15151f0e;border-radius:999px;align-self:start;padding:.52rem .8rem;font-size:clamp(1.85rem,4.2vw,2.9rem);font-weight:950;line-height:1}.vote-overlay-copy{color:#15151f9e;margin:0 0 1rem;line-height:1.5}.vote-overlay-list{gap:.62rem;display:grid}.vote-overlay-choice{color:#15151f;text-align:left;width:100%;box-shadow:none;background:#ffffffb8;border:1px solid #15151f17;border-radius:12px;grid-template-columns:minmax(0,1fr) 2.1rem;align-items:center;padding:.9rem .95rem;display:grid}.vote-overlay-choice:hover:not(:disabled),.vote-overlay-choice:focus-visible{background:linear-gradient(135deg,#e53d4a1a,#e268d814),#ffffffd1;border-color:#e53d4a5c;transform:translateY(-1px)}.vote-overlay-choice-selected{background:linear-gradient(135deg,#e53d4a24,#e268d81a),#fff;border-color:#e53d4a8a;box-shadow:inset 4px 0 #e53d4a}.vote-overlay-choice-self{border-color:#24a3ff47}.vote-overlay-choice span{min-width:0;display:grid}.vote-overlay-choice strong{color:#15151f;text-overflow:ellipsis;white-space:nowrap;font-size:1.18rem;overflow:hidden}.vote-overlay-choice small{color:#15151f8a;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.vote-overlay-choice i{color:#e53d4a;opacity:0;border-radius:50%;justify-self:end;place-items:center;width:2rem;height:2rem;font-size:1.35rem;font-style:normal;font-weight:950;transition:opacity .15s,transform .15s;display:grid;transform:scale(.72)}.vote-overlay-choice-selected i{opacity:1;transform:scale(1)}.vote-overlay-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem;margin-top:1rem;display:grid}.vote-overlay-actions span{color:#15151f99;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.vote-overlay-actions button{color:#fff;box-shadow:none;background:linear-gradient(135deg,#e53d4aeb,#e268d8ad),#e53d4a;border-radius:999px;padding:.78rem 1.2rem;font-weight:900}.vote-overlay-actions button:hover:not(:disabled){background:linear-gradient(135deg,#e53d4a,#e268d8c2),#e53d4a}@keyframes voteOverlayBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes voteOverlayCardIn{0%{opacity:0;filter:blur(5px);transform:translateY(14px)scale(.96)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.mobile-action-bar,.mobile-pending-slot,.player-row-meta-mobile{display:none}@media (width<=760px){body:has(.room-shell){overflow:hidden}body:has(.room-shell-host){overflow:hidden auto}.room-shell{width:100vw;height:100svh;padding:max(.55rem, env(safe-area-inset-top)) .55rem max(.55rem, env(safe-area-inset-bottom));grid-template-rows:auto auto auto minmax(0,1fr);gap:.5rem;display:grid;overflow:hidden}.room-shell-host{grid-template-rows:auto auto auto auto;height:auto;min-height:100svh;overflow:visible}.topbar{grid-row:1;margin-bottom:0}.topbar>div:first-child{grid-area:1/1}.topbar-actions{grid-area:1/2;align-self:start}.topbar-actions .ghost-button{color:#15151f9e;min-height:34px;padding:.36rem .58rem;font-size:.78rem}.room-code-row{flex-wrap:nowrap;align-items:center}.topbar h1{font-size:clamp(2.45rem,12vw,3.15rem);line-height:.9}.help-button{min-height:32px;padding:.18rem .48rem .18rem .28rem}.help-button span{width:22px;height:22px}.help-button b{font-size:.78rem}.topbar .phase-status{border-radius:12px;grid-area:2/1/auto/-1;min-height:42px;padding:.55rem .68rem}.phase-status span{font-size:1.1rem}.phase-status strong{font-size:1.42rem}.phase-status small{display:none}.phase-status .phase-role-label{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:900;display:block;overflow:hidden}.phase-status .phase-role-label.role-text-civilian{color:#5e6b7e}.phase-status .phase-role-label.role-text-big_bro{color:#1379c8}.phase-status .phase-role-label.role-text-daidai{color:#9a6910}.phase-status .phase-role-label.role-text-undercover{color:#7a3ed1}.identity-strip{display:none}.identity-strip>div{background:#ffffffb8;border:0;border-radius:999px;min-height:0;padding:.34rem .58rem;box-shadow:inset 0 0 0 1px #15151f14}.identity-strip>.identity-team,.identity-strip>.identity-count,.identity-strip>.identity-role-waiting{display:none}.identity-strip>.identity-role-visible{flex:none;display:grid}.identity-role-visible .identity-label-row{display:none}.identity-role-visible strong{font-size:.82rem;line-height:1}.identity-strip>.blackout-control{display:none}.announcement-panel{margin-bottom:0}.announcement-panel:not(.announcement-panel-host){border-radius:12px;grid-row:2;grid-template-columns:1fr;gap:.1rem;padding:.55rem .65rem}.announcement-panel:not(.announcement-panel-host) .announcement-label{font-size:.72rem;display:block}.announcement-panel:not(.announcement-panel-host) .announcement-text,.announcement-panel:not(.announcement-panel-host) .muted{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.layout-grid,.layout-grid-member,.layout-grid-host{grid-row:4;height:100%;min-height:0;overflow:hidden}.room-shell-host .layout-grid-host{height:auto;min-height:0;overflow:visible}.layout-grid-member{grid-template-columns:1fr}.layout-grid-member:not(.layout-grid-host){height:auto;overflow:visible}.teams-panel,.layout-grid-member .teams-panel{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;height:100%;min-height:0;overflow:hidden}.layout-grid-member:not(.layout-grid-host) .teams-panel{grid-template-rows:auto;align-items:start;height:auto;overflow:visible}.room-shell-host .teams-panel{order:1;height:auto;min-height:0;overflow:visible}.room-shell-host .host-panel{order:2}.team-column,.layout-grid-member .team-column{border-radius:12px;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;padding:.54rem;display:grid;overflow:hidden}.layout-grid-member:not(.layout-grid-host) .team-column{height:auto;overflow:visible}.layout-grid-member:not(.layout-grid-host) .mobile-pending-slot{display:block}.mobile-pending-slot .pending-column{height:auto;min-height:0;padding:.54rem}.mobile-pending-slot .team-header{margin-bottom:.42rem;padding-bottom:.42rem}.mobile-pending-slot .player-stack{grid-auto-rows:48px;overflow:visible}.room-shell-host .team-column{height:auto;min-height:0;overflow:visible}.team-header{align-items:center;margin-bottom:.42rem;padding-bottom:.42rem}.team-header h2{color:inherit;font-size:1.12rem}.team-a .team-header h2{color:#e53d4a}.team-b .team-header h2{color:#2fb85a}.pending-column{grid-column:1/-1;height:auto;min-height:0}.pending-column .team-header h2{color:#686de8}.pending-column .player-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.team-header span{font-size:.78rem}.team-header-meta{gap:.2rem}.team-header-meta b{padding:.2rem .38rem;font-size:.66rem}.team-join-button{border-radius:9px;height:48px;min-height:48px;margin:0;padding:.42rem .48rem}.team-join-button span{font-size:1.55rem}.player-stack{grid-auto-rows:48px;align-content:start;gap:.36rem;min-height:0;overflow:hidden}.player-row,.layout-grid-member .player-row{border-radius:9px;grid-template-columns:minmax(0,1fr) max-content;align-items:center;height:48px;min-height:48px;padding:.42rem .48rem}.player-row-main{gap:.08rem;padding-right:.28rem}.player-row-with-side .player-row-main{border-right:0}.player-row strong{font-size:.9rem;line-height:1.05}.player-row span{font-size:.64rem;line-height:1.05}.player-row-meta-desktop{display:none}.player-row-meta-mobile{display:block}.player-row-side{justify-content:end;gap:.18rem;min-width:3.35rem}.ready-badge,.vote-count-badge,.connection-badge,.role-badge{padding:.18rem .34rem;font-size:.7rem}.ready-badge,.connection-badge{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;font-weight:950;line-height:1}.ready-badge-pending{color:#15151f6b;background:0 0}.team-a .ready-badge-ready{color:#e53d4a;background:0 0}.team-b .ready-badge-ready{color:#2fb85a;background:0 0}.team-empty-slot{background:#ffffff61;border:1px solid #15151f0e;border-radius:9px;align-content:center;gap:.12rem;height:48px;min-height:48px;padding:.32rem .42rem;display:grid}.team-empty-slot strong,.team-empty-slot span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.team-empty-slot strong{color:#15151f8a;font-size:.8rem;line-height:1.05}.team-empty-slot span{color:#15151f6b;font-size:.62rem;line-height:1.05}.team-column .player-stack>.muted{display:none}.mobile-action-bar{background:#ffffffeb;border:1px solid #15151f14;border-radius:13px;grid-row:3;grid-template-columns:minmax(7.5rem,.62fr) minmax(0,1fr);align-items:center;gap:.55rem;padding:.38rem;display:grid;box-shadow:0 12px 30px #565e801a}.mobile-action-bar button{color:#fff;min-height:38px;box-shadow:none;background:linear-gradient(135deg,#e53d4af0,#e268d8b3),#e53d4a;border-radius:999px;font-size:.98rem;font-weight:950}.mobile-action-bar button:hover:not(:disabled),.mobile-action-bar button:focus-visible,.mobile-action-bar button:active{color:#fff;background:linear-gradient(135deg,#e53d4af0,#e268d8b3),#e53d4a}.mobile-action-bar button:disabled{color:#15151f6b;background:#15151f14}.mobile-action-bar span{color:#15151f85;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:850;overflow:hidden}}.identity-role-card-civilian{border-top-color:var(--role-civilian)}.identity-role-card-big_bro{border-top-color:var(--role-big-bro)}.identity-role-card-daidai{border-top-color:var(--role-daidai)}.identity-role-card-undercover{border-top-color:var(--role-undercover)}
