:root{--bg:#12151c;--bg-2:#1a1f29;--panel:#1f2531;--panel-2:#262d3b;--line:#333b4c;--text:#e8e4da;--muted:#9aa2b1;--paper:#efe4c8;--paper-ink:#2b2418;--accent:#e0a63a;--danger:#d4483b;--danger-2:#b23a2f;--good:#4fae7a;--spy:#8b5cf6;--radius:12px;--mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sait:var(--discord-safe-area-inset-top,env(safe-area-inset-top,0px));--saib:var(--discord-safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--sail:var(--discord-safe-area-inset-left,env(safe-area-inset-left,0px));--sair:var(--discord-safe-area-inset-right,env(safe-area-inset-right,0px))}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1200px 600px at 10% -10%, #1d2433 0%, transparent 60%), radial-gradient(900px 500px at 110% 110%, #22192a 0%, transparent 60%), var(--bg);color:var(--text);font:15px/1.45 var(--sans);-webkit-font-smoothing:antialiased;padding:var(--sait) var(--sair) var(--saib) var(--sail);background-attachment:fixed;margin:0}button{font:inherit;color:inherit}code{font-family:var(--mono);background:var(--bg-2);border-radius:4px;padding:1px 5px}h1,h2,h3{margin:0;line-height:1.15}h2{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:13px;font-weight:700}.app{max-width:1180px;margin:0 auto;padding:16px}.muted{color:var(--muted)}.small{font-size:13px}.row{flex-wrap:wrap;align-items:center;display:flex}.gap{gap:8px}.end{justify-content:flex-end}.center{justify-content:center}.btn{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:9px;padding:8px 14px;font-weight:600;transition:transform 60ms,background .15s,border-color .15s}.btn:hover:not(:disabled){background:#2d3546;border-color:#4a5468}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,.loc-tile:focus-visible,.pick:focus-visible,.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#1d1505}.btn-primary:hover:not(:disabled){background:#eab554;border-color:#eab554}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-2);border-color:var(--danger-2)}.btn-spy{background:var(--spy);border-color:var(--spy);color:#fff}.btn-spy:hover:not(:disabled){background:#7c4ee8;border-color:#7c4ee8}.btn-ghost{background:0 0}.btn-small{border-radius:7px;padding:5px 10px;font-size:13px}.btn-big{padding:13px 28px;font-size:17px}.btn-block{width:100%;margin-top:12px}.badge{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:#3a3220;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.badge-dim{background:var(--bg-2);color:var(--muted)}.badge-hot{background:var(--accent);color:#1d1505}.stamp{font-family:var(--mono);text-transform:uppercase;letter-spacing:.2em;color:var(--danger);border:2px solid var(--danger);opacity:.9;border-radius:4px;padding:3px 10px;font-size:12px;font-weight:800;display:inline-block;transform:rotate(-3deg)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:16px}.panel>h2{margin-bottom:12px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.notice{color:#f1d39a;background:#2f2717;border:1px solid #5b4720;border-radius:8px;margin:8px 0 0;padding:8px 10px}.avatar{color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.is-offline{filter:grayscale();opacity:.5}.name{font-weight:650}.splash{text-align:center;place-content:center;gap:12px;min-height:100%;padding:24px;display:grid}.splash h1{font-size:40px;font-family:var(--mono);letter-spacing:.04em}.tagline{color:var(--muted);margin:0;font-size:16px}select{background:var(--bg-2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:8px;padding:8px 10px}.lobby-actions{justify-content:center;padding:10px 0 30px;display:flex}.how-to-body{color:#d7d2c6}.how-to-body ol,.how-to-body ul{padding-left:20px}.how-to-body li{margin:6px 0}.how-to-body h3{margin-top:14px;font-size:14px}.loc-grid{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:6px;display:grid}.loc-tile{text-align:left;background:var(--bg-2);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;display:flex}.loc-tile:hover{border-color:var(--line)}.loc-tile input{accent-color:var(--accent);margin:0}.loc-tile.is-off{opacity:.45}.loc-tile.is-crossed{opacity:.35;text-decoration:line-through}.loc-tile.is-mine{border-color:var(--accent);background:#2c2617}.loc-tile.is-picked{border-color:var(--spy);background:#2a2140}.loc-grid-pick{max-height:46vh;margin:12px 0;overflow:auto}.topbar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 16px;display:flex}.round-label{font-family:var(--mono);font-size:16px;font-weight:700}.timer{font-family:var(--mono);align-items:baseline;gap:8px;display:flex}.timer-digits{letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}.timer.is-urgent .timer-digits{color:var(--danger);animation:1s ease-in-out infinite pulse}.timer.is-paused .timer-digits{color:var(--muted)}.timer-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:12px}@keyframes pulse{50%{opacity:.55}}.game-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;gap:14px;display:grid}@media (width<=820px){.game-grid{grid-template-columns:1fr}}.card{text-align:left;cursor:pointer;border-radius:var(--radius);border:none;width:100%;min-height:150px;margin-bottom:14px;padding:20px 22px;display:block;position:relative;box-shadow:0 10px 30px #00000059}.card-agent{background:linear-gradient(160deg, var(--paper), #dccfae);color:var(--paper-ink)}.card-spy{color:#ece6ff;background:linear-gradient(160deg,#2a1f45,#1b1530);border:1px solid #4b3a7d}.card-spectator{background:var(--panel);border:1px dashed var(--line);cursor:default}.card.is-hidden{color:var(--muted);background:repeating-linear-gradient(135deg,#2a3040 0 12px,#252b39 12px 24px)}.card-kicker{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;opacity:.7;font-size:11px}.card-big{margin:8px 0 6px;font-size:clamp(24px,3.4vw,32px);font-weight:800}.card-sub{font-size:15px}.card-hint{opacity:.55;font-size:11px;position:absolute;bottom:10px;right:14px}.turn-banner{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);margin-bottom:14px;padding:10px 14px}.turn-banner p{margin:2px 0}.turn-you{color:#f6deb0}.player-board{gap:6px;margin:0;padding:0;list-style:none;display:grid}.player-board li{background:var(--bg-2);border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.player-board li.is-asking{border-color:var(--accent)}.player-board li.is-offline{opacity:.6}.player-meta{flex:1;min-width:0}.player-meta .name{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.badges{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.player-actions{gap:6px;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06080cb8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(560px,100%);max-height:92vh;padding:20px;overflow:auto;box-shadow:0 30px 80px #00000080}.modal-alert{border-top:4px solid var(--danger)}.modal-title{color:var(--text);text-transform:none;letter-spacing:0;margin-bottom:8px;font-size:21px}.vote-list{gap:4px;margin:12px 0;padding:0;list-style:none;display:grid}.vote-list li{background:var(--bg-2);border-radius:8px;justify-content:space-between;padding:7px 10px;display:flex}.vote{font-size:13px;font-weight:700}.vote-yes{color:var(--good)}.vote-no{color:var(--danger)}.vote-pending{color:var(--muted)}.pick-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:12px 0;display:grid}.pick{background:var(--bg-2);cursor:pointer;border:1px solid #0000;border-radius:9px;align-items:center;gap:8px;padding:8px 10px;display:flex}.pick:hover{border-color:var(--line)}.pick.is-picked{border-color:var(--danger);background:#3a1f1d}.result-banner{text-align:center;border-radius:var(--radius);border:1px solid var(--line);margin-bottom:14px;padding:26px 16px}.result-banner.is-spy{background:linear-gradient(160deg,#2a1f45,#191427)}.result-banner.is-agents{background:linear-gradient(160deg,#2b2616,#1a1710)}.result-banner h1{font-size:clamp(28px,5vw,40px);font-family:var(--mono);margin:12px 0 8px}.result-banner p{color:#d9d3c4;margin:0}.reveal-loc{margin:4px 0 12px;font-size:20px;font-weight:700}.reveal-roles{gap:4px;margin:0;padding:0;list-style:none;display:grid}.reveal-roles li{background:var(--bg-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex}.reveal-roles li.is-spy{background:#2a2140;border:1px solid #4b3a7d}.reveal-roles .role{color:var(--muted);margin-left:auto;font-size:13px}.scoreboard{gap:4px;margin:0;padding:0;list-style:none;display:grid}.scoreboard li{background:var(--bg-2);border-radius:8px;align-items:center;gap:10px;padding:7px 10px;display:flex}.scoreboard li.is-me{outline:1px solid var(--accent)}.scoreboard .rank{width:18px;color:var(--muted);font-family:var(--mono)}.scoreboard .delta{color:var(--good);margin-left:auto;font-size:13px;font-weight:800}.scoreboard .score{font-family:var(--mono);text-align:right;min-width:28px;font-size:18px;font-weight:800}.scoreboard .delta+.score{margin-left:8px}.scoreboard .name+.score{margin-left:auto}.history{gap:4px;margin:0;padding-left:0;list-style:none;display:grid}.history li{background:var(--bg-2);border-radius:8px;padding:7px 10px;font-size:14px}.conn-banner{z-index:60;color:#fbe7bd;text-align:center;background:#5b4720;padding:6px;font-size:13px;font-weight:700;position:sticky;top:0}.toast{background:var(--danger-2);color:#fff;z-index:70;border-radius:10px;max-width:calc(100% - 32px);padding:10px 16px;font-weight:600;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0006}@media (prefers-reduced-motion:reduce){.timer.is-urgent .timer-digits{animation:none}.btn{transition:none}}input[type=text],input:not([type]),textarea{background:var(--bg-2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:8px;width:100%;padding:8px 10px}textarea{resize:vertical}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.grow{flex:1;min-width:0}.error-text{color:#f08a80;margin:0}.lobby-actions.column{flex-direction:column;align-items:center;gap:12px}.gm-pick{color:#f6deb0;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.gm-pick select{min-width:200px}.spy-count{font-size:12px;font-family:var(--sans);color:var(--muted);white-space:nowrap;margin-left:12px;font-weight:600}.ready-banner{border-left-color:var(--good);align-items:center;gap:14px;display:flex}.ready-banner p{margin:0}.ready-count{font-family:var(--mono);color:var(--good);text-align:center;min-width:28px;font-size:30px;font-weight:800}.card-gm{color:#dff5ec;background:linear-gradient(160deg,#1d3a33,#142824);border:1px solid #2f6b5a}.badge-spy{color:#d9ccff;background:#3b2b66}.player-board li.is-spy{border-color:#4b3a7d}.loc-tile:disabled{cursor:not-allowed}.loc-tile.is-played{opacity:.4;text-decoration:line-through}.played-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-left:auto;font-size:10px;text-decoration:none}.custom-locs{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.custom-locs h3{font-size:14px}.custom-list{gap:4px;margin:0 0 10px;padding:0;list-style:none;display:grid}.custom-list li{background:var(--bg-2);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.custom-form,.share-box{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;gap:10px;margin-bottom:10px;padding:12px;display:grid}.custom-form label{color:var(--muted);gap:4px;font-size:13px;font-weight:600;display:grid}.custom-form .row{flex-wrap:nowrap;align-items:flex-end}.emoji-field{flex:none;width:80px}.share-box textarea{font-family:var(--mono);font-size:12px}.share-box .btn{justify-self:start}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lang-select{align-items:center;gap:4px;font-size:13px;display:inline-flex}.lang-select select{max-width:150px;padding:4px 6px;font-size:13px}.topbar .row{flex-wrap:nowrap}@media (width<=560px){.topbar{flex-wrap:wrap}.lang-select select{max-width:110px}}.bar{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.bar-plain{margin-bottom:14px}.bar-side{align-items:center;gap:8px;display:flex}.bar-side.end{justify-content:flex-end}.pill{border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex}.pill:hover{background:var(--panel-2);border-color:#4a5468}.pill:focus-visible,.tile:focus-visible,.mode-card:focus-visible,.chip:focus-visible,.switch:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-btn{all:unset;cursor:pointer;width:30px;height:30px;color:var(--muted);border-radius:8px;place-items:center;display:grid}.icon-btn:hover{background:var(--panel-2);color:var(--text)}.push-right{margin-left:auto}.dialog{outline:none;position:relative}.dialog-wide{width:min(860px,100%)}.dialog-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.dialog-head .modal-title{margin:0}.switch{border:1px solid var(--line);background:var(--bg-2);cursor:pointer;border-radius:999px;flex:none;width:44px;height:26px;padding:0;transition:background .15s;position:relative}.switch-knob{background:var(--muted);border-radius:50%;width:18px;height:18px;transition:transform .15s,background .15s;position:absolute;top:3px;left:3px}.switch.is-on{border-color:var(--accent);background:#4a3a17}.switch.is-on .switch-knob{background:var(--accent);transform:translate(18px)}.switch:disabled{opacity:.5;cursor:not-allowed}.pref-rows{gap:4px;display:grid}.pref-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.pref-row:last-child{border-bottom:0}.pref-row .lang-select select{max-width:200px}.room-list{gap:6px;margin:0 0 12px;padding:0;list-style:none;display:grid}.room-list li{background:var(--bg-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.seat-toggle{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.guide{border-radius:var(--radius);background:linear-gradient(160deg,#2a2415,#1f1c14);border:1px solid #5b4a22;margin-top:8px;padding:22px 16px 14px;position:relative}.guide-label{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;background:#3a3220;border:1px solid #5b4a22;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:800;position:absolute;top:-11px;left:14px}.guide-x{position:absolute;top:6px;right:6px}.guide h3{margin-bottom:4px;font-size:16px}.guide p{color:#ddd5c2;margin:0 0 10px}.lobby2{min-height:calc(100vh - 32px - var(--sait) - var(--saib));grid-template:"bar bar""table mission""guide mission"1fr"cta cta"/minmax(0,1fr) minmax(0,1.15fr);gap:14px;display:grid}.lobby2>.bar{grid-area:bar}.table-zone{grid-area:table;margin:0}.mission{grid-area:mission;align-self:start;margin:0}.lobby-guide{grid-area:guide}.lobby2 .cta{grid-area:cta}.brand{align-items:center;gap:10px;display:flex}.brand-name{font-family:var(--mono);letter-spacing:.06em;font-size:22px;font-weight:800}.stamp-sm{padding:2px 6px;font-size:10px}.panel-head .ok{color:var(--good);font-weight:700}.table-zone .tagline{margin:-4px 0 14px;font-size:14px}.seats{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:14px 8px;margin:0;padding:0;list-style:none;display:grid}.seat{text-align:center;justify-items:center;gap:4px;min-width:0;display:grid}.seat-ring{border:2px solid var(--line);background:var(--bg-2);border-radius:50%;place-items:center;width:64px;height:64px;display:grid;position:relative}.seat.is-me .seat-ring{border-color:var(--accent);box-shadow:0 0 0 3px #e0a63a2e}.seat.is-gm .seat-ring{border-color:#2f6b5a}.seat-open .seat-ring{color:var(--muted);background:0 0;border-style:dashed;font-size:22px}.seat-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:650;overflow:hidden}.crown{filter:drop-shadow(0 2px 2px #00000080);font-size:18px;position:absolute;top:-10px;right:-4px;transform:rotate(14deg)}.seat .badge{font-size:10px}.watchers{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;padding-top:12px;display:flex}.watcher{opacity:.8;align-items:center;gap:6px;display:inline-flex}.table-actions{margin-top:14px}.mode-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.mode-card{cursor:pointer;text-align:center;border:1px solid var(--line);background:var(--bg-2);border-radius:12px;justify-items:center;gap:2px;padding:14px 8px 12px;transition:border-color .15s,background .15s,transform 60ms;display:grid}.mode-card:hover:not(:disabled){border-color:#4a5468}.mode-card.is-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:linear-gradient(170deg,#3a3018,#241f13)}.mode-card:disabled{cursor:default}.mode-card:disabled:not(.is-on){opacity:.55}.mode-icon{font-size:26px;line-height:1.2}.mode-title{font-size:15px;font-weight:800}.mode-desc{color:var(--muted);font-size:12px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.tile{text-align:left;border:1px solid var(--line);background:var(--bg-2);cursor:pointer;border-radius:12px;align-items:center;gap:12px;min-height:60px;padding:10px 12px;display:flex}button.tile:hover:not(:disabled){background:#1d2330;border-color:#4a5468}button.tile:disabled{cursor:default;opacity:.8}.tile-switch{cursor:default}.tile-switch.is-disabled{opacity:.8}.tile-icon{text-align:center;flex:none;width:28px;font-size:22px}.tile-text{flex:1;min-width:0;display:grid}.tile-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px;font-weight:700}.tile-value{font-size:17px;font-weight:800}.tile-hint{color:#c9c3b6;font-size:12px;line-height:1.3}.tile-chev{color:var(--muted);font-size:20px}button.tile:disabled .tile-chev{visibility:hidden}.chips{flex-wrap:wrap;gap:8px;margin:4px 0 12px;display:flex}.chip{border:1px solid var(--line);background:var(--bg-2);cursor:pointer;border-radius:10px;min-width:64px;padding:10px 14px;font-weight:700}.chip:hover{border-color:#4a5468}.chip.is-on{border-color:var(--accent);color:#f6deb0;background:#3a3018}.pack{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.pack:first-of-type{border-top:0;margin-top:0}.pack-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.pack-head h3{font-size:16px}.pack-head p{margin:2px 0 0}.cta{z-index:5;justify-content:center;padding:10px 0 6px;display:flex;position:sticky;bottom:0}.btn-cta{border-radius:14px;width:min(520px,100%);padding:15px 28px;font-size:19px;box-shadow:0 10px 30px #e0a63a2e}.btn-cta:disabled{box-shadow:none}.waiting-host{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:14px;margin:0;padding:14px 20px}@media (width<=860px){.cta{background:linear-gradient(transparent, var(--bg) 40%)}.lobby2{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"bar""table""guide""mission""cta"}}@media (width<=560px){.brand .stamp{display:none}.brand-name{font-size:17px}.pill-label{display:none}.pill{padding:0 11px}.tiles{grid-template-columns:minmax(0,1fr)}.mode-card{padding:10px 4px}.mode-icon{font-size:20px}.seats{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}.seat-ring{width:56px;height:56px}}.app-compact{height:100%;padding:8px}.compact{text-align:center;place-content:center;justify-items:center;gap:6px;height:100%;display:grid}.compact .timer-digits{font-size:clamp(28px,14vw,64px)}.compact-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:12px;font-weight:700}.compact-card{font-size:clamp(16px,6vw,26px)}.compact.is-spy .compact-card{color:#c9b5ff}.compact-alert{color:#fff;background:var(--danger);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700;animation:1s ease-in-out infinite pulse}@media (prefers-reduced-motion:reduce){.compact-alert{animation:none}}
