:root{color-scheme:dark;--bg:#0f1115;--fg:#e7e9ee;--muted:#a7adbb;--card:#171a21;--border:#2a2f3a;--accent:#5b8cff}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji"}.container{max-width:720px;margin:48px auto;padding:0 16px;display:grid;gap:16px}h1,h2,h3{margin:0 0 8px}button,input,select{font:inherit;color:var(--fg)}button{background:var(--accent);border:1px solid transparent;padding:10px 14px;border-radius:10px;cursor:pointer}button:hover{filter:brightness(1.05)}input,select,textarea{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;width:100%}label{display:grid;gap:6px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px}pre{background:var(--card);border:1px solid var(--border);color:var(--fg);border-radius:12px;padding:12px;overflow:auto;white-space:pre-wrap}.small{color:var(--muted);font-size:12px}.main{position:fixed;top:50%;left:50%;height:1px;width:1px;background-color:#fff;border-radius:50%;animation:zoom 16s alternate infinite;z-index:-1;pointer-events:none}.card{background:#0f1220e6}body{background-color:#000}.main{position:fixed;top:50%;left:50%;height:1px;width:1px;background-color:#fff;border-radius:50%;box-shadow:-42vw -4vh #fff,25vw -41vh #fff,-20vw 49vh 0 1px #fff,5vw 40vh 1px 1px #fff,29vw 19vh 1px #fff,-44vw -13vh #fff,46vw 41vh 0 1px #fff,-3vw -45vh 0 1px #fff,47vw 35vh 1px #fff,12vw -8vh 1px #fff,-34vw 48vh 1px 1px #fff,32vw 26vh 1px 1px #fff,32vw -41vh 1px 1px #fff,0 37vh 1px 1px #fff,34vw -26vh 1px #fff,-14vw -49vh 1px #fff,-12vw 45vh 0 1px #fff,-44vw -33vh 0 1px #fff,-13vw 41vh #fff,-36vw -11vh 0 1px #fff,-23vw -24vh 1px #fff,-38vw -27vh 0 1px #fff,16vw -19vh #fff,28vw 33vh 1px #fff,-49vw -4vh #fff,16vw 32vh 0 1px #fff,36vw -18vh 1px #fff,-25vw -30vh 1px #fff,-23vw 24vh 0 1px #fff,-2vw -35vh 1px 1px #fff,-25vw 9vh #fff,-15vw -34vh #fff,-8vw -19vh 1px #fff,-20vw -20vh 1px 1px #fff,42vw 50vh 0 1px #fff,-32vw 10vh 1px #fff,-23vw -17vh #fff,44vw 15vh 1px #fff,-40vw 33vh 1px 1px #fff,-43vw 8vh #fff,-48vw -15vh 1px 1px #fff,-24vw 17vh #fff,-31vw 50vh 1px #fff,36vw -38vh 0 1px #fff,-7vw 48vh #fff,15vw -32vh #fff,29vw -41vh #fff,2vw 37vh 1px #fff,7vw -40vh 1px 1px #fff,15vw 18vh #fff,25vw -13vh 1px 1px #fff,-46vw -12vh 1px 1px #fff,-18vw 22vh #fff,23vw -9vh 1px #fff,50vw 12vh 0 1px #fff,45vw 2vh #fff,14vw -48vh 1px #fff,23vw 43vh 0 1px #fff,-40vw 16vh 1px 1px #fff,20vw -31vh 0 1px #fff,-17vw 44vh 1px 1px #fff,18vw -45vh #fff,33vw -6vh #fff,0 7vh 0 1px #fff,-10vw -18vh 0 1px #fff,-19vw 5vh 1px #fff,1vw 42vh #fff,22vw 48vh 0 1px #fff,39vw -8vh 1px 1px #fff,-6vw -42vh 1px #fff,-47vw 34vh #fff,-46vw 19vh 0 1px #fff,-12vw -32vh #fff,-45vw -38vh 0 1px #fff,-28vw 18vh 1px #fff,-38vw -46vh 1px 1px #fff,49vw -6vh 1px 1px #fff,-28vw 18vh 1px 1px #fff,10vw -24vh 0 1px #fff,-5vw -11vh 1px 1px #fff,33vw -8vh 1px #fff,-16vw 17vh #fff,18vw 27vh 0 1px #fff,-8vw -10vh 1px 1px #fff;box-shadow:24vw 9vh 1px #fff,12vw -24vh 0 1px #fff,-45vw -22vh #fff,-37vw -40vh 0 1px #fff,29vw 19vh 0 1px #fff,4vw -8vh 0 1px #fff,-5vw 21vh 1px 1px #fff,-27vw 26vh 1px 1px #fff,-47vw -3vh 1px 1px #fff,-28vw -30vh 0 1px #fff,-43vw -27vh 0 1px #fff,4vw 22vh 1px 1px #fff,36vw 23vh #fff,-21vw 24vh 1px 1px #fff,-16vw 2vh 1px #fff,-16vw -6vh #fff,5vw 26vh #fff,-34vw 41vh #fff,1vw 42vh 1px 1px #fff,11vw -13vh 1px 1px #fff,48vw -8vh 1px #fff,22vw -15vh #fff,45vw 49vh #fff,43vw -27vh 1px 1px #fff,20vw -2vh #fff,8vw 22vh 0 1px #fff,39vw 48vh 1px 1px #fff,-21vw -11vh 0 1px #fff,-40vw 45vh 0 1px #fff,11vw -30vh 1px #fff,26vw 30vh 1px #fff,45vw -29vh 0 1px #fff,-2vw 18vh #fff,-29vw -45vh 1px #fff,-7vw -27vh 1px 1px #fff,42vw 24vh #fff,45vw -48vh 1px #fff,-36vw -18vh #fff,-44vw 13vh 0 1px #fff,36vw 16vh 0 1px #fff,40vw 24vh #fff,18vw 11vh #fff,-15vw -23vh 1px #fff,-24vw 48vh 0 1px #fff,27vw -45vh 1px #fff,-2vw -24vh 0 1px #fff,-15vw -28vh #fff,-43vw 13vh 1px #fff,7vw 27vh 1px #fff,47vw 5vh #fff,-45vw 15vh 1px 1px #fff,-5vw -28vh 0 1px #fff,38vw 25vh 1px 1px #fff,-39vw -1vh 1px #fff,5vw 0 1px #fff,49vw 13vh #fff,48vw 10vh 0 1px #fff,19vw -28vh #fff,4vw 7vh #fff,21vw 21vh 1px 1px #fff,-15vw -15vh 0 1px #fff,-6vw -42vh 1px #fff,-15vw 48vh 1px 1px #fff,-23vw 25vh 1px 1px #fff,-48vw 25vh 0 1px #fff,-31vw -19vh 0 1px #fff,4vw 37vh 1px 1px #fff,-43vw 28vh #fff,3vw -25vh 0 1px #fff,-39vw 14vh 0 1px #fff,-40vw 31vh 0 1px #fff,35vw -36vh 1px 1px #fff,16vw 49vh #fff,6vw 39vh #fff,3vw -35vh 0 1px #fff,-44vw -2vh 1px #fff,-6vw 21vh 1px #fff,48vw 9vh 1px 1px #fff,-43vw 30vh 1px 1px #fff,29vw -12vh 1px 1px #fff,-48vw 13vh 1px #fff,-42vw 32vh 1px 1px #fff,34vw 15vh 1px 1px #fff,29vw -37vh 1px 1px #fff,28vw 2vh #fff;animation:zoom 16s alternate infinite}@keyframes zoom{0%{transform:scale(1)}to{transform:scale(1.5)}}.htp-overlay{position:fixed;inset:0;background:radial-gradient(1200px 800px at 50% 20%,#1e285a73,#060a14d9),#02060e8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:1000}.htp-modal{width:min(860px,92vw);max-height:88vh;overflow:auto;border-radius:16px;background:linear-gradient(180deg,#0d1220e6,#0a0e1ceb);border:1px solid rgba(120,140,200,.18);box-shadow:0 10px 50px #0a0e2899,inset 0 0 0 1px #aabeff0d;animation:htp-pop .18s ease-out}.htp-modal:before{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:18px;background:conic-gradient(from 120deg,#5d78ff47,#ff5c9240,#ffb94a47,#5d78ff47);filter:blur(16px);opacity:.6}@keyframes htp-pop{0%{transform:translateY(6px) scale(.98);opacity:.7}to{transform:translateY(0) scale(1);opacity:1}}.htp-header{position:sticky;top:0;background:linear-gradient(180deg,#0d1220,#0d1220b3);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(120,140,200,.18)}.htp-header h3{margin:0;letter-spacing:.5px}.htp-close{border:1px solid rgba(120,140,200,.25);background:#0e1430;color:#dfe8ff;border-radius:10px;padding:6px 10px;cursor:pointer}.htp-close:hover{border-color:#aabeff8c}.htp-body{padding:16px;display:grid;gap:14px}.htp-body h4{margin:0 0 6px;font-weight:800;letter-spacing:.2px}.htp-list{margin:0;padding-left:18px;display:grid;gap:6px;opacity:.95}.htp-footer{padding:14px 16px 16px;border-top:1px solid rgba(120,140,200,.18);position:sticky;bottom:0;background:linear-gradient(0deg,#0d1220,#0d1220b3)}.htp-footer button{padding:10px 14px;border-radius:10px;background:#5b8cff;color:#fff;border:none;font-weight:700;cursor:pointer}.htp-footer button:hover{filter:brightness(1.08)}.gx-btn{--gx-border: #ffffff;--gx-bg: rgba(255,255,255,.04);--gx-bg-hover: rgba(255,255,255,.1);--gx-text: #ffffff;position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;gap:10px;color:var(--gx-text);background:transparent;border:2px solid var(--gx-border);border-radius:12px;text-decoration:none;font-weight:800;letter-spacing:.3px;transition:transform .08s ease,box-shadow .15s ease,background .15s ease,color .15s ease;box-shadow:0 0 0 2px #ffffff14 inset,0 6px 22px #00000059}.gx-btn:hover{background:var(--gx-bg-hover);box-shadow:0 0 0 2px #ffffff1f inset,0 10px 32px #00000073}.gx-btn:active{transform:translateY(1px) scale(.99)}.gx-btn.is-disabled,.gx-btn:disabled,.gx-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.gx-ico{display:inline-flex;font-size:16px;filter:drop-shadow(0 1px 0 rgba(0,0,0,.25))}.gx-label{line-height:1;transform:translateY(1px)}.gx-btn.gx-wide{width:160px}.gx-btn.gx-full{width:100%}.icon-circle{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#ffffff0d,#00000014);box-shadow:inset 0 0 0 1px #ffffff05,0 6px 18px #00000059;color:#eaf1ff;transition:transform .06s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.icon-circle:hover{border-color:#7ba7ff47;background:radial-gradient(600px 120px at 0% 0%,#7ba7ff1a,#0000),linear-gradient(180deg,#ffffff0f,#00000017);box-shadow:inset 0 0 0 1px #7ba7ff2e,0 10px 26px #0000006b}.icon-circle:active{transform:translateY(1px)}.icon-circle svg{opacity:.92}.ls-wrap{display:grid;gap:14px}.ls-row{display:grid;gap:8px}.ls-row-inline{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ls-title{margin-bottom:2px}.ls-subtitle{margin-top:-4px;opacity:.9}.ls-hint{margin-left:8px;opacity:.85}.ls-topics{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.topic-card{text-align:left;padding:10px;border-radius:14px;background:#0f1220;border:1px solid #252c3b;transition:border-color .15s ease,box-shadow .15s ease,transform .04s ease,background .15s ease;cursor:pointer;display:grid;grid-template-columns:52px 1fr;align-items:center;gap:12px}.topic-card:hover{border-color:#7ba7ff40;box-shadow:inset 0 0 0 1px #7ba7ff1f,0 8px 20px #00000059}.topic-card.is-selected{background:linear-gradient(180deg,#ffffff0d,#0000000f);border-color:#ffd36b66;box-shadow:inset 0 0 0 1px #ffd36b2e,0 0 0 3px #ffd36b1f}.topic-card.is-readonly{cursor:default;opacity:.75}.topic-card img{width:52px;height:52px;border-radius:10px;object-fit:cover;display:block}.topic-name{font-weight:700}.gx-switch{position:relative;display:inline-flex;align-items:center}.gx-switch input{display:none}.gx-switch-track{width:48px;height:26px;border-radius:999px;background:#1a1f2f;border:1px solid #2a3146;box-shadow:inset 0 0 0 1px #ffffff08;position:relative;transition:background .18s ease,border-color .18s ease}.gx-switch-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:radial-gradient(14px 14px at 30% 30%,#eaf1ff,#9eb4ff);box-shadow:0 2px 10px #9eb4ff73;transition:transform .18s ease}.gx-switch input:checked+.gx-switch-track{background:linear-gradient(180deg,#202847,#17203a);border-color:#ffd36b80;box-shadow:0 0 0 2px #ffd36b1f}.gx-switch input:checked+.gx-switch-track .gx-switch-thumb{transform:translate(22px)}.gx-switch.is-disabled{opacity:.6;pointer-events:none}.ls-chips{display:flex;gap:10px;flex-wrap:wrap}.gx-chip{padding:8px 12px;min-width:44px;border-radius:12px;border:1px solid #2a2f3a;background:#0f1220;color:#eaf1ff;font-weight:800;letter-spacing:.2px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .04s ease}.gx-chip:hover{border-color:#7ba7ff40;box-shadow:inset 0 0 0 1px #7ba7ff1f}.gx-chip:active{transform:translateY(1px)}.gx-chip.is-active{border-color:#ffd36b73;background:linear-gradient(180deg,#ffffff0d,#0000000f);box-shadow:inset 0 0 0 1px #ffd36b2e,0 0 0 3px #ffd36b1f}.gx-chip:disabled{opacity:.45;cursor:not-allowed}.lp-wrap{display:grid;gap:8px}.lp-header{margin-bottom:2px}.players-panel{overflow:auto}.lp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;margin:0;list-style:none}@media(max-width:720px){.lp-grid{grid-template-columns:1fr}}.lp-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#0f1220;border:1px solid #252c3b;height:72px;transition:border-color .15s ease,box-shadow .15s ease,transform .04s ease,background .15s ease}.lp-card:hover{border-color:#7ba7ff40;box-shadow:inset 0 0 0 1px #7ba7ff1f,0 8px 20px #00000059}.lp-card.is-me{border-color:#ffd36b73;background:linear-gradient(180deg,#ffffff0d,#0000000f);box-shadow:inset 0 0 0 1px #ffd36b2e,0 0 0 3px #ffd36b1f}.lp-card.is-dead{filter:grayscale(1) brightness(.9);opacity:.95}.lp-left{display:grid;grid-template-columns:46px 1fr;align-items:center;gap:10px}.lp-avatar .player-avatar,.lp-avatar .player-avatar *{background:transparent!important;border:none!important;box-shadow:none!important}.lp-name{display:flex;align-items:center;gap:8px;min-width:0}.lp-nameText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800;font-size:14px;line-height:1.2}.lp-dot{width:8px;height:8px;border-radius:999px;background:#37d67a;box-shadow:0 0 0 2px #37d67a2e}.lp-kick{width:36px;height:36px;border-radius:10px;border:1px solid #2a2f3a;background:#12162a;color:#eaf1ff;font-weight:900;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .04s ease}.lp-kick:hover{background:#172040;border-color:#3f4f88}.lp-kick:active{transform:translateY(1px)}.result-banner{width:100%}.result-banner__card{position:relative;overflow:hidden;border-radius:16px;border:1px solid #3b3b55;background:#0f1220;box-shadow:0 8px 30px #00000059}.result-banner__image{position:relative;width:100%;min-height:320px;background-size:cover;background-position:center;background-repeat:no-repeat}.result-banner__overlay{position:absolute;inset:0;background:linear-gradient(180deg,#00000040,#000000a6 55%,#000000d9)}.result-banner__content{position:absolute;left:0;right:0;bottom:0;padding:26px 24px 20px;color:#eaf1ff;text-align:center;animation:rb-fade-in .35s ease-out both}.result-banner__title{margin:0 0 6px;font-size:28px;font-weight:800;letter-spacing:.5px;text-shadow:0 2px 8px rgba(0,0,0,.6)}.result-banner__title.victory-crewmates{color:#7cc3ff}.result-banner__title.victory-impostors{color:#ff4d4d}.result-banner__subtitle{margin:0;font-size:16px;font-weight:600;opacity:.95}.result-banner__button{margin-top:14px;padding:10px 16px;border-radius:12px;background:#2d3a66;color:#eaf1ff;border:1px solid #3f4f88;cursor:pointer;transition:transform .05s ease,opacity .2s ease,background .2s ease}.result-banner__button:hover{background:#3a4b88}.result-banner__button:active{transform:translateY(1px)}@keyframes rb-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.vote-card{position:relative;display:grid;grid-template-columns:56px 1fr 40px;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#0000000d);box-shadow:inset 0 0 0 1px #ffffff05,0 4px 14px #00000059;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .04s ease,background .15s ease}.vote-card:hover{border-color:#7ba7ff40;box-shadow:inset 0 0 0 1px #7ba7ff1f,0 8px 20px #0006}.vote-card:active{transform:translateY(1px)}.vote-card.is-selected{border-color:#ffd36b;box-shadow:inset 0 0 0 1px #ffd36b2e,0 0 0 3px #ffd36b1f,0 10px 26px #00000059;background:radial-gradient(1200px 140px at -100px -80px,#ffd36b1f,#0000),linear-gradient(180deg,#ffffff0d,#0000000f)}.vote-card.is-disabled{opacity:.6;cursor:not-allowed}.vote-card__avatar{display:flex;align-items:center;justify-content:center}.vote-card__name{font-weight:800;letter-spacing:.2px}.vote-card__me{font-weight:600;opacity:.8;margin-left:4px;font-size:12px}.vote-card__confirm{width:36px;height:36px;border-radius:10px;border:1px solid #2a3150;background:#14182b;color:#eaf1ff;font-weight:900;display:none;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,transform .04s ease,border-color .15s ease}.vote-card.is-selected .vote-card__confirm{display:flex}.vote-card__confirm:hover{background:#2d3a66;border-color:#3f4f88}.vote-card__confirm:active{transform:translateY(1px)}.players-panel{max-height:320px;overflow:auto}.players-panel::-webkit-scrollbar{width:8px}.players-panel::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:8px}.players-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:0}@media(max-width:720px){.players-grid{grid-template-columns:1fr}}.player-card{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#0000000d);box-shadow:inset 0 0 0 1px #ffffff05,0 4px 14px #00000059;height:72px;transition:border-color .15s ease,box-shadow .15s ease,transform .04s ease,background .15s ease}.player-card:hover{border-color:#7ba7ff40;box-shadow:inset 0 0 0 1px #7ba7ff1f,0 8px 20px #0006}.player-card.is-me{border-color:#ffd36b59;background:radial-gradient(1200px 140px at -100px -80px,#ffd36b1f,#0000),linear-gradient(180deg,#ffffff0d,#0000000f);box-shadow:inset 0 0 0 1px #ffd36b2e,0 0 0 3px #ffd36b1f,0 10px 26px #00000059}.player-card.is-dead{filter:grayscale(1) brightness(.9);opacity:.95}.player-card__avatar{display:flex;align-items:center;justify-content:center}.player-card__avatar .player-avatar,.player-card__avatar .player-avatar *{background:transparent!important;border:none!important;box-shadow:none!important}.player-card__name{display:flex;align-items:center;gap:8px;letter-spacing:.1px;min-width:0}.player-card__nameText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-weight:800;font-size:11px;line-height:1.2}@media(max-width:520px){.player-card__nameText{font-size:13px}}.rolecard{border:1px solid rgba(255,255,255,.08);border-radius:14px;background:radial-gradient(1200px 180px at -200px -120px,#7ba7ff0f,#0000),linear-gradient(180deg,#ffffff0a,#0000000f);overflow:hidden;display:grid;grid-template-rows:auto 260px auto;min-height:360px;box-shadow:inset 0 0 0 1px #ffffff05,0 8px 24px #00000059}.rolecard__header{padding:10px 12px;font-weight:800;letter-spacing:.2px;background:#090c1aa6;border-bottom:1px solid rgba(255,255,255,.06)}.rolecard__media{width:100%;height:260px;display:flex;align-items:center;justify-content:center;background:#0b0e1a;border-bottom:1px solid rgba(255,255,255,.06)}.rolecard__media img{width:100%;height:100%;object-fit:cover;display:block}.rolecard__placeholder{opacity:.7;font-size:14px}.rolecard__body{padding:12px;display:grid;gap:6px}.rolecard__row{display:flex;gap:8px;align-items:baseline}.rolecard__label{opacity:.75;font-size:12px}.rolecard__value{font-weight:800}.rolecard__value.is-impostor{color:#ffb76b;text-shadow:0 0 10px rgba(255,183,107,.24)}.rolecard__value.is-crewmate{color:#9dd3ff;text-shadow:0 0 10px rgba(157,211,255,.18)}@media(max-width:800px){.rolecard{grid-template-rows:auto 220px auto;min-height:320px}}
