@font-face{font-family:Cinzel Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(./cinzel-latin-ext-wght-normal-CG36JvV6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(./cinzel-latin-wght-normal-DMUuCU8H.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(./eb-garamond-cyrillic-ext-wght-normal-Bt3rCdHq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(./eb-garamond-cyrillic-wght-normal-DBa2mnKT.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(./eb-garamond-greek-ext-wght-normal-CW-BywWH.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(./eb-garamond-greek-wght-normal-DCPER7xl.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(./eb-garamond-vietnamese-wght-normal-DvUmmjCN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(./eb-garamond-latin-ext-wght-normal-B6IpcvL2.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(./eb-garamond-latin-wght-normal-CRpggXlh.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(./eb-garamond-cyrillic-ext-wght-italic-Ba0fXTjv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(./eb-garamond-cyrillic-wght-italic-Cini1BOa.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(./eb-garamond-greek-ext-wght-italic-nvsmRjVx.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(./eb-garamond-greek-wght-italic-Dc0bJcw6.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(./eb-garamond-vietnamese-wght-italic-2ii8blLS.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(./eb-garamond-latin-ext-wght-italic-CYvIfuu9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(./eb-garamond-latin-wght-italic-AvGrCMCN.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0a10;--bg-2:#120e18;--surface:#1b1623;--surface-2:#241d2e;--surface-3:#31283d;--border:#3b3149;--line:#c9a24a33;--line-strong:#c9a24a73;--text:#f2ebdc;--muted:#b5a891;--faint:#7a6e5f;--gold:#c9a24a;--gold-hi:#f0d27e;--gold-lo:#8a6a26;--accent:var(--gold);--accent-ink:#1c1405;--blood:#9e1f2a;--blood-hi:#d63f4a;--good:#5b8ff0;--good-soft:#5b8ff029;--evil:#d63f4a;--evil-soft:#d63f4a2e;--traveller:#d6962f;--traveller-soft:#d6962f2e;--ok:#57c08c;--ok-soft:#57c08c1f;--warn:#e6a73d;--warn-soft:#e6a73d24;--parch-1:#f8f0dd;--parch-2:#dccb9e;--ink:#2b1f12;--radius:16px;--radius-sm:11px;--shadow:0 18px 50px #0000008c;--font-ui:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Cinzel Variable", Georgia, "Times New Roman", serif;--font-book:"EB Garamond Variable", Georgia, "Times New Roman", serif;font-family:var(--font-ui);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-feature-settings:"cv11", "ss01";font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 700px at 50% -10%, #6e1e3240, transparent 70%), radial-gradient(900px 600px at 100% 100%, #28326e2e, transparent 70%), var(--bg);overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}h1,h2,h3{font-family:var(--font-display);letter-spacing:.03em;color:var(--text);margin:0 0 .5rem;font-weight:700;line-height:1.2}h1{font-size:2rem}h2{font-size:1.45rem}h3{font-size:1.1rem}p{margin:0 0 .6rem}strong{font-weight:650}button,input,select,textarea{font:inherit;color:inherit}::selection{background:#c9a24a59}.btn{border-radius:var(--radius-sm);border:1px solid var(--border);min-height:46px;color:var(--text);letter-spacing:.01em;cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;background:linear-gradient(#2c2438,#221b2c);justify-content:center;align-items:center;gap:.45rem;padding:.5rem 1.05rem;font-weight:600;transition:background .15s,border-color .15s,transform 60ms;display:inline-flex;box-shadow:inset 0 1px #ffffff0d}.btn:hover{border-color:var(--line-strong)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default;transform:none}.btn.primary{background:linear-gradient(180deg, var(--gold-hi), var(--gold) 55%, #a8802f);color:var(--accent-ink);border-color:#e5c56e;box-shadow:inset 0 1px #ffffff73,0 4px 14px #c9a24a40}.btn.danger{color:#fff3f3;background:linear-gradient(#b32b36,#8a1a24);border-color:#d14a54}.btn.good{background:linear-gradient(#2e4a86,#22376a);border-color:#5b8ff0}.btn.ghost{box-shadow:none;background:0 0}.btn.small{min-height:38px;padding:.3rem .75rem;font-size:.9rem}.btn.big{min-height:58px;padding:.7rem 1.5rem;font-size:1.1rem}.btn.block{width:100%}.row{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:.85rem;display:flex}.muted{color:var(--muted)}.small-text{font-size:.88rem}.spacer{flex:1}.card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#2b2337e6,#1c1624e6);padding:1.1rem;box-shadow:inset 0 1px #ffffff0a}.card.tight{padding:.8rem .9rem}.sheet-text{border-radius:var(--radius-sm);background:linear-gradient(180deg, var(--parch-1), var(--parch-2));color:var(--ink);font-family:var(--font-book);margin:0;padding:.75rem 1rem;font-size:1.13rem;font-style:italic;line-height:1.4;box-shadow:inset 0 0 0 1px #785a2859,inset 0 -10px 20px #8c69322e,0 4px 12px #00000059}.hint{border-radius:var(--radius-sm);color:#dcd9e8;background:linear-gradient(#303a5c73,#20264073);border:1px solid #788cd240;padding:.7rem .9rem .7rem 2.6rem;font-size:.97rem;position:relative}.hint:before{content:"💡";position:absolute;top:.7rem;left:.85rem}.warn{border-radius:var(--radius-sm);background:var(--warn-soft);border:1px solid #e6a73d8c;padding:.7rem .9rem}.result{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:linear-gradient(#c9a24a21,#c9a24a0f);padding:.85rem 1rem;font-size:1.05rem}.result strong{color:var(--gold-hi);font-size:1.25rem}.pill{background:var(--surface-3);border:1px solid var(--border);white-space:nowrap;vertical-align:middle;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .6rem;font-size:.85rem;display:inline-flex}.pill.good{background:var(--good-soft);border-color:#5b8ff059}.pill.evil{background:var(--evil-soft);border-color:#d63f4a66}.pill.traveller{background:var(--traveller-soft);border-color:#d6962f66}.section-label{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:.35rem;font-size:.78rem;font-weight:700}.divider{background:linear-gradient(90deg, transparent, var(--line-strong), transparent);height:1px;margin:.25rem 0}.screen{max-width:1180px;min-height:100%;margin:0 auto;padding:1.25rem 1.5rem 0}.game{--phase-glow:#6e1e324d;background:radial-gradient(1100px 800px at 30% 45%, var(--phase-glow), transparent 70%), var(--bg);grid-template-rows:auto 1fr;height:100dvh;transition:background .6s;display:grid;overflow:hidden}.game[data-phase=night]{--phase-glow:#303e8c61}.game[data-phase=day]{--phase-glow:#be782842}.game[data-phase=ended]{--phase-glow:#9e1f2a59}.header{min-height:66px;padding:.4rem .9rem;padding-top:max(.4rem, env(safe-area-inset-top));border-bottom:1px solid var(--line);z-index:10;background:linear-gradient(#140f1af7,#0e0b13eb);align-items:center;gap:.6rem;display:flex;box-shadow:0 6px 20px #00000059}.header .phase{font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;color:var(--gold-hi);text-shadow:0 0 18px #c9a24a59;font-size:1.35rem;font-weight:700}.header .stats{flex-wrap:wrap;gap:.4rem;display:flex}.stat-chip{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:#ffffff08;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .65rem;font-size:.86rem;display:inline-flex}.stat-chip strong{color:var(--text)}.toolbar{align-items:stretch;gap:.35rem;display:flex}.toolbar .sep{background:var(--line);width:1px;margin:.35rem .15rem}.tool{min-width:62px;min-height:52px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.1rem;padding:.25rem .55rem;transition:background .15s,border-color .15s;display:inline-flex}.tool:hover{border-color:var(--border);background:#ffffff0d}.tool:active{transform:scale(.96)}.tool:disabled{opacity:.35;cursor:default}.tool .ti{font-size:1.3rem;line-height:1.1}.tool .tl{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.68rem;font-weight:600}.tool.on{border-color:var(--line-strong);background:#c9a24a29}.tool.on .tl{color:var(--gold-hi)}.game-main{grid-template-columns:minmax(0,1fr) clamp(380px,35vw,480px);min-height:0;display:grid}.grim-area{min-width:0;min-height:0;padding:.5rem;position:relative;overflow:hidden}.side{border-left:1px solid var(--line);min-height:0;padding:1.1rem 1.25rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;background:linear-gradient(#120e18e0,#0e0b13eb);overflow-y:auto}@media (orientation:portrait),(width<=860px){.game-main{grid-template-rows:minmax(320px,54%) 1fr;grid-template-columns:1fr}.side{border-left:none;border-top:1px solid var(--line)}.header .stats{display:none}}@media (width<=1100px){.tool{min-width:50px;padding:.25rem .4rem}}.grimoire{justify-content:center;align-items:center;display:flex;position:absolute;inset:.5rem}.grimoire-circle{position:relative}.table-disc{pointer-events:none;box-shadow:0 0 0 1px var(--line-strong), 0 0 0 7px #0a080eb3, 0 0 0 8px var(--line), inset 0 0 60px #000000a6, 0 30px 80px #00000080;background:radial-gradient(circle,#3c2c468c,#1e1626bf 55%,#100c16e6 72%),repeating-radial-gradient(circle,#ffffff04 0 2px,#0000 2px 6px);border-radius:50%;position:absolute}.table-ring{pointer-events:none;border:1px dashed #c9a24a38;border-radius:50%;position:absolute}.grim-center{aspect-ratio:1;text-align:center;width:34%;color:var(--muted);pointer-events:none;border:1px solid var(--line);background:radial-gradient(circle,#c9a24a14,#0000 70%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.grim-center .big{font-family:var(--font-display);letter-spacing:.06em;color:var(--gold-hi);font-size:1.35rem;font-weight:700}.token-wrap{cursor:pointer;color:inherit;background:0 0;border:none;flex-direction:column;align-items:center;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.token{border:3px solid var(--good);background:radial-gradient(circle at 42% 32%, var(--parch-1), #ecdfbd 55%, var(--parch-2));color:var(--ink);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:box-shadow .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 2px #0a080ee6,0 0 0 3px #c9a24a59,0 8px 18px #0000008c,inset 0 -8px 14px #825f2847,inset 0 5px 10px #ffffff8c}.token.evil{border-color:var(--evil)}.token.team-traveller{border-color:var(--traveller)}.token.team-traveller.evil{border-color:var(--evil)}.token.empty{border-style:dashed;border-color:var(--faint);background:var(--surface);color:var(--text)}.token .emoji{line-height:1}.token .token-img{filter:drop-shadow(0 2px 2px #3c280a40);margin-top:-6%}.token .rname{text-align:center;overflow-wrap:normal;-webkit-hyphens:manual;hyphens:manual;letter-spacing:.01em;margin-top:-8%;padding:0 6%;font-weight:750;line-height:1.05}.token.dead>:not(.shroud){filter:grayscale(.85)brightness(.7)}.token .shroud{clip-path:polygon(0 0,100% 0,100% 72%,84% 100%,67% 82%,50% 100%,33% 82%,16% 100%,0 72%);opacity:.94;color:#e8e0d0;background:linear-gradient(#0f0b14 0%,#1d1626 75%,#2a2034 100%);justify-content:center;align-items:flex-start;height:56%;padding-top:9%;line-height:1;display:flex;position:absolute;inset:0 0 auto}.token-wrap.active .token{animation:1.6s ease-in-out infinite awake}@keyframes awake{0%,to{box-shadow:0 0 0 3px var(--gold-hi), 0 0 18px 4px #f0d27e8c, 0 8px 18px #0000008c}50%{box-shadow:0 0 0 3px var(--gold-hi), 0 0 34px 10px #f0d27ebf, 0 8px 18px #0000008c}}.token-wrap.dim{opacity:.4}.pname{z-index:1;font-family:var(--font-display);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(#2f2539,#1b1522);border:1px solid #c9a24a80;border-radius:7px;max-width:150%;margin-top:-11px;padding:.08rem .7rem;font-weight:700;overflow:hidden;box-shadow:0 3px 8px #00000080}.token-wrap.active .pname{border-color:var(--gold-hi);color:var(--gold-hi)}.token-wrap.isdead .pname{color:var(--muted);-webkit-text-decoration:line-through #d63f4ab3;text-decoration:line-through #d63f4ab3}.badge{z-index:2;filter:drop-shadow(0 1px 2px #000);font-size:1.1rem;line-height:1;position:absolute}.badge.tl{top:-2px;left:-2px}.badge.tr{top:-2px;right:-2px}.badge.ghost{filter:none;background:radial-gradient(circle,#f4f1ff,#cfc8e6);border:2px solid #0c0a10;border-radius:50%;place-items:center;width:1.7rem;height:1.7rem;font-size:.95rem;display:grid;box-shadow:0 0 10px #dcd7ff99}.reminder-chip{background:linear-gradient(180deg, var(--parch-1), var(--parch-2));color:var(--ink);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;border-radius:999px;align-items:center;gap:.2rem;padding:.08rem .5rem .08rem .25rem;font-size:.74rem;font-weight:650;display:inline-flex;position:absolute;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0000008c,inset 0 0 0 1px #785a2859}.grimoire-circle,.grimoire-circle .token-wrap,.grimoire-circle .reminder-chip,.grimoire-circle .grim-center{transition:transform .22s ease-out}.grimoire-circle .reminder-chip{transition:transform .22s ease-out,left .22s ease-out,top .22s ease-out}.grimoire-circle.dragging,.grimoire-circle.dragging .token-wrap,.grimoire-circle.dragging .reminder-chip,.grimoire-circle.dragging .grim-center{transition:none}.grim-tools{z-index:5;flex-direction:column;align-items:flex-start;gap:.45rem;display:flex;position:absolute;top:.75rem;left:.75rem}.grim-tools .tool-grid{grid-template-columns:repeat(2,46px);gap:.35rem;display:grid}.round-btn{border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:46px;height:46px;color:var(--text);cursor:pointer;background:#1e1828d9;border-radius:50%;place-items:center;font-size:1.15rem;font-weight:700;display:grid;position:relative;box-shadow:0 4px 12px #00000073}.round-btn:active{transform:scale(.94)}.round-btn.on{border-color:var(--gold-hi);background:radial-gradient(circle,#c9a24a66,#1e1828e6);box-shadow:0 0 14px #f0d27e73}.round-btn .dot{border:2px solid #0c0a10;border-radius:50%;width:10px;height:10px;position:absolute;bottom:3px;right:3px}.round-btn .dot.compass{background:var(--ok)}.round-btn .dot.gyro{background:var(--warn)}.round-btn .dot.waiting{background:var(--muted)}.compass-state{color:var(--muted);padding-left:.2rem;font-size:.75rem}.grim-tools-msg{border:1px solid var(--warn);border-radius:var(--radius-sm);max-width:280px;box-shadow:var(--shadow);background:#281e0ef2;padding:.6rem .75rem;font-size:.85rem}.overlay{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050308b8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--line-strong);box-shadow:var(--shadow), inset 0 1px 0 #ffffff0d;width:100%;max-width:680px;max-height:90dvh;padding:1.25rem 1.4rem max(1.25rem, env(safe-area-inset-bottom));background:linear-gradient(#221b2c,#17121e);border-radius:20px;overflow-y:auto}.modal.wide{max-width:940px}.modal-head{border-bottom:1px solid var(--line);align-items:center;gap:.6rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.modal-head h2{flex:1;margin:0}.page-overlay{z-index:60;background:radial-gradient(1000px 600px at 50% -10%, #6e1e3240, transparent 70%), var(--bg);position:fixed;inset:0;overflow-y:auto}.page-overlay .screen{max-width:940px;padding-bottom:2rem}.cover{z-index:100;background:#000;justify-content:flex-end;align-items:flex-end;gap:1rem;padding:1rem;display:flex;position:fixed;inset:0}.timer-btn.warn .tl{color:var(--warn)}.timer-btn.danger,.timer-btn.done{background:#d63f4a2e;border-color:#d63f4a99}.timer-btn.danger .tl,.timer-btn.done .tl{color:#ffb7bc}.timer-btn.done{animation:.9s ease-in-out infinite timer-pulse}.timer-btn.running .tl{color:var(--gold-hi);font-size:.8rem}@keyframes timer-pulse{50%{box-shadow:0 0 0 6px #d63f4a59}}.timer-small{font-family:var(--font-book);font-feature-settings:"lnum" 1, "tnum" 1;text-align:center;color:var(--gold-hi);font-size:4rem;font-weight:600;line-height:1}.timer-small.warn,.timer-digits.warn{color:var(--warn)}.timer-small.danger,.timer-small.done,.timer-digits.danger,.timer-digits.done{color:var(--blood-hi)}.timer-bar{background:var(--surface-3);border-radius:999px;height:8px;overflow:hidden}.timer-bar>div{background:linear-gradient(90deg, var(--gold-lo), var(--gold-hi));height:100%;transition:width .25s linear}.timer-bar.big{width:min(80vw,900px);height:14px}.timer-big{z-index:95;text-align:center;background:radial-gradient(at 50% 35%,#2a1d3d,#07050b 75%);flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.timer-big.done{animation:1s ease-in-out infinite timer-flash}@keyframes timer-flash{50%{background:radial-gradient(at 50% 35%,#5a1520,#1a0508 75%)}}.timer-big-content{flex-direction:column;align-items:center;gap:1.5rem;transition:transform .3s;display:flex}.timer-big-content.flipped{transform:rotate(180deg)}.timer-digits{font-family:var(--font-book);font-feature-settings:"lnum" 1, "tnum" 1;color:var(--text);text-shadow:0 0 60px #c9a24a40;font-size:clamp(7rem,30vw,24rem);font-weight:600;line-height:.95}.timer-big .controls{bottom:max(1.25rem, env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:center;gap:.75rem;padding:0 1rem;display:flex;position:absolute;left:0;right:0}.timer-alarm{top:calc(max(.4rem, env(safe-area-inset-top)) + 74px);z-index:80;border-radius:var(--radius);border:2px solid var(--blood-hi);box-shadow:var(--shadow);font-family:var(--font-display);letter-spacing:.04em;background:linear-gradient(#5a1720,#3c0e15);align-items:center;gap:.6rem;padding:.65rem .8rem .65rem 1.1rem;font-weight:700;animation:.9s ease-in-out infinite timer-pulse;display:flex;position:fixed;left:50%;transform:translate(-50%)}.timer-text{color:var(--faint);font-variant-numeric:tabular-nums;align-self:flex-end;margin-right:auto}.timer-presets{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.showcard{z-index:90;background:radial-gradient(ellipse at 50% 35%, #2c1e3e, #08060c 72%), var(--bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem 1.5rem 6rem;display:flex;position:fixed;inset:0}.showcard-content{flex-direction:column;align-items:center;gap:1.5rem;max-width:100%;transition:transform .3s;display:flex}.showcard-content.flipped{transform:rotate(180deg)}.showcard .title{font-family:var(--font-display);letter-spacing:.08em;color:var(--gold-hi);text-shadow:0 0 30px #c9a24a59;font-size:clamp(1.9rem,4.6vw,3.3rem);font-weight:700}.showcard .bignum{font-family:var(--font-book);font-feature-settings:"lnum" 1;color:var(--text);font-size:clamp(8rem,28vw,17rem);font-weight:700;line-height:1}.showcard .roles{flex-wrap:wrap;justify-content:center;gap:2rem;display:flex}.showcard .role-card{flex-direction:column;align-items:center;gap:.6rem;width:clamp(160px,24vw,250px);display:flex}.showcard .role-card .disc{aspect-ratio:1;border:5px solid var(--good);background:radial-gradient(circle at 42% 32%, var(--parch-1), #ecdfbd 55%, var(--parch-2));border-radius:50%;justify-content:center;align-items:center;width:clamp(130px,19vw,200px);font-size:clamp(3.5rem,9vw,6rem);display:flex;box-shadow:0 0 0 3px #0c0a10,0 0 0 5px #c9a24a80,0 20px 50px #0009,inset 0 -10px 18px #825f284d}.showcard .role-card .disc.evil{border-color:var(--evil)}.showcard .role-card .disc.traveller{border-color:var(--traveller)}.showcard .role-card .nm{font-family:var(--font-display);letter-spacing:.04em;font-size:clamp(1.3rem,3vw,1.9rem);font-weight:700}.showcard .role-card .ab{font-family:var(--font-book);color:var(--muted);font-size:clamp(.95rem,1.8vw,1.1rem);font-style:italic}.showcard .controls{bottom:max(1.25rem, env(safe-area-inset-bottom));justify-content:center;gap:.75rem;display:flex;position:absolute;left:0;right:0}.picker{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;display:grid}.pick{border:1px solid var(--border);cursor:pointer;text-align:left;min-height:56px;color:var(--text);background:linear-gradient(#2a2236,#211a2b);border-radius:12px;align-items:center;gap:.5rem;padding:.4rem .7rem;font-size:.97rem;transition:border-color .15s,background .15s;display:flex}.pick:hover{border-color:var(--line-strong)}.pick .seat{color:var(--faint);font-family:var(--font-display);min-width:1.2rem;font-size:.8rem;font-weight:700}.pick .info{flex-direction:column;min-width:0;display:flex}.pick .info .n{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.pick .info .r{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.2rem;font-size:.8rem;display:flex;overflow:hidden}.pick.on{border-color:var(--gold-hi);box-shadow:0 0 0 1px var(--gold-hi) inset;background:linear-gradient(#c9a24a47,#c9a24a1f)}.pick.dead{opacity:.55}.pick:disabled{opacity:.28;cursor:default}.pick .order{background:var(--gold-hi);color:var(--accent-ink);text-align:center;border-radius:999px;min-width:1.5rem;margin-left:auto;font-size:.82rem;font-weight:800}.role-grid{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:.5rem;display:grid}.role-btn{border:1px solid var(--border);cursor:pointer;text-align:left;min-height:58px;color:var(--text);background:linear-gradient(#2a2236,#211a2b);border-radius:12px;align-items:center;gap:.6rem;padding:.4rem .7rem .4rem .45rem;display:flex}.role-btn:hover{border-color:var(--line-strong)}.role-btn .ic{background:radial-gradient(circle at 42% 32%, var(--parch-1), var(--parch-2));border-radius:50%;flex:none;font-size:1.5rem;line-height:1;display:inline-flex;box-shadow:0 0 0 2px #0a080ecc,0 2px 6px #00000080}.role-btn .nm{font-size:.97rem;font-weight:650;line-height:1.15}.role-btn.on{border-color:var(--gold-hi);box-shadow:0 0 0 1px var(--gold-hi) inset;background:linear-gradient(#c9a24a47,#c9a24a1f)}.role-btn.good .ic{box-shadow:0 0 0 2px var(--good), 0 2px 6px #00000080}.role-btn.evil .ic{box-shadow:0 0 0 2px var(--evil), 0 2px 6px #00000080}.role-btn.traveller .ic{box-shadow:0 0 0 2px var(--traveller), 0 2px 6px #00000080}.role-btn:disabled{opacity:.3;cursor:default}.team-head{font-family:var(--font-display);letter-spacing:.06em;align-items:center;gap:.6rem;margin:1.1rem 0 .5rem;font-size:1.05rem;font-weight:700;display:flex}.team-head .count{font-family:var(--font-ui);letter-spacing:0;background:var(--surface-3);border-radius:999px;padding:.1rem .6rem;font-size:.85rem;font-weight:700}.team-head .count.ok{color:#9ee6c0;background:#57c08c2e}.team-head .count.bad{background:var(--evil-soft);color:#ffb7bc}.steps-bar{scrollbar-width:none;gap:.35rem;margin:-.2rem -.2rem .85rem;padding-bottom:.5rem;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 24px),#0000)}.steps-bar::-webkit-scrollbar{display:none}.step-chip{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:#ffffff08;border-radius:999px;flex:none;align-items:center;gap:.3rem;padding:.25rem .65rem .25rem .35rem;font-size:.8rem;display:flex}.step-chip.done{opacity:.4}.step-chip.now{background:linear-gradient(180deg, var(--gold-hi), var(--gold));border-color:var(--gold-hi);color:var(--accent-ink);font-weight:750}.step-head{align-items:center;gap:1rem;margin-bottom:.25rem;display:flex}.step-head .ic{background:radial-gradient(circle at 42% 32%, var(--parch-1), #ecdfbd 55%, var(--parch-2));width:84px;height:84px;box-shadow:0 0 0 3px #0c0a10, 0 0 0 4px var(--line-strong), 0 10px 24px #0000008c, inset 0 -8px 14px #825f2847;border-radius:50%;flex:none;place-items:center;font-size:2.6rem;line-height:1;display:grid}.step-head h2{margin:0 0 .2rem;font-size:1.6rem}.wake{border:1px solid var(--line-strong);color:var(--muted);background:#c9a24a1f;border-radius:999px;align-items:center;gap:.4rem;padding:.15rem .7rem;font-size:.9rem;display:inline-flex}.wake strong{color:var(--gold-hi);font-family:var(--font-display);letter-spacing:.03em}.next-bar{bottom:calc(-1 * max(1rem, env(safe-area-inset-bottom)));margin:1.1rem -1.25rem calc(-1 * max(1rem, env(safe-area-inset-bottom)));padding:1.25rem 1.25rem max(.9rem, env(safe-area-inset-bottom));background:linear-gradient(#0000,#0e0b13f5 35%);gap:.5rem;display:flex;position:sticky}.next-bar .btn{min-height:62px;font-family:var(--font-display);letter-spacing:.06em;flex:1;font-size:1.2rem}.win-banner{border-radius:var(--radius);border:2px solid var(--gold);background:linear-gradient(#c9a24a2e,#c9a24a0f);margin-bottom:1rem;padding:1rem 1.1rem}.win-banner.good{border-color:var(--good);background:linear-gradient(#5b8ff040,#5b8ff014)}.win-banner.evil{border-color:var(--evil);background:linear-gradient(#d63f4a47,#d63f4a14)}.input{border-radius:var(--radius-sm);border:1px solid var(--border);background:#0a080e99;width:100%;min-height:48px;padding:.5rem .8rem;font-size:1rem}.input:focus{outline:2px solid var(--gold);outline-offset:0;border-color:#0000}.seg{border:1px solid var(--border);border-radius:var(--radius-sm);background:#0a080e66;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;min-height:44px;color:var(--muted);background:0 0;border:none;padding:.3rem 1rem;font-weight:650}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:var(--accent-ink)}.name-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.6rem;display:grid}.name-row{align-items:center;gap:.4rem;display:flex}.name-row .seat{text-align:right;min-width:2rem;color:var(--gold);font-family:var(--font-display);font-weight:700}.wizard-steps{flex-wrap:wrap;gap:.3rem;margin-bottom:1.25rem;display:flex}.wizard-steps span{border:1px solid var(--border);color:var(--faint);background:#ffffff08;border-radius:999px;padding:.3rem .85rem;font-size:.86rem;font-weight:600}.wizard-steps span.now{background:linear-gradient(180deg, var(--gold-hi), var(--gold));border-color:var(--gold-hi);color:var(--accent-ink)}.wizard-steps span.done{color:var(--text);border-color:var(--line-strong)}.wizard-nav{z-index:5;padding:1rem 0 max(1rem, env(safe-area-inset-bottom));pointer-events:none;margin-top:1.25rem;position:sticky;bottom:0}.wizard-nav>*{pointer-events:auto;box-shadow:0 10px 30px #0009}.home{text-align:center;background:radial-gradient(600px 420px at 50% 32%,#9e1f2a52,#0000 70%),radial-gradient(1200px 800px at 50% 120%,#28326e40,#0000 70%);flex-direction:column;justify-content:center;align-items:center;gap:.8rem;min-height:100dvh;padding:2rem 1rem;display:flex;position:relative}.home .logo{width:168px;height:168px;box-shadow:0 0 0 1px var(--line-strong), 0 20px 60px #0009, 0 0 80px #9e1f2a73;border-radius:38px}.home h1{letter-spacing:.08em;background:linear-gradient(180deg, #fff3cf, var(--gold-hi) 40%, var(--gold) 80%);color:#0000;filter:drop-shadow(0 2px 12px #c9a24a4d);-webkit-background-clip:text;background-clip:text;margin:.6rem 0 0;font-size:clamp(2.4rem,6vw,3.6rem)}.home .tagline{font-family:var(--font-book);color:var(--muted);margin:0;font-size:1.25rem;font-style:italic}.home .menu{flex-direction:column;gap:.65rem;width:min(420px,100%);margin-top:1.25rem;display:flex}.home .menu .btn{font-family:var(--font-display);letter-spacing:.05em}.home .footer{color:var(--faint);margin-top:1.5rem;font-size:.8rem}.guide section{margin-bottom:1rem}.guide li{margin-bottom:.4rem}.guide ul,.guide ol{margin:.3rem 0 .6rem;padding-left:1.3rem}.guide h2{color:var(--gold-hi)}.role-ref{align-items:flex-start;gap:1rem;display:flex}.role-ref .ic{background:radial-gradient(circle at 42% 32%, var(--parch-1), var(--parch-2));width:68px;height:68px;box-shadow:0 0 0 2px #0c0a10, 0 0 0 3px var(--line-strong), 0 6px 14px #00000080;border-radius:50%;flex:none;place-items:center;font-size:2rem;display:grid}.reminder-list{flex-wrap:wrap;gap:.4rem;display:flex}.reminder-tag{background:linear-gradient(180deg, var(--parch-1), var(--parch-2));color:var(--ink);border:none;border-radius:999px;align-items:center;gap:.3rem;min-height:38px;padding:.25rem .4rem .25rem .5rem;font-size:.9rem;font-weight:650;display:inline-flex}.reminder-tag.add{color:var(--text);border:1px dashed var(--line-strong);cursor:pointer;background:#ffffff08;padding:.25rem .8rem}.reminder-tag .x{cursor:pointer;width:1.8rem;height:1.8rem;color:inherit;background:#0000001f;border:none;border-radius:999px}details.collapse{border:1px solid var(--line);border-radius:var(--radius-sm);background:linear-gradient(#2b2337bf,#1c1624bf);padding:.35rem .95rem}details.collapse[open]{border-color:var(--line-strong);padding-bottom:.9rem}details.collapse summary{cursor:pointer;align-items:center;min-height:46px;font-weight:650;list-style:none;display:flex}details.collapse summary::-webkit-details-marker{display:none}details.collapse summary:after{content:"▾";color:var(--gold);margin-left:auto;transition:transform .2s}details.collapse[open] summary:after{transform:rotate(180deg)}.role-icon{vertical-align:middle;object-fit:contain;flex:none;display:inline-block}.role-icon.emoji{justify-content:center;align-items:center;line-height:1;display:inline-flex}
