:root{--bg:#09090b;--surface:#111113;--surface-2:#18181b;--surface-3:#212125;--border:#232327;--border-strong:#2f2f35;--text:#ededef;--text-2:#a1a1aa;--text-3:#6b6b74;--accent:#e5484d;--accent-hover:#ec5d61;--accent-soft:#e5484d24;--gold:#d6b25e;--success:#3dd68c;--townsfolk:#4c8dff;--outsider:#5cc8e6;--minion:#f2833b;--demon:#e5484d;--traveller:#b48cf2;--fabled:#d6b25e;--loric:#6cc483;--radius:10px;--radius-sm:7px;--topbar:56px;--panel-w:300px;--shadow:0 8px 30px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}a{color:var(--accent-hover)}button,input,select,textarea{font:inherit;color:inherit}button,.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);height:32px;color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:var(--surface-3);border-color:#3a3a41}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:disabled{opacity:.45;cursor:default}.btn.primary,button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.danger{background:var(--accent-soft);color:#ff9b9e;border-color:#e5484d66}.btn.active,.btn-icon.active{background:var(--accent-soft);color:#ffb3b5;border-color:#e5484d73}.btn.sm{height:26px;padding:0 9px;font-size:12.5px}.btn.block{width:100%}.btn-icon{width:32px;color:var(--text-2);background:0 0;border-color:#0000;flex-shrink:0;padding:0}.btn-icon:hover:not(:disabled){color:var(--text)}.btn-icon.sm{width:26px;height:26px}.btn-icon.primary{color:#fff}button.link{height:auto;color:var(--accent-hover);background:0 0;border:none;padding:0 4px;font-weight:500}button.link:hover{background:0 0;text-decoration:underline}input,select,textarea{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);height:32px;padding:0 10px}textarea{resize:none;width:100%;height:auto;padding:8px 10px}select{padding-right:6px}input::placeholder,textarea::placeholder{color:var(--text-3)}.icon{flex-shrink:0}.subtle,.muted{color:var(--text-2)}.small{font-size:12.5px}.error{color:#ff8f92}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-row{gap:8px;margin-top:10px;display:flex}.input-row input{flex:1;min-width:0}.checkbox{cursor:pointer;color:var(--text-2);align-items:center;gap:8px;display:inline-flex}.checkbox input{height:auto;accent-color:var(--accent)}.switch{cursor:pointer;color:var(--text-2);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch-track{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:999px;width:30px;height:18px;transition:background .15s;position:relative}.switch-track:after{content:"";background:var(--text-2);border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--accent);border-color:var(--accent)}.switch input:checked+.switch-track:after{background:#fff;transform:translate(12px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.avatar{letter-spacing:0;border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;transition:box-shadow .15s;display:inline-grid}img.avatar{object-fit:cover;background:var(--surface-2)}.avatar.speaking{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--success)}.badge{letter-spacing:.04em;color:var(--gold);background:#d6b25e26;border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:600}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.segmented button{height:28px;color:var(--text-2);background:0 0;border:none;border-radius:6px}.segmented button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.segmented button.active{background:var(--surface-3);color:var(--text);box-shadow:0 1px 2px #0006}.segmented.small button{height:26px;padding:0 10px}.menu-wrap{position:relative}.dropdown{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow);z-index:30;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 6px)}.dropdown.right{right:0}.dropdown.up{top:auto;bottom:calc(100% + 6px)}.dropdown button{background:0 0;border:none;justify-content:flex-start;height:30px}.dropdown button:hover:not(:disabled){background:var(--surface-3)}.dropdown-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px 4px;font-size:11.5px}.loading{height:100vh;color:var(--text-2);place-items:center;display:grid}.lobby{background:radial-gradient(60% 50% at 50% 0%, #e5484d1f, transparent 70%), var(--bg);align-content:center;place-items:center;gap:20px;min-height:100vh;padding:24px;display:grid}.lobby-card{background:var(--surface);border:1px solid var(--border);width:min(400px,100%);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:14px;padding:32px;display:flex}.lobby-card h1{font-size:22px}.lobby-card p{margin:0}.lobby-card label{color:var(--text-2);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.lobby-card input{height:38px;color:var(--text)}.lobby-card .btn.primary{height:38px}.lobby-mark{background:var(--accent-soft);border:1px solid #e5484d59;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.lobby-mark span{border:2px solid var(--accent);border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 4px #e5484d26}.divider{color:var(--text-3);align-items:center;gap:10px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.footer-note{text-align:center;margin:0}.room{grid-template-rows:var(--topbar) 1fr;height:100vh;display:grid;overflow:hidden}.top-bar{background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 10px;display:grid}.top-left,.top-right{align-items:center;gap:6px;min-width:0;display:flex}.top-right{justify-content:flex-end}.brand{flex-direction:column;min-width:0;padding-left:4px;line-height:1.25;display:flex}.brand-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.brand .small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.room-code{letter-spacing:.06em;font-family:ui-monospace,SF Mono,Menlo,monospace}.btn.me{color:var(--text)}.name-input{width:160px}.workspace{min-height:0;display:flex;position:relative}.panel{width:var(--panel-w);background:var(--surface);flex-direction:column;flex-shrink:0;min-height:0;display:flex}.floating{border:1px solid var(--border-strong);max-width:calc(100vw - 16px);box-shadow:var(--shadow);border-radius:14px;position:fixed;overflow:hidden}.rooms-panel{max-height:calc(100vh - var(--topbar) - 24px)}.window-bar{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;height:40px;padding:0 6px 0 14px}.window-bar:active{cursor:grabbing}.window-close{margin-left:auto}.panel-header{border-bottom:1px solid var(--border);height:44px;color:var(--text-2);flex-shrink:0;align-items:center;gap:8px;padding:0 16px;display:flex}.panel-header h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-size:13px}.panel-body{flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.stage{background:radial-gradient(70% 60% at 50% 45%, #16151a 0%, var(--bg) 75%);flex-direction:column;flex:1;min-width:0;transition:background .6s;display:flex}.stage-main{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.room.phase-night .stage{background:radial-gradient(70% 60% at 50% 45%,#111830 0%,#06070c 75%)}.room.phase-day .stage{background:radial-gradient(70% 60% at 50% 45%, #1d1912 0%, var(--bg) 75%)}.town-square{flex:1;place-items:center;min-height:0;padding:24px 24px 36px;display:grid;position:relative}.ring{position:relative}.ring-circle{pointer-events:none;background:radial-gradient(circle,#ffffff04,#0000 70%);border:1px solid #ffffff0f;border-radius:50%;position:absolute}.seat{-webkit-user-select:none;user-select:none;position:absolute;transform:translate(-50%,-50%)}.seat-avatar{background:var(--surface-2);border:2px solid var(--border-strong);color:var(--text-3);cursor:pointer;border-radius:12px;align-content:center;place-items:center;gap:4px;transition:border-color .15s,box-shadow .15s;display:grid;position:absolute;overflow:hidden;box-shadow:0 6px 16px #0006}.seat-avatar:hover{border-color:#55555e}.seat-avatar .avatar{border-radius:0;width:100%;height:100%}.seat-avatar.empty{color:var(--text-3)}.seat-name.claimable{border-radius:10px;flex-direction:column;gap:0;padding:3px 10px;line-height:1.25}.seat-claim{color:var(--text-3);font-size:11px}.seat.me .seat-avatar{border-color:var(--gold)}.seat.speaking .seat-avatar{border-color:var(--success);box-shadow:0 0 22px #3dd68c73}.seat.dead .seat-avatar{filter:grayscale(.85)brightness(.7)}.seat-token{cursor:pointer;border-radius:50%;width:100%;height:100%;transition:box-shadow .15s,transform .15s;position:relative}.seat-token:hover{transform:scale(1.04)}.seat.me .seat-token{box-shadow:0 0 0 3px var(--gold)}.seat.speaking .seat-token{box-shadow:0 0 0 3px var(--success), 0 0 24px #3dd68c73}.seat.highlight .seat-token:hover{box-shadow:0 0 0 3px #fff}.seat.nominated .seat-token{box-shadow:0 0 0 3px var(--accent), 0 0 26px #e5484d8c}.seat.nominator .seat-token{box-shadow:0 0 0 3px var(--minion)}.death-mark{color:#f3d7d8;filter:drop-shadow(0 0 6px #e5484dcc);pointer-events:none;background:#14060873;border-radius:50%;place-items:center;display:grid;position:absolute;inset:0}.seat.marked .seat-token{box-shadow:0 0 0 3px #7a1d22,0 0 22px #e5484d73}.seat.selected .seat-token{box-shadow:0 0 0 3px #fff,0 0 22px #ffffff4d}.seat.vote-current .seat-token{box-shadow:0 0 0 3px var(--gold), 0 0 28px #d6b25e99;transform:scale(1.06)}.seat.vote-counted .hand{background:var(--gold);color:#1a1408}.clock-hands{pointer-events:none;width:0;height:0;position:absolute}.clock-hand{transform-origin:0;filter:drop-shadow(0 1px 3px #0009);transition:transform .6s cubic-bezier(.3,.7,.3,1);position:absolute;left:0}.clock-hand:before{content:"";clip-path:polygon(0 30%,88% 15%,100% 50%,88% 85%,0 70%);position:absolute;inset:0}.clock-hand.nominator{height:12px;top:-6px}.clock-hand.nominator:before{background:linear-gradient(90deg, #6d5a33, var(--minion))}.clock-hand.nominee{height:10px;top:-5px}.clock-hand.nominee:before{background:linear-gradient(90deg, #6d2a2c, var(--accent))}.clock-hand.sweep{filter:drop-shadow(0 0 6px #d6b25eb3);height:4px;transition-duration:.3s;top:-2px}.clock-hand.sweep:before{clip-path:polygon(0 25%,94% 0,100% 50%,94% 100%,0 75%);background:linear-gradient(90deg,#f0d69699,#f3e2b0)}.clock-pivot{background:radial-gradient(circle at 35% 35%, #f3e2b0, var(--gold) 55%, #6d5a33);border-radius:50%;width:18px;height:18px;position:absolute;top:-9px;left:-9px;box-shadow:0 1px 4px #0009}.seat-name{white-space:nowrap;border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2;background:#111113e0;border-radius:999px;align-items:center;gap:5px;max-width:170px;padding:2px 9px;font-size:12.5px;font-weight:500;display:flex;position:absolute;transform:translate(-50%,-50%)}.seat-name-text{text-overflow:ellipsis;overflow:hidden}.seat-flag{color:var(--text-2)}.seat.dead .seat-name-text{color:var(--text-3);text-decoration:line-through}.presence{border-radius:50%;flex-shrink:0;width:6px;height:6px}.presence.online{background:var(--success)}.presence.offline{background:var(--text-3)}.seat-number{color:var(--text-3);font-size:1.15em;font-weight:600}.shroud{clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);color:#c9c9cf;pointer-events:none;background:linear-gradient(#26262b,#121214);justify-content:center;width:46%;height:52%;padding-top:12%;display:flex;position:absolute;top:-6%;left:50%;transform:translate(-50%)}button.shroud{font:inherit;cursor:pointer;pointer-events:auto;border:none;border-radius:0;transition:opacity .15s,transform .15s}.seat-token .shroud:hover{background:linear-gradient(#34343b,#18181b)}.shroud.peek{opacity:0}.seat-token .shroud.peek:hover,.shroud.peek:focus-visible{opacity:.85}.point-at{color:#2a1d0c;pointer-events:none;background:#f3e9d2d1;border-radius:50%;place-items:center;display:grid;position:absolute;inset:0}.point-at svg{transition:color .12s}.seat-token:hover .point-at{color:var(--accent)}.shroud.pending{opacity:.7;background:repeating-linear-gradient(135deg,#26262b 0 5px,#1a1a1e 5px 10px)}.ghost-vote{border:2px solid var(--bg);background:#f4f4f5;border-radius:50%;width:20%;height:20%;position:absolute;top:0;right:0}.hand{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;top:-6%;left:-6%;box-shadow:0 2px 8px #00000080}.seat-video{object-fit:cover;background:#000;width:100%;height:100%;transform:scaleX(-1)}.reminder{cursor:pointer;z-index:1;position:absolute}.reminder:hover{z-index:3}.reminder .token{transition:transform .25s}.reminder.flipped .token{transform:rotate(180deg)}.reminder-actions{opacity:0;border-radius:50%;transition:opacity .12s;display:flex;position:absolute;inset:0;overflow:hidden}.reminder:hover .reminder-actions,.reminder-actions:focus-within{opacity:1}.reminder-actions button{color:#fff;background:#0a0a0c8c;border:none;border-radius:0;flex:1;place-items:center;padding:0;display:grid}.reminder .reminder-actions button:hover{background:#0a0a0cbf}.reminder .reminder-actions button:last-child:hover{color:#ff8a8e}.reminder-zone{transform-origin:0;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:0;position:absolute}.seat .reminder-zone:hover,.seat .reminder-zone:focus-visible{background:0 0;outline:none}.reminder-add{color:#0000;pointer-events:none;border:2px dashed #0000;border-radius:50%;place-items:center;transition:border-color .15s,color .15s,background .15s;display:grid;position:absolute;top:50%}.reminder-zone:hover .reminder-add,.reminder-zone:focus-visible .reminder-add{border-color:var(--border-strong);color:var(--text-2);background:#ffffff0d}.center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.center>*{pointer-events:auto}.center-logo{object-fit:contain;max-width:70%;max-height:38%}.center-title{letter-spacing:0;max-width:90%;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:26px;font-weight:600}.phase-pill{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:3px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.phase-pill.phase-night{color:#a9c6ff;background:#4c8dff1f;border-color:#4c8dff59}.phase-pill.phase-day{color:#ecd29a;background:#d6b25e1f;border-color:#d6b25e59}.stats{color:var(--text-2);gap:16px;display:flex}.stats span{align-items:center;gap:5px;display:inline-flex}.distribution{gap:4px;display:flex}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;min-width:26px;padding:1px 7px;font-size:12.5px;font-weight:600}.needed-edit{color:var(--text-2);align-items:center;gap:4px;font-size:12.5px;display:flex}.needed-edit strong{min-width:1.5em;color:var(--gold);font-size:15px}.nomination{box-shadow:var(--shadow);background:#111113eb;border:1px solid #e5484d73;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:12px 16px;display:flex}.nomination p{margin:0}.vote-count{font-size:18px;font-weight:600}.vote-count.result{color:var(--text-2)}.vote-count.result.pass{color:var(--gold)}.vote-countdown{color:var(--gold);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.center-row{justify-content:center}.mode-banner{background:var(--surface-2);border:1px solid var(--border-strong);box-shadow:var(--shadow);z-index:5;border-radius:999px;align-items:center;gap:10px;padding:4px 4px 4px 14px;font-weight:500;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.token{background-blend-mode:multiply;color:#2a1d0c;background:url(/textures/parchment.webp) 50%/160px,radial-gradient(circle at 40% 32%,#f6eedb,#e3d4b0 62%,#c4ab79);border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #6e52288c,0 4px 12px #00000073}.token.clickable{cursor:pointer;transition:transform .12s}.token.clickable:hover{box-shadow:inset 0 0 0 2px #6e52288c, 0 0 0 3px var(--accent);transform:translateY(-2px)}.token img{object-fit:contain;pointer-events:none;width:82%;height:82%;margin-top:-12%}.token-name{text-align:center;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:10px;font-weight:700;line-height:1;position:absolute;bottom:11%;left:3%;right:3%}.token-initials{margin-top:-12%;font-size:1.1em;font-weight:700}.token.empty{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border-strong), 0 4px 12px #00000059}.token.team-townsfolk .token-name,.token.team-outsider .token-name{color:#183f8c}.token.team-minion .token-name,.token.team-demon .token-name{color:#8c1515}.token.selected{box-shadow:inset 0 0 0 2px #6e52288c, 0 0 0 3px var(--accent)}.token.unselected{opacity:.4;filter:saturate(.5)}.token-grid{flex-wrap:wrap;gap:12px;display:flex}.team-townsfolk h4,.chip.team-townsfolk,span.team-townsfolk{color:var(--townsfolk)}.team-outsider h4,.chip.team-outsider,span.team-outsider{color:var(--outsider)}.team-minion h4,.chip.team-minion,span.team-minion{color:var(--minion)}.team-demon h4,.chip.team-demon,span.team-demon{color:var(--demon)}.team-traveller h4{color:var(--traveller)}.team-fabled h4{color:var(--fabled)}.team-loric h4{color:var(--loric)}.drawer{--drawer-w:250px;--tab-w:34px;top:calc(var(--topbar) + 10px);z-index:25;pointer-events:none;transform:translateX(var(--drawer-w));align-items:flex-start;transition:transform .25s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;bottom:10px;right:0}.drawer.open{transform:none}.drawer.expanded{--drawer-w:min(560px, calc(100vw - var(--tab-w) - 12px))}.drawer-tabs{z-index:1;pointer-events:auto;flex-direction:column;gap:6px;margin:12px -1px 0 0;display:flex;position:relative}.drawer-tab{width:var(--tab-w);border:1px solid var(--border-strong);background:var(--surface-2);height:auto;color:var(--text-2);text-transform:uppercase;letter-spacing:.12em;border-right:none;border-radius:10px 0 0 10px;padding:18px 0;font-size:11.5px;box-shadow:-6px 0 16px #00000059}.drawer-tab span{writing-mode:vertical-rl;white-space:nowrap;transform:rotate(180deg)}.drawer-tab:hover{background:var(--surface-3);color:var(--text)}.drawer-tab.active{background:var(--surface);color:var(--text);box-shadow:inset 3px 0 0 var(--accent)}.drawer-panel{width:var(--drawer-w);background:var(--surface);border:1px solid var(--border-strong);pointer-events:auto;border-right:none;border-radius:14px 0 0 14px;flex-direction:column;align-self:stretch;transition:width .22s cubic-bezier(.2,.8,.2,1),box-shadow .25s;display:flex;overflow:hidden}.drawer.open .drawer-panel{box-shadow:-16px 0 40px #00000080}.drawer-panel header{border-bottom:1px solid var(--border);align-items:center;gap:2px;padding:8px 8px 8px 16px;display:flex}.drawer-panel h2{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;overflow:hidden}.drawer-body{flex:1;padding:8px 14px 24px;overflow:hidden auto}.drawer .team-townsfolk .role-name{color:var(--townsfolk)}.drawer .team-outsider .role-name{color:var(--outsider)}.drawer .team-minion .role-name{color:var(--minion)}.drawer .team-demon .role-name{color:var(--demon)}.drawer .team-traveller .role-name{color:var(--traveller)}.drawer .team-fabled .role-name{color:var(--fabled)}.drawer .team-loric .role-name{color:var(--loric)}.drawer:not(.expanded) .drawer-body{cursor:pointer}.drawer:not(.expanded) .wide-only,.drawer:not(.expanded) .role-ability{display:none}.drawer:not(.expanded) :is(.role-row,.night-entry){align-items:center}.drawer:not(.expanded) .holders{display:block}.drawer:not(.expanded) .role-row.in-play .role-name:after{content:"";background:var(--gold);width:7px;height:7px;padding:0;display:inline-block}.modal header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 10px 10px 18px;display:flex}.modal h2{font-size:15px}.script-meta{align-items:center;gap:12px;margin-bottom:4px;display:flex}.script-meta h3{font-size:17px}.script-meta p{margin:2px 0 0}.script-logo{max-width:120px;max-height:80px}.team-section h4,.picker-team h4{text-transform:uppercase;letter-spacing:.06em;margin:18px 0 8px;font-size:11.5px}.role-row,.night-entry{align-items:flex-start;gap:12px;padding:7px 0;display:flex}.role-row+.role-row,.night-entry+.night-entry{border-top:1px solid var(--border)}.role-row.in-play .role-name:after{content:"In play";color:var(--gold);vertical-align:1px;background:#d6b25e26;border-radius:999px;margin-left:8px;padding:1px 6px;font-size:10.5px;font-weight:600}.role-name{font-weight:600}.role-name .wiki-link{color:inherit;text-decoration:none}.role-name .wiki-link:hover{text-decoration:underline}.role-token-link{flex-shrink:0;display:flex}.role-ability{color:var(--text-2);font-size:13px;line-height:1.4}.role-ability strong{color:var(--text)}.holders{color:var(--gold);font-size:12.5px;font-weight:500}.jinx-pair{gap:2px;display:flex}.night-sheet ol{margin:8px 0;padding:0;list-style:none}.night-entry{padding-left:10px;position:relative}.night-entry:before{content:"";background:var(--border-strong);border-radius:3px;width:3px;position:absolute;top:10px;bottom:10px;left:0}.night-entry.team-townsfolk:before{background:var(--townsfolk)}.night-entry.team-outsider:before{background:var(--outsider)}.night-entry.team-minion:before{background:var(--minion)}.night-entry.team-demon:before{background:var(--demon)}.night-entry.team-traveller:before{background:var(--traveller)}.night-entry.team-fabled:before,.night-entry.team-loric:before{background:var(--fabled)}.night-entry.dim{opacity:.38}.night-special{background:var(--surface-2);border:1px solid var(--border-strong);width:40px;height:40px;color:var(--text-2);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.reminder-marker{background:var(--gold);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin:0 3px;display:inline-block}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:40;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border-strong);width:min(460px,100%);max-height:88vh;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex}.modal.wide{width:min(880px,100%)}.modal.docked{top:calc(var(--topbar) + 16px);z-index:40;width:min(360px,100vw - 32px);max-height:calc(100vh - var(--topbar) - 32px);animation:.18s ease-out docked-in;position:fixed;right:16px}@keyframes docked-in{0%{opacity:0;transform:translate(12px)}}.modal-body .menu-hint{border-radius:var(--radius-sm);color:var(--gold);background:#d6b25e1a;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;font-size:13px;display:flex}.modal-body{padding:16px 18px 18px;overflow-y:auto}.modal-body section+section{margin-top:18px}.modal-body h4{margin:0 0 8px;font-size:13px}.modal-body p{margin:0 0 8px}.modal-body textarea{margin:10px 0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.modal-actions{justify-content:flex-end;margin-top:18px;display:flex}.menu-list{flex-direction:column;gap:2px;display:flex}.menu-list>button,.submenu button{background:0 0;border-color:#0000;justify-content:flex-start;height:34px}.menu-list>button:hover:not(:disabled),.submenu button:hover:not(:disabled){background:var(--surface-2)}.menu-list .danger-text{color:#ff8f92}.menu-inline{color:var(--text-2);justify-content:space-between;align-items:center;gap:8px;padding:4px 12px;display:flex}.submenu{border-left:1px solid var(--border-strong);flex-direction:column;gap:2px;margin:0 0 6px 12px;padding-left:8px;display:flex}.seat-role{border-bottom:1px solid var(--border);color:var(--text-2);align-items:center;gap:14px;margin-bottom:14px;padding-bottom:14px;display:flex}.seat-role p{margin:0}.picker-tools{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:4px;display:flex}.search{width:240px}.reminder-token svg{margin-top:-12%}.token-name.wrap{white-space:normal;line-height:1.05;bottom:9%;left:8%;right:8%}.reminder-token.generic-good{color:#2f6fb0}.reminder-token.generic-evil{color:#a8282d}.reminder-token.generic-note{color:#8a6420}.reminder-picker .picker-tools{justify-content:space-between}.reminder-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));justify-items:center;gap:12px 8px;min-height:96px;padding:4px 0;display:grid}.reminder-for{color:var(--text-3);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:84px;margin-top:4px;font-size:11px;overflow:hidden}.bag-summary{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:8px;padding:10px 12px;display:flex}.bag-summary .count{text-transform:capitalize;font-weight:600}.bag-summary .count.off{text-underline-offset:4px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.bag-setup{flex-wrap:wrap;align-items:center;gap:8px 20px;margin-bottom:8px;display:flex}.bag-choice{align-items:center;gap:8px;display:flex}.bag-warnings{margin:0 0 8px}.bag-token{flex-direction:column;align-items:center;gap:6px;display:flex}.bag-copies{align-items:center;padding:2px}.bag-copies span{text-align:center;min-width:22px;font-size:12.5px}.segmented.small.bag-copies button{height:22px;padding:0 7px}.bag-warnings ul{margin:0;padding-left:18px}.file-button{cursor:pointer}.warnings{border-radius:var(--radius);background:#d6b25e1a;border:1px solid #d6b25e4d;margin-top:14px;padding:10px 14px}.chat-window{width:340px;height:min(540px, calc(100vh - var(--topbar) - 24px));background:var(--surface);opacity:0;visibility:hidden;flex-direction:column;transition:transform .25s cubic-bezier(.2,.8,.2,1),opacity .2s,visibility 0s .25s;display:flex;transform:translateY(10px)scale(.98)}.chat-window.open{opacity:1;visibility:visible;transition:transform .25s cubic-bezier(.2,.8,.2,1),opacity .2s;transform:none}.chat-tabs{border-bottom:1px solid var(--border);flex-shrink:0;align-items:stretch;gap:2px;padding:6px 6px 0;display:flex}.chat-tab{min-width:0;height:auto;color:var(--text-2);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:7px 7px 0 0;flex-direction:column;flex:1;align-items:center;gap:0;padding:6px 6px 7px;font-size:12.5px;line-height:1.25;display:flex;position:relative}.chat-tab:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.chat-tab.active{color:var(--text);border-bottom-color:var(--accent)}.chat-tab.private.active{border-bottom-color:#b48cf2}.chat-tab-label{font-weight:600}.chat-tab-sub{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-3);font-size:11px;overflow:hidden}.chat-tab .count-badge{position:absolute;top:2px;right:4px}.count-badge{background:var(--accent);color:#fff;text-align:center;border-radius:999px;min-width:17px;height:17px;padding:0 5px;font-size:10.5px;font-weight:700;line-height:17px}.badge-anchor{position:relative}.badge-anchor .count-badge{position:absolute;top:-3px;right:-4px}.chat-thread-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;min-width:0;padding:6px 10px;display:flex}.chat-thread-head strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rotate-90{transform:rotate(90deg)}.chat-players{flex:1;margin:0;padding:6px;list-style:none;overflow-y:auto}.chat-players .empty{color:var(--text-3);text-align:center}.chat-players button{background:0 0;border-color:#0000;justify-content:flex-start;gap:9px;width:100%;height:40px}.chat-players button:hover{background:var(--surface-2)}.chat-player-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.chat-players .subtle{flex-shrink:0;margin-left:auto}.chat-log{flex-direction:column;flex:1;padding:12px 14px;display:flex;overflow-y:auto}.chat-log .empty{color:var(--text-3);text-align:center;margin:auto}.msg{padding:6px 0 0}.msg.grouped{padding-top:2px}.msg-head{flex-wrap:wrap;align-items:center;gap:4px 7px;min-width:0;margin-bottom:2px;display:flex}.msg-author{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:150px;font-size:13px;font-weight:600;overflow:hidden}.msg-head time{color:var(--text-3);flex-shrink:0;margin-left:auto;font-size:11.5px}.msg-text{white-space:pre-wrap;overflow-wrap:anywhere;color:#d8d8dc;padding-left:29px}.msg.private .msg-text{color:#ddd0f8}.composer{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.composer-box{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);align-items:flex-end;gap:6px;padding:4px;display:flex}.composer-box:focus-within{border-color:#45454d}.composer-box.private{border-color:#b48cf273}.composer-box textarea{background:0 0;border:none;padding:6px 8px}.composer-box textarea:focus-visible{outline:none}.composer-box .btn-icon.primary{background:var(--accent);border-color:var(--accent)}.composer-box .btn-icon.primary:disabled{background:var(--surface-3);border-color:var(--surface-3)}.voice-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:12px;display:flex}.voice-card p{margin:0}.voice-status{align-items:center;gap:10px;display:flex}.voice-title{font-weight:600}.dot{background:var(--text-3);border-radius:50%;flex-shrink:0;width:9px;height:9px}.dot.on{background:var(--success);box-shadow:0 0 0 3px #3dd68c33}.voice-buttons{gap:6px;display:flex}.voice-buttons .btn:not(.btn-icon){flex:1}.invite{border-radius:var(--radius);background:#4c8dff14;border:1px solid #4c8dff59;flex-direction:column;gap:10px;padding:10px 12px;display:flex}.invite-text{align-items:center;gap:8px;display:flex}.invite.outgoing{background:var(--surface-2);border-color:var(--border);flex-direction:row;justify-content:space-between;align-items:center}.channels{flex-direction:column;gap:2px;display:flex}.channel{border-radius:var(--radius-sm);padding:4px 6px}.channel.here{background:#ffffff0d}.channel .member-names,.channel .member-actions{padding-left:24px}.channel-header{min-height:28px;color:var(--text-2);align-items:center;gap:8px;display:flex}.channel-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:1;font-weight:500;overflow:hidden}.channel-header .count{color:var(--text-3);font-size:12px}.channel-title{flex:1;align-items:center;gap:8px;min-width:0;display:flex}button.channel-title{border-radius:var(--radius-sm);height:auto;color:inherit;font-weight:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:-4px -6px;padding:4px 6px}button.channel-title:hover:not(:disabled){background:#ffffff0f}.member-names{color:var(--text-3);margin:2px 4px 2px 0;font-size:13px;line-height:1.6}.member{all:unset;color:var(--text);cursor:pointer;border-radius:4px;transition:color .15s,background .15s;display:inline}.member:hover,.member.selected{background:var(--surface-2)}.member:focus-visible{outline:2px solid var(--accent)}.member.no-audio{color:var(--text-3)}.member.speaking{color:var(--success)}.member-st{color:var(--gold);font-size:10.5px;font-weight:600}.member .muted-icon{vertical-align:-1px;margin-left:2px}.muted-icon{color:var(--accent-hover)}.member-actions{align-items:center;gap:6px;margin:4px 0 2px;display:flex}.move-select{width:96px;height:26px;padding:0 4px;font-size:12px}.toolbar{border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111113eb;border-radius:14px;flex-wrap:wrap;align-items:flex-end;gap:12px 22px;margin:0 16px 16px;padding:12px 16px;display:flex}.tool-group{flex-direction:column;gap:6px;display:flex}.tool-group.end{margin-left:auto}.tool-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-size:11px;font-weight:600}.stepper{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);align-items:center;display:inline-flex;overflow:hidden}.stepper button{background:var(--surface-2);border:none;border-radius:0;width:30px}.stepper input{text-align:center;-moz-appearance:textfield;background:0 0;border:none;border-radius:0;width:44px}.stepper input::-webkit-inner-spin-button{appearance:none}.slot{border:1px dashed var(--border-strong);width:38px;height:38px;color:var(--text-3);background:0 0;border-radius:50%;padding:0}.slot:has(.token){border:none}.slot .token{box-shadow:inset 0 0 0 2px #6e52288c}.player-card{justify-content:space-between;align-items:center}.player-card>p{margin:0}.my-role{align-items:center;gap:14px;max-width:640px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-size:11px;font-weight:600}.role-title{font-size:18px;font-weight:600}.banner{top:calc(var(--topbar) + 8px);background:var(--accent);color:#fff;z-index:50;box-shadow:var(--shadow);border-radius:999px;padding:5px 14px;font-weight:500;position:fixed;left:50%;transform:translate(-50%)}.summons{top:calc(var(--topbar) + 16px);z-index:55;background:var(--surface-2);border:1px solid var(--gold);border-radius:var(--radius);width:min(560px,100vw - 32px);box-shadow:var(--shadow), 0 0 0 0 #d6b25e80;align-items:center;gap:14px;padding:14px 14px 14px 16px;animation:.25s ease-out summons-in,1.8s ease-out 3 summons-pulse;display:flex;position:fixed;left:50%;transform:translate(-50%)}.summons-icon{width:40px;height:40px;color:var(--gold);transform-origin:50% 10%;background:#d6b25e29;border-radius:50%;flex:none;place-items:center;animation:.6s ease-in-out 9 alternate summons-swing;display:grid}.summons-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.summons-text span{color:var(--text-2)}.summons-actions{flex:none;align-items:center;gap:6px;display:flex}.summons-flash{z-index:54;pointer-events:none;opacity:0;animation:1.8s ease-out 3 summons-flash;position:fixed;inset:0;box-shadow:inset 0 0 120px 20px #d6b25e8c}@keyframes summons-in{0%{opacity:0;transform:translate(-50%,-8px)}}@keyframes summons-pulse{0%{box-shadow:var(--shadow), 0 0 0 0 #d6b25e8c}to{box-shadow:var(--shadow), 0 0 0 18px #d6b25e00}}@keyframes summons-flash{0%{opacity:1}to{opacity:0}}@keyframes summons-swing{0%{transform:rotate(-14deg)}to{transform:rotate(14deg)}}@media (prefers-reduced-motion:reduce){.summons,.summons-icon,.summons-flash{animation:none}}@media (width<=640px){.summons{flex-wrap:wrap}}.toasts{z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--surface-2);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #e5484d80;padding:8px 14px}.field{color:var(--text-2);flex-direction:column;gap:6px;margin-bottom:14px;font-size:12.5px;font-weight:600;display:flex}.field input:not([type=checkbox]),.field select{color:var(--text);font-weight:400}.field .row{font-weight:400}kbd{background:var(--surface-3);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px}.ptt-setting{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:10px;font-size:13px;display:flex}.kbd-btn.active{color:var(--gold)}.ptt-status{border-radius:var(--radius-sm);border:1px solid var(--border-strong);height:32px;color:var(--text-2);align-items:center;gap:6px;padding:0 12px;font-weight:600;transition:background .1s,color .1s;display:inline-flex}.ptt-status.on{color:var(--success);background:#3dd68c24;border-color:#3dd68c80}.pronouns{color:var(--text-2);white-space:nowrap;font-size:11px;font-weight:400;line-height:1.4}.seat>.pronouns{z-index:2;border:1px solid var(--border);background:#111113e0;border-radius:999px;padding:0 7px;position:absolute;transform:translate(-50%)}.st-plate .pronouns{align-self:flex-start}button.pronouns{cursor:text;border-radius:999px;height:auto;padding:0 7px}.st-plate button.pronouns{background:0 0;border-color:#0000;margin-left:-7px}button.pronouns:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.pronouns.empty{color:var(--text-3);opacity:0;transition:opacity .15s}.seat.me:hover .pronouns.empty,.st-seat:hover .pronouns.empty,.pronouns.empty:focus-visible{opacity:1}.pronouns.editing{padding:0}.pronouns.editing input{-webkit-user-select:text;user-select:text;border-radius:999px;height:20px;padding:0 7px;font-size:11px}.seat-flag.unread{color:var(--gold)}.night-card{text-align:center;background:radial-gradient(120% 90% at 50% 0,#1d1a2b 0%,#121117 70%);border:1px solid #d6b25e47;border-radius:12px;flex-direction:column;align-items:center;gap:14px;padding:22px 18px;display:flex;box-shadow:inset 0 0 40px #00000059}.night-card-title{color:var(--gold);letter-spacing:.01em;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:600}.night-card-roles,.night-card-seats{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.night-card-value{color:var(--text);font-family:Georgia,Times New Roman,serif;font-size:54px;font-weight:700;line-height:1}.night-card-value.value-good,.night-card-value.value-yes{color:var(--townsfolk)}.night-card-value.value-evil,.night-card-value.value-no{color:var(--demon)}.night-card-text{white-space:pre-wrap;color:var(--text-2);margin:0}.seat-chips{flex-wrap:wrap;gap:6px;display:flex}.seat-chip{border:1px solid var(--border-strong);background:var(--surface-2);border-radius:999px;align-items:center;gap:7px;height:32px;padding:0 11px 0 5px;font-size:13px;font-weight:500;display:inline-flex}.seat-chip.selected{border-color:var(--gold);color:var(--gold);background:#d6b25e29}.seat-chip-number{background:var(--surface-3);border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;display:grid}.card-answer{margin-top:14px}.card-answer.row{justify-content:center}.card-reply{text-align:center;color:var(--gold);margin:12px 0 0;font-weight:500}.history-card+.history-card{margin-top:18px}.history-card .eyebrow{margin-bottom:6px;display:block}.card-composer{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;display:grid}.composer-preview{flex-direction:column;gap:10px;display:flex}.preset-row{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.token-remove{background:0 0;border:none;border-radius:50%;height:auto;padding:0}.token-remove:hover{opacity:.6}.value-input{width:90px}.count-input{width:64px}.modal-body textarea.note{margin:0;font-family:inherit;font-size:13.5px}.center-text{text-align:center}.sent-cards{margin-top:8px}.sent-card{border-top:1px solid var(--border);flex-direction:column;padding:7px 0;font-size:13px;display:flex}.stage-notices{z-index:6;pointer-events:none;flex-direction:column;gap:6px;width:min(460px,100% - 32px);display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.stage-notices>*{pointer-events:auto}.card-replies{flex-direction:column;gap:6px;display:flex}.card-reply-toast{border-radius:var(--radius);background:var(--surface-2);box-shadow:var(--shadow);color:var(--text-2);border:1px solid #d6b25e66;align-items:center;gap:10px;padding:8px 8px 8px 14px;display:flex}.card-reply-toast .icon{color:var(--gold)}.card-reply-toast span{flex:1}.card-reply-toast strong{color:var(--text)}.timer-pill{background:var(--surface-2);border:1px solid var(--border-strong);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;margin-top:6px;padding:3px 12px;font-size:13px;display:inline-flex;position:relative;overflow:hidden}.timer-title{color:var(--text-2)}.timer-bar{background:var(--gold);transform-origin:0;height:2px;transition:transform .25s linear;position:absolute;bottom:0;left:0;right:0}.timer-pill.ending{color:#ffb3b5;border-color:#e5484d99}.timer-pill.ending .timer-bar{background:var(--accent)}.timer-pill.ended{border-color:var(--gold);color:var(--gold);animation:1s ease-in-out 3 timer-ended}@keyframes timer-ended{50%{background:#d6b25e2e}}.vote-day+.vote-day{margin-top:20px}.vote-table{border-collapse:collapse;width:100%;font-size:13.5px}.vote-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:4px 8px;font-size:11.5px;font-weight:600}.vote-table td{border-top:1px solid var(--border);vertical-align:top;padding:7px 8px}.vote-table .badge{margin-left:6px}.vote-tally{font-variant-numeric:tabular-nums;white-space:nowrap}.vote-table tr.passed .vote-tally{color:var(--gold)}.vote-table tr.on-block td{background:#d6b25e14}.reveal-choices{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.reveal-good{color:#9cc0ff;border-color:#4c8dff80}.reveal-evil{color:#ff9b9e;border-color:#e5484d80}.reveal-banner{background:var(--surface-2);border:1px solid var(--border-strong);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:12px;padding:10px 10px 10px 16px;animation:.25s ease-out docked-in;display:flex}.reveal-banner>div{flex-direction:column;flex:1;display:flex}.reveal-banner span{color:var(--text-2);font-size:12.5px}.reveal-banner.good{border-color:#4c8dff8c}.reveal-banner.good>.icon{color:var(--townsfolk)}.reveal-banner.evil{border-color:#e5484d8c}.reveal-banner.evil>.icon{color:var(--demon)}.checklist{z-index:5;border:1px solid var(--border-strong);width:300px;max-height:calc(100% - 28px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111113f0;border-radius:14px;padding:12px 14px 14px;position:absolute;top:14px;right:50px;overflow-y:auto}.checklist header{color:var(--gold);align-items:center;gap:8px;display:flex}.checklist h2{color:var(--text);flex:1;font-size:14px}.checklist ol{flex-direction:column;gap:8px;margin:10px 0 12px;padding:0;list-style:none;display:flex}.checklist li{align-items:flex-start;gap:9px;font-size:13px;display:flex}.checklist .check{border:1.5px solid var(--border-strong);border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;margin-top:1px;display:grid}.checklist li.done .check{background:var(--success);border-color:var(--success);color:#06140d}.checklist li.note .check{color:var(--gold);border-style:dashed}.checklist-pick{width:104px;height:26px;font-size:12px}.checklist li.done .checklist-text>span:first-child{color:var(--text-3);text-decoration:line-through}.checklist-text{flex-direction:column;flex:1;min-width:0;display:flex}.checklist-pill{z-index:5;color:var(--gold);border-radius:999px;position:absolute;top:14px;right:50px}@media (width<=760px){.card-composer{grid-template-columns:1fr}.checklist{width:auto;left:12px;right:12px}.brand .small,.btn.me span:not(.avatar){display:none}}.me-group{align-items:center;gap:2px;display:flex}.btn-icon.me-avatar{border-radius:50%;padding:2px}.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;display:grid}.avatar-choice{aspect-ratio:1;border:2px solid var(--border-strong);background:var(--surface-2);border-radius:10px;width:100%;height:auto;padding:0;position:relative;overflow:hidden}.avatar-choice img{object-fit:cover;width:100%;height:100%;display:block}.avatar-choice.taken img{opacity:.45}.avatar-choice .avatar-owner{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;background:#0a0a0cbf;border-radius:999px;padding:1px 6px;font-size:11px;position:absolute;bottom:4px;left:4px;right:4px;overflow:hidden}.avatar-grid .avatar-choice:hover:not(:disabled){border-color:#6a6a74}.avatar-choice.current{border-color:var(--gold);box-shadow:0 0 0 2px #d6b25e59}.st-seat{z-index:2;align-items:flex-start;gap:10px;display:flex;position:absolute;top:0;left:0}.st-card{background:var(--surface-2);border:2px solid var(--gold);border-radius:12px;flex-shrink:0;place-items:center;transition:border-color .15s,box-shadow .15s;display:grid;overflow:hidden;box-shadow:0 6px 16px #0006}.st-card .avatar{border-radius:0;width:100%;height:100%}.st-card.clickable{cursor:pointer}.st-seat.speaking .st-card{border-color:var(--success);box-shadow:0 0 22px #3dd68c73}.st-seat.offline .st-card{filter:grayscale(.85)brightness(.7)}.st-plate{border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#111113e0;border-radius:10px;flex-direction:column;gap:1px;max-width:180px;padding:5px 10px;line-height:1.3;display:flex}.st-role{letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-size:10.5px;font-weight:600}.st-name{white-space:nowrap;align-items:center;gap:5px;min-width:0;font-size:13px;font-weight:500;display:flex}.st-where{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.st-where.no-audio{color:var(--text-3)}.seat,.st-seat{transition:opacity .2s}.seat.elsewhere,.st-seat.elsewhere{opacity:.3}.seat.elsewhere:hover,.st-seat.elsewhere:hover{opacity:1}.huddle{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#141417d1}.huddle:active{cursor:grabbing}.huddle-head{color:var(--text-2);align-items:center;gap:6px;padding:8px 12px 0;font-size:12px;font-weight:600;display:flex}.huddle-grid{box-sizing:border-box;flex-wrap:wrap;justify-content:center;gap:12px;padding:10px 12px 12px;display:flex}.huddle-member{flex-direction:column;align-items:center;gap:5px;margin:0;display:flex}.huddle-portrait{border:2px solid var(--border-strong);background:var(--surface-2);border-radius:14px;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.huddle-portrait .avatar{border-radius:0;width:100%;height:100%}.huddle-portrait video{object-fit:cover;background:#000;width:100%;height:100%}.huddle-member.speaking .huddle-portrait{border-color:var(--success);box-shadow:0 0 20px #3dd68c80}.huddle-member.no-audio .huddle-portrait{filter:grayscale(.6)brightness(.75)}.huddle-muted{color:#ff8a8e;background:#0a0a0ccc;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;bottom:5px;right:5px}.huddle-member figcaption{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-size:12px;font-weight:500;display:flex;overflow:hidden}.contact-actions{z-index:1;opacity:0;pointer-events:none;background:#0a0a0c73;justify-content:center;align-items:center;gap:6px;transition:opacity .15s;display:flex;position:absolute;inset:0}.contact-actions.column{flex-direction:column}.town-square.contacting .contact-actions,.seat-avatar:hover .contact-actions,.seat-avatar:focus-within .contact-actions,.st-card:hover .contact-actions,.st-card:focus-within .contact-actions{opacity:1;pointer-events:auto}.contact-actions button{border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#17171aeb;border-radius:50%;place-items:center;padding:0;transition:background .15s,color .15s;display:grid}.contact-actions button:hover{background:var(--accent);color:#fff}.contact-actions button.calling{color:var(--success);cursor:default}.st-card{position:relative}.town-square.contacting .seat.elsewhere,.town-square.contacting .st-seat.elsewhere{opacity:1}.contact-hint{z-index:3;border:1px solid var(--border);color:var(--text-2);white-space:nowrap;pointer-events:none;background:#111113eb;border-radius:999px;padding:6px 12px;font-size:12.5px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.contact-hint kbd{border:1px solid var(--border-strong);font:inherit;color:var(--text);border-radius:4px;padding:1px 5px;font-size:11px}.letter{z-index:4;opacity:0;pointer-events:none;background:url(/textures/parchment.webp) 50%/120px,#e8d5aa;border-radius:2px;position:absolute;top:0;left:0;box-shadow:0 4px 10px #00000080,inset 0 0 0 1px #5a3c1959}.letter:before{content:"";clip-path:polygon(0 0,100% 0,50% 100%);background:#78552847;position:absolute;inset:0 0 35%}.letter:after{content:"";aspect-ratio:1;background:radial-gradient(circle at 35% 35%,#d1484b,#8e1c22);border-radius:50%;width:26%;position:absolute;top:65%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 2px #00000073}
