:root{--bg:#02101d;--bg-deep:#010a14;--panel:#082030d1;--panel-edge:#5abee640;--text:#d8f1fb;--muted:#7fa9bd;--accent:#3ee6c8;--accent-ink:#012a24;--danger:#ff7b7b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(ellipse at 50% -20%, #0c3a55 0%, var(--bg) 55%, var(--bg-deep) 100%) fixed;color:var(--text);-webkit-tap-highlight-color:transparent;font-family:"Exo 2",system-ui,sans-serif}button,input{font:inherit;color:inherit}.screen{flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:100%;padding:32px 16px;display:flex;position:relative;overflow:hidden}.bubbles,.bubbles:before,.bubbles:after{pointer-events:none;background-image:radial-gradient(circle,#a0e1ff59 0 2px,#0000 3px),radial-gradient(circle,#a0e1ff33 0 1.5px,#0000 2.5px);background-position:20px 0,70px 40px;background-size:180px 220px,110px 140px;animation:14s linear infinite rise;position:absolute;inset:0}.bubbles:before{content:"";opacity:.6;background-size:260px 300px,150px 190px;animation-duration:22s}.bubbles:after{content:"";opacity:.4;background-size:90px 120px,200px 260px;animation-duration:30s}@keyframes rise{to{background-position:20px -660px,70px -380px}}@media (prefers-reduced-motion:reduce){.bubbles,.bubbles:before,.bubbles:after{animation:none}}.title{text-align:center;position:relative}.title h1{letter-spacing:.12em;background:linear-gradient(#e9fbff 0%,#5fd3f3 60%,#1c7fa6 100%);color:#0000;text-shadow:0 0 40px #3ec8ff40;-webkit-background-clip:text;background-clip:text;margin:4px 0 8px;font-size:clamp(2.4rem,9vw,4.6rem);font-weight:800}.tagline{color:var(--muted);margin:0;max-width:34ch;margin-inline:auto}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 6px;font-size:.75rem}.panel{background:var(--panel);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:18px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:24px;display:flex;position:relative;box-shadow:0 20px 60px #00000080,inset 0 1px #ffffff0d}.panel.wide{max-width:520px}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}input{border:1px solid var(--panel-edge);background:#000a1499;border-radius:10px;outline:none;width:100%;padding:12px 14px;font-size:1rem}input:focus{border-color:var(--accent)}.btn{border:1px solid var(--panel-edge);cursor:pointer;background:#286e8c59;border-radius:10px;padding:12px 18px;font-weight:600;transition:transform .1s,background .2s}.btn:hover:not(:disabled){background:#3c96be73}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.primary:hover:not(:disabled){background:#6af0d8}.btn.ghost{background:0 0}.btn.small{padding:8px 12px;font-size:.85rem}.divider{color:var(--muted);align-items:center;gap:10px;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";background:var(--panel-edge);flex:1;height:1px}.join{gap:10px;display:flex}.code-input{text-align:center;letter-spacing:.4em;text-transform:uppercase;font-weight:800}.status,.hint{color:var(--muted);margin:0;font-size:.85rem}.hint strong{color:var(--text)}.hint a{color:var(--accent);font-weight:600}.error{color:var(--danger);margin:0;font-size:.9rem}.lobby-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.room-code{letter-spacing:.25em;cursor:pointer;color:var(--text);background:0 0;border:none;padding:0;font-size:2.6rem;font-weight:800}.count{color:var(--muted);white-space:nowrap;margin:0}.roster{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.roster li{background:#000a1473;border-radius:10px;align-items:center;gap:10px;min-width:0;padding:8px 12px;display:flex}.roster li.me{outline:1px solid var(--accent)}.roster .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.swatch{border:2px solid #0006;border-radius:50%;flex:none;width:18px;height:18px}.tag{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.7rem}.tag.you{color:var(--accent)}.colors{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.color{aspect-ratio:1;cursor:pointer;border:3px solid #00000059;border-radius:50%}.color.selected{box-shadow:0 0 0 3px var(--accent);border-color:#fff}.color:disabled{opacity:.2;cursor:not-allowed}.actions{justify-content:space-between;align-items:center;gap:12px;margin-top:6px;display:flex}.game{background:var(--bg-deep);position:fixed;inset:0;overflow:hidden}.game-canvas{touch-action:none;width:100%;height:100%;display:block}.hud{flex-wrap:wrap;gap:8px;display:flex;position:absolute}.top-left{top:max(12px, env(safe-area-inset-top));left:16px}.top-right{top:max(12px, env(safe-area-inset-top));right:16px}.chip{background:var(--panel);border:1px solid var(--panel-edge);border-radius:999px;padding:6px 12px;font-size:.85rem}.chip.location{color:var(--accent)}.bottom-hint{bottom:max(12px, env(safe-area-inset-bottom));color:var(--muted);pointer-events:none;justify-content:center;margin:0;font-size:.8rem;left:16px;right:16px}.hint-touch{display:none}@media (pointer:coarse){.hint-keys{display:none}.hint-touch{display:inline}}.chip.role{color:#9fe3ff}.chip.role.mimic{color:#ff6b6b;border-color:#ff6b6b80}.actions-pad{right:16px;bottom:max(40px, calc(env(safe-area-inset-bottom) + 28px));align-items:flex-end;gap:12px}.action{letter-spacing:.05em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;background:#082030d9;border:3px solid #ffffff40;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:84px;height:84px;font-size:.8rem;font-weight:800;display:flex;position:relative}.action:disabled{opacity:.35;cursor:not-allowed}.action.kill:not(:disabled){background:#b3202c;border-color:#ff8a8a}.action.report:not(:disabled){background:#c77d12;border-color:#ffd08a}.action.alarm:not(:disabled){background:#8a1f1f;border-color:#ff6b6b}.hotkey{opacity:.6;font-size:.65rem}.cooldown{background:#041018eb;border-radius:50%;place-items:center;font-size:1.8rem;display:grid;position:absolute;inset:0}@media (pointer:coarse){.hotkey{display:none}}.ghost-banner{color:#b9d6e3;pointer-events:none;justify-content:center;margin:0;font-style:italic;bottom:140px;left:16px;right:16px}.intro{text-align:center;z-index:10;background:radial-gradient(#04283cf5,#010810fa);flex-direction:column;justify-content:center;align-items:center;padding:16px;animation:.5s ease-out fadein;display:flex;position:fixed;inset:0}.intro h1{letter-spacing:.1em;color:#9fe3ff;margin:0 0 12px;font-size:clamp(2.6rem,11vw,5rem)}.intro.mimic{background:radial-gradient(#46050ff5,#0c0004fa)}.intro.mimic h1{color:#ff6b6b}.partners{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.partners>span{align-items:center;gap:6px;display:inline-flex}@keyframes fadein{0%{opacity:0}}.meeting{flex-flow:wrap;align-items:flex-start;gap:16px}.meeting-panel{flex:2 420px;max-width:640px}.chat-panel{flex:280px;max-width:360px;height:min(520px,75vh)}@media (width<=720px){.chat-panel{max-width:640px;height:320px}}.meeting-head{justify-content:space-between;gap:16px;display:flex}.meeting-head h2{margin:0;font-size:1.2rem;line-height:1.3}.stage{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;flex-direction:column;align-items:flex-end;font-size:.75rem;display:flex}.stage strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.8rem}.outcome{color:var(--accent);margin:0;font-size:1.1rem;font-weight:600}.suspects{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.suspects li{background:#000a1473;border:1px solid #0000;border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px;display:flex}.suspects li.selected{border-color:var(--accent)}.suspects li>button:first-child{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:10px;min-width:0;padding:6px;display:flex}.suspects li>button:first-child:disabled{cursor:default}.suspects li.dead{opacity:.45}.suspects li.dead .name{text-decoration:line-through}.suspects .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.suspects em{color:var(--muted);font-size:.8rem;font-style:normal}.suspects em.partner,.tag.mimic{color:#ff6b6b}.tag.caller{color:#ffd08a}.swatch.big{width:28px;height:28px}.voters{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;padding-left:6px;font-size:.85rem;display:inline-flex}.voters .swatch{width:14px;height:14px}.skip-row{justify-content:flex-end;display:flex}.chat-log{flex-direction:column;flex:1;gap:8px;min-height:120px;display:flex;overflow-y:auto}.chat-line{overflow-wrap:anywhere;margin:0;line-height:1.4}.chat-line .swatch{vertical-align:-1px;width:12px;height:12px;margin-right:6px;display:inline-block}.chat-line.ghost{opacity:.7;font-style:italic}.chat-form{gap:8px;display:flex}.gameover.mimic .title h1{background:linear-gradient(#ffe3e3 0%,#ff6b6b 60%,#a3162a 100%);-webkit-background-clip:text;background-clip:text}.taskbar{top:calc(max(12px, env(safe-area-inset-top)) + 44px);letter-spacing:.15em;text-transform:uppercase;width:min(300px,100% - 32px);color:var(--muted);flex-direction:column;gap:4px;font-size:.7rem;left:16px}.taskbar .bar{border:1px solid var(--panel-edge);background:#000a14b3;border-radius:6px;height:12px;overflow:hidden}.taskbar .bar>div{background:linear-gradient(90deg,#20c997,#3ee6c8);height:100%;transition:width .4s}.task-list{top:calc(max(12px, env(safe-area-inset-top)) + 84px);border:1px solid var(--panel-edge);background:#082030b8;border-radius:12px;flex-direction:column;gap:6px;width:min(300px,100% - 32px);padding:10px 12px;font-size:.85rem;left:16px}.task-list.collapsed{width:auto}.task-list-head{text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-weight:800}.task-list ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.task-list li strong{color:#ffd43b;font-weight:600}.task-list li.done{opacity:.5;text-decoration:line-through}.task-list li.done strong{color:var(--accent)}@media (width<=600px){.task-list{font-size:.75rem}}.action.use:not(:disabled){background:#1c6e8c;border-color:#9fe3ff}.task-backdrop{z-index:5;background:#00060eb3;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.task-panel{max-width:420px}.task-panel.complete{border-color:var(--accent)}.task-head{justify-content:space-between;align-items:center;display:flex}.task-head h3{margin:0}.task-done{text-align:center;color:var(--accent);margin:40px 0;font-size:1.3rem;font-weight:800}.mg{-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:14px;display:flex}.mg-hint{color:var(--muted);text-align:center;margin:0;font-size:.85rem}.shake{animation:.3s shake}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.mg-svg{background:#07161f;border-radius:12px;width:100%;max-width:320px}.plug{cursor:pointer}.dial{border:1px solid var(--panel-edge);background:repeating-linear-gradient(90deg,#07161f 0 18px,#0b2230 18px 20px);border-radius:10px;width:100%;height:64px;position:relative;overflow:hidden}.dial .zone{border-inline:2px solid var(--accent);background:#3ee6c859;position:absolute;top:0;bottom:0}.dial .needle{background:#ff6b6b;width:4px;margin-left:-2px;position:absolute;top:0;bottom:0;box-shadow:0 0 10px #ff6b6b}.pips{gap:8px;display:flex}.pips span{border:2px solid var(--accent);border-radius:50%;width:14px;height:14px}.pips span.on{background:var(--accent)}.valve{flex-flow:wrap;justify-content:center}.gauge{border:1px solid var(--panel-edge);background:#07161f;border-radius:12px;place-items:center;width:48px;height:180px;display:grid;position:relative;overflow:hidden}.gauge .fill{background:linear-gradient(#3ee6c8,#20c997);position:absolute;bottom:0;left:0;right:0}.gauge span{font-size:.8rem;font-weight:800;position:relative}.valve-wheel{touch-action:none;border-radius:50%;width:140px;height:140px;font-size:5rem;line-height:1}.valve .mg-hint{flex-basis:100%}.vials{grid-template-columns:repeat(3,72px);gap:12px;display:grid}.vial{cursor:pointer;background:linear-gradient(0deg,#f783acb3 0 45%,#9fe3ff14 45%);border:2px solid #9fe3ff;border-radius:12px 12px 30px 30px;height:96px;font-size:1.6rem;font-weight:800}.vial.done{border-color:var(--accent);background:linear-gradient(0deg,#3ee6c8cc 0 45%,#9fe3ff14 45%)}.mesh{aspect-ratio:1;background:repeating-linear-gradient(0deg,#0000 0 14px,#9fe3ff1f 14px 16px),repeating-linear-gradient(90deg,#0000 0 14px,#9fe3ff1f 14px 16px),#07161f;border:6px solid #2a4a5c;border-radius:50%;width:100%;max-width:320px;position:relative;overflow:hidden}.debris{cursor:pointer;background:radial-gradient(circle at 35% 35%,#8a7a5a,#4a3d28);border:none;border-radius:40% 60% 55% 45%;width:36px;height:30px;position:absolute}.actions-pad{flex-wrap:wrap-reverse;justify-content:flex-end;max-width:calc(100% - 32px)}@media (width<=600px){.action{width:68px;height:68px;font-size:.7rem}}.action.vent:not(:disabled){background:#3b3f46;border-color:#b0bec5}.action.sabotage:not(:disabled){background:#5a1030;border-color:#ff8ab0}.action.fix{background:conic-gradient(#3ee6c8d9 var(--progress,0deg), transparent 0) border-box, #6b1520;touch-action:none;-webkit-user-select:none;user-select:none;border-color:#ff8a8a}.action.fix.holding{border-color:var(--accent);box-shadow:0 0 18px #3ee6c899}.sabotage-banner{top:calc(max(12px, env(safe-area-inset-top)) + 44px);color:#ffd9a0;text-align:center;pointer-events:none;background:#281400d9;border:1px solid #ffb347;border-radius:12px;flex-direction:column;align-items:center;gap:2px;max-width:min(420px,100% - 32px);padding:8px 16px;font-size:.85rem;left:50%;transform:translate(-50%)}.sabotage-banner.critical{color:#ffd0d4;background:#50000ae6;border-color:#ff4d5a;animation:1s infinite pulse}.sabotage-banner strong{text-transform:uppercase;letter-spacing:.15em}.sabotage-banner .countdown{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}@keyframes pulse{50%{box-shadow:0 0 24px #ff3c46b3}}@media (width<=720px){.sabotage-banner{top:auto;bottom:200px}}.vent-overlay{left:50%;bottom:max(40px, env(safe-area-inset-bottom));background:#0a0e12e6;border:1px solid #b0bec5;border-radius:16px;flex-direction:column;align-items:center;gap:10px;width:min(360px,100% - 32px);padding:16px;display:flex;position:absolute;transform:translate(-50%)}.vent-links{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.sabotage-menu{border-color:#ff8ab0;gap:8px;width:min(260px,100% - 32px);padding:16px;position:absolute;bottom:150px;right:16px}.mute{left:16px;bottom:max(12px, env(safe-area-inset-bottom));border:1px solid var(--panel-edge);background:var(--panel);cursor:pointer;z-index:20;border-radius:50%;width:40px;height:40px;font-size:1.1rem;position:fixed}.tag.bot{color:#b197fc}.bot-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bot-controls .hint{flex:180px}.btn.big{letter-spacing:.04em;padding:16px 18px;font-size:1.1rem}.hint.center{text-align:center}
