:root{--ink:#e9dfc8;--ink-dim:#a99d86;--ink-faint:#6f6656;--panel:#14110fdb;--panel-solid:#1a1614;--edge:#5a4632;--edge-hi:#8a6a44;--gold:#d9a441;--blood:#b33a2e;--wolf:#d4483a;--good:#58b86a;--night:#6b86c9;--serif:"Noto Serif SC", "Songti SC", serif;--pixel:"Silkscreen", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--serif);background:#0c0b0a;margin:0;overflow:hidden}html,body,#app,#app *,#labels *{touch-action:pan-x pan-y}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}button,input,select,textarea{font:inherit;color:inherit}#stage{position:fixed;inset:0}#stage canvas{cursor:grab;display:block}#labels{pointer-events:none;z-index:2;position:fixed;inset:0}#app{pointer-events:none;z-index:3;position:fixed;inset:0}#app>*{pointer-events:auto}.panel{background:var(--panel);border:2px solid var(--edge);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:0 0 0 2px #0c0a08,inset 0 0 0 1px #ffdca00f,0 8px 24px #00000080}.btn{border:2px solid var(--edge);cursor:pointer;background:#2a211a;padding:6px 12px;transition:background .12s,border-color .12s;box-shadow:inset 0 -2px #0006}.btn:hover:not(:disabled){border-color:var(--edge-hi);background:#3a2c20}.btn:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{border-color:var(--gold);color:#fff1d0;background:#5a3a1a}.btn.primary:hover:not(:disabled){background:#6e4a22}.btn.danger{border-color:var(--blood)}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:1px}#hud{flex-direction:column;gap:10px;width:272px;max-height:calc(100vh - 32px);display:flex;position:fixed;top:16px;left:16px}.role-card{grid-template-columns:64px 1fr;gap:10px;padding:10px;display:grid}.role-card canvas{width:64px;height:96px;image-rendering:pixelated;border:2px solid var(--edge);background:radial-gradient(circle at 50% 70%,#3a2c20,#151210)}.role-card .role{letter-spacing:.08em;font-size:22px;font-weight:900}.role-card .role.wolf{color:var(--wolf)}.role-card .role.good{color:var(--gold)}.role-card .seat{font-family:var(--pixel);color:var(--ink-dim);font-size:12px}.role-card .desc{color:var(--ink-dim);margin-top:4px;font-size:12px;line-height:1.5}.role-card .items{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.chip{border:1px solid var(--edge);background:#221b15;padding:1px 6px;font-size:11px}.chip.used{opacity:.4;text-decoration:line-through}.chip.sheriff{color:#ffd24a;border-color:#b8801c}.roster{padding:6px;overflow-y:auto}.roster-row{cursor:pointer;border:1px solid #0000;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;padding:4px 6px;display:grid}.roster-row:hover{background:#ffdca00f}.roster-row.selected{border-color:var(--gold);background:#d9a4411f}.roster-row.acting{background:#d9a4412e}.roster-row.dead{opacity:.45}.roster-row.dead .name{text-decoration:line-through}.roster-row .num{font-family:var(--pixel);border:2px solid var(--edge);background:#120f0d;place-items:center;width:22px;height:22px;font-size:13px;display:grid}.roster-row .num.ring-good{border-color:var(--good);box-shadow:0 0 6px var(--good)}.roster-row .num.ring-wolf{border-color:var(--wolf);box-shadow:0 0 6px var(--wolf)}.roster-row .name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.roster-row .name .star{color:#ffd24a;font-size:11px}.roster-row .tag{color:var(--ink-dim);font-size:11px}.roster-row .tag.wolf{color:var(--wolf)}.roster-row .tag.god{color:var(--good)}.roster-row .tag.me{color:var(--gold)}.roster-row .status{font-size:11px}.roster-row .tag .out{margin-right:4px}.roster-row .mark{font:inherit;cursor:pointer;min-width:28px;color:var(--ink-faint);border:1px dashed var(--edge);background:0 0;padding:0 5px;font-size:11px;line-height:1.3}.roster-row .mark:hover{color:var(--ink);border-color:var(--gold)}.roster-row .mark.set{border-color:currentColor;font-weight:700}.roster-row .mark.good{color:var(--good)}.roster-row .mark.god{color:#6fb3e0}.roster-row .mark.wolf{color:var(--wolf)}#banner{text-align:center;min-width:260px;padding:8px 20px;position:fixed;top:16px;left:50%;transform:translate(-50%)}#banner .clock{font-family:var(--pixel);color:var(--ink-faint);letter-spacing:.1em;margin-bottom:2px;font-size:11px}#banner .phase{letter-spacing:.15em;font-size:18px;font-weight:900}#banner .phase.night{color:var(--night)}#banner .actor{color:var(--ink-dim);min-height:1.4em;margin-top:2px;font-size:12px}#banner .actor .dots:after{content:"";animation:1.2s steps(4,end) infinite dots}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}#banner .actor .timer{font-family:var(--pixel);color:var(--ink-faint);margin-left:4px;font-size:10px}#topright .engine{color:var(--good);place-items:center;padding:0 10px;font-size:12px;display:grid}#topright .engine.warn,.msg .kind.fallback{color:var(--wolf);border-color:var(--blood)}#topright{gap:8px;display:flex;position:fixed;top:16px;right:16px}#topright .short,#dock,#seats,#closeup{display:none}#chat{flex-direction:column;width:380px;display:flex;position:fixed;top:64px;bottom:16px;right:16px}#chat .tabs{flex-wrap:wrap;gap:2px;padding:6px 6px 0;display:flex}#chat .tab{border:2px solid var(--edge);cursor:pointer;color:var(--ink-dim);background:#1d1713;border-bottom:none;padding:4px 10px;font-size:12px}#chat .tab.active{color:var(--ink);background:#3a2c20}#chat .tab.wolf.active{background:#4a1c18}#chat .filter{color:var(--gold);min-height:18px;padding:4px 10px 0;font-size:11px}#chat .filter button{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;text-decoration:underline}#chat .log{border-top:2px solid var(--edge);scroll-behavior:smooth;flex-direction:column;flex:1;gap:6px;padding:8px 10px;display:flex;overflow-y:auto}.msg{font-size:13px;line-height:1.6}.msg .who{margin-right:6px;font-weight:600}.msg .who .n{font-family:var(--pixel);border:1px solid var(--edge);margin-right:4px;padding:0 4px;font-size:11px}.msg .kind{color:var(--ink-faint);border:1px solid #3a3028;margin-left:4px;padding:0 3px;font-size:10px}.msg.gm{color:var(--gold);border-left:2px solid var(--gold);padding-left:8px;font-size:12px}.msg.private{color:#b7c7ff;border-left:2px solid var(--night);padding-left:8px;font-size:12px}.msg.wolf{color:#f0b4a8;border-left:2px solid var(--wolf);padding-left:8px}.msg.vote{color:var(--ink-dim);background:#ffffff08;padding:4px 8px;font-size:12px}.msg.death{color:var(--blood);font-size:12px;font-weight:600}.msg.system{color:var(--ink-faint);font-size:11px}.msg.me .who{color:var(--gold)}.daydiv{text-align:center;color:var(--ink-faint);letter-spacing:.3em;margin:6px 0;font-size:11px}#action{width:min(620px,100vw - 740px);min-width:380px;padding:12px 14px;display:none;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}#action.show{animation:.25s ease-out rise;display:block}@keyframes rise{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}#action .title{color:var(--gold);margin-bottom:4px;font-weight:900}#action .hint{color:var(--ink-dim);margin-bottom:8px;font-size:12px;line-height:1.5}#action .targets{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}#action .targets .btn{font-family:var(--pixel);min-width:44px;padding:4px 8px}#action .targets .btn.sel{border-color:var(--gold);background:#6e4a22}#action textarea{resize:vertical;border:2px solid var(--edge);background:#120f0d;width:100%;min-height:72px;padding:8px;line-height:1.5}#action .row{justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;display:flex}#action .row .count{color:var(--ink-faint);margin-right:auto;font-size:11px}#action .next-speech{align-items:center;gap:12px;display:flex}#action .next-speech .hint{margin:0 auto 0 0}#action .next-speech .btn{min-height:40px;padding:0 18px}#action .award-row{align-items:flex-start;gap:10px;display:flex}#action .award-row .award-label{width:96px;color:var(--gold);flex:none;padding-top:6px;font-weight:900}#action .award-result{flex-direction:column;gap:6px;font-size:16px;font-weight:900;display:flex}#action .award-result .best{color:var(--gold)}#action .award-result .worst{color:#c89a6a}#action .btn.poop{color:#fff1d0;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#6b4423;border-color:#c89a6a;width:100%;min-height:64px;font-size:26px;font-weight:900;display:block}#action .btn.poop:hover:not(:disabled){background:#7d5230}#action .btn.poop.bump{animation:.18s ease-out poop-bump}@keyframes poop-bump{40%{transform:scale(.94)}to{transform:scale(1)}}.btn.award{border-color:var(--gold);color:#fff1d0;background:#6a5010}.btn.award:hover:not(:disabled){background:#806018}.veil{z-index:100;opacity:0;pointer-events:none;background:#fffaf0;transition:opacity .9s;position:fixed;inset:0}.veil.show{opacity:1;pointer-events:auto}.label{flex-direction:column;align-items:center;gap:2px;transition:opacity .2s;display:flex;position:absolute;transform:translate(-50%,-100%)}.label .plate{border:1px solid var(--edge);white-space:nowrap;background:#0c0a09bf;align-items:center;gap:4px;padding:1px 6px;font-size:11px;display:flex}.label .plate .n{font-family:var(--pixel);border:2px solid #0000;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;display:inline-grid}.label .plate .n.ring-good{border-color:var(--good);box-shadow:0 0 8px var(--good)}.label .plate .n.ring-wolf{border-color:var(--wolf);box-shadow:0 0 8px var(--wolf)}.label .role-tag{background:#0c0a09cc;padding:0 4px;font-size:10px}.label .role-tag.wolf{color:var(--wolf)}.label .role-tag.good,.label .role-tag.god{color:var(--good)}.label.dead .plate{opacity:.55}.label.me .plate{border-color:var(--gold);color:#fff1d0}.label .bubble{color:#221a14;overflow-wrap:anywhere;white-space:pre-wrap;pointer-events:auto;background:#efe4c8;border:2px solid #2a1f16;width:max-content;max-width:280px;max-height:42vh;margin-bottom:4px;padding:6px 9px;font-size:12px;line-height:1.5;position:relative;overflow-y:auto;box-shadow:2px 2px #00000073}.label .bubble:after{content:"";border:5px solid #0000;border-top-color:inherit;border-bottom:0;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)}.label .bubble.spot{max-width:340px;box-shadow:0 0 0 2px var(--gold), 0 0 18px #d9a44199, 3px 3px 0 #00000080;padding:8px 11px;font-size:14px;animation:.35s ease-out spot-in}@keyframes spot-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}.label:hover{z-index:999!important}.label .thinking{color:var(--gold);font-size:12px;font-family:var(--pixel)}.modal-back{z-index:10;pointer-events:auto;background:#060504b8;place-items:center;display:grid;position:fixed;inset:0}.modal{width:min(720px,100vw - 32px);max-height:calc(100vh - 48px);padding:24px 28px;overflow-y:auto}.modal h1{letter-spacing:.2em;margin:0 0 4px;font-size:34px;font-weight:900}.modal h2{color:var(--gold);letter-spacing:.1em;margin:18px 0 8px;font-size:16px}.modal .sub{color:var(--ink-dim);font-size:13px}.modal p,.modal li{color:var(--ink);font-size:13px;line-height:1.75}.modal ul{margin:4px 0;padding-left:20px}.form{grid-template-columns:110px 1fr;align-items:center;gap:8px 12px;display:grid}.form label{color:var(--ink-dim);font-size:13px}.form input[type=checkbox]{width:auto;accent-color:var(--gold)}.form input:not([type=checkbox]),.form select{border:2px solid var(--edge);background:#120f0d;width:100%;padding:6px 8px}.form .inline{align-items:center;gap:8px;display:flex}.test-result{min-height:1.5em;margin-top:8px;font-size:12px}.test-result.ok{color:var(--good)}.test-result.err{color:var(--wolf)}.modal .actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.check{align-items:center;gap:6px;font-size:13px;display:flex}.winner{letter-spacing:.2em;text-align:center;margin:8px 0 12px;font-size:40px;font-weight:900}.winner.wolf{color:var(--wolf)}.winner.good{color:var(--gold)}.reveal{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.reveal div{border:1px solid var(--edge);background:#16120f;padding:6px;font-size:12px}.reveal .wolf{color:var(--wolf)}.reveal .style{opacity:.7;margin-top:2px;font-size:11px;display:block}.toast{color:var(--wolf);z-index:5;pointer-events:none;padding:6px 14px;font-size:12px;position:fixed;top:84px;left:50%;transform:translate(-50%)}@media (width<=1100px){#chat{width:300px}#hud{width:230px}#action{width:calc(100vw - 32px);min-width:0;bottom:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#nightstep{letter-spacing:.5em;color:#c9d4f2;text-shadow:0 0 24px #5a78dc99,0 2px #000;pointer-events:none;opacity:0;z-index:4;padding-left:.5em;font-size:44px;font-weight:900;transition:opacity .6s;position:fixed;top:24%;left:50%;transform:translate(-50%,-50%)}#nightstep.show{opacity:.9}#nightstep.show.dim{opacity:.28;transition:opacity 1.5s}#title,#pause{pointer-events:auto;background:radial-gradient(at 50% 45%,#08070659 0%,#080706c7 70%,#040303f0 100%);place-items:center;padding:16px;display:grid;position:fixed;inset:0}#title{z-index:10}#pause{z-index:20;-webkit-backdrop-filter:blur(2px)saturate(.6);backdrop-filter:blur(2px)saturate(.6);background-color:#0605048c}.title-card{text-align:center;width:min(440px,100%)}.title-card .kicker{font-family:var(--pixel);letter-spacing:.5em;color:var(--ink-dim);padding-left:.5em;font-size:11px}.title-card h1{letter-spacing:.22em;color:#f1e3c2;text-shadow:0 0 28px #d9a44159,0 3px #000;margin:10px 0 6px;padding-left:.22em;font-size:clamp(40px,9vw,64px);font-weight:900}.title-card .tagline{color:var(--ink-dim);letter-spacing:.08em;font-size:13px}.title-menu{flex-direction:column;gap:10px;margin-top:36px;display:flex}.title-opt{letter-spacing:.3em;text-indent:.3em;background:var(--panel);border:2px solid var(--edge);cursor:pointer;width:100%;padding:12px 20px;font-size:17px;transition:background .12s,border-color .12s,color .12s;position:relative;box-shadow:0 0 0 2px #0c0a08,inset 0 -3px #00000073}.title-opt:before{content:"▶";text-indent:0;color:var(--gold);opacity:0;font-size:11px;transition:opacity .12s;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.title-opt:hover:not(:disabled),.title-opt:focus-visible{border-color:var(--gold);color:#fff1d0;background:#3a2c20;outline:none}.title-opt:hover:not(:disabled):before,.title-opt:focus-visible:before{opacity:1}.title-opt:active:not(:disabled){transform:translateY(1px)}.title-opt:disabled{opacity:.38;cursor:not-allowed}.title-opt.minor{box-shadow:none;color:var(--ink-dim);background:0 0;border-color:#0000;margin-top:8px;padding:8px 20px;font-size:13px}.save-info{color:var(--ink);margin:-4px 0 4px;font-size:12px;line-height:1.7}.save-info .dim,.save-info.dim{color:var(--ink-faint)}.link{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;text-decoration:underline}.link:hover{color:var(--wolf)}.pause-note{min-height:1.6em;color:var(--ink-dim);font-size:12px}.pause-note.ok{color:var(--good)}.pause-note.err{color:var(--wolf)}.leave-confirm{margin-top:36px;padding:16px;font-size:14px}.leave-confirm .row{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.config-back{z-index:30}.modal.config{width:min(640px,100vw - 32px)}.range{align-items:center;gap:10px;width:100%;display:flex}.range input[type=range]{accent-color:var(--gold);flex:1}.range .val{font-family:var(--pixel);color:var(--ink-dim);text-align:right;width:28px;font-size:11px}.seg{gap:4px;display:inline-flex}.seg .btn{padding:5px 16px}.seg .btn.on{border-color:var(--gold);color:#fff1d0;background:#5a3a1a}.seg.providers .btn{align-items:center;gap:6px;display:inline-flex}.seg .dot{background:var(--ink-faint);border-radius:50%;width:7px;height:7px}.seg .dot.ok{background:var(--good)}.fixed-url{color:var(--ink);font-family:ui-monospace,monospace;font-size:13px}.engine-cfg .inline input[type=text]{flex:1}.key-row .key-saved{color:var(--good);font-family:ui-monospace,monospace;font-size:13px}.vault-row{border-top:1px dashed var(--edge);flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:10px;font-size:13px}.key-back{z-index:40}.modal.key-dialog{flex-direction:column;gap:10px;width:min(460px,100vw - 32px);display:flex}.modal.key-dialog h2{margin:0 0 4px}.modal.key-dialog h3{color:var(--gold);margin:8px 0 0;font-size:14px}.modal.key-dialog p{margin:0}.modal.key-dialog a{color:var(--gold);margin-left:6px}.modal.key-dialog input{border:2px solid var(--edge);background:#120f0d;width:100%;padding:8px}.engine-cfg .inline>select{flex:0 0 180px;width:180px}.engine-cfg .stack{flex-direction:column;gap:4px;display:flex}.msg.said{color:#221a14;border:2px solid;margin-right:3px;padding:5px 9px 6px}.msg.said.wolf{border-left-width:2px;padding-left:9px}.msg.said .who{color:inherit;align-items:center;gap:4px;margin:0 0 2px;font-weight:700;display:flex}.msg.said .who .n{font-family:var(--pixel);background:#ffffff73;border:1px solid;margin-right:2px;padding:0 4px;font-size:11px}.msg.said .who .you{opacity:.75;font-size:12px;font-weight:400}.msg.said .kind{color:inherit;opacity:.7;border-color:currentColor;margin-left:4px;font-weight:400}.msg.said .kind.fallback{color:#9a2a22;opacity:1}.msg.said .idtag{color:var(--ink-dim);background:#120f0dd9;border:1px solid #0000;margin-left:4px;padding:0 4px;font-size:11px;font-weight:700}.msg.said .idtag.wolf{color:#ff7a6b}.msg.said .idtag.good{color:#7fdc8f}.msg.said .idtag.god{color:#8cc8f0}.msg.said .idtag.me{color:var(--gold)}.msg.said .idtag.mark{background:#ffffff80;border:1px dashed}.msg.said .idtag.mark.wolf{color:#a8261a}.msg.said .idtag.mark.good{color:#1f7a33}.msg.said .idtag.mark.god{color:#1f5f8f}.msg.said .text{white-space:pre-wrap;overflow-wrap:anywhere}@media (width<=760px),(height<=520px){#app{--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--top-h:calc(var(--safe-t) + 102px);--dock-h:calc(var(--safe-b) + 50px)}#app:has(#action textarea:focus){--dock-h:0px}#app:has(#action textarea:focus) #dock{display:none}#banner{top:calc(var(--safe-t) + 8px);left:calc(var(--safe-l) + 8px);right:calc(var(--safe-r) + 150px);text-align:left;flex-wrap:wrap;align-items:baseline;gap:0 8px;min-width:0;padding:6px 10px;display:flex;transform:none}#banner .phase{letter-spacing:.08em;white-space:nowrap;order:-1;font-size:15px}#banner .clock{margin:0;font-size:10px}#banner .actor{white-space:nowrap;text-overflow:ellipsis;flex-basis:100%;margin:0;font-size:11px;overflow:hidden}#topright{top:calc(var(--safe-t) + 8px);right:calc(var(--safe-r) + 8px);gap:6px}#topright .engine{display:none}#topright .btn{min-width:40px;height:40px;padding:0 8px}#topright .long{display:none}#topright .short{display:inline}#seats{top:calc(var(--safe-t) + 66px);left:calc(var(--safe-l) + 6px);right:calc(var(--safe-r) + 6px);gap:2px;height:30px;display:flex;position:fixed}.seat-chip{cursor:pointer;min-width:0;font-family:var(--pixel);border:1px solid var(--edge);border-bottom:3px solid var(--seat);background:#14110fe6;flex:1 1 0;place-items:center;padding:0;font-size:11px;line-height:1;display:grid;position:relative}.seat-chip.dead{opacity:.4;text-decoration:line-through}.seat-chip.on{border-color:var(--gold);border-bottom-color:var(--seat);color:#fff1d0;background:#5a3a1a}.seat-chip.viewed{outline-offset:-1px;z-index:1;outline:2px solid #f1e3c2}.seat-chip .id{font-family:var(--serif);color:var(--ink-dim);font-size:8px;line-height:1;position:absolute;top:1px;right:1px}.seat-chip .id.wolf{color:var(--wolf)}.seat-chip .id.god{color:#6fb3e0}.seat-chip .id.good{color:var(--good)}.seat-chip .id.me{color:var(--gold)}.seat-chip .id.mark{opacity:.75;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.seat-chip .star{color:#ffd24a;font-size:8px;font-family:var(--serif);position:absolute;top:0;left:1px}.seat-chip .said{background:var(--seat);width:4px;height:4px;margin-left:-2px;position:absolute;bottom:2px;left:50%}body.closeup #labels{display:none}body.closeup #closeup{display:flex}#app[data-sheet] #closeup{display:none}#app:has(#action textarea:focus) #closeup{display:none}#app:has(#action.show .targets) #closeup{display:none}#app:has(#action.show textarea) #closeup{display:none}#closeup{left:calc(var(--safe-l) + 6px);right:calc(var(--safe-r) + 6px);bottom:calc(var(--dock-h) + var(--kb,0px) + var(--action-h,0px) + 6px);max-height:calc(100dvh - var(--top-h) - var(--dock-h) - var(--kb,0px) - var(--action-h,0px) - 40dvh);touch-action:pan-y;background:#14110ff0;align-items:stretch;min-height:96px;position:fixed}#closeup .nav{width:34px;color:var(--ink-dim);cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:28px}#closeup .nav:active{color:var(--gold)}#closeup .body{flex-direction:column;flex:1;gap:6px;min-width:0;padding:8px 0;display:flex}#closeup .head{flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:15px;display:flex}#closeup .head .n{font-family:var(--pixel);color:#221a14;border:2px solid;place-items:center;min-width:22px;height:22px;font-size:12px;display:inline-grid}#closeup .head .name{font-weight:700}#closeup .head .star{color:#ffd24a;font-size:12px}#closeup .head .tag{color:var(--ink-dim);font-size:12px}#closeup .head .tag.wolf{color:var(--wolf)}#closeup .head .tag.god,#closeup .head .tag.good{color:var(--good)}#closeup .head .tag.me{color:var(--gold)}#closeup .head .mark{font:inherit;cursor:pointer;min-height:26px;color:var(--ink-faint);border:1px dashed var(--edge);background:0 0;padding:0 8px;font-size:12px;line-height:1.4}#closeup .head .mark.set{border-color:currentColor;font-weight:700}#closeup .head .mark.good{color:var(--good)}#closeup .head .mark.god{color:#6fb3e0}#closeup .head .mark.wolf{color:var(--wolf)}#closeup .head .status{color:var(--gold);margin-left:auto;font-size:12px}#closeup .head .status.out{color:var(--ink-faint)}#closeup .words{overscroll-behavior:contain;color:#221a14;white-space:pre-wrap;overflow-wrap:anywhere;border:2px solid;flex:auto;min-height:calc(3.2em + 16px);padding:8px 10px;font-size:15px;line-height:1.6;overflow-y:auto}#closeup .words .when{opacity:.7;margin-bottom:2px;font-size:11px}#closeup .words.empty,#closeup .words.thinking{color:var(--ink-faint);border:1px dashed var(--edge);background:0 0;font-size:13px}#closeup .words.thinking{letter-spacing:.3em;font-size:20px}#closeup .history{align-self:flex-end;padding:2px 0;font-size:12px}#dock{height:var(--dock-h);padding:4px calc(var(--safe-r) + 6px) calc(var(--safe-b) + 4px) calc(var(--safe-l) + 6px);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-width:2px 0 0;gap:6px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #00000073}.dock-tab{border:2px solid var(--edge);letter-spacing:.1em;cursor:pointer;background:#1d1713;flex:1;justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex;position:relative}.dock-tab.on{border-color:var(--gold);color:#fff1d0;background:#3a2c20}.dock-tab.view{letter-spacing:.05em;color:var(--ink-dim);flex:0 0 64px;font-size:13px}.dock-role{letter-spacing:.04em;font-size:12px;font-weight:900}.dock-role.wolf{color:var(--wolf)}.dock-role.good{color:var(--gold)}.dock-tab .badge{background:var(--blood);color:#fff;min-width:18px;height:18px;font-family:var(--pixel);letter-spacing:0;border-radius:9px;place-items:center;padding:0 5px;font-size:10px;display:inline-grid}#hud,#chat{left:calc(var(--safe-l) + 6px);right:calc(var(--safe-r) + 6px);width:auto;top:auto;bottom:calc(var(--dock-h) + var(--kb,0px) + var(--action-h,0px) + 6px);max-height:calc(100dvh - var(--top-h) - var(--dock-h) - var(--kb,0px) - var(--action-h,0px) - 12px);z-index:5;animation:.2s ease-out sheet;display:none}#hud>.panel,#chat,#action{background:#14110ff7}#app[data-sheet=players] #hud{display:flex}#app[data-sheet=chat] #chat{height:62dvh;display:flex}@keyframes sheet{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}#hud{gap:6px}.role-card{flex:none;grid-template-columns:44px 1fr;padding:8px}.role-card canvas{width:44px;height:66px}.role-card .role{font-size:18px}.roster{grid-template-columns:1fr 1fr;align-content:start;gap:2px 4px;min-height:0;display:grid}.roster-row{grid-template-columns:24px 1fr;align-content:center;gap:0 6px;min-height:40px;padding:4px}.roster-row .num{grid-row:span 2}.roster-row .tag:empty{display:none}#chat .tab{padding:7px 12px;font-size:13px}#chat .log{overscroll-behavior:contain}#chat .filter:empty{display:none}#chat .filter button{padding:4px 6px}#action{left:0;right:0;bottom:calc(var(--dock-h) + var(--kb,0px));width:auto;min-width:0;padding:10px calc(var(--safe-r) + 12px) 10px calc(var(--safe-l) + 12px);max-height:calc(100dvh - var(--top-h) - var(--dock-h) - var(--kb,0px));border-width:2px 0 0;overflow-y:auto;transform:none}#action.show{animation:.2s ease-out rise-m}@keyframes rise-m{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}#action .hint{margin-bottom:6px;font-size:12px}#action .targets{gap:5px}#action .targets .btn{flex:1 0 44px;min-width:44px;max-width:64px;min-height:40px}#action textarea{min-height:60px;max-height:30dvh;font-size:16px}#action .row{flex-wrap:wrap;margin-top:6px}#action .row .btn{min-height:40px}.label .plate{padding:0 4px;font-size:10px}.label .role-tag{display:none}.label .plate .n{width:15px;height:15px;font-size:9px}.label .bubble{max-width:min(190px,52vw);max-height:26dvh;padding:4px 7px;font-size:11px}.label .bubble.spot{max-width:min(240px,64vw);padding:6px 9px;font-size:12px}#nightstep{letter-spacing:.3em;padding-left:.3em;font-size:28px;top:30%}.toast{top:calc(var(--top-h,70px) + 8px);width:max-content;max-width:calc(100vw - 24px)}.modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:18px 16px calc(16px + env(safe-area-inset-bottom,0px))}.modal h1{font-size:26px}.form{grid-template-columns:1fr;gap:4px}.form>label:not(.check){margin-top:8px}.form input:not([type=checkbox]),.form select,.modal.key-dialog input{font-size:16px}.engine-cfg .inline{flex-wrap:wrap}.engine-cfg .inline>select{flex:100%;width:100%}.seg,.modal .actions{flex-wrap:wrap}.modal .actions .btn{flex:auto;min-height:42px}.winner{font-size:30px}.reveal{grid-template-columns:repeat(3,1fr)}.title-menu{margin-top:24px}.title-opt{padding:13px 16px}}@media (height<=520px) and (orientation:landscape){#app{--top-h:calc(var(--safe-t) + 56px);--dock-h:calc(var(--safe-b) + 44px)}#banner{max-width:46vw;right:auto}#banner .actor{flex-basis:auto}#hud,#chat{width:min(400px,46vw);left:auto;bottom:calc(var(--dock-h) + var(--kb,0px) + 6px);max-height:calc(100dvh - var(--safe-t) - var(--dock-h) - var(--kb,0px) - 64px)}#app[data-sheet=chat] #chat{height:calc(100dvh - var(--safe-t) - var(--dock-h) - var(--kb,0px) - 64px)}#action{right:auto;bottom:calc(var(--safe-b) + var(--kb,0px));width:min(560px,52vw);max-height:calc(100dvh - var(--top-h) - var(--kb,0px));border-width:2px 2px 0 0}.roster{grid-template-columns:1fr 1fr 1fr}#dock{border-width:2px 0 0 2px;width:min(400px,46vw);left:auto}#seats{top:calc(var(--safe-t) + 8px);left:auto;right:calc(var(--safe-r) + 150px);width:min(360px,34vw);height:28px}#closeup{width:min(400px,46vw);left:auto;bottom:calc(var(--dock-h) + var(--kb,0px) + 6px);max-height:calc(100dvh - var(--top-h) - var(--dock-h) - var(--kb,0px) - 12px)}}
