:root{--ink: #efe6ff;--muted: #a99cc4;--panel: rgba(18, 10, 30, .86);--edge: rgba(185, 140, 255, .35);--accent: #9be7ff;--accent2: #b98cff;--danger: #ff5a6e;--gold: #ffd23f}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#06050b;color:var(--ink);font:16px/1.4 Nunito,system-ui,sans-serif}body{touch-action:none;user-select:none;-webkit-user-select:none}#view{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:block}[hidden]{display:none!important}.screen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;z-index:10;background:radial-gradient(ellipse at center,#06050b4d,#06050bd9)}.panel{width:min(440px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:24px;background:var(--panel);border:1px solid var(--edge);border-radius:16px;box-shadow:0 0 60px #9664ff2e;text-align:center}h1{font:400 52px/.95 Creepster,cursive;letter-spacing:2px;margin:4px 0 8px;color:#d8ffe9;text-shadow:0 0 18px rgba(130,255,200,.5),0 3px 0 #2a1840}h2{font:400 42px/1 Creepster,cursive;margin:0 0 8px;letter-spacing:1px}#logo{width:100%;max-height:200px;object-fit:contain;margin:-8px 0 0;mix-blend-mode:screen}#logo+h1{display:none}.tag{color:var(--muted);margin:0 0 18px;font-style:italic}label{display:block;text-align:left;font-weight:600;color:var(--muted);margin-bottom:14px}input{width:100%;margin-top:6px;padding:11px 12px;font:600 17px Nunito,sans-serif;color:var(--ink);background:#ffffff0f;border:1px solid var(--edge);border-radius:10px;outline:none;-webkit-user-select:text;user-select:text}input:focus{border-color:var(--accent)}button{font:800 16px Nunito,sans-serif;color:var(--ink);background:#b98cff26;border:1px solid var(--edge);border-radius:10px;padding:11px 16px;cursor:pointer}button:hover{background:#b98cff47}button.primary{width:100%;background:linear-gradient(180deg,#7b4dd6,#5a2fb0);border-color:#a77dff;font-size:18px;padding:13px;box-shadow:0 4px #34186e}button.primary:active{transform:translateY(2px);box-shadow:0 2px #34186e}button.link{background:none;border:none;color:var(--accent);text-decoration:underline;padding:4px}.join-row{display:flex;gap:8px;margin-top:12px}.join-row input{margin:0;text-transform:uppercase;letter-spacing:4px;text-align:center}.error{color:var(--danger);min-height:1.4em;margin:10px 0 0}.small{color:var(--muted);font-size:14px;margin:6px 0}.how{text-align:left;margin-top:8px;color:var(--muted);font-size:14px}.how summary{cursor:pointer;font-weight:800;color:var(--ink)}.how ul{padding-left:18px}.code{font:400 64px/1 Creepster,cursive;letter-spacing:10px;color:var(--accent);text-shadow:0 0 20px rgba(155,231,255,.5)}#players{list-style:none;padding:0;margin:14px 0;text-align:left}#players li{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:4px 0;background:#ffffff0d;border-radius:8px}#players .dot{width:12px;height:12px;border-radius:50%}#players .role-tag{margin-left:auto;color:var(--muted);font-size:14px}.roles{display:flex;gap:8px}.roles .role{flex:1}.roles .role.active{background:#9be7ff38;border-color:var(--accent)}#last-result{margin-top:14px;font-size:14px;color:var(--muted)}#hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none}#topbar{position:absolute;top:10px;left:50%;transform:translate(-50%);text-align:center;padding:6px 18px;background:var(--panel);border:1px solid var(--edge);border-radius:12px}#timer{font:800 26px Nunito,sans-serif}#timer.low{color:var(--danger)}#progress{font-size:14px;color:var(--muted)}#fled{color:var(--gold);font-weight:800}#scores{position:absolute;top:10px;left:10px;margin:0;padding:8px 12px 8px 30px;background:var(--panel);border:1px solid var(--edge);border-radius:12px;font-size:14px;min-width:150px}#scores li{white-space:nowrap}#scores .pts{float:right;margin-left:12px;font-weight:800}#minimap{position:absolute;top:10px;right:10px;width:216px;height:114px;background:var(--panel);border:1px solid var(--edge);border-radius:10px}#hint{position:absolute;bottom:22px;left:50%;transform:translate(-50%);padding:8px 16px;background:var(--panel);border:1px solid var(--edge);border-radius:12px;font-size:15px;white-space:nowrap}#hint:empty{display:none}#minimap.big{width:340px;height:180px;border:2px solid var(--accent2)}#spectate{position:absolute;top:84px;left:50%;transform:translate(-50%);width:min(520px,calc(100vw - 32px));padding:10px 18px 12px;text-align:center;background:#281246e6;border:2px solid var(--accent2);border-radius:14px;box-shadow:0 0 30px #b98cff59}.spectate-title{font:400 34px/1 Creepster,cursive;letter-spacing:3px;color:var(--accent2);text-shadow:0 0 14px rgba(185,140,255,.7);animation:spectate-pulse 2.4s ease-in-out infinite}.spectate-sub{margin-top:6px;font-size:14px;color:var(--ink)}#spectate-who{margin-top:6px;font-size:15px;color:var(--muted)}@keyframes spectate-pulse{50%{opacity:.65}}@media (max-width: 640px){#spectate{top:64px;padding:8px 12px}.spectate-title{font-size:26px}.spectate-sub{font-size:12px}}#hint kbd{display:inline-block;min-width:26px;padding:1px 7px;margin:0 3px;font:800 13px Nunito,sans-serif;color:#1a1028;background:var(--ink);border-radius:5px;text-align:center}#hint .cd{color:var(--muted)}#hint .charge{color:var(--gold);letter-spacing:1px}#alert{position:absolute;top:124px;left:50%;transform:translate(-50%);font:400 30px Creepster,cursive;letter-spacing:1px;color:var(--danger);text-shadow:0 0 12px rgba(255,60,80,.8);text-align:center;white-space:nowrap}#toasts{position:absolute;top:170px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.toast{padding:6px 14px;background:var(--panel);border:1px solid var(--edge);border-radius:10px;font-size:15px;animation:toast 3.2s forwards}@keyframes toast{0%{opacity:0;transform:translateY(-8px)}8%,80%{opacity:1;transform:none}to{opacity:0}}#mute{position:absolute;right:10px;top:134px;pointer-events:auto;padding:6px 10px;font-size:18px;background:var(--panel)}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;box-shadow:inset 0 0 160px 40px #000000bf;transition:box-shadow .2s}#vignette.danger{box-shadow:inset 0 0 140px 50px #ff283c8c}#vignette.jar{box-shadow:inset 0 0 200px 80px #78c8ff73}#touch{display:none}.touch #touch{display:block}.touch #hint{bottom:170px;font-size:13px}#stick{position:absolute;left:24px;bottom:28px;width:130px;height:130px;border-radius:50%;pointer-events:auto;touch-action:none;background:#140c2273;border:2px solid var(--edge)}#knob{position:absolute;left:39px;top:39px;width:52px;height:52px;border-radius:50%;background:#dcc8ff8c;border:2px solid rgba(255,255,255,.7);pointer-events:none}#buttons{position:absolute;right:20px;bottom:28px;display:flex;gap:14px;align-items:flex-end;pointer-events:auto}#buttons button{width:70px;height:70px;border-radius:50%;touch-action:none;font-size:15px;background:#281846bf;border:2px solid var(--accent2)}#buttons #btn-act{width:92px;height:92px;font-size:17px;border-color:var(--accent)}.touch #minimap{width:160px;height:85px}.touch #scores{font-size:12px;min-width:0}@media (max-width: 640px){#scores{display:none}#topbar{top:6px;padding:4px 12px}#timer{font-size:20px}#minimap{top:auto;bottom:180px;right:10px;width:140px;height:74px}#mute{top:10px}#alert{font-size:24px;top:70px}}#end-scores{text-align:left;padding-left:24px}#end-scores li{padding:4px 0}#end-scores .pts{float:right;font-weight:800}#end-scores .detail{color:var(--muted);font-size:13px;display:block}.section{margin:14px 0 6px;text-align:left;font-weight:800;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:1px}#abilities{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}#abilities .ability{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;font-weight:600}#abilities .ability .icon{font-size:22px}#abilities .ability small{font-size:11px;color:var(--muted);font-weight:600;line-height:1.25}#abilities .ability.active,.skins .skin.active{background:#9be7ff38;border-color:var(--accent)}.skins{display:flex;flex-wrap:wrap;gap:6px}.skins .skin{padding:6px 10px;font-size:13px}.skins .skin.locked{opacity:.45}.map-row{display:flex;align-items:center;gap:10px;margin:14px 0 10px}.map-row select{flex:1;padding:9px;font:600 15px Nunito,sans-serif;color:var(--ink);background:#ffffff0f;border:1px solid var(--edge);border-radius:10px}.map-row select option{background:#1a1028}#party-banner{position:absolute;top:84px;left:50%;transform:translate(-50%);padding:6px 16px;font-weight:800;color:#2a1800;background:linear-gradient(180deg,#ffe27a,#ffc23f);border-radius:999px;box-shadow:0 0 24px #ffd23f80;white-space:nowrap;animation:party-pop .4s ease-out}@keyframes party-pop{0%{transform:translate(-50%) scale(.6);opacity:0}}#emotes{position:absolute;right:20px;bottom:140px;display:flex;gap:8px;pointer-events:auto}#emotes button{width:44px;height:44px;padding:0;font-size:20px;border-radius:50%;background:#281846bf;touch-action:none}#emotes[hidden]{display:none}body:not(.touch) #emotes{display:none}#end-awards{list-style:none;padding:0;margin:14px 0 0;text-align:left}#end-awards li{padding:4px 0;border-top:1px solid rgba(255,255,255,.06)}#end-awards .award{display:inline-block;min-width:130px;color:var(--gold);font-weight:800}#end-unlocks{color:#9bffc8;margin:10px 0 0}
