:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#f3f3f1)var(--lightningcss-dark,#18191d);--panel:var(--lightningcss-light,#fcfcfb)var(--lightningcss-dark,#1e1f24);--panel-2:var(--lightningcss-light,#f3f3f1)var(--lightningcss-dark,#25262c);--panel-3:var(--lightningcss-light,#e9e9e6)var(--lightningcss-dark,#2e2f36);--text:var(--lightningcss-light,#2b2b30)var(--lightningcss-dark,#e3e3e6);--text-2:var(--lightningcss-light,#4b4b52)var(--lightningcss-dark,#c3c3c9);--muted:var(--lightningcss-light,#76767e)var(--lightningcss-dark,#9a9aa3);--faint:var(--lightningcss-light,#a5a5ac)var(--lightningcss-dark,#6d6d76);--border:var(--lightningcss-light,#e4e4e0)var(--lightningcss-dark,#2f3037);--border-strong:var(--lightningcss-light,#d3d3ce)var(--lightningcss-dark,#3e3f47);--hover:var(--lightningcss-light,#28281e0d)var(--lightningcss-dark,#ffffff0d);--accent:var(--lightningcss-light,#5653c9)var(--lightningcss-dark,#9a9cea);--accent-hover:var(--lightningcss-light,#4946b4)var(--lightningcss-dark,#aeb0f0);--accent-soft:var(--lightningcss-light,#5653c91a)var(--lightningcss-dark,#9a9cea26);--accent-text:var(--lightningcss-light,#fff)var(--lightningcss-dark,#16161f);--good:var(--lightningcss-light,#4471b8)var(--lightningcss-dark,#84a6dc);--evil:var(--lightningcss-light,#c24a43)var(--lightningcss-dark,#e0857e);--evil-soft:var(--lightningcss-light,#c24a431c)var(--lightningcss-dark,#e0857e26);--good-soft:var(--lightningcss-light,#4471b81a)var(--lightningcss-dark,#84a6dc24);--warn:var(--lightningcss-light,#b07419)var(--lightningcss-dark,#dcae5e);--warn-soft:var(--lightningcss-light,#b074191f)var(--lightningcss-dark,#dcae5e24);--poison:var(--lightningcss-light,#3d8a52)var(--lightningcss-dark,#7cc48f);--mad:var(--lightningcss-light,#b0478d)var(--lightningcss-dark,#e08fc4);--talk:var(--lightningcss-light,#1d8a83)var(--lightningcss-dark,#5cc6bd);--you:var(--text);--you-text:var(--panel);--dead:var(--lightningcss-light,#e8e8e4)var(--lightningcss-dark,#2a2b31);--ring:var(--lightningcss-light,#d9d9d4)var(--lightningcss-dark,#3a3b43);--townsfolk:var(--lightningcss-light,#4471b8)var(--lightningcss-dark,#84a6dc);--outsider:var(--lightningcss-light,#2f8790)var(--lightningcss-dark,#6dbec5);--minion:var(--lightningcss-light,#c06a2c)var(--lightningcss-dark,#e0a06e);--demon:var(--lightningcss-light,#c24a43)var(--lightningcss-dark,#e0857e);--traveller:var(--lightningcss-light,#8257bd)var(--lightningcss-dark,#b598e2);--day:var(--lightningcss-light,#bd8222)var(--lightningcss-dark,#dcae5e);--night:var(--lightningcss-light,#5653c9)var(--lightningcss-dark,#a3a5ee);--shadow-sm:0 1px 2px var(--lightningcss-light,#0000000d)var(--lightningcss-dark,#0000004d);--shadow-md:0 8px 24px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#00000073), 0 1px 3px var(--lightningcss-light,#0000000f)var(--lightningcss-dark,#0000004d);--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--control-h:32px;--topbar-h:52px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--dur-4:.6s;--glow:var(--lightningcss-light,#5653c959)var(--lightningcss-dark,#9a9cea59)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@property --evil-p{syntax:"<number>";inherits:true;initial-value:0}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@layer base{*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:var(--text-md) / 1.5 Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}button,select,input,textarea{font:inherit;color:inherit}button{min-height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--panel);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-sm);transition:background-color var(--dur-1), border-color var(--dur-1), color var(--dur-1), opacity var(--dur-1), box-shadow var(--dur-2), scale var(--dur-1) var(--ease-out);justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;line-height:1.2;display:inline-flex}button:hover:not(:disabled){background:var(--panel-2)}button:active:not(:disabled,.bare,.link){scale:.96}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--evil)}button.ghost,button.icon{box-shadow:none;color:var(--text-2);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled),button.icon:hover:not(:disabled){background:var(--hover);color:var(--text)}button.icon{width:var(--control-h);color:var(--muted);padding:0}button.icon.danger,button.ghost.danger{color:var(--evil)}button.small{min-height:26px;font-size:var(--text-xs);padding:0 8px}button.icon.small{width:26px;padding:0}button.link{min-height:0;box-shadow:none;color:var(--accent);background:0 0;border:none;padding:0;font-weight:500}button.link:hover:not(:disabled){background:0 0;text-decoration:underline}input:not([type=checkbox],[type=radio],[type=range]),select,textarea{min-width:0;min-height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--panel);font-size:var(--text-sm);padding:0 10px;transition:border-color .12s,box-shadow .12s}textarea{padding:8px 10px}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;max-width:100%;padding-right:28px}input:not([type=checkbox],[type=radio],[type=range]):hover,select:hover,textarea:hover{border-color:var(--faint)}input:not([type=checkbox],[type=radio],[type=range]):focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:15px;height:15px;margin:0}::placeholder{color:var(--faint)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}@layer components{button.bare{min-height:0;box-shadow:none;font-weight:inherit;font-size:inherit;line-height:inherit;text-align:inherit;white-space:normal;background:0 0;border:none;border-radius:0;justify-content:flex-start;padding:0;display:block}button.bare:hover:not(:disabled){background:0 0}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field .label,.label{font-size:var(--text-xs);color:var(--muted);font-weight:500}.hint{font-size:var(--text-xs);color:var(--muted)}.num{font-variant-numeric:tabular-nums}kbd{border:1px solid var(--border-strong);background:var(--panel-2);min-width:1.6em;font:500 var(--text-xs) / 1.3 ui-monospace, SFMono-Regular, Menlo, monospace;text-align:center;border-bottom-width:2px;border-radius:4px;padding:1px 5px;display:inline-block}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{--chip:var(--muted);border:1px solid var(--border);background:var(--panel-2);min-height:22px;color:var(--text-2);font-size:var(--text-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:.35em;padding:0 8px;font-weight:500;line-height:1.3;display:inline-flex}button.chip{box-shadow:none;cursor:pointer}button.chip:hover:not(:disabled){background:var(--panel-3);border-color:var(--border-strong);color:var(--text)}.chip.townsfolk{--chip:var(--townsfolk)}.chip.outsider{--chip:var(--outsider)}.chip.minion{--chip:var(--minion)}.chip.demon{--chip:var(--demon)}.chip.traveller{--chip:var(--traveller)}.chip.good,.chip.evil{border-color:color-mix(in srgb, var(--chip) 28%, transparent);background:color-mix(in srgb, var(--chip) 8%, var(--panel));color:var(--text)}.chip.good{--chip:var(--good)}.chip.evil{--chip:var(--evil)}.chip.drunk{--chip:var(--poison);border-color:color-mix(in srgb, var(--poison) 35%, transparent);background:color-mix(in srgb, var(--poison) 9%, var(--panel));color:var(--text)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.chip.pinned{outline:2px solid var(--accent);outline-offset:1px}.chip .role-icon{color:var(--chip)}.chip.on .role-icon{color:inherit}.chip b{font-variant-numeric:tabular-nums;font-weight:600}.townsfolk{--type:var(--townsfolk)}.outsider{--type:var(--outsider)}.minion{--type:var(--minion)}.demon{--type:var(--demon)}.traveller{--type:var(--traveller)}dialog{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);color:var(--text);box-shadow:var(--shadow-md);padding:var(--space-5)}dialog::backdrop{background:#00000073}dialog[open]{animation:dialog-in var(--dur-3) var(--ease-out)}dialog[open]::backdrop{animation:fade-in var(--dur-3) var(--ease-out)}.beckon{animation:beckon 2.4s var(--ease-in-out) infinite}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-up{0%{opacity:0;translate:0 6px}}@keyframes pop-in{0%{opacity:0;scale:.5}}@keyframes dialog-in{0%{opacity:0;translate:0 8px;scale:.96}}@keyframes beckon{0%,to{box-shadow:var(--shadow-sm), 0 0 0 0 var(--glow)}50%{box-shadow:var(--shadow-sm), 0 0 0 6px transparent}51%{box-shadow:var(--shadow-sm), 0 0 0 0 transparent}}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:200% 0}}@keyframes spin{to{rotate:360deg}}[data-layout=mobile]{--control-h:40px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}[data-layout=mobile] :is(input:not([type=checkbox],[type=radio],[type=range]),select,textarea){font-size:16px}[data-layout=mobile] button.small{min-height:34px}[data-layout=mobile] button.icon.small{width:34px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}
