/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-outline-style:solid}}}@layer theme{:host,:root{--font-sans:var(--font-body);--font-mono:var(--font-utility);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-sky-700:oklch(50% .134 242.749);--color-sky-800:oklch(44.3% .11 240.79);--color-sky-950:oklch(29.3% .066 243.157);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-950:oklch(28.3% .141 291.089);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-900:oklch(41% .159 10.272);--color-rose-950:oklch(27.1% .105 12.094);--color-black:#000;--spacing:.25rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--leading-tight:1.25;--leading-relaxed:1.625;--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;letter-spacing:0}body,html{background:var(--night-ink)}body{min-width:320px;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-weight:450}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}::selection{background:#c3a15f47}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.-mb-px{margin-bottom:-1px}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.table\!{display:table!important}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-20{height:calc(var(--spacing) * 20)}.h-full{height:100%}.min-h-0{min-height:0}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-svh{min-height:100svh}.w-11{width:calc(var(--spacing) * 11)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.grid-cols-\[46px_minmax\(0\,1fr\)\]{grid-template-columns:46px minmax(0,1fr)}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-black\/\[0\.075\]>:not(:last-child)){border-color:#00000013}@supports (color:color-mix(in lab,red,red)){:where(.divide-black\/\[0\.075\]>:not(:last-child)){border-color:color-mix(in oklab,var(--color-black) 7.5%,transparent)}}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-\[var\(--radius-control\)\]{border-radius:var(--radius-control)}.rounded-full{border-radius:3.40282e+38px}.rounded-none{border-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[var\(--control-border\)\]{border-color:var(--control-border)}.border-amber-800\/45{border-color:#953d0073}@supports (color:color-mix(in lab,red,red)){.border-amber-800\/45{border-color:color-mix(in oklab,var(--color-amber-800) 45%,transparent)}}.border-black\/10{border-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.border-black\/10{border-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.border-black\/12{border-color:#0000001f}@supports (color:color-mix(in lab,red,red)){.border-black\/12{border-color:color-mix(in oklab,var(--color-black) 12%,transparent)}}.border-black\/55{border-color:#0000008c}@supports (color:color-mix(in lab,red,red)){.border-black\/55{border-color:color-mix(in oklab,var(--color-black) 55%,transparent)}}.border-red-800\/65{border-color:#9f0712a6}@supports (color:color-mix(in lab,red,red)){.border-red-800\/65{border-color:color-mix(in oklab,var(--color-red-800) 65%,transparent)}}.border-rose-800\/55{border-color:#a300378c}@supports (color:color-mix(in lab,red,red)){.border-rose-800\/55{border-color:color-mix(in oklab,var(--color-rose-800) 55%,transparent)}}.border-sky-700\/55{border-color:#0069a48c}@supports (color:color-mix(in lab,red,red)){.border-sky-700\/55{border-color:color-mix(in oklab,var(--color-sky-700) 55%,transparent)}}.border-transparent{border-color:#0000}.border-violet-700\/50{border-color:#7008e780}@supports (color:color-mix(in lab,red,red)){.border-violet-700\/50{border-color:color-mix(in oklab,var(--color-violet-700) 50%,transparent)}}.border-b-transparent{border-bottom-color:#0000}.bg-\[\#f4ecd9\]\/84{background-color:oklab(94.4287% .000994921 .0265596/.84)}.bg-\[var\(--control-hover\)\]{background-color:var(--control-hover)}.bg-\[var\(--control-primary-bg\)\]{background-color:var(--control-primary-bg)}.bg-\[var\(--control-secondary-bg\)\]{background-color:var(--control-secondary-bg)}.bg-\[var\(--control-secondary-bg-hover\)\]{background-color:var(--control-secondary-bg-hover)}.bg-\[var\(--parchment\)\]{background-color:var(--parchment)}.bg-amber-950\/\[0\.04\]{background-color:#4619010a}@supports (color:color-mix(in lab,red,red)){.bg-amber-950\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-amber-950) 4%,transparent)}}.bg-black\/\[0\.025\]{background-color:#00000006}@supports (color:color-mix(in lab,red,red)){.bg-black\/\[0\.025\]{background-color:color-mix(in oklab,var(--color-black) 2.5%,transparent)}}.bg-current{background-color:currentColor}.bg-red-950\/\[0\.06\]{background-color:#4608090f}@supports (color:color-mix(in lab,red,red)){.bg-red-950\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-red-950) 6%,transparent)}}.bg-rose-950\/\[0\.045\]{background-color:#4d02180b}@supports (color:color-mix(in lab,red,red)){.bg-rose-950\/\[0\.045\]{background-color:color-mix(in oklab,var(--color-rose-950) 4.5%,transparent)}}.bg-sky-950\/\[0\.045\]{background-color:#052f4a0b}@supports (color:color-mix(in lab,red,red)){.bg-sky-950\/\[0\.045\]{background-color:color-mix(in oklab,var(--color-sky-950) 4.5%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-950\/\[0\.045\]{background-color:#2f0d680b}@supports (color:color-mix(in lab,red,red)){.bg-violet-950\/\[0\.045\]{background-color:color-mix(in oklab,var(--color-violet-950) 4.5%,transparent)}}.bg-\[url\(\'\/assets\/grimoire-parchment\.png\'\)\]{background-image:url(/assets/grimoire-parchment.png)}.bg-cover{background-size:cover}.bg-fixed{background-attachment:fixed}.mask-left{-webkit-mask-position:0;mask-position:0}.mask-right{-webkit-mask-position:100%;mask-position:100%}.object-contain{object-fit:contain}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-4{padding:calc(var(--spacing) * 4)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0{padding-block:0}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[26px\]{font-size:26px}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-\[1\.42\]{--tw-leading:1.42;line-height:1.42}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--control-primary-text\)\]{color:var(--control-primary-text)}.text-\[var\(--control-text\)\]{color:var(--control-text)}.text-\[var\(--control-text-muted\)\]{color:var(--control-text-muted)}.text-\[var\(--ink\)\]{color:var(--ink)}.text-\[var\(--status-danger\)\]{color:var(--status-danger)}.text-amber-900{color:var(--color-amber-900)}.text-black\/30{color:#0000004d}@supports (color:color-mix(in lab,red,red)){.text-black\/30{color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.text-black\/38{color:#00000061}@supports (color:color-mix(in lab,red,red)){.text-black\/38{color:color-mix(in oklab,var(--color-black) 38%,transparent)}}.text-black\/40{color:#0006}@supports (color:color-mix(in lab,red,red)){.text-black\/40{color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.text-black\/48{color:#0000007a}@supports (color:color-mix(in lab,red,red)){.text-black\/48{color:color-mix(in oklab,var(--color-black) 48%,transparent)}}.text-black\/55{color:#0000008c}@supports (color:color-mix(in lab,red,red)){.text-black\/55{color:color-mix(in oklab,var(--color-black) 55%,transparent)}}.text-black\/62{color:#0000009e}@supports (color:color-mix(in lab,red,red)){.text-black\/62{color:color-mix(in oklab,var(--color-black) 62%,transparent)}}.text-black\/82{color:#000000d1}@supports (color:color-mix(in lab,red,red)){.text-black\/82{color:color-mix(in oklab,var(--color-black) 82%,transparent)}}.text-red-900{color:var(--color-red-900)}.text-rose-900{color:var(--color-rose-900)}.text-sky-800{color:var(--color-sky-800)}.text-violet-800{color:var(--color-violet-800)}.uppercase{text-transform:uppercase}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-\[0_12px_36px_rgb\(62_41_18\/0\.14\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_12px_36px_rgb\(62_41_18\/0\.14\)\]{--tw-shadow:0 12px 36px var(--tw-shadow-color,#3e291224)}.shadow-\[var\(--shadow-control-rest\)\]{--tw-shadow:var(--shadow-control-rest)}.shadow-\[var\(--shadow-control-rest\)\],.shadow-\[var\(--shadow-control-selected\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[var\(--shadow-control-selected\)\]{--tw-shadow:var(--shadow-control-selected)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-\[color\,background-color\,border-color\,box-shadow\,transform\]{transition-property:color,background-color,border-color,box-shadow,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,border-color\,box-shadow\]{transition-property:color,background-color,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.placeholder\:text-\[var\(--control-placeholder\)\]::placeholder{color:var(--control-placeholder)}.first\:pt-2:first-child{padding-top:calc(var(--spacing) * 2)}@media (hover:hover){.hover\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:bg-\[var\(--control-hover\)\]:hover{background-color:var(--control-hover)}.hover\:bg-\[var\(--control-primary-bg-hover\)\]:hover{background-color:var(--control-primary-bg-hover)}.hover\:bg-\[var\(--control-secondary-bg-hover\)\]:hover{background-color:var(--control-secondary-bg-hover)}.hover\:bg-\[var\(--status-danger-hover\)\]:hover{background-color:var(--status-danger-hover)}.hover\:text-\[var\(--control-text\)\]:hover{color:var(--control-text)}.hover\:text-black\/76:hover{color:#000000c2}@supports (color:color-mix(in lab,red,red)){.hover\:text-black\/76:hover{color:color-mix(in oklab,var(--color-black) 76%,transparent)}}.hover\:text-black\/85:hover{color:#000000d9}@supports (color:color-mix(in lab,red,red)){.hover\:text-black\/85:hover{color:color-mix(in oklab,var(--color-black) 85%,transparent)}}.hover\:shadow-\[var\(--shadow-control-hover\)\]:hover{--tw-shadow:var(--shadow-control-hover);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-\[var\(--focus-ring\)\]:focus{border-color:var(--focus-ring)}.focus\:border-b-\[var\(--grimoire-hardware-accent\,var\(--brass-dark\)\)\]:focus{border-bottom-color:var(--grimoire-hardware-accent,var(--brass-dark))}.focus\:bg-\[var\(--control-inline-focus-bg\)\]:focus{background-color:var(--control-inline-focus-bg)}.focus\:bg-\[var\(--control-secondary-bg-hover\)\]:focus{background-color:var(--control-secondary-bg-hover)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.focus\:ring-\[var\(--focus-ring\)\]:focus{--tw-ring-color:var(--focus-ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[var\(--focus-ring\)\]:focus-visible{--tw-ring-color:var(--focus-ring)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:-outline-offset-2:focus-visible{outline-offset:calc(2px * -1)}.focus-visible\:outline-\[var\(--focus-ring\)\]:focus-visible{outline-color:var(--focus-ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:translate-y-0:active{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.active\:bg-\[var\(--control-hover\)\]:active{background-color:var(--control-hover)}.active\:bg-\[var\(--control-primary-bg-hover\)\]:active{background-color:var(--control-primary-bg-hover)}.active\:bg-\[var\(--control-secondary-bg-hover\)\]:active{background-color:var(--control-secondary-bg-hover)}.active\:bg-\[var\(--status-danger-hover\)\]:active{background-color:var(--status-danger-hover)}.active\:shadow-\[var\(--shadow-control-pressed\)\]:active{--tw-shadow:var(--shadow-control-pressed);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-45:disabled{opacity:.45}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-\[ping_1\.5s_ease-in-out_infinite\]{animation:ping 1.5s ease-in-out infinite}}@media not all and (min-width:700px){.max-\[700px\]\:\!w-screen{width:100vw!important}.max-\[700px\]\:\!max-w-none{max-width:none!important}.max-\[700px\]\:\!basis-full{flex-basis:100%!important}}@media (min-width:40rem){.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:h-24{height:calc(var(--spacing) * 24)}.sm\:w-28{width:calc(var(--spacing) * 28)}.sm\:gap-5{gap:calc(var(--spacing) * 5)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-7{padding-inline:calc(var(--spacing) * 7)}.sm\:py-5{padding-block:calc(var(--spacing) * 5)}.sm\:py-7{padding-block:calc(var(--spacing) * 7)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1\.08fr\)_minmax\(0\,0\.92fr\)\]{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}.lg\:gap-6{gap:calc(var(--spacing) * 6)}.lg\:p-7{padding:calc(var(--spacing) * 7)}}}:root{--font-body:"Commissioner Variable",ui-sans-serif,system-ui,sans-serif;--font-display:"Fraunces Variable",Georgia,serif;--font-utility:"IBM Plex Mono",ui-monospace,monospace;--night-ink:#151817;--felt:#263a34;--felt-dark:#1d2d29;--oxblood:#722f34;--oxblood-dark:#4d2024;--parchment:#e8d7b1;--parchment-light:#f4f0e6;--parchment-dark:#c9b482;--brass:#c3a15f;--brass-dark:#8d713d;--chalk:#f4f0e6;--ink:#232622;--ink-muted:#60645d;--good:#3979a3;--evil:#a33e42;--surface-dark:#20201e;--surface-dark-raised:#171816;--surface-dark-muted:#18211e;--text-on-dark:#f4f0e6;--text-on-dark-muted:#f4f0e6ad;--text-on-dark-subtle:#f4f0e66b;--border-on-dark:#f4f0e61a;--border-brass-subtle:#c3a15f38;--border-brass-strong:#c3a15f66;--shadow-dialog:0 24px 72px #000000a3;--shadow-popover:0 8px 22px #00000057;--shadow-control-rest:0 1px 2px #1e181014;--shadow-control-hover:0 3px 7px #1e18101f;--shadow-control-pressed:0 1px 2px #1e18101a;--shadow-control-selected:0 1px 3px #1e181021;--shadow-tactile-rest:0 2px 4px #31200d26;--shadow-tactile-hover:0 4px 7px #31200d30;--shadow-tactile-drag:0 7px 14px #31200d45;--control-primary-bg:var(--ink);--control-primary-bg-hover:#111310;--control-primary-text:#fff;--control-secondary-bg:#ffffff8c;--control-secondary-bg-hover:#fffc;--control-inline-focus-bg:#f8eed29e;--control-text:var(--ink);--control-text-muted:var(--ink-muted);--control-placeholder:#23262259;--control-border:#23262226;--control-hover:#2326220f;--row-hover:#c3a15f12;--row-active:#c3a15f1c;--focus-ring:#8d713d73;--status-danger:#8f2f34;--status-danger-hover:#8f2f341f;--team-townsfolk-accent:#72a9c4;--team-townsfolk-surface:#36708c2b;--team-outsider-accent:#a08cc5;--team-outsider-surface:#705b9430;--team-minion-accent:#cc7378;--team-minion-surface:#9441452e;--team-demon-accent:#c94d55;--team-demon-surface:#7e23293d;--team-traveller-accent:#b9a675;--team-traveller-surface:#96845829;--radius-control:4px;--radius-panel:8px;--layer-context-menu:80;--layer-dialog-backdrop:90;--layer-dialog:91;--grimoire-sheet-width:min(430px,92vw);--grimoire-pinned-sheet-width:min(430px,44vw);--grimoire-hardware-surface:#ebdbb594;--grimoire-hardware-surface-hover:#f2e5c7bd;--grimoire-hardware-surface-active:#f6ebd3d6;--grimoire-hardware-border:#644c2c61;--grimoire-hardware-border-strong:#70542d94;--grimoire-hardware-text:#403423;--grimoire-hardware-muted:#40342394;--grimoire-hardware-accent:#8b6c35;--grimoire-hardware-radius:6px;--grimoire-hardware-shadow:inset 0 1px #fffcef5c,0 3px 9px #3a26111f;--text-caption:9px;--text-body-sm:11px;--text-body:13px;--text-title-sm:26px;--motion-fast:.12s;--motion-standard:.15s;--ease-out:cubic-bezier(.2,.75,.2,1)}.tactile-action{--tactile-shadow-rest:var(--shadow-tactile-rest);--tactile-shadow-hover:var(--shadow-tactile-hover);--tactile-shadow-active:var(--shadow-control-pressed);outline:none}.tactile-surface{box-shadow:var(--tactile-shadow-rest);transition:box-shadow var(--motion-fast) ease,filter var(--motion-fast) ease,transform var(--motion-fast) var(--ease-out)}.tactile-action:hover .tactile-surface,.tactile-action:hover.tactile-surface{box-shadow:var(--tactile-shadow-hover);filter:brightness(1.015);transform:translateY(-1px)}.tactile-action:active .tactile-surface,.tactile-action:active.tactile-surface{box-shadow:var(--tactile-shadow-active);filter:brightness(.99);transform:translateY(0)scale(.985)}.tactile-action:focus-visible .tactile-surface,.tactile-action:focus-visible.tactile-surface{box-shadow:var(--tactile-shadow-hover),0 0 0 3px var(--focus-ring)}.tactile-action:disabled .tactile-surface,.tactile-action:disabled.tactile-surface{filter:none;transform:none}.ui-switch{border:1px solid var(--control-border);cursor:pointer;background:var(--control-hover);width:36px;height:20px;transition:border-color var(--motion-standard) ease,background-color var(--motion-standard) ease,box-shadow var(--motion-standard) ease;border-radius:999px;outline:none;flex:0 0 36px;align-items:center;padding:2px;display:inline-flex;position:relative}.ui-switch[data-checked]{background:var(--control-primary-bg);border-color:#0000}.ui-switch:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.ui-switch[data-disabled]{cursor:default;opacity:.45}.ui-switch-thumb{width:16px;height:16px;box-shadow:var(--shadow-control-rest);transition:transform var(--motion-standard) var(--ease-out);background:#fff;border-radius:50%;display:block;transform:translate(0)}.ui-switch[data-checked] .ui-switch-thumb{transform:translate(16px)}.entry-step-heading h1,.font-display,.sheet-header h2,.token-case-header h2{font-family:var(--font-display);font-variation-settings:"SOFT" 40,"WONK" 0}.panel-eyebrow,.utility-label{font-family:var(--font-utility);text-transform:uppercase;font-size:10px;font-weight:500;line-height:1.4;display:block}.entry-cover{isolation:isolate;color:#2b211b;background:#180b09;min-height:100svh;padding:clamp(10px,1.35vw,22px);position:relative;overflow:hidden}.entry-leather{z-index:-2;filter:saturate(.7)contrast(1.05)brightness(.66);pointer-events:none;background-color:#180b09;background-image:url(/assets/grimoire-leather.webp);background-position:50%;background-size:cover;position:absolute;inset:0}.entry-inlay{z-index:-1;pointer-events:none;border:1px solid #c9a86547;position:fixed;inset:14px;box-shadow:inset 0 0 0 6px #0c04033d,inset 0 0 52px #00000057,0 0 0 1px #0000006b}.entry-book{background:#e9ddc6;border:1px solid #3e271785;border-radius:12px 10px 10px 12px;grid-template-columns:minmax(0,46fr) minmax(0,54fr);width:100%;height:calc(100svh - clamp(20px,2.7vw,44px));min-height:0;display:grid;position:relative;overflow:hidden;box-shadow:0 22px 54px #0000006b,0 4px 10px #00000057,0 0 0 3px #492a1a7a}.entry-book:after{z-index:4;content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#38221614 24%,#2b19112e 49%,#fffbeb1c 53%,#0000);width:42px;position:absolute;top:0;bottom:0;left:46%;transform:translate(-50%)}.entry-page{background-color:var(--parchment);background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:cover;min-width:0;min-height:0;position:relative;overflow-y:auto}.entry-page-intro{box-shadow:inset -18px 0 24px -24px #2f1b1099,inset 0 0 52px #4e30133b}.entry-page-action{box-shadow:inset 18px 0 24px -24px #2f1b10a6,inset 0 0 52px #4e30133b}.entry-page-inner{flex-direction:column;min-height:100%;padding:clamp(34px,5.5vh,64px) clamp(42px,5vw,76px) clamp(28px,4vh,46px);display:flex;position:relative}.entry-page-intro .entry-page-inner{padding-right:clamp(50px,6vw,88px)}.entry-page-action .entry-page-inner{padding-left:clamp(54px,6vw,92px)}.entry-action-heading>p,.entry-step-heading>p{color:#7d6340;font-family:var(--font-utility);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:9px;font-weight:500}.entry-intro-content{width:min(440px,100%);margin:auto 0;padding:34px 0}.entry-wordmark{color:#283034;font-family:var(--font-display);letter-spacing:-.018em;font-variation-settings:"SOFT" 18,"WONK" 1,"opsz" 144;margin:0;font-size:clamp(64px,6vw,86px);font-style:italic;font-weight:440;line-height:.92}.entry-wordmark span{display:block}.entry-action-heading h2,.entry-step-heading h2{color:#2b201a;font-family:var(--font-display);font-variation-settings:"SOFT" 16,"WONK" 0;margin:0;font-weight:470}.entry-action-heading h2{color:#51443a;font-weight:430}.entry-character-sheets{color:#30251e;width:min(440px,100%);min-height:66px;box-shadow:none;transition:color var(--motion-standard) ease;background:0 0;border:1px solid #4631212e;border-left:0;border-right:0;border-radius:0;outline:none;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:18px;margin-top:38px;padding:14px 0;text-decoration:none;display:grid;position:relative}.entry-character-sheets-mobile{display:none}.entry-character-sheets:after,.entry-character-sheets:before{content:"";transform-origin:50%;pointer-events:none;background:#71373a;height:1px;transition:transform .28s cubic-bezier(.22,1,.36,1);position:absolute;left:0;right:0;transform:scaleX(0)}.entry-character-sheets:before{top:-1px}.entry-character-sheets:after{bottom:-1px}.entry-character-sheets:is(:hover,:focus-visible){color:#632f33}.entry-character-sheets:is(:hover,:focus-visible):after,.entry-character-sheets:is(:hover,:focus-visible):before{transform:scaleX(1)}.entry-character-sheets>svg{color:#786b5e;stroke-width:1.6px;width:16px;height:16px;transition:transform var(--motion-standard) var(--ease-out);justify-self:end}.entry-character-sheets:is(:hover,:focus-visible)>svg{transform:translate(3px)}.entry-character-copy{height:36px;display:block;position:relative;overflow:hidden}.entry-character-copy small,.entry-character-copy strong{width:100%;transition:opacity .21s,transform .26s cubic-bezier(.22,1,.36,1);display:block;position:absolute;top:50%;left:0}.entry-character-copy strong{font-size:14px;font-weight:650;line-height:18px;transform:translateY(-50%)}.entry-character-copy small{color:#776a5e;opacity:0;font-size:10px;line-height:14px;transform:translateY(120%)}.entry-character-sheets:is(:hover,:focus-visible) .entry-character-copy strong{transform:translateY(-105%)}.entry-character-sheets:is(:hover,:focus-visible) .entry-character-copy small{opacity:1;transform:translateY(28%)}.entry-project-footer{z-index:5;justify-content:space-between;align-items:center;gap:24px;display:flex;position:absolute;bottom:clamp(28px,4vh,46px);left:clamp(42px,5vw,76px);right:calc(54% + clamp(50px,6vw,88px))}.entry-project-credit{color:#71655b;min-width:0;margin:0;font-size:11px;line-height:1.65}.entry-project-links{color:#928477;flex:none;align-items:center;gap:7px;font-size:11px;line-height:1.65;display:flex}.entry-author-link,.entry-project-github,.entry-project-privacy{color:#653336;text-underline-offset:3px;font-weight:590;text-decoration-line:underline;text-decoration-color:#65333659;text-decoration-thickness:1px}.entry-project-github{align-items:center;gap:5px;display:inline-flex}.entry-project-github svg{width:11px;height:11px}.entry-author-link:hover,.entry-project-github:hover,.entry-project-privacy:hover{color:#3f1d20;text-decoration-color:currentColor}.entry-back{z-index:2;color:#7b6e62;min-height:36px;font-family:var(--font-utility);text-transform:uppercase;transition:color var(--motion-standard) ease;background:0 0;border:0;align-items:center;gap:9px;padding:0;font-size:9px;font-weight:500;display:inline-flex;position:absolute;top:0;left:0}.entry-back:hover{color:#3d2e25}.entry-back:disabled{cursor:default;opacity:.45}.entry-back svg{width:14px;height:14px}.entry-action-stage{flex:1;align-items:center;width:100%;min-height:0;display:flex;position:relative}.entry-step,.entry-threshold{width:min(580px,100%);margin:0 auto;animation:entry-reveal .36s both}.entry-action-heading h2{font-size:clamp(34px,3.2vw,46px);line-height:1}.entry-step-heading h2{font-size:clamp(36px,3.8vw,56px);line-height:1}.entry-actions{gap:13px;margin-top:clamp(30px,5vh,46px);display:grid}.entry-action{border-radius:var(--radius-control);color:#31251e;text-align:left;background:#fffdf64f;border:1px solid #432d1e2b;outline:none;grid-template-columns:30px minmax(0,1fr) 20px;align-items:center;gap:16px;min-width:0;min-height:94px;padding:18px 20px;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s;display:grid;box-shadow:inset 0 1px #ffffff52,0 1px 2px #3723140d}.entry-action>svg:first-child{color:#783b3d;stroke-width:1.6px;width:24px;height:24px}.entry-action small,.entry-action strong{display:block}.entry-action strong{font-size:15px;font-weight:680}.entry-action small{color:#776a5e;margin-top:5px;font-size:11px;line-height:1.4}.entry-action-arrow{color:#827468;justify-self:end;width:17px;height:17px}.entry-action:hover{background:#fffdf680;border-color:#70353759;transform:translateY(-.5px);box-shadow:0 3px 9px #36221312}.entry-action:focus-visible,.entry-back:focus-visible,.entry-character-sheets:focus-visible,.entry-edition:focus-visible,.entry-project-credit a:focus-visible,.entry-project-links a:focus-visible,.entry-secondary-action:focus-visible{outline-offset:3px;outline:2px solid #6f383a94}.entry-editions{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,2vw,26px);width:100%;margin:clamp(24px,4vh,36px) auto 24px;display:grid}.entry-edition{color:#2b201a80;background:0 0;border:0;outline:none;min-width:0;padding:0 3px 12px;transition:color .15s,transform .15s}.entry-edition:hover{color:#2b201ad1;transform:translateY(-1px)}.entry-edition-art{aspect-ratio:1;width:min(142px,100%);margin:0 auto 10px;display:block;position:relative}.entry-edition-art img{object-fit:contain;opacity:.42;filter:saturate(.58);padding:8px;transition:filter .17s,opacity .17s}.entry-edition.is-selected{color:#2c211b}.entry-edition.is-selected .entry-edition-art img{opacity:1;filter:saturate()}.entry-edition strong{text-overflow:ellipsis;white-space:nowrap;padding-bottom:14px;font-size:11px;font-weight:660;display:block;position:relative;overflow:hidden}.entry-edition strong:after{content:"";background:#7a383a;width:0;height:2px;transition:width .17s;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.entry-edition.is-selected strong:after{width:32px}.entry-step-action{text-align:left;border-top:1px solid #422d1f26;justify-content:space-between;align-items:center;gap:24px;width:100%;min-height:66px;margin:0 auto;padding-top:18px;display:flex}.entry-player-count{align-items:center;gap:14px;display:flex}.entry-player-count-label{color:#75695e;font-family:var(--font-utility);text-transform:uppercase;align-items:center;gap:7px;font-size:9px;font-weight:500;display:inline-flex}.entry-player-count-label svg{color:#7b3c3e;stroke-width:1.6px;width:16px;height:16px}.entry-player-stepper{border-radius:var(--radius-control);background:#fffdf661;border:1px solid #432d1e33;align-items:center;height:40px;display:flex;overflow:hidden}.entry-player-stepper button{color:#62564b;background:0 0;border-radius:0;min-width:36px;height:38px}.entry-player-stepper button:hover{color:#2e221c;background:#422d1f12}.entry-player-stepper button:disabled{color:#2b201a38;background:0 0}.entry-player-stepper button svg{width:15px;height:15px}.entry-player-count-input{color:#2e221c;width:54px;height:38px;box-shadow:none;font-family:var(--font-utility);text-align:center;appearance:textfield;background:0 0;border:0;border-left:1px solid #432d1e21;border-right:1px solid #432d1e21;border-radius:0;padding:0 4px;font-size:15px}.entry-player-count-input::-webkit-inner-spin-button,.entry-player-count-input::-webkit-outer-spin-button{appearance:none;margin:0}.entry-player-count-input:focus{box-shadow:none;background:#fffdf6a3}.entry-join-form button,.entry-open-button{color:#fffaf0;background:#643034;min-width:170px;box-shadow:0 3px 9px #43221c29}.entry-join-form button:hover,.entry-open-button:hover{background:#512529}.entry-join-form button svg,.entry-open-button svg{width:16px;height:16px}.join-step{width:min(460px,100%)}.entry-join-form{text-align:left;gap:17px;margin-top:34px;display:grid}.entry-step-intro{color:#74685e;max-width:370px;margin:14px 0 0;font-size:12px;line-height:1.55}.entry-step-intro+.entry-join-form{margin-top:24px}.entry-join-form label>span{color:#71655b;font-family:var(--font-utility);text-transform:uppercase;margin-bottom:7px;font-size:9px;font-weight:500;display:block}.entry-join-form label>.entry-field-error{color:var(--status-danger);font-family:var(--font-body);text-transform:none;margin:6px 2px 0;font-size:11px;font-weight:560;line-height:1.35}.entry-join-form input[aria-invalid=true]{border-color:#8f2f3494;box-shadow:0 0 0 2px #8f2f341f}.entry-join-form input{border-radius:var(--radius-control);color:#2d211b;background:#fffdf66e;border-color:#432d1e33;height:52px;box-shadow:inset 0 1px 5px #432d1e12}.entry-join-form input:focus{background:#fffdf6b3;border-color:#69313485;box-shadow:0 0 0 2px #69313421}.entry-join-form input:disabled{cursor:not-allowed;color:#5c5047;opacity:1;-webkit-text-fill-color:#5c5047;background:#ebe2cf94;box-shadow:inset 0 1px 4px #432d1e0d}.entry-join-form input::placeholder{color:#2d211b52}.entry-code-input{font-family:var(--font-utility);letter-spacing:.06em;text-transform:uppercase;font-size:19px}.entry-form-error{color:var(--status-danger);margin:-3px 2px 0;font-size:11px;font-weight:560;line-height:1.4}.entry-join-form button{width:100%;margin-top:4px}.entry-secondary-action{color:#6f6157;min-height:32px;font-family:var(--font-utility);text-transform:uppercase;transition:color var(--motion-standard) ease;background:0 0;border:0;border-radius:2px;outline:none;justify-content:center;align-items:center;gap:7px;margin:15px auto 0;padding:4px 7px;font-size:9px;font-weight:500;display:flex}.entry-secondary-action:hover{color:#3d2e25}.entry-secondary-action svg{width:13px;height:13px}.entry-invitation-status{margin-top:26px}.entry-invitation-status>p{color:#6f6258;max-width:390px;margin:0;font-size:13px;line-height:1.6}.entry-invitation-actions{gap:4px;margin-top:25px;display:grid}.entry-invitation-actions .ui-button{color:#fffaf0;background:#643034;width:100%;box-shadow:0 3px 9px #43221c29}.entry-invitation-actions .ui-button:hover{background:#512529}.entry-community{z-index:5;border-top:1px solid #432d1e1f;grid-template-columns:76px minmax(0,1fr);align-items:center;column-gap:14px;padding-top:14px;display:grid;position:absolute;bottom:clamp(28px,4vh,46px);left:calc(46% + clamp(54px,6vw,92px));right:clamp(42px,5vw,76px)}.entry-ccc{opacity:.78;filter:sepia(.12)contrast(1.02);flex:none;width:76px;height:auto}.entry-community p{color:#827569;grid-area:1/2;max-width:500px;margin:0;font-size:10px;line-height:1.55}@keyframes entry-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.not-found-page{grid-template-rows:1fr;place-items:center;padding:64px 42px;display:grid}.not-found-content{text-align:center;width:min(400px,100%);animation:entry-reveal .36s both}.not-found-code{color:#c5a15ba8;font-family:var(--font-display);font-variation-settings:"SOFT" 0,"WONK" 0,"opsz" 144;text-shadow:0 1px #f7dca029,0 -2px 1px #000000c2,0 10px 28px #00000057;font-size:clamp(82px,8vw,112px);font-weight:390;line-height:.82}.not-found-content h1{color:#f1e8d5e6;font-family:var(--font-display);font-variation-settings:"SOFT" 0,"WONK" 0,"opsz" 144;text-shadow:0 2px 18px #00000061;margin:24px 0 0;font-size:clamp(28px,2.5vw,34px);font-weight:430;line-height:1.1}.not-found-action{color:#e2cfabc2;background:#c7a7630d;border-color:#c7a7633d;margin-top:22px;text-decoration:none}.not-found-action:hover{color:#f1e8d5;background:#c7a7631a}.not-found-action svg{width:16px;height:16px}.privacy-cover{overflow-y:auto}.privacy-panel{color:#2b211b;background-color:var(--parchment);background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:cover;border:1px solid #3e271785;border-radius:12px 10px 10px 12px;width:100%;min-height:calc(100svh - clamp(20px,2.7vw,44px));overflow:hidden;box-shadow:0 22px 54px #0000006b,0 4px 10px #00000057,0 0 0 3px #492a1a7a}.privacy-inner{max-width:700px;margin:0 auto;padding:clamp(34px,5.5vh,58px) clamp(28px,5vw,52px) clamp(44px,7vh,72px)}.privacy-back{color:#66594f;min-height:36px;font-family:var(--font-utility);text-transform:uppercase;transition:color var(--motion-standard) ease;align-items:center;gap:8px;margin-bottom:clamp(30px,4vw,44px);font-size:10px;font-weight:500;text-decoration:none;display:inline-flex}.privacy-back:hover{color:#352820}.privacy-back svg{width:14px;height:14px}.privacy-header{border-bottom:1px solid #442e1f21;padding-bottom:clamp(26px,4vw,36px)}.privacy-header h1{color:#291e18;font-family:var(--font-display);letter-spacing:-.015em;font-variation-settings:"SOFT" 16,"WONK" 0;margin:0;font-size:clamp(42px,6vw,56px);font-weight:480;line-height:1}.privacy-header time{color:#75685d;font-family:var(--font-utility);text-transform:uppercase;margin-top:14px;font-size:10px;display:block}.privacy-content{margin-top:clamp(30px,4vw,40px)}.privacy-content section{padding-bottom:clamp(26px,3.5vw,34px)}.privacy-content section+section{border-top:1px solid #442e1f1c;padding-top:clamp(26px,3.5vw,34px)}.privacy-content h2,.privacy-footer h2{color:#30231d;font-family:var(--font-display);font-variation-settings:"SOFT" 16,"WONK" 0;margin:0 0 10px;font-size:clamp(22px,2.5vw,25px);font-weight:540;line-height:1.2}.privacy-content p,.privacy-footer p{color:#51453d;margin:0;font-size:14px;line-height:1.72}.privacy-content p+p{margin-top:14px}.privacy-content strong{color:#352820;font-weight:620}.privacy-footer{border-top:1px solid #442e1f21;padding-top:clamp(26px,3.5vw,34px)}.privacy-footer a{color:#653336;text-underline-offset:3px;align-items:center;gap:6px;margin-top:12px;font-weight:600;text-decoration-line:underline;text-decoration-color:#65333659;display:inline-flex}.privacy-footer a:hover{color:#3f1d20;text-decoration-color:currentColor}.privacy-footer svg{width:13px;height:13px}.privacy-back:focus-visible,.privacy-footer a:focus-visible{outline-offset:3px;outline:2px solid #6f383a94}@media (max-width:640px){.not-found-page{padding:48px 28px}.not-found-content h1{font-size:28px}}@media (max-width:720px){.entry-cover:not(.not-found-page){padding:7px;overflow-y:auto}.entry-book{background-color:var(--parchment);background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:cover;flex-direction:column;height:auto;display:flex;overflow:hidden}.entry-book,.privacy-panel{border-radius:7px;min-height:calc(100svh - 14px)}.privacy-inner{padding:28px 24px 40px}.entry-book.is-active .entry-page-intro,.entry-book:after{display:none}.entry-page{background:0 0;flex:none;overflow:visible}.entry-page-intro{box-shadow:none}.entry-page-action{box-shadow:none;border-top:0}.entry-page-action .entry-page-inner,.entry-page-inner,.entry-page-intro .entry-page-inner{min-height:auto}.entry-page-intro .entry-page-inner{padding:30px 24px 10px}.entry-page-action .entry-page-inner{padding:6px 24px 12px}.entry-wordmark{font-size:clamp(46px,14vw,56px)}.entry-intro-content{margin:0;padding:18px 0 10px}.entry-character-sheets-desktop{display:none}.entry-character-sheets-mobile{min-height:58px;margin-top:16px;padding-top:10px;padding-bottom:10px;display:grid}.entry-project-footer{gap:12px;width:100%;margin:0;padding:12px 24px 24px;position:static}.entry-project-credit,.entry-project-links{font-size:10px}.entry-action-stage{align-items:flex-start;min-height:0;padding:18px 0 6px}.entry-book.is-active .entry-action-stage{padding-top:48px}.entry-action-heading h2{font-size:32px}.entry-back{top:0}.entry-actions{gap:10px;margin-top:20px}.entry-action{grid-template-columns:26px minmax(0,1fr) 17px;gap:12px;min-height:72px;padding:13px 15px}.entry-action>svg:first-child{width:21px;height:21px}.entry-action strong{font-size:14px}.entry-action small{margin-top:3px;font-size:10px}.entry-editions{gap:5px;margin-top:26px}.entry-edition-art{width:min(112px,100%)}.entry-edition-art img{padding:10px}.entry-edition strong{font-size:10px}.entry-step-action{text-align:center;flex-direction:column;align-items:stretch;gap:14px}.entry-player-count{justify-content:space-between;width:100%}.entry-open-button{width:100%}.entry-community{border-top:0;border-bottom:1px solid #432d1e1f;grid-template-columns:58px minmax(0,1fr);width:auto;margin:auto 24px 0;padding:0 0 12px;position:static}.entry-ccc{width:58px}.entry-community p{font-size:9px;line-height:1.45}}@media (max-width:420px){.entry-character-sheets{grid-template-columns:minmax(0,1fr) 16px;gap:11px}}@media (max-height:620px) and (min-width:721px){.entry-cover:not(.not-found-page){padding:8px}.entry-book{height:calc(100svh - 16px)}.entry-page-action .entry-page-inner,.entry-page-inner,.entry-page-intro .entry-page-inner{padding:24px 36px 20px 42px}.entry-wordmark{font-size:48px}.entry-intro-content{padding:12px 0}.entry-action-heading h2{font-size:26px}.entry-step-heading h2{font-size:28px}.entry-character-sheets{min-height:50px;margin-top:12px;padding-top:7px;padding-bottom:7px}.entry-project-footer{bottom:20px;left:42px;right:calc(54% + 36px)}.entry-project-credit,.entry-project-links{font-size:9px;line-height:1.45}.entry-actions{gap:8px;margin-top:18px}.entry-action{min-height:64px;padding-top:11px;padding-bottom:11px}.entry-community{grid-template-columns:58px minmax(0,1fr);column-gap:9px;padding-top:10px}.entry-community p{font-size:8px;line-height:1.35}.entry-ccc{width:58px}.entry-edition-art{width:80px}.entry-editions{margin-top:12px;margin-bottom:8px}.entry-edition strong{padding-bottom:8px;font-size:9px}.entry-step-action{min-height:52px;padding-top:8px}.entry-join-form{gap:10px;margin-top:18px}.entry-join-form input{height:42px}}@media (prefers-reduced-motion:reduce){.entry-step,.entry-threshold{animation:none}.entry-action,.entry-character-copy small,.entry-character-copy strong,.entry-character-sheets:after,.entry-character-sheets:before,.entry-character-sheets>svg,.entry-edition,.privacy-back,.privacy-footer a{transition:none}}.storyteller-shell{--active-grimoire-sheet-width:var(--grimoire-sheet-width);height:100svh;color:var(--ink);background:#15110f;position:relative;overflow:hidden}.grimoire-toolbar{z-index:60;width:100%;height:0;color:var(--chalk);box-shadow:none;pointer-events:none;background:0 0;border:0;padding:0;display:block;position:fixed;inset:0}.toolbar-brand{box-sizing:border-box;border-radius:var(--grimoire-hardware-radius);pointer-events:auto;justify-self:start;align-items:center;gap:10px;min-width:0;min-height:52px;padding:5px 15px 5px 9px;display:flex;position:absolute;top:28px;left:30px}.edition-mark{place-items:center;width:38px;height:42px;display:grid}.edition-mark img{object-fit:contain;width:34px;height:38px}.toolbar-brand p{margin:0;font-size:12px;font-weight:680}.grimoire-redaction-setting{height:30px;color:var(--grimoire-hardware-muted);font-family:var(--font-utility);font-size:var(--text-caption);cursor:pointer;border-left:1px solid #644c2c38;align-items:center;gap:7px;margin-left:4px;padding:0 8px 0 11px;font-weight:600;display:flex}.grimoire-redaction-switch[data-checked]{background-color:var(--grimoire-hardware-accent)}.storyteller-shell.is-redacted .grimoire-redaction-setting{color:var(--grimoire-hardware-text)}.join-code-control{box-sizing:border-box;border-radius:var(--grimoire-hardware-radius);pointer-events:auto;min-width:112px;min-height:52px;transition:border-color var(--motion-fast) ease,background-color var(--motion-fast) ease,right .2s var(--ease-out);grid-template-columns:auto 18px;align-items:center;gap:0 8px;padding:7px 11px 7px 15px;display:grid;position:absolute;top:28px;right:30px}.join-code-control .utility-label{font-size:var(--text-caption);text-align:center;grid-column:1/3}.join-code-control strong{font-family:var(--font-utility);letter-spacing:.03em;font-size:11px;font-weight:600}.join-code-control svg{color:var(--grimoire-hardware-accent)}.toolbar-shortcuts-button{height:30px;color:var(--grimoire-hardware-muted);font-family:var(--font-utility);font-size:var(--text-caption);pointer-events:auto;transition:color var(--motion-fast) ease,opacity var(--motion-fast) ease;background:0 0;border:0;border-left:1px solid #644c2c38;border-radius:0;align-items:center;gap:6px;margin-left:2px;padding:0 2px 0 11px;font-weight:600;display:inline-flex}.toolbar-shortcuts-button:hover{color:var(--grimoire-hardware-text)}.toolbar-shortcuts-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.toolbar-shortcuts-button .shortcut-key{color:currentColor;background:#fffcf047}.toolbar-shortcuts-button .shortcut-hint{gap:6px}.toolbar-status{color:var(--grimoire-hardware-accent);font-size:var(--text-caption);pointer-events:none;justify-self:end;align-items:center;gap:5px;font-weight:650;display:flex;position:absolute;top:87px;right:30px}.toolbar-status.is-saving{justify-content:center;width:20px;height:20px}.toolbar-status.is-saving .ui-spinner{width:14px;height:14px}.grimoire-workspace{background:var(--parchment);width:100%;height:100svh;transition:width .2s var(--ease-out);padding:0;position:relative}.grimoire-frame{box-shadow:none;background:0 0;padding:0}.grimoire-board,.grimoire-frame{width:100%;height:100%;border:0;border-radius:0;overflow:hidden}.grimoire-board{background-color:var(--parchment);background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:cover;position:relative;box-shadow:inset 0 0 52px #4e30133b}.canvas-player-position,.canvas-reminder-position{position:absolute;transform:translate(-50%,-50%)}.canvas-player-position{z-index:12}.canvas-reminder-position{z-index:24}.grimoire-board.is-compact-layout .canvas-player-position,.grimoire-board.is-compact-layout .canvas-reminder-position{transition:left .18s var(--ease-out),top .18s var(--ease-out)}.grimoire-board.is-compact-layout .player-name-label{width:max-content;min-width:0;max-width:clamp(66px,calc(var(--player-token-size) * 1.35),104px)}.grimoire-board.is-compact-layout .player-name-label :is(button,.player-name-static,input){max-width:inherit;font-size:clamp(9px,calc(var(--player-token-size) * .15),12px)}.grimoire-board.is-compact-layout .player-name-label small{font-size:clamp(8px,calc(var(--player-token-size) * .13),11px)}.grimoire-board[data-layout-density=dense] .player-name-label{gap:0}.grimoire-board[data-layout-density=dense] .player-name-label :is(button,.player-name-static,input){font-size:9px}.grimoire-board[data-layout-density=dense] .player-name-label small{font-size:8px}.canvas-player-position.is-dragging,.canvas-reminder-position.is-dragging{z-index:80}.player-token-cluster{touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.player-token-cluster.is-dragging{z-index:80}.role-artwork{width:100%;height:100%;color:var(--ink);background:#dfe9ef;border-radius:50%;display:block;position:relative;overflow:hidden}.role-artwork.team-outsider{background:#ded8ea}.role-artwork.team-minion{background:#ead8d1}.role-artwork.team-demon{background:#e4c9c7}.role-artwork.team-traveller{background:#ddd7c8}.role-art-crop{border-radius:48%;position:absolute;inset:4% 4% 17%;overflow:hidden}.role-art-crop img{object-fit:cover;object-position:left center;width:150%!important;max-width:none!important;height:150%!important;position:absolute!important;inset:-25% auto auto -1%!important}.role-artwork-icon .role-art-crop{border-radius:50%;inset:7%}.role-artwork-icon .role-art-crop img{object-fit:contain;object-position:center;filter:saturate(.92)contrast(.97);opacity:.96;transform:none;width:100%!important;max-width:100%!important;height:100%!important;inset:0!important}.role-token-name{z-index:2;color:#231f19;font-family:var(--font-display);text-align:center;white-space:normal;background:#f4ebd5e8;border-top:1px solid #261f1552;border-bottom:1px solid #261f1530;padding:2px 2px 3px;font-size:9px;font-weight:700;line-height:.9;position:absolute;bottom:7%;left:8%;right:8%;overflow:hidden}.role-artwork-compact{border:2px solid #45423a;flex:0 0 46px;width:46px;height:46px;box-shadow:0 3px 6px #00000042}.role-artwork-compact .role-token-name{display:none}.role-artwork-tiny{border:1.5px solid #464037;flex:0 0 31px;width:31px;height:31px;box-shadow:0 1px 3px #0000003d}.role-artwork-tiny .role-art-crop{inset:3%}.character-token,.token-icon{border-radius:50%;place-items:center;display:grid;overflow:hidden}.character-token-sm,.token-icon-sm{flex:0 0 31px;width:31px;height:31px}.character-token-md,.token-icon-md{flex:0 0 36px;width:36px;height:36px}.character-token-lg{flex:0 0 48px;width:48px;height:48px}.character-token-fill{flex:none;width:100%;height:100%}.character-token-soft,.token-icon-soft{box-shadow:none;border:1px solid #23262229}.token-icon-soft.token-icon-generic{color:var(--brass-dark);background:#c3a15f17}.character-token-parchment,.token-icon-parchment{border:0;box-shadow:0 2px 4px #31200d38}.character-token-bare{box-shadow:none;border:0}.token-icon-parchment.token-icon-generic{color:#4a4135;background-color:#ded3b9;background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:120px}.token-icon>svg{stroke-width:1.8px;width:52%;height:52%}.empty-character-state{color:#28231b7a;width:100%;height:100%;font-size:var(--text-caption);text-transform:uppercase;background:#efe4c7d6;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-weight:700;display:flex}.empty-character-state.is-unassigned{color:#28231b57;gap:5px;font-size:8px;font-weight:650}.empty-character-state.is-unassigned svg{stroke-width:1.35px;width:20px;height:20px}.empty-character-plus{font-family:var(--font-display);margin-bottom:2px;font-size:24px;font-weight:400;line-height:.9}.redacted-role-token{color:#40342380;background-blend-mode:soft-light,multiply;background-color:#d8cbaa;background-image:radial-gradient(circle at 36% 28%,#fffcee7a 0,#e4d7b42e 56%,#6854361a 100%),url(/assets/grimoire-parchment.png);background-position:50%;background-size:100% 100%,150px;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;height:100%;display:flex}.redacted-role-token svg{stroke-width:1.5px;width:24%;height:24%}.redacted-role-token span{font-family:var(--font-utility);font-size:var(--text-caption);text-transform:uppercase;font-weight:600}.death-overlay{z-index:5;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 38% 28%,#2625224f 0,#1918167a 100%);position:absolute;inset:0;box-shadow:inset 0 0 18px #1211103d}.ghost-vote-badge{z-index:8;color:#4b3e2d;pointer-events:none;background:#ebdebef5;border:1px solid #453929ad;border-radius:50%;place-items:center;width:28%;height:28%;transition:color .15s;display:grid;position:absolute;bottom:24%;right:-6%;overflow:hidden;box-shadow:0 2px 5px #271c104d,inset 0 1px #fffcf08f}.ghost-vote-badge>svg{stroke-width:1.8px;width:54%;height:54%;transition:opacity .15s}.ghost-vote-slash{opacity:0;background:#a94343;border-radius:2px;width:2px;height:88%;transition:opacity .14s,transform .18s cubic-bezier(.2,.75,.2,1);position:absolute;transform:rotate(45deg)scaleY(.2);box-shadow:0 0 0 1px #f4e7cc85}.ghost-vote-badge.is-used{color:#4b3e2d75}.ghost-vote-badge.is-used>svg{opacity:.72}.ghost-vote-badge.is-used .ghost-vote-slash{opacity:1;transform:rotate(45deg)scaleY(1)}.bluff-rack-label{color:#342a1c9e;font-family:var(--font-utility);font-size:var(--text-caption);text-transform:uppercase;font-weight:500}.bluff-rack-header{justify-content:space-between;align-items:center;width:100%;min-height:18px}.bluff-rack-header,.bluff-slots{gap:6px;display:flex}.bluff-slot-control{width:34px;height:34px;position:relative}.bluff-slot{color:#41301c80;background:#eedcb173;border:1px dashed #46341d73;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;display:grid}.bluff-slot.has-role{box-shadow:none;background:0 0;border-color:#0000}.bluff-slot .character-token{width:32px;height:32px}.storyteller-dock.player-dock{z-index:56;bottom:max(12px,env(safe-area-inset-bottom));border-radius:var(--radius-panel);height:64px;color:var(--chalk);background:#1a211e;border:1px solid #c3a15f57;align-items:stretch;padding:5px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #0000007a}.player-dock{max-width:calc(100vw - 32px)}.player-dock>button:last-child{color:#f4f0e680;align-self:center;width:40px}.player-dock>button:last-child:hover{color:var(--chalk);background:#f4f0e614}.sheet-scrim{z-index:69;background:#080a0966;border:0;transition:opacity .16s;position:fixed;inset:0}.sheet-scrim[data-ending-style],.sheet-scrim[data-starting-style]{opacity:0}.sheet-viewport{z-index:70;pointer-events:none;justify-content:flex-end;display:flex;position:fixed;inset:0}.side-sheet{width:var(--grimoire-sheet-width);flex:0 0 var(--grimoire-sheet-width);max-width:92vw;height:100%;color:var(--ink);background:var(--parchment-light);pointer-events:auto;outline:none;flex-direction:column;transition:transform .2s cubic-bezier(.2,.75,.2,1);display:flex;position:relative;top:0;box-shadow:0 0 36px #0000006b}.side-sheet[data-ending-style],.side-sheet[data-starting-style]{transform:translate(102%)}.side-sheet.is-pinned{width:var(--grimoire-pinned-sheet-width);max-width:var(--grimoire-pinned-sheet-width);flex-basis:var(--grimoire-pinned-sheet-width);box-shadow:-1px 0 #44331e2e}.sheet-panel{flex-direction:column;flex:1;min-height:0;display:flex}.sheet-panel[hidden]{display:none}.sheet-header{min-height:72px;color:var(--chalk);background:var(--felt-dark);border-bottom:1px solid #c3a15f3d;flex:0 0 72px;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.sheet-header .panel-eyebrow{color:var(--brass)}.sheet-title{font-family:var(--font-display);font-size:var(--text-title-sm);outline:none;margin:0;font-weight:510;line-height:1}.sheet-header button{color:#f4f0e699}.sheet-header button:hover{color:#fff;background:#f4f0e614}.sheet-header .sheet-pin-button[aria-pressed=true]{color:var(--brass);box-shadow:none;border-color:#0000;background:0 0!important}.sheet-header .sheet-pin-button[aria-pressed=true] svg{fill:currentColor}.sheet-header-actions{align-items:center;gap:2px;display:flex}.sheet-footer{border-top:1px solid #2326221f;flex:none;justify-content:space-between;gap:8px;min-height:60px;padding:10px 14px}.roster-summary,.sheet-footer{background:#ebe6d9;align-items:center;display:flex}.roster-summary{border-bottom:1px solid #2326221a;min-height:52px;padding:10px 16px 11px}.roster-team-counts{justify-content:space-between;align-items:center;gap:12px;width:100%;min-width:0;display:flex}.roster-sheet-footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.roster-sheet-footer>button{gap:6px;width:100%;min-width:0;padding-left:4px;padding-right:4px;font-size:10px}.roster-sheet-footer .shortcut-key{margin-left:auto}@media (max-width:700px),(pointer:coarse){.toolbar-shortcuts-button{display:none}}.roster-sheet-footer .roster-clear-assignments:not(:disabled){color:var(--oxblood)}.roster-team-count{color:#23262294;white-space:nowrap;align-items:baseline;gap:4px;font-size:10px;display:inline-flex}.roster-team-count strong{color:var(--team-accent);font-variant-numeric:tabular-nums;align-items:baseline;gap:2px;font-size:11px;font-weight:680;display:inline-flex}.roster-team-count strong span:last-child{color:#2326226b;font-weight:540}.roster-team-count.team-townsfolk{--team-accent:#39738f}.roster-team-count.team-outsider{--team-accent:#705b94}.roster-team-count.team-minion{--team-accent:#944145}.roster-team-count.team-demon{--team-accent:#7e2329}.roster-list{flex:1;min-height:0;overflow-y:auto}.roster-row{border-bottom:1px solid #23262217;grid-template-columns:34px minmax(0,1fr) 124px 30px;align-items:center;min-height:52px;padding:0 14px;display:grid}.roster-row:hover{background:var(--row-hover)}.roster-seat-number{color:#23262280;width:23px;height:23px;font-family:var(--font-utility);font-size:var(--text-caption);background:0 0;border:1px solid #23262233;border-radius:50%;place-items:center;display:grid;position:relative}.roster-seat-number.is-online-player:after{border:1px solid var(--parchment);content:"";background:#39738f;border-radius:50%;width:6px;height:6px;position:absolute;bottom:-1px;right:-1px}.roster-row input{min-width:0;box-shadow:none;background:0 0;border:0}.roster-role-control{min-width:0;height:35px;position:relative}.roster-role{border-radius:var(--radius-control);width:100%;min-width:0;height:35px;color:var(--ink-muted);background:0 0;border:0;justify-content:flex-start;align-items:center;gap:7px;padding:2px 27px 2px 7px;font-size:10px;font-weight:620;display:flex}.roster-role:hover{background:var(--control-hover)}.roster-role:focus-visible,.roster-seat-number:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.roster-role span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roster-role.is-empty{color:var(--oxblood);justify-content:center;padding-right:7px}.roster-role-clear{color:#722f348f;border-radius:50%;width:20px;height:20px;min-height:20px;padding:0;position:absolute;top:2px;right:2px}.roster-role-clear:focus-visible,.roster-role-clear:hover{color:var(--oxblood);background:#722f341a}.roster-remove-player{color:#722f347a;justify-self:end;width:28px;height:28px;min-height:28px;padding:0}.roster-remove-player:focus-visible,.roster-remove-player:hover{color:var(--oxblood);background:#722f3417}.remove-player-button.is-confirming,.remove-player-button.is-confirming:focus-visible,.remove-player-button.is-confirming:hover{color:#fff8ed;background:var(--oxblood);box-shadow:0 2px 5px #491b1f3d}.roster-setup-issue{color:#835a25;background:#f1eadc;border-bottom:1px solid #722f3424;margin:0;padding:8px 16px;font-size:9px;line-height:1.4}.night-controls{background:#ebe6d9;border-bottom:1px solid #2326221a;gap:7px;padding:12px 14px;display:flex}.night-controls>div{min-width:0}.night-controls>div button{flex:1;min-width:0;padding:0 6px}.night-order-list{flex:1;min-height:0;overflow-y:auto}.night-order-row{width:100%;color:var(--ink);background:0 0;border-bottom:1px solid #23262217;transition:background-color .12s,opacity .12s}.night-order-row:hover{background:var(--row-hover)}.night-order-row.is-complete{opacity:.42;background:#2326220a}.night-order-row-main{width:100%;min-height:70px;color:inherit;text-align:left;background:0 0;border:0;align-items:flex-start;gap:10px;padding:12px 15px;display:flex}.night-order-row-main:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.night-order-copy{text-align:left;flex:1;min-width:0}.night-order-title{font-size:var(--text-body);font-weight:650;display:block}.night-order-player{color:#2326226b;font-size:inherit;margin-left:6px;font-weight:450}.night-order-description{color:#2326227a;font-size:var(--text-body-sm);margin-top:2px;line-height:1.55;display:block}.night-order-information-token{color:#356b72;background:#dbe8e594;border-color:#315d5a2e}.night-reminder-actions,.night-reveal-actions{gap:0;padding:0 14px 12px 89px;display:grid}.night-reminder-actions button,.night-reveal-actions button{border-radius:var(--radius-control);color:#232622ad;text-align:left;background:0 0;border:0;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:32px;padding:3px 6px;font-size:10px;line-height:1.35;transition:background-color .12s,color .12s;display:grid}.night-reminder-actions button:focus-visible,.night-reminder-actions button:hover,.night-reveal-actions button:focus-visible,.night-reveal-actions button:hover{color:var(--ink);background:var(--row-hover)}.night-reminder-actions button.is-active{color:var(--ink);background:var(--row-active)}.night-reminder-action-icon{color:#755228ad;place-items:center;width:18px;height:18px;display:grid;position:relative}.night-reminder-action-icon>svg{width:15px;height:15px}.night-reminder-action-icon>small{color:#533d22c2;min-width:12px;height:12px;font-family:var(--font-utility);background:#f4ecd8eb;border-radius:50%;place-items:center;padding:0 2px;font-size:6px;font-weight:680;line-height:1;display:grid;position:absolute;top:-3px;right:-4px;box-shadow:0 1px 2px #37241124}.night-reminder-action-copy{text-overflow:ellipsis;min-width:0;overflow:hidden}.night-reminder-actions button:focus-visible{outline:0;box-shadow:inset 2px 0 #75522852}.night-reminder-action-meta{color:#533d229e;min-width:42px;font-family:var(--font-utility);justify-content:flex-end;align-items:center;gap:3px;font-size:8px;line-height:1.1;display:flex}.night-reminder-action-meta svg{width:12px;height:12px}.night-reminder-action-meta strong{font-weight:600}.night-reveal-actions{padding-top:0}.night-reveal-actions button{grid-template-columns:18px minmax(0,1fr) auto}.night-reveal-actions button:disabled{color:#23262257;cursor:default;background:0 0}.night-reveal-actions button:disabled .night-reveal-action-icon,.night-reveal-actions button:disabled .night-reveal-action-meta{color:#2326224d}.night-reveal-action-icon{color:#315d5ab8;place-items:center;width:18px;height:18px;display:grid}.night-reveal-action-icon .reveal-icon{stroke-width:1.8px;width:15px;height:15px}.night-reveal-action-copy{text-overflow:ellipsis;min-width:0;overflow:hidden}.night-reveal-action-meta{color:#315d5ab8;font-family:var(--font-utility);font-size:8px;font-weight:600;line-height:1.1}.night-reveal-actions button:focus-visible{outline:0;box-shadow:inset 2px 0 #315d5a52}.night-info-token{color:#7c522b;font-weight:650}.night-order-index{color:#2326227a;width:30px;height:30px;font-family:var(--font-utility);font-size:var(--text-caption);border:1px solid #23262229;border-radius:50%;flex:0 0 30px;place-items:center;display:grid}.night-empty{color:#23262273;text-align:center;padding:60px 20px;font-size:12px}.player-reveal-panel{flex:1;min-height:0;padding:8px 0 24px;overflow-y:auto}.player-reveal-panel-section{padding:16px 18px 20px}.player-reveal-panel-section+.player-reveal-panel-section{border-top:1px solid #23262217;margin-top:0}.player-reveal-panel-section>.utility-label{color:#23262285;margin-bottom:10px;display:block}.player-reveal-action-list{gap:8px;display:grid}.player-reveal-panel-section.is-token-board .player-reveal-action-list{grid-template-columns:repeat(2,minmax(0,1fr))}.player-reveal-panel-section.is-setup-board .player-reveal-action-list{gap:8px}.player-reveal-action{border-radius:var(--radius-control);width:100%;min-height:62px;color:var(--ink);text-align:left;transition:color var(--motion-fast) ease,background-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,transform var(--motion-fast) var(--ease-out);justify-content:flex-start;gap:11px;padding:9px 7px}.player-reveal-action[data-layout=tile]{min-height:66px;box-shadow:var(--shadow-control-rest);background:#fffcf23d;border:1px solid #23262214;padding:10px 11px}.player-reveal-action[data-layout=tile][data-wide=true]{grid-column:1/-1;min-height:58px}.player-reveal-action:focus-visible,.player-reveal-action:hover{background:var(--row-hover);box-shadow:var(--shadow-control-hover);transform:translateY(-1px)}.player-reveal-action:focus-visible{box-shadow:var(--shadow-control-hover),0 0 0 2px var(--focus-ring)}.player-reveal-action:active{box-shadow:var(--shadow-control-pressed);transform:translateY(0)}.player-reveal-action:disabled{color:#23262294;opacity:1;box-shadow:none;transform:none}.player-reveal-action[data-layout=tile]:disabled{box-shadow:var(--shadow-control-rest);background:#fffcf22e;border-color:#2326220f}.player-reveal-action-icon{color:#356b72;background:#dbe8e594;border:1px solid #315d5a2e;border-radius:50%;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid}.player-reveal-action[data-layout=tile] .player-reveal-action-icon{flex-basis:36px;width:36px;height:36px}.player-reveal-action-icon>svg{stroke-width:1.7px;width:17px;height:17px}.information-token-icon.is-you-are{transform:rotate(180deg)}.player-reveal-action[data-tone=good] .player-reveal-action-icon{color:#286d8e;background:#d8e8efa3}.player-reveal-action[data-tone=evil] .player-reveal-action-icon{color:#8e383d;background:#edd9d4a8}.player-reveal-action:disabled .player-reveal-action-icon{color:#315d5a6b;background:#dbe8e557;border-color:#315d5a1c}.player-reveal-action-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.player-reveal-action-copy strong{font-size:var(--text-body-sm);font-weight:640;line-height:1.25}.player-reveal-action-copy small{color:#23262280;font-size:var(--text-caption);font-weight:450;line-height:1.35}.player-reveal-action:disabled .player-reveal-action-copy strong{color:#23262294}.player-reveal-action:disabled .player-reveal-action-copy small{color:#23262273}.player-reveal-viewport{z-index:200;position:fixed;inset:0}.player-reveal-screen{color:#f3ead9;background-color:#101713;background-image:url(/assets/grimoire-leather.webp);background-position:50%;background-size:cover;outline:none;place-items:center;min-width:0;min-height:0;display:grid;position:fixed;inset:0;overflow:hidden}.player-reveal-screen:before{content:"";pointer-events:none;border:1px solid #c29d5452;border-radius:7px;position:absolute;inset:18px}.player-reveal-content{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:22px;width:min(920px,100vw - 112px);max-height:calc(100svh - 112px);display:flex;position:relative}.player-reveal-title{color:#f3ead9;font-family:var(--font-display);letter-spacing:0;text-wrap:balance;outline:none;margin:0;font-size:42px;font-weight:610;line-height:1.05}.player-reveal-primary-role{flex-direction:column;align-items:center;display:flex}.player-reveal-primary-token{border:2px solid #be9a53a8;width:190px;height:190px;box-shadow:0 13px 28px #00000057}.player-reveal-primary-role h2{color:#f7efe0;font-family:var(--font-display);margin:16px 0 1px;font-size:32px;font-weight:680;line-height:1.1}.player-reveal-team{color:#75a8ba;font-family:var(--font-utility);text-transform:uppercase;margin:0;font-size:10px;font-weight:600}.player-reveal-team.team-demon,.player-reveal-team.team-minion{color:#c97876}.player-reveal-ability{color:#f3ead9b8;max-width:620px;margin:15px 0 0;font-size:15px;line-height:1.5}.player-reveal-role-list{grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;gap:28px;width:100%;display:grid}.player-reveal-role-item{flex-direction:column;align-items:center;gap:10px;min-width:0;display:flex}.player-reveal-role-token{border:1px solid #be9a538a;width:150px;height:150px;box-shadow:0 10px 22px #0000004d}.player-reveal-role-item>strong{color:#f3ead9;font-family:var(--font-display);font-size:19px;font-weight:620;line-height:1.1}.player-reveal-empty{color:#f3ead97a;font-family:var(--font-utility);margin:8px 0 0;font-size:11px}.player-reveal-player-name{color:#f6eddb;font-family:var(--font-display);text-wrap:balance;margin:0;font-size:66px;font-weight:680;line-height:1}.player-reveal-alignment{flex-direction:column;align-items:center;gap:16px;display:flex}.player-reveal-alignment>svg{stroke-width:1.3px;width:112px;height:112px}.player-reveal-alignment>strong{font-family:var(--font-display);font-size:66px;line-height:1}.player-reveal-alignment.is-good{color:#72b6cf}.player-reveal-alignment.is-evil{color:#d46f70}.player-reveal-content.is-question{gap:18px}.player-reveal-question-icon{color:#d1ad68;background:#eee0bf0f;border:1px solid #c29d5452;border-radius:50%;place-items:center;width:104px;height:104px;display:grid}.player-reveal-question-icon>svg{stroke-width:1.35px;width:48px;height:48px}.player-reveal-content.is-question .player-reveal-title{font-size:54px}.player-reveal-question-response{color:#f3ead994;font-family:var(--font-utility);margin:0;font-size:12px;line-height:1.4}.player-reveal-content.is-group-information{flex-direction:row;gap:54px;width:min(1020px,100vw - 112px)}.player-reveal-information-section{flex-direction:column;flex:1;align-items:center;gap:24px;min-width:0;display:flex}.player-reveal-information-section+.player-reveal-information-section{border-left:1px solid #c29d543d;padding-left:54px}.player-reveal-content.is-group-information .player-reveal-title{font-size:32px}.player-reveal-content.is-group-information .player-reveal-role-list{gap:13px}.player-reveal-content.is-group-information .player-reveal-role-token{width:112px;height:112px}.player-reveal-content.is-group-information .player-reveal-role-item>strong{font-size:15px}.player-reveal-content.is-group-information .player-reveal-player-name{font-size:46px}.player-reveal-player-list{flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;display:flex}.player-reveal-player-list>strong{color:#f5ecdc;font-family:var(--font-display);background:#eee0bf12;border-top:1px solid #c29d5447;border-bottom:1px solid #c29d542e;padding:9px 13px 10px;font-size:24px;font-weight:610}.player-reveal-player-list>span{color:#f3ead97a;font-family:var(--font-utility);font-size:11px}.player-reveal-return{right:max(30px,env(safe-area-inset-right));bottom:max(30px,env(safe-area-inset-bottom));z-index:2;color:#f3ead994;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b100e94;border:1px solid #c29d5442;justify-content:center;min-width:170px;position:fixed}.player-reveal-return:focus-visible,.player-reveal-return:hover{color:#f3ead9;background:#18211ceb}.player-reveal-return.is-confirming{color:#f3ead9;border-color:#c29d548f}.player-reveal-return>svg{width:15px;height:15px}@media (max-height:680px),(max-width:900px){.player-reveal-content{gap:16px;width:min(820px,100vw - 88px);max-height:calc(100svh - 88px)}.player-reveal-title{font-size:34px}.player-reveal-primary-token{width:142px;height:142px}.player-reveal-primary-role h2{margin-top:10px;font-size:26px}.player-reveal-ability{max-width:560px;margin-top:10px;font-size:13px}.player-reveal-role-token{width:116px;height:116px}.player-reveal-alignment>strong,.player-reveal-player-name{font-size:52px}.player-reveal-alignment>svg{width:86px;height:86px}.player-reveal-question-icon{width:84px;height:84px}.player-reveal-question-icon>svg{width:38px;height:38px}.player-reveal-content.is-question .player-reveal-title{font-size:42px}.player-reveal-content.is-group-information{gap:28px;width:min(880px,100vw - 88px)}.player-reveal-information-section+.player-reveal-information-section{padding-left:28px}.player-reveal-content.is-group-information .player-reveal-role-token{width:84px;height:84px}.player-reveal-return{right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom))}}.dialog-backdrop{z-index:var(--layer-dialog-backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080a09b3;position:fixed;inset:0}.dialog-viewport{z-index:var(--layer-dialog);justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.invite-dialog-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#080a09c2}.invite-dialog-viewport{padding:20px;overflow:auto}.invite-card{width:min(520px,100%);max-height:calc(100svh - 40px);color:var(--ink);background-color:var(--parchment-light);box-shadow:inset 0 0 46px #5e411d21,var(--shadow-dialog);background-image:linear-gradient(#faf4e3d1,#e8d7b1bd),url(/assets/grimoire-parchment.png);background-position:50%;background-size:cover;border:1px solid #70542d8f;border-radius:8px;padding:24px 26px;position:relative;overflow:auto}.invite-card-header{z-index:1;justify-content:space-between;align-items:flex-start;gap:20px;display:flex;position:relative}.invite-card-header h2{font-family:var(--font-display);font-variation-settings:"SOFT" 40,"WONK" 0;outline:none;margin:0;font-size:29px;font-weight:520;line-height:1.1}.invite-card-close{z-index:2;margin:-5px -7px 0 0;position:relative}.invite-card-description{z-index:1;color:var(--ink-muted);margin:7px 0 18px;font-size:13px;line-height:1.45;position:relative}.invite-card-body{z-index:1;grid-template-columns:210px minmax(0,1fr);align-items:center;gap:26px;display:grid;position:relative}.invite-qr-frame{background:var(--parchment-light);border:1px solid #70542d42;border-radius:5px;place-items:center;width:210px;min-height:210px;padding:12px;display:grid;box-shadow:inset 0 0 0 3px #c3a15f17,0 4px 13px #31200d1f}.invite-qr-frame svg{width:min(186px,100%);height:auto;display:block}.invite-card-actions{flex-direction:column;gap:9px;min-width:0;display:flex}.invite-code-block{margin-bottom:9px;display:block}.invite-code-block .utility-label{color:var(--ink-muted);margin-bottom:3px}.invite-code-value{align-items:center;gap:4px;display:flex}.invite-code-value strong{font-family:var(--font-utility);letter-spacing:.08em;font-size:22px;font-weight:500;display:block}.invite-code-copy{color:var(--ink-muted)}.invite-code-copy:hover{color:var(--ink)}.invite-copy-glyph{width:16px;height:16px;display:block;position:relative}.invite-copy-glyph svg{width:16px;height:16px;transition:opacity var(--motion-standard) ease,transform var(--motion-standard) var(--ease-out);position:absolute;inset:0}.invite-copy-glyph-copy{opacity:1;transform:scale(1)rotate(0)}.invite-copy-glyph-check{color:var(--brass-dark);opacity:0;transform:scale(.72)rotate(-8deg)}.invite-copy-glyph[data-copied] .invite-copy-glyph-copy{opacity:0;transform:scale(.72)rotate(8deg)}.invite-copy-glyph[data-copied] .invite-copy-glyph-check{opacity:1;transform:scale(1)rotate(0)}.invite-primary-action{width:100%}.invite-primary-action svg{width:16px;height:16px}@media (max-width:600px){.invite-dialog-viewport{align-items:center;padding:12px}.invite-card{max-height:calc(100svh - 24px);padding:22px 20px}.invite-card-header h2{font-size:28px}.invite-card-description{margin-bottom:15px}.invite-card-body{grid-template-columns:1fr;justify-items:center;gap:16px}.invite-qr-frame{width:min(204px,100%);min-height:0}.invite-card-actions{width:100%}}@media (max-height:520px) and (min-width:601px){.invite-dialog-viewport{padding:12px}.invite-card{max-height:calc(100svh - 24px);padding:17px 22px}.invite-card-header h2{font-size:26px}.invite-card-description{margin:5px 0 11px;font-size:12px}.invite-card-body{grid-template-columns:168px minmax(0,1fr);gap:22px}.invite-qr-frame{width:168px;min-height:168px;padding:9px}.invite-qr-frame svg{width:150px}}.shortcut-dialog-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080a099e}.shortcut-dialog-viewport{padding:20px}.shortcut-card{width:min(560px,100%);max-height:calc(100svh - 40px);color:var(--text-on-dark);background-color:var(--surface-dark-muted);background-image:linear-gradient(145deg,#ffffff05,#0000 38%),radial-gradient(circle at 88% 12%,#c3a15f14,#0000 32%);border:1px solid #c3a15f6b;border-radius:7px;padding:20px 22px 22px;overflow:auto;box-shadow:inset 0 0 0 1px #f4f0e608,0 24px 70px #00000070}.shortcut-card-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.shortcut-card-header h2{font-family:var(--font-utility);letter-spacing:.01em;outline:none;margin:0;font-size:17px;font-weight:650;line-height:1.3}.shortcut-card-close{color:var(--text-on-dark-muted);margin:-5px -7px 0 0}.shortcut-card-close:hover{color:var(--text-on-dark);background:#f4f0e612}.shortcut-card-description{color:var(--text-on-dark-muted);margin:4px 0 17px;font-size:11px;line-height:1.45}.shortcut-groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:17px 26px;display:grid}.shortcut-group{border-top:1px solid #c3a15f45;min-width:0}.shortcut-group h3{color:var(--brass);font-family:var(--font-utility);letter-spacing:.07em;text-transform:uppercase;margin:0;padding:8px 0 6px;font-size:8px;font-weight:600}.shortcut-group dl{margin:0}.shortcut-group.is-wide{grid-column:1/-1}.shortcut-group.is-wide dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:26px;display:grid}.shortcut-row{border-bottom:1px solid #f4f0e60f;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:28px;display:grid}.shortcut-row dd,.shortcut-row dt{margin:0}.shortcut-row dt{color:var(--text-on-dark-muted);font-size:10px}.shortcut-row dd{align-items:center;gap:4px;display:flex}.shortcut-key-separator{color:var(--text-on-dark-subtle);margin-right:4px;font-size:8px}.shortcut-card .shortcut-key{color:#3b3226;background:#e9dfca;border-color:#f4f0e670 #f4f0e670 #765c31d1;box-shadow:0 1px #765c31b3,0 2px 5px #00000038}.shortcut-key{color:#403423b8;min-width:20px;height:19px;font-family:var(--font-utility);background:#fffcf094;border:1px solid #644c2c4d;border-bottom-color:#644c2c7a;border-radius:3px;place-items:center;padding:0 5px;font-size:8px;font-weight:600;line-height:1;display:inline-grid;box-shadow:0 1px 1px #31200d14}.shortcut-key[data-size=sm]{min-width:18px;height:17px;padding-inline:4px;font-size:7px}.shortcut-hint,.shortcut-key-list{align-items:center;display:inline-flex}.shortcut-key-list{gap:4px}.shortcut-hint{gap:10px}.site-tooltip-popup .shortcut-key{color:var(--text-on-dark-muted);box-shadow:none;background:#f4f0e612;border-color:#c3a15f57}@media (max-width:600px){.shortcut-dialog-viewport{padding:12px}.shortcut-card{max-height:calc(100svh - 24px);padding:18px 17px 20px}.shortcut-groups{grid-template-columns:1fr;gap:15px}.shortcut-group.is-wide{grid-column:auto}.shortcut-group.is-wide dl{display:block}}.token-case{border:1px solid var(--border-brass-strong);border-radius:var(--radius-panel);width:min(1160px,100%);max-height:min(700px,100svh - 48px);color:var(--text-on-dark);background:var(--felt-dark);box-shadow:var(--shadow-dialog);flex-direction:column;display:flex;overflow:hidden}.token-case-header{border-bottom:1px solid var(--border-brass-subtle);background:var(--surface-dark-muted);justify-content:space-between;align-items:center;min-height:70px;padding:14px 18px;display:flex}.token-case-header .utility-label{color:var(--brass)}.token-case-header h2{font-size:var(--text-title-sm);margin:2px 0 0;font-weight:510}.token-case-header button{color:#f4f0e699}.token-case-header button:hover{color:#fff;background:#f4f0e614}.token-case-scroll{background:var(--felt-dark);flex:1;min-height:0;padding:13px 14px 17px;overflow:auto}.character-catalog{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;gap:10px;width:100%;min-width:0;display:grid}.token-team{--team-accent:var(--team-townsfolk-accent);border-top:2px solid var(--team-accent);background:0 0;min-width:0;padding:9px 12px 12px}.token-team.team-townsfolk{grid-column:1/-1}.token-team.team-outsider{--team-accent:var(--team-outsider-accent);grid-column:1/3}.token-team.team-minion{--team-accent:var(--team-minion-accent);grid-column:3/5}.token-team.team-demon{--team-accent:var(--team-demon-accent);grid-column:5/7}.token-team.team-traveller{--team-accent:var(--team-traveller-accent);grid-column:1/-1}.token-team h3{min-height:24px;color:var(--team-accent);font-family:var(--font-utility);font-size:var(--text-caption);text-transform:uppercase;margin:0 0 7px;font-weight:500}.token-team.is-collapsible{background:0 0;border:0;padding:0}.token-team.is-collapsible h3{align-items:center;gap:10px;min-height:0;margin:0;display:flex}.token-team.is-collapsible h3:after,.token-team.is-collapsible h3:before{content:"";background:var(--team-accent);flex:1;height:1px}@supports (color:color-mix(in lab,red,red)){.token-team.is-collapsible h3:after,.token-team.is-collapsible h3:before{background:color-mix(in srgb,var(--team-accent) 24%,transparent)}}.token-team.is-collapsible:not(.is-collapsed) .token-grid,.token-team.is-collapsible:not(.is-collapsed) .token-team-empty{margin:10px 0 0}.token-team-toggle{border-radius:var(--radius-control);width:auto;min-height:30px;color:var(--team-accent);font:inherit;text-align:left;text-transform:uppercase;background:0 0;border:0;flex:none;align-items:center;gap:8px;padding:5px 8px;display:inline-flex}.token-team-toggle-copy{white-space:nowrap}.token-team-heading,.token-team-toggle-copy{align-items:baseline;gap:8px;display:inline-flex}.token-team-heading small,.token-team-toggle small{color:var(--text-on-dark-subtle);text-transform:none;font-size:8px;font-weight:500}.token-team-toggle svg{width:15px;height:15px;transition:transform var(--motion-standard) var(--ease-out)}.token-team-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.token-team-toggle:hover{color:var(--team-accent)}@supports (color:color-mix(in lab,red,red)){.token-team-toggle:hover{color:color-mix(in srgb,var(--team-accent) 76%,white)}}.token-team-toggle:hover{background:var(--team-accent)}@supports (color:color-mix(in lab,red,red)){.token-team-toggle:hover{background:color-mix(in srgb,var(--team-accent) 8%,transparent)}}.token-team-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-3px}.token-grid{flex-wrap:wrap;justify-content:center;gap:7px 5px;display:flex}.token-grid .role-choice-item{flex:0 0 calc(25% - 3.75px)}.token-team.team-townsfolk .role-choice-item{flex-basis:calc(14.2857% - 4.28571px)}.token-team.team-demon .role-choice-item{flex-basis:94px}.token-team-empty{color:#f4f0e64d;text-align:center;margin:18px 0;font-size:9px}.role-choice-item{min-width:0;min-height:72px;color:var(--text-on-dark-muted);grid-template-rows:48px 16px;align-content:start;justify-items:center;padding:3px 3px 4px;display:grid;position:relative}.role-choice{width:48px;height:48px;color:inherit;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.role-choice:hover{color:var(--text-on-dark)}.role-choice:focus-visible{box-shadow:none;outline:none}.role-choice-item.is-used:not(.is-selected){color:var(--text-on-dark-subtle)}.role-choice-item.is-used:not(.is-selected) .character-token,.role-choice-item.is-used:not(.is-selected) .role-choice-caption{opacity:.48}.role-choice.is-selected{border-color:var(--brass);background:#c3a15f17}.role-choice-item.is-pool-included,.role-choice.is-selected{color:var(--text-on-dark)}.role-choice-item.is-pool-included:after{content:"";background:var(--team-accent);border-radius:2px;width:18px;height:2px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.role-choice-item.is-pool-excluded{opacity:.82}.role-choice-item.is-pool-excluded:hover{opacity:1}.role-choice.is-pool-included .character-token{border-color:var(--team-accent);box-shadow:0 0 0 2px var(--team-accent),0 3px 6px #00000042}@supports (color:color-mix(in lab,red,red)){.role-choice.is-pool-included .character-token{box-shadow:0 0 0 2px color-mix(in srgb,var(--team-accent) 32%,transparent),0 3px 6px #00000042}}.role-choice:focus-visible .character-token{box-shadow:var(--shadow-tactile-hover),0 0 0 3px var(--focus-ring);border-color:#0000}.role-choice-caption{justify-content:center;align-self:end;align-items:center;gap:3px;width:100%;min-width:0;display:flex}.role-choice-name{min-width:0;font-size:var(--text-caption);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-weight:650;display:block;overflow:hidden}.role-info-button{width:15px;height:15px;color:var(--text-on-dark-subtle);background:0 0;border:0;border-radius:50%;flex:0 0 15px;place-items:center;padding:0;display:grid}.role-info-button:focus-visible,.role-info-button:hover{color:var(--team-accent);background:#f4f0e612}.role-info-button svg{stroke-width:1.8px;width:11px;height:11px}.role-choice-states{z-index:3;pointer-events:none;flex-direction:column;align-items:flex-end;gap:2px;display:flex;position:absolute;top:-3px;right:-5px}.role-choice-state{color:#f4f0e6c2;min-height:15px;font-family:var(--font-utility);white-space:nowrap;background:#18211ef0;border:1px solid #f4f0e624;border-radius:999px;align-items:center;padding:0 5px;font-size:7px;font-weight:600;line-height:1;display:inline-flex;box-shadow:0 1px 4px #0000003d}.role-choice-state.is-in-play{color:#dec68f;border-color:#c3a15f61}.role-choice-state.is-bluff{color:#dda7aa;border-color:#cc737861}.pool-case-footer{min-height:68px;color:var(--chalk);background:#18211e;border-top:1px solid #c3a15f33;flex:none;justify-content:space-between;align-items:center;gap:18px;padding:10px 16px;display:flex}.pool-summary{flex:1;min-width:0}.pool-summary strong{color:#f4f0e6c7;font-size:10px;font-weight:640;display:block}.pool-summary-line{align-items:center;gap:10px;display:flex}.pool-clear-button{color:#f4f0e66b;height:24px;padding:0 6px;font-size:9px}.pool-clear-button:hover{color:var(--chalk)}.pool-summary p{color:#f4f0e666;margin:5px 0 0;font-size:9px}.pool-case-footer>button{flex:none}.pool-case{background:#20201e;border-color:#bfa46c70;width:min(1180px,100%);max-height:min(620px,100svh - 32px)}.pool-case .token-case-header{background:#171816;border-bottom-color:#c3a15f29;min-height:64px;padding:14px 20px 14px 22px}.pool-case .token-case-header h2{font-size:var(--text-title-sm);margin:0;line-height:1}.pool-case .token-case-close{border-radius:50%;width:30px;height:30px}.pool-case .token-case-scroll{background:var(--surface-dark);padding:20px 22px 22px}.pool-case .character-catalog{grid-template-columns:repeat(10,minmax(0,1fr));gap:14px 12px}.pool-case .character-catalog.has-multiple-demons{grid-template-columns:repeat(12,minmax(0,1fr))}.pool-case .token-team{border:0;border-top:2px solid var(--team-accent);border-radius:var(--radius-control);background:var(--team-surface);min-width:0;padding:10px 11px 12px}.pool-case .token-team.team-townsfolk{--team-accent:var(--team-townsfolk-accent);--team-surface:var(--team-townsfolk-surface);grid-column:1/-1}.pool-case .token-team.team-outsider{--team-accent:var(--team-outsider-accent);--team-surface:var(--team-outsider-surface)}.pool-case .token-team.team-minion{--team-accent:var(--team-minion-accent);--team-surface:var(--team-minion-surface)}.pool-case .token-team.team-minion,.pool-case .token-team.team-outsider{grid-column:span 4}.pool-case .token-team.team-demon{--team-accent:var(--team-demon-accent);--team-surface:var(--team-demon-surface);grid-column:span 2}.pool-case .token-team.team-traveller{--team-accent:var(--team-traveller-accent);--team-surface:var(--team-traveller-surface);grid-column:1/-1}.pool-case .token-team.team-traveller.is-collapsible{background:0 0;border:0;padding:0}.pool-case .has-multiple-demons .token-team.team-demon{grid-column:span 4}.pool-case .token-team h3{align-items:center;gap:0;min-height:0;margin:0 0 8px;font-size:9px;display:flex}.pool-case .token-team.is-collapsible h3{gap:10px;margin:0}.pool-case .token-team:not(.is-collapsible) h3:before{display:none}.pool-case .token-team-count{color:#f4f0e657;font-variant-numeric:tabular-nums;align-items:baseline;gap:3px;margin-left:auto;display:inline-flex}.pool-case .token-team-count strong{color:var(--team-accent);font-weight:600}.pool-case .token-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.pool-case .team-townsfolk .token-grid{grid-template-columns:repeat(13,minmax(0,1fr))}.pool-case .team-demon .token-grid{grid-template-columns:minmax(0,1fr)}.pool-case .team-traveller .token-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.pool-case .team-traveller-other .token-grid{grid-template-columns:repeat(auto-fit,minmax(64px,1fr))}.pool-case .has-multiple-demons .team-demon .token-grid{grid-template-columns:repeat(auto-fit,minmax(56px,1fr))}.pool-case .role-choice-item{grid-template-rows:58px 17px;min-height:79px;padding:0 2px 3px}.pool-case .role-choice{border:0;width:56px;height:56px}.pool-case .role-choice.is-pool-included,.pool-case .role-choice.is-selected,.pool-case .role-choice:hover{background:0 0}.pool-case .role-choice:disabled{opacity:.32}.pool-case .role-choice-item.is-selection-unavailable .role-choice-name{opacity:.45}.pool-case .role-choice-item.is-pool-included:after{width:16px;bottom:0}.pool-case .role-choice-name{font-size:var(--text-caption);font-weight:600}.pool-case .role-choice .character-token{flex-basis:56px;width:56px;height:56px}.pool-case .selection-single .role-choice.is-selected .character-token{border-color:var(--team-accent);box-shadow:0 0 0 2px var(--team-accent),0 3px 6px #00000042}@supports (color:color-mix(in lab,red,red)){.pool-case .selection-single .role-choice.is-selected .character-token{box-shadow:0 0 0 2px color-mix(in srgb,var(--team-accent) 32%,transparent),0 3px 6px #00000042}}.pool-case .pool-case-footer{background:var(--surface-dark-raised);border-top-color:#c3a15f29;min-height:62px;padding:10px 20px 10px 22px}.pool-case .pool-summary strong{font-size:10px}.pool-case .pool-summary p{margin-top:3px}.pool-case .pool-case-footer>button{color:#211b13;background:#e4d1a7;box-shadow:0 2px 8px #0003}.pool-case .pool-case-footer>button:hover{background:#efe0bd}.pool-case .pool-case-footer>button:disabled{color:#f4f0e657;box-shadow:none;background:#f4f0e612}.pool-case .single-selection-footer{justify-content:flex-end}.pool-case .single-selection-footer>.clear-selection-button{color:#d6a5a7;box-shadow:none;background:0 0}.pool-case .single-selection-footer>.clear-selection-button:hover{color:#f0c3c5;background:#722f3429}.site-tooltip-positioner{z-index:140;max-width:min(340px,100vw - 24px)}.site-tooltip-popup{border:1px solid var(--border-brass-strong);border-radius:var(--radius-control);max-width:340px;color:var(--text-on-dark);background:var(--surface-dark-raised);box-shadow:var(--shadow-popover);font-size:var(--text-body-sm);transform-origin:var(--transform-origin);pointer-events:none;padding:8px 10px;line-height:1.45;transition:opacity .1s ease-out,transform .1s ease-out;position:relative}.site-tooltip-popup[data-ending-style],.site-tooltip-popup[data-starting-style]{opacity:0;transform:scale(.97)}.site-tooltip-popup[data-instant]{transition:none}.site-tooltip-arrow{width:10px;height:5px;display:block;position:relative;overflow:hidden}.site-tooltip-arrow:before{border:1px solid var(--border-brass-strong);content:"";background:var(--surface-dark-raised);width:7px;height:7px;position:absolute;bottom:0;left:50%;transform:translate(-50%,50%)rotate(45deg)}.site-tooltip-arrow[data-side=top]{bottom:-5px;transform:rotate(180deg)}.site-tooltip-arrow[data-side=bottom]{top:-5px}.site-tooltip-arrow[data-side=left]{right:-7px;transform:rotate(90deg)}.site-tooltip-arrow[data-side=right]{left:-7px;transform:rotate(-90deg)}.role-ability-tooltip{width:min(320px,100vw - 24px);padding:9px 11px 10px}.role-ability-tooltip span,.role-ability-tooltip strong{display:block}.role-ability-tooltip strong{color:var(--text-on-dark);font-size:12px;font-weight:680}.role-ability-tooltip span{color:var(--text-on-dark-muted);margin-top:3px}@media (max-width:1050px){.dialog-viewport{padding:20px}}@media (max-width:760px){.pool-case-footer{flex-direction:column;align-items:stretch}.pool-case-footer>button{width:100%}}.ui-spinner{stroke-width:2px;flex:none;width:1em;height:1em;animation:state-spin .8s linear infinite}.ui-button>svg:not(.ui-spinner){stroke-width:1.8px;flex:none;width:16px;height:16px}.ui-button[data-size=sm]>svg:not(.ui-spinner){width:14px;height:14px}.ui-button[data-pending=true]>svg:not(.ui-spinner){display:none}@keyframes state-spin{to{transform:rotate(1turn)}}.ui-skeleton{border-radius:var(--radius-control);background:#6c522e21;border:1px solid #5b44271f;position:relative;overflow:hidden}.ui-skeleton:after{content:"";background:linear-gradient(105deg,#0000 25%,#fff9e542 44%,#fff9e566 50%,#0000 70%);animation:skeleton-sweep 1.7s ease-in-out infinite;position:absolute;inset:0;transform:translate(-105%)}@keyframes skeleton-sweep{58%,to{transform:translate(105%)}}.app-toast{--toast-accent:var(--brass);--toast-accent-soft:#c3a15f1f;border:1px solid var(--toast-accent);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:9px;width:max-content;max-width:min(316px,100vw - 24px);min-height:44px;margin-inline:auto;padding:9px 11px;display:grid;inset-inline:0}@supports (color:color-mix(in lab,red,red)){.app-toast{border:1px solid color-mix(in srgb,var(--toast-accent) 24%,transparent)}}.app-toast{border-radius:var(--grimoire-hardware-radius);color:var(--text-on-dark);background:linear-gradient(135deg,#ffffff08,#0000 46%),#20221f;font-size:12px;box-shadow:inset 0 1px #ffffff0a,0 7px 20px #00000047}.app-toast.is-success{--toast-accent:#71a47d;--toast-accent-soft:#71a47d21}.app-toast.is-info{--toast-accent:var(--brass);--toast-accent-soft:#c3a15f1f}.app-toast.is-warning{--toast-accent:#d0a65a;--toast-accent-soft:#d0a65a21}.app-toast.is-error{--toast-accent:#d2787c;--toast-accent-soft:#d2787c21}.app-toast-icon{border:1px solid var(--toast-accent);width:22px;height:22px;display:grid}@supports (color:color-mix(in lab,red,red)){.app-toast-icon{border:1px solid color-mix(in srgb,var(--toast-accent) 35%,transparent)}}.app-toast-icon{color:var(--toast-accent);background:var(--toast-accent-soft);border-radius:50%;place-items:center}.app-toast-icon svg{stroke-width:2.25px;width:12px;height:12px}.app-toast-content{min-width:0}.app-toast-title{color:var(--text-on-dark);font-weight:570;line-height:1.3}.app-toast-description{color:var(--text-on-dark-muted);margin-top:2px;font-size:11px;line-height:1.4}.app-toast-action{border-radius:var(--radius-control);color:#fff;background:#ffffff12;border:1px solid #ffffff1f;min-height:28px;padding:0 9px;font-size:10px;font-weight:650}.status-notice-stack{z-index:100;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));pointer-events:none;gap:8px;width:min(420px,100vw - 36px);display:grid;position:fixed}.status-notice{--notice-accent:var(--brass);border-radius:var(--grimoire-hardware-radius);min-height:50px;color:var(--text-on-dark);box-shadow:var(--shadow-popover);pointer-events:auto;background:#24231f;border:1px solid #c3a15f47;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px 10px 13px;display:grid}.status-notice.is-danger{--notice-accent:#d2787c;border-color:#d2787c4d}.status-notice.is-connection{--notice-accent:var(--brass)}.status-notice-icon{color:var(--notice-accent);place-items:center;display:grid}.status-notice-icon svg{width:16px;height:16px}.status-notice-copy{min-width:0}.status-notice-copy span,.status-notice-copy strong{display:block}.status-notice-copy strong{font-size:12px;font-weight:660;line-height:1.25}.status-notice-copy span{color:var(--text-on-dark-muted);margin-top:2px;font-size:11px;line-height:1.35}.status-notice-actions{align-items:center;gap:3px;display:flex}.status-notice-action,.status-notice-dismiss{color:var(--text-on-dark-muted)}.page-error-state{min-height:100svh;color:var(--text-on-dark);background:radial-gradient(circle at 50% 42%,#c3a15f0f,transparent 34%),var(--night-ink);text-align:center;place-items:center;padding:28px;display:grid}.page-error-content{width:min(520px,100%)}.page-error-icon{color:#d88b8e;width:22px;height:22px;margin:0 auto 16px;display:block}.page-error-icon svg{stroke-width:1.75px;width:22px;height:22px;display:block}.page-error-content h1{font-family:var(--font-display);font-variation-settings:"SOFT" 20,"WONK" 0;margin:0;font-size:clamp(28px,4vw,38px);font-weight:470;line-height:1.05}.page-error-content h1:focus{outline:none}.page-error-content p{max-width:440px;color:var(--text-on-dark-muted);margin:10px auto 0;font-size:13px;line-height:1.55}.page-error-actions{justify-content:center;align-items:center;gap:8px;margin-top:22px;display:flex}.page-error-home{color:var(--text-on-dark-muted);text-decoration:none}.page-error-home:hover{color:var(--text-on-dark);background:#ffffff0f}.grimoire-loading-shell{background-color:var(--parchment);background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:cover;height:100svh;overflow:hidden;box-shadow:inset 0 0 52px #4e30133b}.status-notice-action:hover,.status-notice-dismiss:hover{color:var(--text-on-dark);background:#ffffff12}.status-notice-dismiss{width:30px;height:30px;padding:0}@media (max-width:700px){html [data-sonner-toaster] .app-toast{width:max-content;max-width:calc(100% - 24px)}.status-notice-stack{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;left:12px}.status-notice{grid-template-columns:18px minmax(0,1fr)}.status-notice-actions{grid-column:2;justify-self:start}}@media (prefers-reduced-motion:reduce){.ui-spinner{animation:none}.ui-skeleton:after{display:none}}.player-grimoire-shell{isolation:isolate}.player-grimoire-shell .grimoire-workspace{width:100%}.player-grimoire-frame{background-color:var(--parchment);background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:cover;position:relative}.player-grimoire-canvas{box-shadow:none;background:0 0}.player-grimoire-canvas .player-token-cluster.is-read-only{pointer-events:none;touch-action:none}.player-token.is-read-only{cursor:default}.player-token.is-read-only:active,.player-token.is-read-only:focus-visible,.player-token.is-read-only:hover{box-shadow:var(--tactile-shadow-rest);filter:none;transform:none}.player-token.is-public:not(.is-own-seat){--player-token-border-color:#56452b6b}.player-token.is-public.is-open-seat{--player-token-border-color:#56452b4d;color:#4034237a;box-shadow:none;background-color:#ebdbb54d;border-style:dashed}.public-open-seat{color:#4034237a;font-family:var(--font-utility);place-items:center;line-height:1;display:grid}.public-open-seat strong{font-size:16px;font-weight:500}.public-open-seat span{text-transform:uppercase;margin-top:5px;font-size:8px;font-weight:550}.player-name-line{justify-content:center;align-items:center;gap:5px;max-width:124px;display:inline-flex}.player-name-line>:first-child{min-width:0}.player-presence-dot{border-radius:50%;flex:0 0 6px;justify-content:center;align-items:center;width:6px;height:6px;display:inline-flex;position:relative;transform:translateY(1px)}.player-presence-dot.is-online{color:#39875a}.player-presence-dot.is-offline{color:#b33f38}.player-private-role{z-index:54;box-sizing:border-box;border:1px solid var(--grimoire-hardware-border);border-radius:var(--grimoire-hardware-radius);width:min(500px,100vw - 60px);min-height:96px;color:var(--grimoire-hardware-text);background-color:var(--grimoire-hardware-surface);box-shadow:var(--grimoire-hardware-shadow);-webkit-backdrop-filter:blur(8px)saturate(.82);background-image:linear-gradient(#fffbed1a,#c6af7e14);grid-template-columns:62px minmax(0,1fr) auto;grid-template-areas:"token copy status""token ability ability";align-items:start;gap:7px 14px;padding:13px 15px;display:grid;position:absolute;bottom:30px;left:30px}.player-private-role-token-slot{grid-area:token;place-items:center;width:62px;height:62px;display:grid}.player-private-role-empty,.player-private-role-redacted,.player-private-role-token{border:1px solid var(--grimoire-hardware-border);border-radius:50%;width:60px;height:60px;box-shadow:0 2px 5px #311f0c21}.player-private-role-empty,.player-private-role-redacted{color:var(--grimoire-hardware-muted);background:#f6ecd147;place-items:center;display:grid}.player-private-role-empty{font-family:var(--font-display);font-size:24px}.player-private-role-empty svg,.player-private-role-redacted svg{stroke-width:1.6px;width:21px;height:21px}.player-private-role-copy{grid-area:copy;min-width:0}.player-private-role-copy .utility-label{color:var(--grimoire-hardware-muted)}.player-private-role-copy strong,.player-private-role-meta{display:block}.player-private-role-copy strong{font-family:var(--font-display);margin-top:1px;font-size:17px;font-weight:620;line-height:1.1}.player-private-role-meta{color:var(--grimoire-hardware-muted);font-family:var(--font-utility);text-transform:uppercase;margin-top:2px;font-size:8px;font-weight:550}.player-private-role-ability{color:#403423b3;grid-area:ability;margin:0;font-size:11px;line-height:1.4}.player-private-status{min-width:0;color:var(--grimoire-hardware-muted);flex-direction:column;flex:none;grid-area:status;align-items:flex-end;gap:4px;font-size:8px;font-weight:650;display:flex}.player-private-status span{white-space:nowrap;background:#fffcf157;border:1px solid #644c2c29;border-radius:999px;align-items:center;gap:4px;min-height:23px;padding:0 7px;display:inline-flex}.player-private-status svg{stroke-width:1.7px;width:11px;height:11px}.player-private-role.is-redacted{background-color:#ebdebcc2}@media (max-width:700px){.player-grimoire-shell{grid-template-rows:minmax(0,1fr) auto;display:grid}.player-grimoire-shell .grimoire-workspace{height:auto;min-height:0;overflow:hidden}.player-private-role{width:100%;min-height:0;max-height:38svh;padding:12px 14px max(12px,env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0;border-radius:0;grid-template-columns:54px minmax(0,1fr);grid-template-areas:"token copy""token status""ability ability";gap:6px 12px;position:relative;bottom:auto;left:auto;right:auto;overflow-y:auto;box-shadow:inset 0 1px #fffcef70,0 -5px 18px #3a261121}.player-private-role-empty,.player-private-role-redacted,.player-private-role-token,.player-private-role-token-slot{width:52px;height:52px}.player-private-role-ability{border-top:1px solid #644c2c24;padding-top:8px;font-size:12px;line-height:1.45}.player-private-status{flex-direction:row;align-items:center}.player-grimoire-shell :is(.toolbar-brand,.join-code-control){top:max(12px,env(safe-area-inset-top))}.player-grimoire-shell .toolbar-brand{left:12px}.player-grimoire-shell .join-code-control{right:12px}}@media (max-width:430px){.player-grimoire-shell .toolbar-brand{gap:6px;padding-right:8px}.player-grimoire-shell .toolbar-brand>div{display:none}.player-grimoire-shell .grimoire-redaction-setting{gap:5px;margin-left:0;padding-left:7px;padding-right:2px}.player-grimoire-shell .join-code-control{min-width:108px;padding-left:10px;padding-right:8px}.player-private-role-copy strong{font-size:16px}.player-private-status span{min-height:21px;padding-inline:6px}}.portrait-notice{display:none}@media (orientation:portrait) and (max-width:900px){.storyteller-shell:not(.player-grimoire-shell)>:not(.portrait-notice){display:none}.storyteller-shell:not(.player-grimoire-shell)>.portrait-notice{color:var(--chalk);background:var(--night-ink);text-align:center;justify-content:center;align-items:center;gap:10px;padding:30px;display:flex;position:absolute;inset:0}}@media (orientation:landscape) and (max-height:500px) and (min-width:701px){.player-grimoire-shell{grid-template-rows:minmax(0,1fr) auto;display:grid}.player-grimoire-shell .grimoire-workspace{height:auto;min-height:0;overflow:hidden}.player-private-role{width:100%;min-height:0;padding:9px max(14px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));border-bottom:0;border-left:0;border-right:0;border-radius:0;grid-template-columns:48px minmax(0,1fr) auto;gap:4px 10px;position:relative;bottom:auto;left:auto;right:auto;box-shadow:inset 0 1px #fffcef70,0 -5px 18px #3a261121}.player-private-role-empty,.player-private-role-redacted,.player-private-role-token,.player-private-role-token-slot{width:46px;height:46px}.player-private-role-copy strong{font-size:15px}.player-private-role-ability{font-size:10px;line-height:1.3}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.storyteller-shell.is-sheet-pinned{--active-grimoire-sheet-width:var(--grimoire-pinned-sheet-width)}.storyteller-shell img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.storyteller-shell :is(.player-token,.reminder-token-trigger,.bluff-slot) :is(img,svg){pointer-events:none}.player-name-top .player-name-label{top:auto;bottom:calc(100% + 6px)}.toolbar-brand .edition-mark{width:38px;height:40px}.toolbar-brand .edition-mark img{width:36px;height:40px}.join-code-control .utility-label,.toolbar-brand .utility-label{color:var(--grimoire-hardware-muted);letter-spacing:0}.join-code-control:hover{background-color:var(--grimoire-hardware-surface-hover);box-shadow:var(--grimoire-hardware-shadow),var(--shadow-control-hover)}.join-code-control:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.storyteller-shell.is-sheet-pinned .grimoire-workspace{width:calc(100% - var(--grimoire-pinned-sheet-width))}.storyteller-shell.is-sheet-pinned :is(.join-code-control,.toolbar-status){right:calc(var(--grimoire-pinned-sheet-width) + 30px)}.board-bluff-rack{align-items:center;gap:7px;width:140px;right:30px}.board-bluff-rack,.board-setup-warning{z-index:54;box-sizing:border-box;border-radius:var(--grimoire-hardware-radius);flex-direction:column;padding:9px 10px 10px;display:flex;position:absolute;bottom:30px}.board-setup-warning{pointer-events:none;gap:8px;width:230px;min-height:52px;left:30px}.board-setup-warning-header{align-items:center;gap:7px;min-height:18px;display:flex}.board-setup-warning-header>svg{width:15px;height:15px;color:var(--grimoire-hardware-accent);stroke-width:1.7px;flex:0 0 15px}.board-setup-warning .utility-label{color:var(--grimoire-hardware-muted);font-size:var(--text-caption)}.board-setup-warning-tokens{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:7px 5px;display:grid}.board-setup-warning-token{min-width:0;color:var(--grimoire-hardware-text);text-align:center;flex-direction:column;align-items:center;gap:4px;font-size:8px;font-weight:600;line-height:1.1;display:flex}.board-setup-warning-token>span:last-child{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;min-height:18px;display:-webkit-box;overflow:hidden}.board-bluff-rack .bluff-rack-label{color:var(--grimoire-hardware-muted);align-self:flex-start}.board-bluff-rack .bluff-slots{justify-content:space-between;width:100%}.board-bluff-rack .bluff-slot{--tactile-shadow-rest:inset 0 1px #fffcef75,0 1px 2px #3a26111f;--tactile-shadow-hover:inset 0 1px #fffcef85,0 3px 6px #3a261126;color:#48372094;background-blend-mode:multiply;width:34px;height:34px;box-shadow:var(--tactile-shadow-rest);background-color:#f8eccf75;background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:120px;border-color:#5b44266b}.board-bluff-rack .bluff-slot:focus-visible{outline-offset:2px;outline:0}.board-bluff-rack .bluff-slot.has-role{border-color:var(--grimoire-hardware-border-strong);background:0 0}.token-clear-button{z-index:1;color:#722f348f;box-shadow:none;opacity:0;pointer-events:none;background:0 0;border-radius:50%;transition:color .12s,background-color .12s,opacity .12s,transform .12s;position:absolute;top:-4px;right:-4px;transform:scale(.82)}.board-bluff-rack .bluff-slot-control:focus-within .bluff-slot-clear,.board-bluff-rack .bluff-slot-control:hover .bluff-slot-clear,.reminder-token-control.is-selected .reminder-token-clear,.reminder-token-control:focus-within .reminder-token-clear,.reminder-token-control:hover .reminder-token-clear{opacity:1;pointer-events:auto;background:#f5eacff0;transform:scale(1);box-shadow:0 1px 3px #3724112e}.token-clear-button:focus-visible,.token-clear-button:hover{color:var(--oxblood);background:#efdcbefa}.player-token{--player-token-border-color:var(--good);--tactile-shadow-rest:0 3px 5px #311f0c29;--tactile-shadow-hover:0 4px 8px #311f0c33;--tactile-shadow-active:0 2px 5px #311f0c2e;z-index:12;touch-action:none;border:1px solid var(--player-token-border-color);cursor:grab;background-blend-mode:multiply;box-shadow:var(--tactile-shadow-rest);transition:border-color var(--motion-standard) ease,box-shadow var(--motion-fast) ease,filter var(--motion-fast) ease,transform var(--motion-fast) var(--ease-out);background-color:#c8b995;background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:150px;border-radius:50%;outline:none;place-items:center;padding:1px;display:grid;position:relative;overflow:visible}.player-token.alignment-good{--player-token-border-color:var(--good)}.player-token.alignment-evil{--player-token-border-color:var(--evil)}.player-token.is-traveller{border-style:dashed}.player-token:active{cursor:grabbing}.player-token.is-selected{--tactile-shadow-rest:0 3px 6px #311f0c36;--tactile-shadow-hover:0 5px 9px #311f0c3b;box-shadow:var(--tactile-shadow-rest)}.player-token.is-redacted{--player-token-border-color:#52442f6b;cursor:default}.player-token.is-redacted:focus-visible,.player-token.is-redacted:hover{box-shadow:var(--tactile-shadow-rest);filter:none;transform:none}:is(.storyteller-shell,.player-reveal-screen) .role-artwork{background-blend-mode:soft-light,multiply;background-position:50%;background-size:100% 100%,150px;box-shadow:inset 0 0 12px #5b482d14}:is(.storyteller-shell,.player-reveal-screen) .role-artwork.team-townsfolk{background-color:#dbe4df;background-image:radial-gradient(circle at 36% 28%,#fffdf2bd 0,#f5f1dc2e 53%,#70949d2e 100%),url(/assets/grimoire-parchment.png)}:is(.storyteller-shell,.player-reveal-screen) .role-artwork.team-outsider{background-color:#e0dce4;background-image:radial-gradient(circle at 36% 28%,#fffdf2b8 0,#f4eddb2b 53%,#8470972b 100%),url(/assets/grimoire-parchment.png)}:is(.storyteller-shell,.player-reveal-screen) .role-artwork.team-minion{background-color:#e5dad3;background-image:radial-gradient(circle at 36% 28%,#fffaeeb3 0,#f3e8d329 53%,#975f572b 100%),url(/assets/grimoire-parchment.png)}:is(.storyteller-shell,.player-reveal-screen) .role-artwork.team-demon{background-color:#e3d5d0;background-image:radial-gradient(circle at 36% 28%,#fff9edad 0,#f2e5d026 53%,#974f4e30 100%),url(/assets/grimoire-parchment.png)}:is(.storyteller-shell,.player-reveal-screen) .role-artwork.team-traveller{background-color:#ded8ca;background-image:radial-gradient(circle at 36% 28%,#fffdf2b8 0,#f4eedc2b 53%,#84745129 100%),url(/assets/grimoire-parchment.png)}:is(.storyteller-shell,.player-reveal-screen) .role-artwork:after{z-index:4;content:"";mix-blend-mode:multiply;opacity:.1;pointer-events:none;background-image:url(/assets/grimoire-parchment.png);background-position:50%;background-size:150px;border-radius:50%;position:absolute;inset:0}.player-name-label{z-index:22;color:#30271c;min-width:104px;max-width:124px;box-shadow:none;text-align:center;text-shadow:0 1px #fffaecb8;white-space:nowrap;pointer-events:auto;background:0 0;border:0;flex-direction:column;align-items:center;gap:1px;padding:0;line-height:1.08;display:flex;position:absolute;top:calc(100% + 6px);left:50%;overflow:visible;transform:translate(-50%)}.player-name-label .player-name-static,.player-name-label button,.player-name-label input{color:#30271c;max-width:124px;font-family:var(--font-body);text-align:center;text-overflow:ellipsis;text-shadow:0 1px #fffaecb8;white-space:nowrap;border:0;border-bottom:1px solid #0000;border-radius:0;outline:0;padding:1px 3px 2px;font-size:12px;font-weight:720;line-height:1.15;overflow:hidden}.player-name-label .player-name-static{display:block}.player-name-input{color:#30271c;background:#f8eed29e;border:0;border-bottom:1px solid #7b4b3e;border-radius:0;outline:0;font-size:13px;font-weight:720;line-height:1.15}.player-name-label button{cursor:text;background:0 0;width:auto}.player-name-label button:focus-visible,.player-name-label button:hover{border-bottom-color:#553c1f75}.player-name-label input{background:#f8eed29e;border-bottom-color:#7b4b3e;width:124px}.player-name-label small{font-family:var(--font-display);font-size:11px;font-weight:560}.player-token-cluster.team-townsfolk .player-name-label small{color:#36596a}.player-token-cluster.team-outsider .player-name-label small{color:#5c4c73}.player-token-cluster.team-minion .player-name-label small{color:#77423f}.player-token-cluster.team-demon .player-name-label small{color:#7d3033}.player-token-cluster.team-traveller .player-name-label small{color:#685c3d}.reminder-token{--reminder-token-size:36px;--reminder-token-accent:#8a754c;width:var(--reminder-token-size);height:var(--reminder-token-size);flex:0 0 var(--reminder-token-size);color:#33291f;background:0 0;place-items:center;transition:box-shadow .12s,transform .12s;display:grid;position:relative;overflow:visible}.reminder-token[data-team=townsfolk]{--reminder-token-accent:var(--good)}.reminder-token[data-team=outsider]{--reminder-token-accent:#75618f}.reminder-token[data-team=demon],.reminder-token[data-team=minion]{--reminder-token-accent:var(--evil)}.reminder-token-face{--tactile-shadow-rest:0 2px 4px #31200d2b,inset 0 1px 1px #fffdf194;--tactile-shadow-hover:0 4px 7px #31200d33,inset 0 1px 1px #fffdf1a3;border-radius:50%;place-items:center;display:grid;position:absolute;inset:0;overflow:visible}.reminder-token-face.is-generic{--tactile-shadow-rest:0 2px 4px #31200d2e;background:#ded3b9;border:1px solid #58432752;overflow:hidden}.reminder-token-inline{--reminder-token-size:26px}.reminder-token-tray{--reminder-token-size:36px}.reminder-token.is-selected{box-shadow:none}.reminder-token.is-selected .reminder-token-face{--tactile-shadow-rest:0 3px 6px #31200d36,0 0 0 2px #fffaebd1,0 0 0 3px var(--reminder-token-accent)}@supports (color:color-mix(in lab,red,red)){.reminder-token.is-selected .reminder-token-face{--tactile-shadow-rest:0 3px 6px #31200d36,0 0 0 2px #fffaebd1,0 0 0 3px color-mix(in srgb,var(--reminder-token-accent) 64%,transparent)}}.reminder-token.is-selected .reminder-token-face{--tactile-shadow-hover:0 5px 9px #31200d3b,0 0 0 2px #fffaebd1,0 0 0 3px var(--reminder-token-accent)}@supports (color:color-mix(in lab,red,red)){.reminder-token.is-selected .reminder-token-face{--tactile-shadow-hover:0 5px 9px #31200d3b,0 0 0 2px #fffaebd1,0 0 0 3px color-mix(in srgb,var(--reminder-token-accent) 64%,transparent)}}.storyteller-shell .reminder-token-source-art{filter:saturate(.96);opacity:1}.reminder-token-fallback-icon{color:#403221b8;stroke-width:1.5px;width:42%;height:42%}.reminder-token-label{z-index:6;width:max-content;max-width:calc(var(--reminder-token-size) * 1.08);box-sizing:border-box;isolation:isolate;color:#35291e;font-family:var(--font-utility);font-size:clamp(7px,calc(var(--reminder-token-size) * .115),8.5px);text-align:center;text-transform:uppercase;pointer-events:none;place-items:center;padding:2px 6px;font-weight:700;line-height:1;display:grid;position:absolute;top:75%;bottom:auto;left:50%;transform:translate(-50%,-50%)}.reminder-token-label:before{z-index:-1;content:"";filter:blur(.35px);background:linear-gradient(90deg,#0000,#fffdf62e 5%,#fffdf6a8 16%,#fffdf6b8 50%,#fffdf6a8 84%,#fffdf62e 95%,#0000);position:absolute;inset:-1px -5px}.reminder-token-label-text{text-wrap:balance;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.reminder-token[data-label-layout=single] .reminder-token-label-text{text-wrap:nowrap;white-space:nowrap;display:block}.reminder-token[data-label-layout=wrapped] .reminder-token-label{max-width:calc(var(--reminder-token-size) * .7)}.reminder-token[data-label-layout=compact] .reminder-token-label{max-width:calc(var(--reminder-token-size) * .94);font-size:clamp(6.5px,calc(var(--reminder-token-size) * .1),7.25px);line-height:1}.reminder-token-labeled .reminder-token-face{--tactile-shadow-rest:0 2px 4px #31200d2b,inset 0 1px 1px #fffdf194}.reminder-token-count{color:#3b2e1f;min-width:15px;height:15px;font-family:var(--font-utility);background:#f3e2bcf5;border:1px solid #674d2757;border-radius:999px;place-items:center;padding:0 3px;font-size:7px;line-height:1;display:grid;position:absolute;top:-4px;right:-5px;box-shadow:0 1px 3px #2d1c0c47}.reminder-token-control{place-items:center;display:grid;position:relative}.reminder-token-trigger{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:50%;outline:none;place-items:center;padding:0;display:grid}.reminder-token-trigger:focus-visible .reminder-token-face{box-shadow:var(--tactile-shadow-hover),0 0 0 3px var(--focus-ring)}.reminder-token-control.is-dragging .reminder-token-trigger,.reminder-token-trigger:active{cursor:grabbing}.reminder-token-control.is-dragging .reminder-token-face{box-shadow:var(--shadow-tactile-drag);filter:brightness(1.03);transform:translateY(-2px)scale(1.015)}.reminder-token-control.is-dragging .reminder-token-clear{opacity:0;pointer-events:none}.reminder-token-tooltip{flex-direction:column;gap:1px;display:flex}.reminder-token-tooltip strong{font-size:10px;line-height:1.25}.reminder-token-tooltip span{color:var(--text-on-dark-muted);font-size:9px;line-height:1.25}.canvas-player-position.is-reminder-target .player-token{cursor:pointer;box-shadow:0 4px 7px #311f0c3d,0 0 0 2px #8b6c3552}.canvas-player-position.is-reminder-target .player-token:focus-visible,.canvas-player-position.is-reminder-target .player-token:hover{box-shadow:0 5px 9px #311f0c42,0 0 0 3px #8b6c357a}.reminder-snap-preview{z-index:23;pointer-events:none;background:#eedebb1a;border:1px dotted #5c442585;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.canvas-reminder-position.is-reflowing{transition:left .15s cubic-bezier(.2,.75,.2,1),top .15s cubic-bezier(.2,.75,.2,1)}.canvas-reminder-position.is-dragging{transition:none}.player-context-menu{z-index:var(--layer-context-menu);box-sizing:border-box;border:1px solid var(--grimoire-hardware-border-strong);border-radius:var(--radius-panel);max-height:calc(100% - 24px);color:var(--grimoire-hardware-text);-webkit-backdrop-filter:blur(12px)saturate(.76);backdrop-filter:blur(12px)saturate(.76);background-color:#f1e7d0f0;background-image:linear-gradient(#fffcf042,#d7c39b1a),url(/assets/grimoire-parchment.png);background-position:50%;background-size:100% 100%,420px;flex-direction:column;animation:player-menu-in .12s cubic-bezier(.2,.75,.2,1);display:flex;position:absolute;box-shadow:0 12px 30px #3425143d,inset 0 1px #fffdf38f}.player-context-menu:before{top:var(--player-menu-anchor-y);z-index:-1;border:1px solid var(--grimoire-hardware-border-strong);content:"";background:#ebdcbbf5;width:11px;height:11px;position:absolute;transform:translateY(-50%)rotate(45deg)}.player-context-menu[data-side=right]:before{border-top-color:#0000;border-right-color:#0000;left:-6px}.player-context-menu[data-side=left]:before{border-bottom-color:#0000;border-left-color:#0000;right:-6px}.player-menu-header{border-bottom:1px solid #634c2e33;align-items:center;gap:9px;min-height:64px;padding:8px;display:flex}.player-menu-role{--tactile-shadow-rest:0 2px 5px #3525141f;--tactile-shadow-hover:0 4px 7px #35251426;border:1px solid var(--grimoire-hardware-border);width:46px;height:46px;color:var(--grimoire-hardware-accent);background:#fffcf047;border-radius:50%;flex:0 0 46px;place-items:center;padding:0;display:grid}.player-menu-role:focus-visible,.player-menu-role:hover{background:#fffcf085}.player-menu-role.has-character{--tactile-shadow-rest:none;--tactile-shadow-hover:0 3px 6px #35251421;box-shadow:none;background:0 0;border-color:#0000}.player-menu-role.has-character:focus-visible,.player-menu-role.has-character:hover{background:#fffcf057;border-color:#0000}.player-menu-role:focus-visible{outline-offset:2px;outline:0}.player-menu-identity{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.player-menu-identity>button{color:#30271c;text-align:left;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:5px;min-width:0;height:auto;padding:0;display:flex}.player-menu-identity>button strong,.player-menu-identity>strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:720;line-height:1.25;overflow:hidden}.player-menu-identity>button svg{width:11px;height:11px;color:var(--grimoire-hardware-muted);flex:none}.player-menu-identity>span{color:var(--grimoire-hardware-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.25;overflow:hidden}.player-menu-identity>input{text-align:left;width:100%;min-width:0;height:24px;padding:1px 3px 2px}.player-menu-identity>input:focus{box-shadow:none}.player-menu-header>button:last-child{color:var(--grimoire-hardware-muted);flex:none}.player-menu-state{flex-direction:column;gap:10px;padding:12px;display:flex}.player-menu-state-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.player-menu-control{flex-direction:column;gap:5px;min-width:0;display:flex}.player-menu-control-label{justify-content:space-between;align-items:center;gap:6px;min-height:19px;display:flex}.player-menu-control-label>.utility-label,.player-reminder-section>.utility-label{color:#4034238a;font-size:8px}.player-menu-segmented{background:#513e2817;width:100%;min-width:0;height:36px;display:flex}.player-menu-segmented button{color:#403423a3;flex:1;min-width:0;height:32px;padding:0 6px;font-size:10px}.player-menu-segmented button[aria-pressed=true]{color:#30271c;background:#fffcf0b8}.player-menu-actions{border-top:1px solid #634c2e29;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:8px;display:grid}.player-menu-actions>button{color:#403423bd;min-width:0;height:42px;padding:0 8px;font-size:10px;position:relative}.player-menu-actions>button .shortcut-key{margin-left:auto}.player-menu-actions .shortcut-key,.player-menu-control .shortcut-key,.player-menu-identity .shortcut-key{background:#fffcf057}.player-menu-actions>button:hover{color:#30271c;background:#fffcf061}.player-menu-count{min-width:17px;height:17px;color:var(--grimoire-hardware-accent);font-family:var(--font-utility);border:1px solid #775a304d;border-radius:50%;place-items:center;font-size:8px;display:grid}.player-menu-footer{border-top:1px solid #634c2e2e;justify-content:flex-end;padding:7px 9px;display:flex}.player-menu-footer .remove-player-button{justify-content:center;min-width:116px}.reminder-menu-header{min-height:56px}.reminder-menu-header>button:first-child{color:var(--grimoire-hardware-muted);flex:none}.player-reminder-menu{overscroll-behavior:contain;max-height:min(380px,100vh - 120px);overflow-y:auto}.player-reminder-section{border-bottom:1px solid #634c2e29;flex-direction:column;gap:6px;padding:9px 10px 10px;display:flex}.player-reminder-section:last-child{border-bottom:0}.player-reminder-collapsible{border-bottom:1px solid #634c2e29}.player-reminder-collapsible>summary{min-height:38px;color:var(--grimoire-hardware-muted);cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:7px;padding:8px 11px;list-style:none;display:grid}.player-reminder-collapsible>summary .utility-label{color:inherit;font-size:8px}.player-reminder-collapsible>summary::-webkit-details-marker{display:none}.player-reminder-collapsible>summary:hover{color:var(--grimoire-hardware-text);background:var(--control-hover)}.player-reminder-collapsible>summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.player-reminder-collapsible>summary small{color:#40342370;font-size:8px}.player-reminder-collapsible>summary svg{width:14px;height:14px;transition:transform .14s}.player-reminder-collapsible[open]>summary{border-bottom:1px solid #634c2e1f}.player-reminder-collapsible[open]>summary svg{transform:rotate(180deg)}.player-reminder-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 4px;display:grid}.player-reminder-grid>button{border-radius:var(--radius-control);color:#30271cbd;text-align:center;background:0 0;border:0;flex-direction:column;justify-content:flex-start;align-items:center;gap:5px;width:100%;min-width:0;min-height:72px;padding:3px 2px;font-size:8px;font-weight:580;line-height:1.15;display:flex}.player-reminder-grid>button:focus-visible,.player-reminder-grid>button:hover{color:#30271c;background:0 0}.player-reminder-grid>button:focus-visible{box-shadow:none;outline:0}.player-reminder-grid>button .character-token{--tactile-shadow-rest:none;--tactile-shadow-hover:0 3px 6px #37241124}.player-reminder-grid>button>span:last-child{white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;min-height:18px;display:-webkit-box;overflow:hidden}.player-reminder-label small{color:#30271c80;font-family:var(--font-utility);margin-left:3px;font-size:7px;font-weight:600}.player-reminder-token-wrap{place-items:center;width:48px;height:48px;display:grid;position:relative}.player-reminder-count{color:#3b2e1f;min-width:16px;height:16px;font-family:var(--font-utility);background:#f3e2bcf5;border:1px solid #674d2757;border-radius:50%;place-items:center;font-size:8px;line-height:1;display:grid;position:absolute;top:-3px;right:-4px;box-shadow:0 1px 3px #3222112e}.player-reminder-empty{color:var(--grimoire-hardware-muted);text-align:center;margin:0;padding:18px 16px 20px;font-size:10px;line-height:1.45}@keyframes player-menu-in{0%{opacity:0;transform:translateY(3px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.storyteller-context-drawer{z-index:56;bottom:max(18px,env(safe-area-inset-bottom));box-sizing:border-box;border-radius:var(--radius-panel);color:#f4e8d0;-webkit-backdrop-filter:blur(14px)saturate(.72);backdrop-filter:blur(14px)saturate(.72);background:#231b18d1;border:1px solid #a07f4cb8;flex-direction:column;width:min(720px,100vw - 36px);min-width:0;display:flex;position:fixed;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 24px #00000047}.storyteller-context-drawer .storyteller-dock.player-dock{width:100%;max-width:none;height:48px;box-shadow:none;background:#110d0c1f;border:0;border-radius:0;padding:3px 5px;position:static;transform:none}.player-inspector-identity{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.player-inspector-identity span,.player-inspector-identity strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-inspector-identity strong{color:#f4e8d0;font-size:12px;font-weight:680;line-height:1.25}.player-inspector-identity span{color:#f4e8d07a;font-size:9px;line-height:1.25}.reminder-inspector-dock{width:min(480px,100vw - 36px)}.reminder-placement-dock{bottom:max(30px,env(safe-area-inset-bottom));border-radius:var(--grimoire-hardware-radius);width:min(310px,100vw - 36px)}.board-bluff-rack,.board-setup-warning,.join-code-control,.reminder-placement-dock,.toolbar-brand{border:1px solid var(--grimoire-hardware-border);color:var(--grimoire-hardware-text);background-color:var(--grimoire-hardware-surface);box-shadow:var(--grimoire-hardware-shadow);-webkit-backdrop-filter:blur(8px)saturate(.82);background-image:linear-gradient(#fffbed1a,#c6af7e14)}.reminder-placement-dock.is-sheet-adjacent{left:calc((100vw - var(--active-grimoire-sheet-width)) / 2);width:min(310px,calc(100vw - var(--active-grimoire-sheet-width) - 36px))}.reminder-inspector-dock .player-dock,.reminder-placement-dock .player-dock{align-items:center;gap:9px;padding:4px 6px 4px 9px}.reminder-placement-icon{color:#674c26b8;flex:0 0 28px;place-items:center;width:28px;height:28px;display:grid}.reminder-placement-icon svg{width:19px;height:19px}.reminder-placement-dock .player-dock{color:var(--grimoire-hardware-text);background:0 0}.reminder-placement-dock .player-inspector-identity strong{color:var(--grimoire-hardware-text)}.reminder-placement-dock .player-inspector-identity span{color:var(--grimoire-hardware-muted)}.reminder-inspector-dock .player-inspector-identity,.reminder-placement-dock .player-inspector-identity{min-width:0}.reminder-inspector-dock .player-dock>button,.reminder-placement-dock .player-dock>button{flex:none}.storyteller-context-drawer .player-dock>button:last-child{flex:0 0 34px;width:34px;height:38px}.reminder-placement-dock .player-dock>button:last-child{flex-basis:32px;width:32px;height:32px;padding:0}.grimoire-panel-tabs.global-dock{--panel-tab-width:36px;--panel-tab-content-gap:8px;--panel-tab-padding-block:12px;z-index:71;min-width:0;height:auto;width:var(--panel-tab-width);border-radius:var(--grimoire-hardware-radius) 0 0 var(--grimoire-hardware-radius);background-color:var(--grimoire-hardware-surface);-webkit-backdrop-filter:blur(8px)saturate(.82);background-image:linear-gradient(#fffbed1f,#c6af7e12);border:1px solid var(--grimoire-hardware-border);border-right:0;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;padding:0;transition:right .2s cubic-bezier(.2,.75,.2,1);display:flex;position:fixed;inset:auto 0 122px auto;overflow:hidden;transform:none;box-shadow:inset 0 1px #fffcef52,-2px 3px 8px #3a26111a}.grimoire-panel-tabs.global-dock.is-sheet-open{right:var(--active-grimoire-sheet-width)}.global-dock .panel-tab-button{width:var(--panel-tab-width);min-width:var(--panel-tab-width);box-sizing:border-box;justify-content:center;align-items:center;gap:var(--panel-tab-content-gap);height:auto;min-height:0;padding:var(--panel-tab-padding-block) 4px;appearance:none;color:var(--grimoire-hardware-text);box-shadow:none;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;flex-direction:column;flex:none;transition:color .12s,background-color .12s,box-shadow .12s;display:flex;position:relative}.global-dock .panel-tab-icon{width:20px;height:20px;color:var(--grimoire-hardware-accent);flex:0 0 20px;place-items:center;display:grid}.global-dock .panel-tab-icon>svg{stroke-width:1.8px;width:18px;height:18px}.global-dock [data-panel-tab=players] .panel-tab-icon>svg{transform:scaleX(.9)}.global-dock .panel-tab-label{color:var(--grimoire-hardware-text);box-shadow:none;font-family:var(--font-utility);writing-mode:vertical-rl;white-space:nowrap;background:0 0;font-size:9.5px;font-weight:600;line-height:1;display:block;transform:rotate(180deg)}.global-dock .panel-tab-button+.panel-tab-button:before{z-index:1;content:"";background:#644c2c33;height:1px;position:absolute;top:0;left:10px;right:10px}.global-dock .panel-tab-button.is-active,.global-dock .panel-tab-button:focus-visible,.global-dock .panel-tab-button:hover{color:#332919}.global-dock .panel-tab-button:hover{box-shadow:none;background-color:#fffaeb2e}.global-dock .panel-tab-button.is-active,.global-dock.is-sheet-open .panel-tab-button.is-active{background-color:#fffaeb52;box-shadow:inset 0 1px #fffcef4d}.global-dock .panel-tab-button:focus-visible{box-shadow:inset 0 0 0 2px var(--focus-ring);background-color:#fffaeb38;outline:0}@media (orientation:landscape) and (max-height:500px){.storyteller-shell:not(.player-grimoire-shell) .grimoire-panel-tabs.global-dock{--panel-tab-content-gap:4px;--panel-tab-padding-block:8px;bottom:16px}.storyteller-shell:not(.player-grimoire-shell) .global-dock .panel-tab-icon{flex-basis:16px;width:16px;height:16px}.storyteller-shell:not(.player-grimoire-shell) .global-dock .panel-tab-icon>svg{width:16px;height:16px}.storyteller-shell:not(.player-grimoire-shell) .global-dock .panel-tab-label{font-size:8.5px}.storyteller-shell:not(.player-grimoire-shell) .board-bluff-rack{bottom:16px;right:44px}}@media (prefers-reduced-motion:reduce){.global-dock .panel-tab-button,.global-dock .panel-tab-label{transition:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}