@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap";:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#eee9dc;background:#19211e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{min-height:100vh;background:#19211e}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(226,139,84,.55);outline-offset:2px}a{color:inherit}#root{width:100%;height:100%;margin:0;padding:0;text-align:initial}.home{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,430px);align-items:center;gap:clamp(3rem,12vw,12rem);padding:clamp(2rem,7vw,7rem);background:radial-gradient(circle at 18% 22%,rgba(219,143,84,.14),transparent 28rem),radial-gradient(circle at 78% 70%,rgba(134,171,129,.13),transparent 25rem),#19211e}.homeIntro{max-width:680px}.homeKicker,.homeHint{margin:0;color:#b8c0aa;font:500 .72rem/1.4 DM Mono,monospace;letter-spacing:.09em;text-transform:uppercase}.homeTitleRow{display:flex;align-items:flex-start;gap:.75rem}.project-title{margin:.55rem 0 1rem;color:#f5efe3;font:600 clamp(3.1rem,8vw,6.8rem)/.91 "Fraunces",Georgia,serif;letter-spacing:-.075em}.homeInfoButton{position:relative;flex:0 0 auto;width:2rem;height:2rem;display:grid;place-items:center;margin-top:.7rem;padding:0;color:#e7dfcf;background:#e7dfcf14;border:1px solid rgba(231,223,207,.5);border-radius:50%;font:700 1rem/1 Georgia,serif;transition:color .16s ease,background .16s ease,transform .16s ease}.homeInfoButton:hover{color:#fffaf0;background:#e7dfcf33;transform:translateY(-1px)}.homeDescription{color:#d0d4c7;margin:0;font:400 clamp(1rem,1.7vw,1.25rem)/1.55 "Fraunces",Georgia,serif}.homeCard{width:100%;padding:.5rem;color:#27352e;background:#efe9dc;border:1px solid rgba(255,255,255,.54);border-radius:18px;box-shadow:0 30px 80px #030a074d}.homeMode{display:grid;grid-template-columns:1fr 1fr;padding:.15rem;border-radius:12px;background:#e2dbcb}.homeMode button{padding:.65rem .5rem;border:0;border-radius:9px;color:#637068;background:transparent;font-size:.82rem;font-weight:700}.homeMode button.homeModeActive{color:#24352e;background:#f8f4eb;box-shadow:0 2px 7px #2f3a301f}.homeFields{display:grid;gap:1rem;padding:1.8rem 1.35rem 1.2rem}.homeFields label{display:grid;gap:.42rem;color:#58655d;font-size:.75rem;font-weight:700}.homeFields input{width:100%;padding:.75rem 0;color:#1f3028;border:0;border-bottom:1px solid #bdc5b5;border-radius:0;outline:none;background:transparent;font-size:1rem}.homeFields input::placeholder{color:#9aa397}.homeFields input:focus{border-color:#bd6142}.roomCodeInput{font-family:DM Mono,monospace;letter-spacing:.09em;text-transform:uppercase}.homeSubmit{width:calc(100% - 2.7rem);display:flex;align-items:center;justify-content:space-between;margin:0 1.35rem;padding:.85rem 1rem;color:#fff9ee;background:#b55339;border:1px solid #a54631;border-radius:10px;font-weight:700;transition:transform .16s ease,background .16s ease}.homeSubmit:hover:not(:disabled){background:#9e432e;transform:translateY(-1px)}.homeSubmit span{font-size:1.2rem}.homeSubmit:disabled{opacity:.48;cursor:default}.homeHint{padding:1rem 1.35rem .75rem;color:#768078;font-size:.64rem;letter-spacing:.02em;text-transform:none}.changeLogModal{width:min(660px,100%)}.modalBody.changeLogBody{overflow-y:auto}.changeLogStatus{margin:0;color:#667169;font:.9rem/1.5 Fraunces,Georgia,serif}.changeLogEntry{padding:1rem;background:#faf7f0;border:1px solid #ddd6c6;border-radius:10px}.changeLogEntryMeta{display:flex;justify-content:space-between;gap:.75rem;color:#6e786f;font:600 .68rem/1.3 DM Mono,monospace;letter-spacing:.04em;text-transform:uppercase}.changeLogEntry h2{margin:.45rem 0 .3rem;color:#2d4036;font:600 1.4rem/1.15 Fraunces,Georgia,serif}.changeLogEntry p{margin:.55rem 0 0;color:#59655d;font:.92rem/1.48 Fraunces,Georgia,serif}.changeLogHighlights{display:grid;gap:.5rem;margin:.8rem 0 0;padding-left:1.2rem;color:#59655d;font:.92rem/1.48 Fraunces,Georgia,serif}.releaseVersions{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem}.releaseVersion{padding:.35rem .7rem;color:#59655d;background:#faf7f0;border:1px solid #ddd6c6;border-radius:999px;font:600 .72rem/1 DM Mono,monospace;cursor:pointer}.releaseVersion:hover{border-color:#b9b19f}.releaseVersion.is-active{color:#faf7f0;background:#2d4036;border-color:#2d4036}.changeLogEntry .changeLogSummary{color:#34473c;font-weight:600}@media(max-width:760px){.home{grid-template-columns:1fr;gap:2.5rem;padding:2.25rem 1.25rem}.homeCard{max-width:430px}}.homeInfoDot{position:absolute;top:-.15rem;right:-.15rem;width:.6rem;height:.6rem;background:#e0913f;border:2px solid #19211e;border-radius:50%}.homeInvite{display:grid;gap:.3rem;padding:1.2rem 1.35rem 0}.homeInviteKicker{color:#89633a;font:700 .66rem/1 DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.homeInviteRoom{color:#24352e;font:600 1.6rem/1.1 Fraunces,Georgia,serif}.homeHint--center{text-align:center}.homeHomeLink{padding:0;color:#768078;background:none;border:0;font:inherit;text-decoration:underline;cursor:pointer}.homeHomeLink:hover{color:#b55339}.modalOverlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0e1611a8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{width:min(720px,100%);max-height:min(85vh,900px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;color:#2b382f;background:#f2eee4;border:1px solid rgba(255,255,255,.75);border-radius:14px;box-shadow:0 24px 64px #02080461}.modal--wide{width:min(1160px,100%);max-height:92vh}.modalHeader{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid #d6d0c0}.modalTitle{font:600 1.15rem/1.1 Fraunces,Georgia,serif}.modalClose{display:grid;place-items:center;width:30px;height:30px;padding:0;color:#5c675f;background:transparent;border:1px solid transparent;border-radius:50%;font-size:1rem}.modalClose:hover{background:#e2ddd1}.modalBody{min-height:0;padding:1rem;overflow:hidden}.modalFooter{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-top:1px solid #d6d0c0}.modalFooterActions{display:flex;flex:1;gap:.5rem}.modalFooterEnd{margin-left:auto}.modalFooter .primaryBtn,.modalFooter .secondaryBtn,.modalFooter .dangerBtn{width:auto;min-width:86px}@media(max-width:480px){.modalFooter .primaryBtn,.modalFooter .secondaryBtn,.modalFooter .dangerBtn{min-width:0}}.roomShell{--ink: #19211e;--forest: #29372f;--paper: #f1ede3;--paper-muted: #e4dfd1;--line: #d6d0c0;--text: #28332d;--muted: #70766c;--accent: #af5138;height:100vh;overflow:hidden;display:grid;grid-template-columns:minmax(225px,275px) minmax(440px,1fr) minmax(265px,295px);grid-template-rows:auto minmax(0,1fr);gap:12px 14px;padding:12px;color:var(--text);background:radial-gradient(circle at 50% -30%,#405648 0,#26382f 38%,#19211e)}@supports (height: 100dvh){.roomShell{height:100dvh}}.roomAppBar{grid-column:1 / -1;display:flex;align-items:center;min-height:34px;color:#e5e3d7}.roomBrand{display:inline-flex;align-items:center;gap:.55rem;color:inherit;text-decoration:none;font:600 1.1rem/1 Fraunces,Georgia,serif;letter-spacing:-.03em}.roomBrandMark{display:grid;place-items:center;width:22px;height:22px;color:#f4dca0;border:1px solid rgba(244,220,160,.5);border-radius:50%;font:.7rem/1 DM Mono,monospace}.roomAppBarMessage{min-width:0;margin:0 1rem 0 auto;overflow:hidden;color:#b9c2b4;white-space:nowrap;text-overflow:ellipsis;font:.65rem/1 DM Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.leftRail,.centerStage,.rightRail,.rightTop,.rightBottom{min-width:0;min-height:0}.rightRail{display:grid;grid-template-rows:auto minmax(180px,1fr);gap:14px}.leftRailStack{display:grid;gap:14px;align-content:start}.panel{overflow:hidden;min-height:0;color:var(--text);background:var(--paper);border:1px solid rgba(255,255,255,.7);border-radius:14px;box-shadow:0 12px 28px #050d0933}.panelHeader{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:.85rem .95rem .72rem;border-bottom:1px solid var(--line)}.panelTitle{color:#253229;font:600 1.08rem/1.1 Fraunces,Georgia,serif;letter-spacing:-.02em}.muted,.label{color:var(--muted);font-size:.73rem}.panelBody{padding:.85rem .95rem}.centerPanel{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}.centerBody{min-height:0;padding:1rem;overflow:auto}.statusPill,.meBadge,.hostBadge,.testBadge,.offlineBadge,.codePill,.timerBox,.timerPill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.33rem .6rem;color:#8e402f;background:#f8e8d7;border:1px solid #e7c2a8;font:500 .68rem/1 DM Mono,monospace}.hostBadge{color:#725811;background:#f7edc6;border-color:#e5d78d}.meBadge{color:#32604a;background:#dce9d9;border-color:#bcd1b5}.testBadge{color:#5d4c82;background:#ece5f4;border-color:#d3c3e3}.offlineBadge{color:#6c706a;background:#ebe9e2;border-color:#d0ccc0}.field{display:grid;gap:.38rem;margin-bottom:.85rem}.label{font-weight:700}.divider{height:1px;width:100%;margin:.85rem 0;background:var(--line)}.primaryBtn,.secondaryBtn,.dangerBtn{width:100%;min-height:34px;padding:.5rem .65rem;border:1px solid transparent;border-radius:8px;font-size:.78rem;font-weight:700;line-height:1.15;transition:transform .15s ease,background .15s ease}.primaryBtn{color:#fffaf0;background:var(--accent);border-color:#9d422e}.primaryBtn:hover:not(:disabled){background:#97432f;transform:translateY(-1px)}.secondaryBtn{color:#435149;background:#f8f5ee;border-color:#cec8ba}.secondaryBtn:hover:not(:disabled){background:#e8e4db}.dangerBtn{color:#fff5ef;background:#9d483c;border-color:#873b32}.primaryBtn:disabled,.secondaryBtn:disabled,.dangerBtn:disabled{opacity:.43;cursor:not-allowed}.btnCol,.btnRow{display:flex;gap:.5rem}.btnCol{flex-direction:column}.selectInput,.chatInput,.roleInlinePicker select{width:100%;min-height:34px;padding:.48rem .55rem;color:var(--text);background:#fbf9f4;border:1px solid #c8c5b9;border-radius:7px}.playerList,.player-list,.chatList,.scriptList{list-style:none;padding:0;margin:0}.playerList,.player-list{display:grid;gap:.45rem}.playerRow,.player-list li{padding:.65rem .7rem;background:#faf8f2;border:1px solid #ded8ca;border-radius:9px;font-size:.84rem}.playerName{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.playerBadges{display:inline-flex;gap:.25rem}.lobbyRemove{display:inline-flex;align-items:center;justify-content:center;padding:.33rem .6rem;color:#8d4336;background:#fff4ef;border:1px solid #e7c2b6;border-radius:999px;font:500 .68rem/1 DM Mono,monospace}.lobbyRemove:disabled{opacity:.5}.chat{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.chatBody{min-height:0;padding:.75rem .9rem;overflow:auto;font-size:.77rem;line-height:1.4}.chatList{display:grid;gap:.3rem}.chatMsg{padding:.3rem .55rem;border-left:2px solid transparent}.meMsg{border-left-color:#6e9876;background:#edf3e9}.chatEvent{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.3rem .55rem;color:#5a4632;background:#f6ecd7;border-left:3px solid #c9a35f;border-radius:0 6px 6px 0}.chatEvent strong{color:#3e2f1f}.chatEvent .chatTime{flex:0 0 auto}.chatAuthor{font-weight:700}.chatTime{color:#81867c;font:.62rem DM Mono,monospace}.chatInputRow{display:grid;grid-template-columns:1fr 70px;gap:.45rem;padding:.7rem .85rem;border-top:1px solid var(--line)}.mapPanel{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}.timeOfDayPill{display:inline-flex;align-items:center;gap:.35rem;padding:.32rem .55rem;border:1px solid;border-radius:999px;font:500 .68rem/1 DM Mono,monospace;white-space:nowrap}.timeOfDayPill span{font-size:.9rem;line-height:.7}.timeOfDayPill.night{color:#dce5d9;background:#35483f;border-color:#536d61}.timeOfDayPill.day{color:#76542d;background:#f7ead0;border-color:#dfc58f}.mapBody{display:flex;flex-direction:column;gap:.7rem;min-height:0;overflow:auto}.notesInput{width:100%;min-height:210px;padding:.65rem;color:#38443b;background:#fbf9f2;border:1px solid #cfc9ba;border-radius:8px;font-size:.79rem;line-height:1.45;resize:vertical}.roleRevealModal{width:min(460px,100%)}.roleRevealModalBody{display:grid;place-items:center;padding:1.45rem}.ownRoleReveal{display:grid;gap:.75rem;width:min(390px,100%)}.ownRoleRevealAlignment{font:600 .72rem/1 DM Mono,monospace;letter-spacing:.12em;text-align:center;text-transform:uppercase}.roleRevealModal .roleCard{background:transparent;border:0;border-radius:0;padding:.75rem .35rem}.roleRevealModal--good{color:#26452f;border-color:#7ca687;background:radial-gradient(circle at 50% 0,#eef7e7,#cadfc9)}.roleRevealModal--good .modalHeader,.roleRevealModal--good .modalFooter{border-color:#4879524d}.roleRevealModal--good .modalClose{color:#32604a}.roleRevealModal--good .modalClose:hover{background:#4d805929}.roleRevealModal--good .ownRoleRevealAlignment{color:#32604a}.roleRevealModal--good .roleCardDescription{color:#46664d}.roleRevealModal--evil{color:#f8ede1;border-color:#9a4b4a;background:radial-gradient(circle at 50% 0,#653b40,#241d28 72%)}.roleRevealModal--evil .modalHeader,.roleRevealModal--evil .modalFooter{border-color:#e5a59240}.roleRevealModal--evil .modalClose{color:#f2c7b7}.roleRevealModal--evil .modalClose:hover{background:#ffdccd24}.roleRevealModal--evil .ownRoleRevealAlignment{color:#f2c7b7}.roleRevealModal--evil .roleCardDescription{color:#e0c9bd}.roleRevealModal--evil .secondaryBtn{color:#f8ede1;border-color:#9b5a58;background:#301f2699}.roleRevealModal--evil .secondaryBtn:hover:not(:disabled){background:#522f37d9}.roleModalContent{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:0;max-height:65vh}.roleGridScroll{min-height:0;overflow:auto;padding:.2rem}.rolePicker{display:grid;gap:1rem}.roleGroupTitle{margin-bottom:.45rem;color:#657067;font-size:.74rem;font-weight:700;text-transform:uppercase}.roleListGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.roleListItem{padding:.3rem 0}.roleQuantityControl{display:inline-flex;align-items:center;gap:.45rem;margin-top:.2rem}.roleQuantityControl button{display:grid;place-items:center;width:24px;height:24px;padding:0;color:#435149;border:1px solid #c8c5b9;border-radius:6px;background:#fffdf8;font-size:1rem;line-height:1}.roleQuantityControl button:disabled{opacity:.45}.roleQuantityControl strong{min-width:1.2rem;text-align:center}.grimoireTable{display:grid;gap:.55rem}.grimoireTable{max-height:72vh;overflow:auto;padding-right:.2rem}.grimoireModalBody{padding:.8rem}.grimoireRow{display:grid;grid-template-columns:50px minmax(120px,1fr) minmax(170px,1fr) 86px minmax(180px,1fr) minmax(170px,1fr);gap:.65rem;align-items:center;padding:.6rem;background:#faf8f2;border:1px solid #ded8ca;border-radius:8px}.grimoireHeader{position:sticky;top:0;z-index:1;background:#ece7da;font-size:.7rem;font-weight:700}.grimoireSeat,.grimoirePlayer{font-weight:700}.grimoireRoleBadge{display:inline-flex;align-items:center;gap:.4rem;padding:.15rem .45rem .15rem .15rem;border:1px solid #d8d1c3;border-radius:8px;background:#fffdf8}.grimoireRoleBadge span{font-size:.72rem}.grimoireStatusToken{width:34px;height:34px;object-fit:contain}.grimoireReminderList{display:flex;flex-wrap:wrap;gap:.35rem}.grimoireReminderChip{padding:.25rem .45rem;border:1px solid #d4cdc0;border-radius:999px;color:#4d5b51;background:#f7f5ee;font-size:.68rem}.grimoireControls{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:.4rem}.grimoireControls .selectInput{margin:0}.scriptDropdown{margin-top:.5rem;padding:.45rem;background:#faf8f2;border:1px solid #d8d1c3;border-radius:8px}.scriptList{display:grid;gap:.25rem}.scriptItem{width:100%;padding:.45rem;color:#3e4b42;background:transparent;border:0;border-radius:6px;text-align:left}.scriptItem:hover{background:#e5ece1}.phaseRow{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.phaseBtn{padding:.38rem .5rem;color:#46534a;background:#f7f5ee;border:1px solid #d5d0c3;border-radius:6px}.phaseBtn.active{color:#fff8ef;background:#af5138;border-color:#9d422e}.customScriptPicker{display:grid;gap:.38rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--line)}.customScriptsButton{width:100%}.customScriptsModal{width:min(720px,calc(100vw - 2rem))}.customScriptsTabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}.customScriptsTabs button{padding:.38rem .5rem;color:#5e6c62;background:transparent;border:0;border-radius:6px;font-size:.76rem}.customScriptsTabs button:hover,.customScriptsTabs button.active{color:#fffaf0;background:#52665a}.customScriptsSection{display:grid;gap:.75rem}.customScriptsSection>.muted{margin:0;line-height:1.45}.customScriptsSearchGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.customScriptsResults{display:grid;gap:.5rem;max-height:330px;overflow:auto}.customScriptRow{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;padding:.65rem .7rem;background:#faf8f2;border:1px solid #ded8ca;border-radius:9px;font-size:.82rem}.customScriptRow>div{min-width:0}.customScriptRow strong{color:#34443a}.customScriptRow .primaryBtn{width:auto;min-width:106px;flex:0 0 auto}.customScriptsPagination{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.customScriptFileInput{color:#59665c;font-size:.78rem}.customScriptJsonInput{min-height:200px;resize:vertical}.customScriptTypeField{display:grid;gap:.35rem;max-width:240px;color:#435248;font-size:.8rem;font-weight:600}.roomEntry{display:grid;place-items:center;min-height:100vh;padding:1.25rem;background:radial-gradient(circle at 20% 20%,rgba(219,143,84,.14),transparent 28rem),#19211e}.roomLoading{color:#eef0e6;text-align:center}.roomLoading span{color:#f4dca0}.roomLoading h2{margin:.5rem 0;font:600 1.8rem Fraunces,Georgia,serif}.roomLoading p{margin:0;color:#bdc7b8;font-size:.8rem}@media(max-width:1050px){.roomShell{height:auto;min-height:100vh;overflow:visible;grid-template-columns:minmax(190px,.38fr) minmax(0,1fr)}.rightRail{grid-column:1 / -1;grid-template-columns:minmax(250px,.9fr) minmax(280px,1.1fr);grid-template-rows:minmax(220px,auto)}.rightTop,.rightBottom{min-height:260px}}@media(max-width:700px){.roomShell{grid-template-columns:1fr;padding:.55rem}.roomAppBar{grid-column:1}.roomAppBarMessage{display:none}.leftRail,.rightRail{grid-column:1}.rightRail{grid-template-columns:1fr;grid-template-rows:auto auto}.centerStage{min-height:550px}.roleListGrid,.customScriptsSearchGrid{grid-template-columns:1fr}.customScriptRow{align-items:flex-start;flex-direction:column}.customScriptRow .primaryBtn{width:100%}}.voiceControls{display:grid;gap:.45rem;padding:.55rem;background:#f7f6ef;border:1px solid #d6d5c9;border-radius:8px}.voiceControls summary{cursor:pointer;color:#435149;font-size:.74rem;font-weight:700}.voiceControlsHead{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:#435149;font-size:.74rem;font-weight:700}.voiceStatus{color:var(--muted);font:500 .62rem/1 DM Mono,monospace}.voiceStatus--connected{color:#32604a}.voiceStatus--unavailable,.voiceStatus--blocked{color:#9d483c}.voiceTargetField{display:grid;gap:.3rem;color:var(--muted);font-size:.68rem}.voiceControls .primaryBtn,.voiceControls .secondaryBtn{min-height:30px}.audioMixList{display:grid;gap:.35rem;padding-top:.3rem;border-top:1px solid #d6d5c9}.audioMixRow{display:grid;grid-template-columns:minmax(0,1fr) 90px 35px;align-items:center;gap:.4rem;color:#526158;font-size:.72rem}.audioMixRow output{color:var(--muted);font:500 .62rem DM Mono,monospace}.townPlayerVoteMarker{position:absolute;top:-6px;right:-12px;z-index:2}.voteYesMarker{display:inline-grid;place-items:center;width:26px;height:26px;color:#a63832;border:2px solid #c95a50;border-radius:50%;background:#f9eee8;box-shadow:0 3px 8px #0000005c}.voteTrackerOverlay{position:absolute;z-index:4;right:12px;bottom:12px;display:grid;gap:.28rem;max-width:min(260px,calc(100% - 24px));padding:.65rem .72rem;color:#f5f0e4;border:1px solid rgba(245,225,175,.45);border-radius:9px;background:#14221bdb;box-shadow:0 8px 20px #00000047;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.voteTrackerTarget{color:#e9d396;font:700 .66rem/1.2 DM Mono,monospace;letter-spacing:.05em;text-transform:uppercase}.voteTrackerCurrent,.voteTrackerNext{color:#d4dbd1;font-size:.7rem}.voteTrackerNext{color:#f0dc8c;font-weight:700}.voteTrackerLegend{display:flex;flex-wrap:wrap;gap:.45rem;padding-top:.3rem;border-top:1px solid rgba(255,255,255,.16);color:#d4dbd1;font-size:.62rem}.voteTrackerLegend span{display:inline-flex;align-items:center;gap:.22rem}.voteTrackerLegend .voteYesMarker{width:17px;height:17px;border-width:1px}.voteTrackerLegend .voteYesMarker .appIcon{width:11px;height:11px}.voteCurrentMarker{display:inline-grid;place-items:center;width:15px;height:15px;color:#f0d77d;border:1px solid #f0d77d;border-radius:50%;font-size:.9rem;line-height:1}.srOnly{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes currentVoteFocus{0%{filter:drop-shadow(0 0 0 rgba(240,215,125,.2));transform:scale(1)}to{filter:drop-shadow(0 0 10px rgba(240,215,125,.95));transform:scale(1.07)}}@keyframes nextVotePulse{0%{opacity:.62}to{opacity:1}}.draftButton{margin-top:.5rem}.draftToggle{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.7rem;font-size:.8rem;font-weight:600}.draftTable{display:grid;gap:.35rem;max-height:55vh;overflow:auto;padding-right:.2rem}.draftRow{display:grid;grid-template-columns:22px 40px minmax(110px,1fr) minmax(170px,1.4fr) 58px;gap:.5rem;align-items:center;padding:.3rem .4rem;background:#faf8f2;border:1px solid #ded8ca;border-radius:8px}.draftRow .selectInput{margin:0}.draftHeader{background:none;border-color:transparent;color:#657067;font-size:.7rem;font-weight:700;text-transform:uppercase}.draftHandle{color:#9e855c;cursor:grab;letter-spacing:-.15em;text-align:center;-webkit-user-select:none;user-select:none}.draftSeat{color:#89633a;font:700 .75rem/1 DM Mono,monospace;text-align:center}.draftPlayer{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draftMove{display:flex;gap:.2rem}.draftMove button{width:26px;height:26px;padding:0;border:1px solid #d4cdc0;border-radius:6px;color:#4d5b51;background:#f7f5ee}.draftMove button:disabled{opacity:.35}.draftRow.is-dragging{opacity:.45}.draftTable.is-random .draftHandle{visibility:hidden}.draftError{color:#a13f38;font-size:.8rem}.appCheckbox{appearance:none;display:inline-grid;place-content:center;flex:0 0 auto;width:20px;height:20px;margin:0;background:#fbf9f2;border:1px solid #b9b1a0;border-radius:5px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.appCheckbox:after{content:"";width:10px;height:6px;margin-top:-2px;border:solid #fffaf0;border-width:0 0 2px 2px;transform:rotate(-45deg) scale(0);transition:transform .12s ease}.appCheckbox:checked{background:var(--accent);border-color:#9d422e}.appCheckbox:checked:after{transform:rotate(-45deg) scale(1)}.appCheckbox:focus-visible{outline:2px solid rgba(175,81,56,.4);outline-offset:2px}.appCheckbox:disabled{cursor:not-allowed}.appCheckbox:disabled:checked{background:#b9b2a3;border-color:#a39b8b}.storytellerCharactersButton{margin-bottom:.5rem}.storytellerCharactersIntro{margin:0 0 .75rem}.storytellerCharacterOptions{display:grid;gap:.4rem;max-height:60vh;overflow:auto;padding-right:.2rem}.storytellerCharacterOption{display:grid;grid-template-columns:36px minmax(0,1fr) 20px;gap:.65rem;align-items:center;padding:.45rem .6rem;background:#faf8f2;border:1px solid #ded8ca;border-radius:9px;cursor:pointer}.storytellerCharacterOption:hover{background:#f4f0e6}.storytellerCharacterOption.is-locked{cursor:default;opacity:.8}.storytellerCharacterOption img{width:36px;height:36px;border-radius:50%}.storytellerCharacterText{display:grid;gap:.1rem;min-width:0}.storytellerCharacterName{font-size:.82rem;font-weight:700}.storytellerCharacterMeta{color:#89633a;font:600 .6rem/1.2 DM Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.storytellerCharacterDescription{color:#687269;font-size:.7rem;line-height:1.35}.draftCharacterHeader{display:flex;align-items:center;gap:.5rem}.draftClear{padding:0;color:var(--accent);background:none;border:0;font:inherit;text-transform:none;cursor:pointer;text-decoration:underline}.houseRules{display:grid;gap:.4rem;margin:0;padding:.6rem .6rem .6rem 1.8rem;color:#687269;background:#fbfaf5;border:1px solid #d9d3c5;border-radius:9px;font-size:.7rem;line-height:1.35}.draftPair{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:.5rem;align-items:center;margin-bottom:.7rem}.draftPair .selectInput{margin:0}.draftPairLabel{font-size:.8rem;font-weight:600}.storytellerCharacterList{display:grid;gap:.6rem}.storytellerEntry{display:grid;gap:.45rem}.storytellerEntry>.jinxList,.storytellerEntry>.houseRules{margin-left:1.75rem}.jinxList{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.jinxItem{display:flex;align-items:center;gap:.65rem;padding:.6rem;background:#fbfaf5;border:1px solid #d9d3c5;border-radius:9px}.jinxPair{display:flex;flex:0 0 auto}.jinxPair img{width:38px;height:38px;object-fit:contain;border:1px solid #d9d3c5;border-radius:50%;background:#fffdf8}.jinxPair img+img{margin-left:-12px}.jinxText{display:grid;gap:.14rem;min-width:0}.jinxText strong{color:#354239;font-size:.8rem;font-weight:700}.jinxText p{margin:0;color:#687269;font-size:.7rem;line-height:1.35}.roleModalContent--tabbed{grid-template-rows:auto minmax(0,1fr) auto;height:min(65vh,100%)}.voteTrackerOverlay--block .voteTrackerTarget{color:#f0b49a}.nightOrderList{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.nightOrderStep label,.nightOrderStep .nightOrderRow{display:grid;grid-template-columns:auto 38px minmax(0,1fr);gap:.65rem;align-items:center;padding:.6rem;color:#354239;background:#fbfaf5;border:1px solid #d9d3c5;border-radius:9px;cursor:pointer}.nightOrderStep label:hover{border-color:#8ba287}.nightOrderStep input{accent-color:#52665a}.nightOrderIcon{width:38px;height:38px;object-fit:contain;border:1px solid #d9d3c5;border-radius:50%;background:#fffdf8}.nightOrderSymbol{display:grid;place-items:center;color:#52665a;font-size:1.15rem}.nightOrderText{display:grid;gap:.18rem;min-width:0}.nightOrderText strong{font-size:.8rem;font-weight:700}.nightOrderDescription{color:#687269;font-size:.7rem;line-height:1.35}.nightOrderHolders{display:flex;flex-wrap:wrap;gap:.3rem}.nightOrderHolder{padding:.08rem .42rem;color:#34443a;background:#eef2e9;border:1px solid #cfd9c9;border-radius:999px;font-size:.68rem;font-weight:600}.nightOrderHolder--dead{color:#5d5566;background:#e9e4ee;border-color:#cbc1d6}.nightOrderStep.is-done label{background:#f1efe8;opacity:.55}.nightOrderStep.is-done strong{text-decoration:line-through}.nightOrderToken{color:#4a5a4f;font-size:.64rem;font-weight:700;letter-spacing:.04em}.nightOrderReminderHint{display:inline-block;margin-left:.2rem;padding:0 .35rem;color:#6b4f2a;background:#f6ecd7;border:1px solid #e2cfa7;border-radius:999px;font-size:.62rem;font-weight:600;vertical-align:1px}.nightOrderHint{color:#8a6d3b;font-size:.68rem;font-style:italic}.nightOrderBluff{display:inline-flex;align-items:center;gap:.25rem;padding:.06rem .42rem .06rem .12rem;color:#34443a;background:#f6f1e4;border:1px solid #ded3b8;border-radius:999px;font-size:.68rem;font-weight:600}.nightOrderBluff img{width:18px;height:18px;object-fit:contain}.executionChoices{display:grid;gap:.5rem}.executionChoice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:start;padding:.6rem .7rem;background:#fbfaf5;border:1px solid #d9d3c5;border-radius:9px;cursor:pointer}.executionChoice:has(input:checked){border-color:#699071;box-shadow:0 0 0 2px #6990712e}.executionChoice input{margin-top:.15rem;accent-color:#52665a}.executionChoice>span{display:grid;gap:.15rem;font-size:.8rem}.executionChoice .muted{font-size:.72rem}.movementStartRow{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.5rem;align-items:stretch}.movementStartRow .selectInput,.movementStartRow .primaryBtn{margin:0}.voteCountBadge{position:absolute;top:-10px;right:-30px;z-index:3;padding:0 5px;color:#fffaf0;background:#a63832;border:1px solid #f9eee8;border-radius:999px;box-shadow:0 2px 5px #0000005c;font:700 .66rem/1.45 DM Mono,monospace}.leftRailStack--fit{height:100%;grid-template-rows:minmax(0,max-content) auto}.roomSettingsPanel{display:flex;flex-direction:column}.roomSettingsPanel .panelBody{flex:1 1 auto;min-height:0;overflow:auto}.roomSettingsActions{padding:.7rem .95rem;border-top:1px solid var(--line);background:#f5f4ec}.settingRow{display:grid;grid-template-columns:minmax(0,1fr) 128px;align-items:center;gap:.2rem .6rem;padding:.5rem 0;border-bottom:1px solid rgba(214,208,192,.65)}.settingRow:last-child{border-bottom:0}.settingRowLabel{color:#2b382f;font-size:.76rem;font-weight:700}.settingRowControl{display:flex;justify-content:flex-end;min-width:0}.settingRowControl>.selectInput,.settingRowControl>.secondaryBtn{width:100%;min-height:30px;padding:.3rem .45rem;font-size:.76rem}.settingRowControl>.codePill{width:100%;text-align:center}.settingRowValue{color:#435149;font-size:.76rem;font-weight:700;text-align:right}.settingRowDescription{grid-column:1 / -1;color:var(--muted);font-size:.68rem;line-height:1.35}.settingRowLink{padding:0;color:var(--accent);background:none;border:0;font:inherit;text-decoration:underline;cursor:pointer}.roomSettingsActions{display:grid;gap:.45rem}.roomRulesSummary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.2rem .5rem;padding-top:.45rem;border-top:1px solid var(--line);color:var(--muted);font-size:.68rem}.roomSettingsModal{display:grid}.setupModeToggle{display:grid;grid-template-columns:1fr 1fr;padding:.2rem;background:#ece7da;border:1px solid #d6d0c0;border-radius:9px}.setupModeToggle button{padding:.4rem .5rem;color:#59665d;background:transparent;border:0;border-radius:7px;font-size:.78rem;font-weight:700;cursor:pointer}.setupModeToggle button.is-active{color:#2b382f;background:#fffaf0;box-shadow:0 1px 2px #2b382f2e}.roleGridScroll .storytellerCharacterOptions{max-height:none;overflow:visible}.nightOrderShowAll{display:flex;align-items:center;gap:.4rem;margin-bottom:.55rem;color:#59665d;font-size:.72rem;font-weight:600;cursor:pointer}.nightOrderShowAll input{accent-color:#52665a}.nightOrderStep .nightOrderRow{cursor:default}.nightOrderStep.is-not-in-play .nightOrderRow{color:#7d8379;background:transparent;border-style:dashed}.nightOrderStep.is-not-in-play .nightOrderRow:hover{border-color:#d9d3c5}.nightOrderStep.is-not-in-play .nightOrderIcon{filter:grayscale(1);opacity:.55}.nightOrderCheckSpacer{width:13px;margin:3px 3px 3px 4px}.nightOrderNotInPlay{margin-left:.3rem;padding:0 .35rem;color:#6f7569;background:#ece9e0;border-radius:999px;font-size:.6rem;font-weight:600;text-decoration:none}.phaseActionsPanel{display:flex;flex-direction:column}.phaseActionsPanel .panelBody{flex:1 1 auto;min-height:0;overflow:auto}.phaseActionsFooter{display:grid;gap:.4rem;padding:.7rem .95rem;border-top:1px solid var(--line);background:#f5f4ec}.phaseActionsHint{color:var(--muted);font-size:.68rem;text-align:center}.phaseStepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:.35rem}.phaseStepper span{height:4px;border-radius:2px;background:#d6d0c0}.phaseStepper span.is-reached{background:var(--accent)}.phaseNow{margin-bottom:.75rem;color:#59665d;font-size:.72rem;font-weight:700}.phaseCard{display:grid;gap:.4rem;margin-bottom:.85rem;padding:.6rem;color:#354239;background:#fbfaf5;border:1px solid #d9d3c5;border-radius:9px;font-size:.76rem;line-height:1.35}.phaseCardTitle{font-weight:700}.phaseCardActions{display:flex;gap:.4rem}.phaseCardActions .secondaryBtn{flex:1}.phaseCardLink{justify-self:start;padding:0;color:var(--accent);background:none;border:0;font-size:.72rem;font-weight:600;text-decoration:underline;cursor:pointer}.phaseCardLink:disabled{color:var(--muted);text-decoration:none;cursor:default}.phaseActionsFooter .phaseCardLink{justify-self:center}.dialogBody{display:grid;gap:.6rem;color:#354239;font-size:.82rem;line-height:1.45}.dialogBody p{margin:0}.dialogBody .muted{font-size:.74rem}.dialogBody .executionChoice span{display:grid;gap:.15rem}.roomAppBarActions{display:flex;align-items:center;gap:.4rem}@media(max-width:700px){.roomAppBarActions{margin-left:auto}}.appBarButton{position:relative;display:grid;place-items:center;width:32px;height:32px;padding:0;color:#e5e3d7;border:1px solid rgba(229,227,215,.4);border-radius:8px;background:#101e177a;cursor:pointer}.appBarButton:hover{background:#394e41cc}.appBarButton.is-muted{color:#f2b8a8;border-color:#f2b8a899}.appBarButton--exit:before{content:"";position:absolute;top:4px;bottom:4px;left:calc(-.65rem - 1.5px);width:1px;background:#e5e3d74d;pointer-events:none}.appBarButton--exit{margin-left:.9rem;color:#f3b8a6;background:#af51382e;border-color:#e58c7399}.appBarButton--exit:hover{color:#fffaf0;background:#af513873}.appBarButton--exit.appBarButton--calm{color:#e5e3d7;border-color:#e5e3d766;background:#101e177a}.appBarButton--exit.appBarButton--calm:hover{background:#394e41cc}.appBarDot{position:absolute;top:-3px;right:-3px;width:9px;height:9px;border:1px solid #19211e;border-radius:50%;background:#e0a458}.appIcon{display:inline-block;width:1.05rem;height:1.05rem;background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.roomSettingsLocked{margin:0 0 .5rem}.rightRail--single{grid-template-rows:minmax(0,1fr)}.leftRailStack--notes{height:100%;grid-template-rows:auto minmax(0,1fr)}.notesPanel{display:flex;flex-direction:column;min-height:0}.notesPanel .panelBody{display:flex;flex:1 1 auto;min-height:0}.notesPanel .field{flex:1 1 auto;margin:0}.notesPanel .notesInput{height:100%;min-height:120px;resize:none}.lobbyLastGame{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.3rem .6rem;margin-bottom:.85rem;padding:.55rem .7rem;color:#5a4632;background:#f6ecd7;border-left:3px solid #c9a35f;border-radius:0 6px 6px 0;font-size:.76rem}.lobbyPlayersHeader{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:26px;margin-bottom:.5rem}.lobbyPlayersTitle{display:flex;align-items:baseline;gap:.5rem}.lobbyPlayersCount{color:var(--muted);font:500 .68rem/1 DM Mono,monospace}.lobbyAddTestPlayer{padding:.33rem .65rem;color:#435149;background:#f8f5ee;border:1px solid #cec8ba;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1.15}.lobbyAddTestPlayer:hover:not(:disabled){background:#e8e4db}.lobbyAddTestPlayer:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.roomShell--game .centerStage{order:1}.roomShell--game .rightRail{order:2}.roomShell--game .leftRail{order:3}.leftRailStack--notes{height:auto}}.setupModeField{margin:0}.startGameHint{color:var(--muted);font-size:.68rem;text-align:center}@media(max-width:1050px){.rightRail--single{grid-template-columns:minmax(0,1fr)}}@media(min-width:701px)and (max-width:1050px){.leftRailStack--fit{grid-template-rows:minmax(0,1fr)}}.profileModal{width:min(420px,100%)}.profileField{margin:0}.profileName{color:#2f4036;font-size:.9rem;font-weight:700}.panelHeader .statusPill,.panelHeader .timeOfDayPill{margin-block:-.35rem}.lobbyRoomCode{display:inline-flex;align-items:center;gap:.35rem;padding:0;color:inherit;background:none;border:0;font:inherit;letter-spacing:inherit;cursor:pointer}.lobbyRoomCode .appIcon{width:.8rem;height:.8rem;color:#89633a}.lobbyRoomCode:hover,.lobbyRoomCode:hover .appIcon{color:#8e402f}.chatMeta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem;line-height:1.2}.chatMsg.groupedMsg{margin-top:-.3rem;padding-top:.1rem}.chatMsg:has(+.groupedMsg){padding-bottom:0}.chatMsg--storyteller{background:#f8e8d7;border-left:3px solid #af5138;border-radius:0 6px 6px 0}.chatMsg--storyteller .chatAuthor{color:#8e402f}.chatStorytellerTag,.chatLocationTag{padding:.05rem .4rem;border-radius:999px;font:500 .6rem/1.2 DM Mono,monospace}.chatStorytellerTag{color:#fffaf0;background:#af5138}.chatLocationTag{color:#5c675f;background:#ece7da}.chatDivider{display:flex;align-items:center;gap:.5rem;color:#81867c;font:.62rem DM Mono,monospace}.chatDivider:before,.chatDivider:after{content:"";flex:1;height:1px;background:var(--line)}.lobbySpeaking{display:inline-flex;margin-left:.4rem;color:#a8742a;vertical-align:-.12rem}.lobbySpeaking .appIcon{width:.95rem;height:.95rem}.mapPanelHeaderActions{display:flex;align-items:center;gap:.45rem}.placeVisibility{padding:.28rem .6rem;color:#fffaf0;background:#af5138;border:1px solid #873b32;border-radius:999px;font:500 .66rem/1 DM Mono,monospace;cursor:pointer}.placeVisibility.is-hidden{color:#5c675f;background:#ece7da;border-color:#d6d0c0}.mapBody{padding:.6rem}.placeScene{position:relative;flex:1 1 auto;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;color:#f7f0df;background:#1f2f27;border:1px solid #48594a;border-radius:12px;isolation:isolate}.placeScene:before{content:"";position:absolute;inset:0;z-index:-2;background:var(--place-backdrop) center / cover;filter:saturate(.5) brightness(.3) blur(2px);transform:scale(1.06)}.placeScene:after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,#1f2f2759,#0a130fe6 75%)}.placeStage{position:relative;container-type:size;display:grid;place-items:center;min-height:0}.placeRing,.placeRoads{--ring-width: min(100cqw, 160cqh);--ring-radius: calc(var(--ring-width) * .22);--token-size: clamp(30px, calc(var(--ring-width) * var(--token-ratio)), 76px)}.placeRing{position:relative;width:var(--ring-width);aspect-ratio:16 / 10}.placeToken{left:calc(50% + var(--ring-radius) * var(--cos));top:calc(50% + var(--ring-radius) * var(--sin))}.voteNextArrow{position:absolute;left:50%;top:50%;z-index:1;width:calc(var(--ring-radius) * .4);height:0;transform:rotate(var(--angle)) translate(calc(var(--ring-radius) * .3));transform-origin:0 0;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.42));animation:nextVotePulse .9s ease-in-out infinite alternate}.voteNextArrow:before{content:"";position:absolute;left:0;right:12px;top:-4px;height:8px;background:#e5c15e;border-radius:4px}.voteNextArrow:after{content:"";position:absolute;right:0;top:-12px;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:18px solid #e5c15e}.placeToken,.placeStoryteller{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px;transform:translate(-50%,-50%)}.placeTokenName{max-width:max(96px,calc(var(--token-size) * 2));padding:2px 7px;overflow:hidden;color:#fffffff2;background:#00000073;border-radius:7px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:clamp(10px,calc(var(--token-size) * .13),13px);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.placeToken.is-speaking .placeTokenName{color:#1c2a23;background:#e6c985}.placeStoryteller{left:50%;top:50%}.placeStorytellerCoin{display:grid;place-items:center;width:calc(var(--token-size) * .82);height:calc(var(--token-size) * .82);color:#fffaf0;background:radial-gradient(circle at 40% 35%,#e9a689,#af5138 70%);border:3px solid #873b32;border-radius:50%;box-shadow:0 4px 10px #0006;font-size:calc(var(--token-size) * .32)}.placeStoryteller .placeTokenName{background:#af5138}.placeStoryteller.is-speaking .placeStorytellerCoin{box-shadow:0 0 0 3px #1f2f27,0 0 0 6px #e6c985,0 0 16px 6px #e6c98580}.placeStoryteller.is-hidden{opacity:.55}.placeName{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#f4ecd861;font:600 clamp(12px,calc(var(--token-size) * .22),20px) "Fraunces",Georgia,serif;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.placePaths{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;padding:.6rem;background:#00000059;border-top:1px solid rgba(245,225,175,.15)}.placeSign{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;color:#2f2414;background:#e8d3a6;border:1px solid #b68a3e;border-radius:6px;box-shadow:0 2px #8a6a35;font-size:.74rem;font-weight:700;cursor:pointer}.placeSign small{color:#6b5530;font:500 .66rem/1 DM Mono,monospace}.placeSign:hover:not(:disabled){background:#f1dfb6}.placeSign:disabled{opacity:.55;cursor:not-allowed}.placeRoads{position:absolute;inset:0;margin:0;pointer-events:none}.placeRoad,.placeExit{--edge: min(calc((50cqw - 84px) * var(--inv-cos)), calc((50cqh - 30px) * var(--inv-sin)));--road-start: calc(var(--ring-radius) + var(--token-size) * .5 + 26px)}.placeRoad{position:absolute;left:50%;top:50%;width:max(0px,calc(var(--edge) - var(--road-start) - 16px - 34px * var(--abs-cos)));height:6px;margin-top:-3px;background:repeating-linear-gradient(90deg,rgba(232,211,166,.3) 0 10px,transparent 10px 18px);border-radius:3px;transform:rotate(var(--angle)) translate(var(--road-start));transform-origin:0 50%}.placeExit{position:absolute;left:calc(50% + var(--cos) * var(--edge));top:calc(50% + var(--sin) * var(--edge));display:grid;justify-items:center;gap:3px;white-space:nowrap;transform:translate(-50%,-50%);pointer-events:auto}.placeOccupants{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:2px;max-width:168px}.placeOccupant{display:grid;place-items:center;width:18px;height:18px;color:#4a3b22;background:radial-gradient(circle at 40% 35%,#fbf6ea,#d9cfb8);border:1.5px solid #b68a3e;border-radius:50%;font:600 8px/1 Fraunces,Georgia,serif}.placeOccupant.is-dead{color:#d6d6cf;background:radial-gradient(circle at 40% 35%,#6d716c,#3e423f);border-color:#8d8f88}.placeOccupant.is-ghost{color:#efe9fa;background:radial-gradient(circle at 40% 35%,#9a87bd,#54436f);border-color:#b3a2d3}.placeSign .placeOccupant{width:16px;height:16px;font-size:7px}.placeStoryteller .placeTokenName{max-width:none}@container (orientation: portrait){.placeRing,.placeRoads{--ring-width: min(100cqw, 100cqh);--ring-radius: calc(var(--ring-width) * .34);--token-size: clamp(34px, calc(var(--ring-width) * var(--token-ratio) * 1.3), 72px)}.placeRing{aspect-ratio:1}}.placeCircle{position:absolute;left:50%;top:50%;width:calc(var(--ring-radius) * 2);height:calc(var(--ring-radius) * 2);transform:translate(-50%,-50%);border:1px dashed rgba(230,201,133,.22);border-radius:50%;pointer-events:none}.placeCoin{position:relative;display:grid;place-items:center;width:var(--token-size);height:var(--token-size);color:#4a3b22;background:radial-gradient(circle at 40% 35%,#fbf6ea,#d9cfb8);border:3px solid #b68a3e;border-radius:50%;box-shadow:0 4px 10px #0006;font:600 calc(var(--token-size) * .32)/1 "Fraunces",Georgia,serif;letter-spacing:.02em}.placeCoin.is-dead{color:#d6d6cf;background:radial-gradient(circle at 40% 35%,#6d716c,#3e423f);border-color:#8d8f88}.placeToken.is-speaking .placeCoin{box-shadow:0 0 0 3px #1f2f27,0 0 0 6px #e6c985,0 0 18px 7px #e6c98573}.placeToken.is-away .placeCoin{opacity:.38}.placeToken.is-away .placeTokenName{color:#fff9;background:#0000004d}.placeTokenWhere{color:#e8d3a6;font:500 clamp(9px,calc(var(--token-size) * .12),11px)/1 "DM Mono",monospace}.townPlayerToken--currentVoter .placeCoin{animation:currentVoteFocus .9s ease-in-out infinite alternate}.placeStorytellerCoin{width:var(--token-size);height:var(--token-size)}.placeCoin.is-ghost{color:#efe9fa;background:radial-gradient(circle at 40% 35%,#9a87bd,#54436f);border-color:#b3a2d3}.placeStage.has-roads .placeRing,.placeStage.has-roads .placeRoads{--ring-width: max(160px, min( calc(100cqw - 40px) , calc(160cqh - 170px) ))}@container (orientation: portrait){.placeStage.has-roads .placeRing,.placeStage.has-roads .placeRoads{--ring-width: max(160px, min( calc(100cqw - 40px) , calc(100cqh - 88px) ))}}.placeStorytellerCoin{font:600 calc(var(--token-size) * .32)/1 "Fraunces",Georgia,serif;letter-spacing:.02em}.placeStorytellerCrown{margin-bottom:-1px;color:#e6c985;font:600 clamp(9px,calc(var(--token-size) * .14),11px)/1 "DM Mono",monospace;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.6);white-space:nowrap}.voteYesMarker .appIcon{width:15px;height:15px}.customScriptName{display:flex;align-items:center;gap:.4rem;min-width:0}.customScriptLink{display:inline-grid;place-items:center;flex:0 0 auto;color:#89633a}.customScriptLink:hover{color:var(--accent)}.customScriptLink .appIcon{width:.8rem;height:.8rem}.distribution{display:grid;gap:.75rem}.distribution>.muted{margin:0;font-size:.76rem;line-height:1.45}.distributionList{display:grid;gap:.35rem}.distributionRow{display:grid;grid-template-columns:74px repeat(4,minmax(0,1fr));align-items:center;padding:.5rem .6rem;color:#2b382f;background:#faf8f2;border:1px solid #ded8ca;border-radius:9px;font-size:.82rem;font-variant-numeric:tabular-nums}.distributionRow>span{text-align:center}.distributionRow>span:first-child{font-weight:700;text-align:left}.distributionRow>span:nth-child(4){border-left:1px solid #ded8ca}.distributionRow>span.is-zero{color:#b3ab9b}.distributionRow--header{position:sticky;top:0;z-index:1;padding:.55rem .6rem;color:#59665d;background:#ece7da;border-radius:8px;box-shadow:0 -.3rem 0 .15rem #f2eee4;font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.distributionRow--header>span:first-child{font-weight:700}.distributionRow.is-selected{background:#fffaf0;border-color:#af8b52;box-shadow:inset 3px 0 #af5138}@media(max-width:620px){.distributionRow{grid-template-columns:52px repeat(4,minmax(0,1fr))}.distributionRow--header{font-size:.58rem;letter-spacing:0}}.roleSelectionSummary{display:grid;gap:.4rem;margin-top:.7rem;padding-top:.7rem;border-top:1px solid #ded8ca}.roleCountChips{display:flex;flex-wrap:wrap;gap:.35rem}.roleCountChip{padding:.22rem .6rem;color:#5d685f;border:1px solid #d4cdc0;border-radius:999px;background:#f7f5ee;font-size:.72rem}.roleCountChip strong{font-variant-numeric:tabular-nums}.roleCountChip--ok{color:#2f5b3b;border-color:#a9c4a6;background:#eaf3e6}.roleCountChip--ok:after{content:" ✓"}.roleCountChip--over{color:#8f3530;border-color:#e0aba4;background:#f9e9e6}.roleSelectionNote{color:#61695f;font-size:.73rem}.roleCard{display:grid;grid-template-columns:48px minmax(0,1fr);gap:.65rem;align-items:center;padding:.6rem;color:#354239;background:#fbfaf5;border:1px solid #d9d3c5;border-radius:9px;text-align:left}.roleCard--selectable{cursor:pointer}.roleCard--disabled{opacity:.45;cursor:not-allowed}.roleCardIcon{width:48px;height:48px;border-radius:50%}.roleCardName{margin-bottom:.14rem;font-size:.8rem;font-weight:700}.roleCardDescription{color:#687269;font-size:.7rem;line-height:1.35}.roleCard--selectable:hover{border-color:#8ba287;background:#f3f7f0}.roleCard--selected{border-color:#699071;box-shadow:0 0 0 2px #6990713d}.roleCard--correct{border-color:#548c61}.roleCard--error{border-color:#b55542}.grimoireModalBody{display:grid;grid-template-rows:minmax(0,1fr);padding:.8rem}.grimoireBoard{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);grid-template-rows:minmax(0,1fr);gap:.8rem;min-height:0}.grimoirePlayerList{min-height:0;overflow:auto;display:grid;grid-auto-rows:max-content;align-content:start;gap:.35rem;padding-right:.2rem}.grimoireListHeader,.grimoirePlayerRow{display:grid;grid-template-columns:42px minmax(88px,1fr) minmax(130px,1.15fr) 78px minmax(110px,1.1fr) 16px;gap:.45rem;align-items:center}.grimoireListHeader{position:sticky;top:0;z-index:1;padding:.55rem .6rem;color:#59665d;background:#ece7da;border:1px solid #ded8ca;border-radius:8px;font-size:.66rem;font-weight:700;text-transform:uppercase}.grimoirePlayerRow{width:100%;min-height:64px;padding:.55rem .6rem;color:#2b382f;background:#faf8f2;border:1px solid #ded8ca;border-radius:9px;text-align:left;transition:border-color .15s ease,background .15s ease,transform .15s ease}.grimoirePlayerRow:hover{background:#f4f0e6;border-color:#c8baa4}.grimoirePlayerRow.is-selected{background:#fffaf0;border-color:#af8b52;box-shadow:inset 3px 0 #af5138}.grimoireSeat,.grimoireUser{font-weight:700}.grimoireUser{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grimoireRoleBadge{display:inline-flex;align-items:center;gap:.4rem;max-width:100%;padding:.15rem .45rem .15rem .15rem;border:1px solid #d8d1c3;border-radius:8px;background:#fffdf8}.grimoireRoleBadge img{width:28px;height:28px;border-radius:6px}.grimoireRoleBadge span{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.grimoireRoleCell{display:grid;gap:.18rem;min-width:0}.grimoirePerceivedRole{overflow:hidden;color:#816a46;font-size:.65rem;font-style:italic;text-overflow:ellipsis;white-space:nowrap}.grimoireListStatus{display:flex;align-items:center;gap:.4rem}.grimoireListStatus{color:#5d685f;font-size:.7rem}.grimoireStatusToken{width:31px;height:31px;flex:0 0 auto;object-fit:contain}.grimoireReminderSummary,.grimoireInspectorReminders{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.grimoireReminderChip,.grimoireReminderCount{padding:.24rem .45rem;border:1px solid #d4cdc0;border-radius:999px;color:#4d5b51;background:#f7f5ee;font-size:.66rem;line-height:1.15}.grimoireReminderChip{display:inline-flex;align-items:center;gap:.25rem}.grimoireReminderIcon{width:1.1rem;height:1.1rem;margin:-.15rem 0;object-fit:contain}button.grimoireReminderChip:hover:not(:disabled){background:#eee7d9}.grimoireReminderCount{color:#746a58;background:transparent}.grimoireRowChevron{color:#9e855c;font-size:1.2rem}.grimoireInspector{min-height:0;overflow:auto;padding:.9rem;background:linear-gradient(145deg,#f8f4ea,#ede7d9);border:1px solid #d7cfbd;border-radius:10px}.grimoireInspectorHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;padding-bottom:.8rem;min-height:3.4rem;border-bottom:1px solid #d6cdbc}.grimoireInspectorHeader h3{margin:.12rem 0 0;color:#26342c;font:600 1.4rem/1 Fraunces,Georgia,serif}.grimoireInspectorKicker{color:#89633a;font:700 .63rem/1 DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.grimoirePerceivedRoleDetail{display:flex;align-items:center;gap:.5rem;padding:.65rem 0 .1rem;color:#89633a;font-size:.7rem}.grimoireInspectorSection{display:grid;gap:.55rem;padding:.85rem 0;border-bottom:1px solid #dcd3c3}.grimoireInspectorSection:last-child{border-bottom:0;padding-bottom:0}.grimoireInspectorSection h4{margin:0;color:#657067;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}@media(max-width:850px){.grimoireBoard{grid-template-columns:1fr;grid-template-rows:none;overflow:auto}.grimoirePlayerList{max-height:45vh}}@media(max-width:620px){.grimoireListHeader{display:none}.grimoirePlayerRow{grid-template-columns:32px minmax(76px,1fr) minmax(90px,1fr) 31px 16px}.grimoirePlayerRow>:nth-child(5){display:none}.grimoireListStatus span{display:none}}.playerInfoList .grimoireListHeader,.playerInfoList .grimoirePlayerRow{grid-template-columns:42px minmax(100px,1fr) 78px minmax(160px,1.6fr)}.playerInfoList .grimoirePlayerRow:hover{background:#faf8f2;border-color:#ded8ca}.grimoireReminderChip.grimoireReminderChip--public{color:#2f5b3b;background:#eaf3e6;border-color:#a9c4a6}@media(max-width:620px){.playerInfoList .grimoirePlayerRow{grid-template-columns:32px minmax(76px,1fr) 31px minmax(90px,1.4fr)}}.grimoireStorytellerRow{margin-top:.35rem;border-style:dashed}.grimoireStorytellerIcons{display:flex;gap:.2rem}.grimoireStorytellerIcons img{width:24px;height:24px;border-radius:50%}.grimoireFabledChip{display:inline-flex;align-items:center;gap:.25rem;padding-left:.2rem}.grimoireFabledChip img{width:18px;height:18px;object-fit:contain}.grimoireMoreActions{padding-top:.85rem}.grimoireMoreActions>summary{display:flex;align-items:center;gap:.4rem;color:#657067;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;list-style:none;cursor:pointer}.grimoireMoreActions>summary::-webkit-details-marker{display:none}.grimoireMoreActions>summary:before{content:"▸";transition:transform .15s ease}.grimoireMoreActions[open]>summary:before{transform:rotate(90deg)}.grimoireMoreActions[open]>summary{margin-bottom:.2rem}.grimoireProperties{display:grid}.grimoireProperty{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid #dcd3c3}.grimoireProperty:last-child{border-bottom:0}.grimoireProperties--group{border-bottom:1px solid #dcd3c3}.grimoirePropertyLabel{color:#657067;font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.grimoirePropertyValue{display:flex;align-items:center;gap:.4rem;min-width:0;color:#354239;font-size:.78rem;font-weight:600}.grimoirePropertyActions{display:flex;justify-content:flex-end;gap:.4rem}.grimoirePropertyActions .secondaryBtn{width:auto;min-width:72px}.grimoirePropertyActions .selectInput{width:150px;min-height:30px;padding:.3rem .45rem;font-size:.74rem}@media(max-width:620px){.grimoireProperty{grid-template-columns:74px minmax(0,1fr)}.grimoirePropertyActions{grid-column:1 / -1;flex-wrap:wrap;justify-content:flex-start}}.grimoirePlayerList--readOnly .grimoireListHeader,.grimoirePlayerList--readOnly .grimoirePlayerRow{grid-template-columns:42px minmax(88px,1fr) minmax(130px,1.15fr) 78px minmax(140px,1.4fr)}.grimoirePlayerList--readOnly .grimoirePlayerRow:hover{background:#faf8f2;border-color:#ded8ca}@media(max-width:620px){.grimoirePlayerList--readOnly .grimoirePlayerRow{grid-template-columns:32px minmax(76px,1fr) minmax(90px,1fr) 31px}.grimoirePlayerList--readOnly .grimoirePlayerRow>.grimoireReminderSummary{display:flex;grid-column:2 / -1}}.gameReveal{padding:1rem;border:1px solid rgba(70,93,76,.22);border-radius:10px;color:#28332d;background:#f7f4ec;text-align:center}.gameReveal--evil{border-color:#9d483c80;background:#f8eeeb}.gameReveal h2{margin:.35rem 0 0;font:600 2rem/1 Fraunces,Georgia,serif}.gameRevealKicker{color:#887028;font:600 .7rem DM Mono,monospace;letter-spacing:.12em;text-transform:uppercase}.gameRevealList{display:grid;gap:.5rem;margin:1.5rem 0 0;text-align:left}.gameRevealLoading{margin:1.5rem 0 0;color:#627067}.lastGameBody{overflow-y:auto}.arcade{overflow:hidden;background:#faf8f2;border:1px solid #ded8ca;border-radius:9px}.arcadeHeader{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem .4rem}.arcadeTitle{color:#2b382f;font-size:.78rem;font-weight:700}.arcadeArrow{width:26px;height:26px;padding:0;color:#59665d;background:none;border:1px solid transparent;border-radius:6px;font-size:1.1rem;line-height:1;cursor:pointer}.arcadeArrow:hover:not(:disabled){background:#ece7da}.arcadeArrow:disabled{opacity:.3;cursor:default}.arcadeCanvas{display:block;width:100%;height:auto;aspect-ratio:320 / 210;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}.arcadeCanvas--aim{cursor:crosshair}.arcadeFooter{display:flex;justify-content:space-between;gap:.5rem;padding:.35rem .6rem;color:#61695f;font-size:.68rem}.arcadeFooter strong{color:#2b382f;font-variant-numeric:tabular-nums}.searchSelect{position:relative}.searchSelectList{position:fixed;z-index:1000;width:max-content;max-width:min(300px,80vw);max-height:260px;margin:0;padding:.25rem 0;overflow:auto;list-style:none;background:#fbf9f4;border:1px solid #c8c5b9;border-radius:7px;box-shadow:0 6px 18px #2b382f24;font-size:.74rem}.searchSelectOption{padding:.32rem .6rem;color:#2b382f;cursor:pointer}.searchSelectOption.is-active{background:#eee7d9}.searchSelectGroup{padding:.4rem .6rem .15rem;color:#8a7d66;font-size:.62rem;letter-spacing:.04em;text-transform:uppercase}.searchSelectEmpty{padding:.32rem .6rem;color:#8a8579}
