:root{--font-body:"Atkinson Hyperlegible", system-ui, -apple-system, sans-serif;--font-display:"Alegreya", Georgia, serif;--font-caps:"Alegreya SC", Georgia, serif;--radius:14px;--radius-sm:9px;--line:1.5px}:root,:root[data-quest=academy]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#efe5d0;--bg-image:radial-gradient(ellipse at 20% 0%, #f8f1e2 0%, transparent 60%), radial-gradient(ellipse at 90% 100%, #e3d3b4 0%, transparent 55%);--panel:#fffaf0;--panel-2:#f5ecda;--border:#c9b28e;--border-strong:#6b4a2f;--text:#2a1f16;--text-dim:#6b5a48;--accent:#8c3b1e;--accent-ink:#7a3018;--on-accent:#fff;--focus:#1f5aa6;--good:#2c6e3a;--bad:#a3271f;--shadow:0 1px 0 #6b4a2f40, 0 10px 24px #4a341e1f;--input-bg:#fffdf8;--chip-bg:#efe3cc;--k-attack:#b3402f;--k-spell:#c06a1c;--k-heal:#2f7d47;--k-initiative:#a37a10;--k-ward:#23799a;--k-skill:#2f5d9a;--k-save:#8a3f7e;--k-inspire:#1f8a80;--k-death:#4a4a4a;--c-fine:#2c6e3a;--c-hurt:#9a6a0a;--c-badly:#b3402f;--c-down:#4a4a4a;--tray-bg:radial-gradient(ellipse at 50% 30%, #fbf4e6 0%, #e8d9bb 100%);--die-body:#fff8ea;--die-edge:#6b4a2f;--die-emissive:#8c3b1e;--die-rim-a:#e9b98a;--die-rim-b:#7a3018;--die-glow:#8c3b1e40}:root[data-quest=blackglass]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e6edf2;--bg-image:radial-gradient(ellipse at 15% -10%, #fff 0%, transparent 55%), radial-gradient(ellipse at 100% 110%, #c6d6e2 0%, transparent 60%), linear-gradient(180deg, #eef3f7 0%, #dde7ee 100%);--panel:#fbfdfe;--panel-2:#eef4f8;--border:#b6c9d7;--border-strong:#3d5a70;--text:#17242f;--text-dim:#4d6273;--accent:#1f5f86;--accent-ink:#184d6e;--on-accent:#fff;--focus:#b4441c;--good:#22704a;--bad:brown;--shadow:0 1px 0 #3d5a7033, 0 12px 28px #1f3d561f;--input-bg:#fff;--chip-bg:#e3ecf2;--k-attack:#a8392b;--k-spell:#b5621a;--k-heal:#23784a;--k-initiative:#8f6f0c;--k-ward:#1d7391;--k-skill:#285d95;--k-save:#7c3f80;--k-inspire:#1a7f78;--k-death:#3f4a54;--c-fine:#22704a;--c-hurt:#8f6200;--c-badly:#a8392b;--c-down:#3f4a54;--tray-bg:radial-gradient(ellipse at 50% 25%, #fff 0%, #d4e2ec 70%, #b9cddb 100%);--die-body:#f4f9fc;--die-edge:#1f5f86;--die-emissive:#6fa8cc;--die-rim-a:#bfe0f2;--die-rim-b:#1f5f86;--die-glow:#1f5f864d}:root[data-quest=reservoir-dragons]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f121a;--bg-image:radial-gradient(ellipse at 12% -5%, #e0a54a29 0%, transparent 45%), radial-gradient(ellipse at 95% 105%, #4f8fa029 0%, transparent 55%), linear-gradient(180deg, #121622 0%, #0c0f16 100%);--panel:#191e2b;--panel-2:#222839;--border:#353c52;--border-strong:#8a7650;--text:#f1e9d8;--text-dim:#b4ab98;--accent:#e0a54a;--accent-ink:#f0c174;--on-accent:#1b1408;--focus:#7fd0e6;--good:#7ccf8f;--bad:#ff8a7a;--shadow:0 1px 0 #00000080, 0 14px 32px #00000073;--input-bg:#10141e;--chip-bg:#2a3044;--k-attack:#ff8a6e;--k-spell:#f2a65a;--k-heal:#7ccf8f;--k-initiative:#e9c46a;--k-ward:#6fc7e0;--k-skill:#8fb4ff;--k-save:#e39be0;--k-inspire:#6fd6c8;--k-death:#c9c9c9;--c-fine:#7ccf8f;--c-hurt:#e9c46a;--c-badly:#ff8a6e;--c-down:#b9b9b9;--tray-bg:radial-gradient(ellipse at 50% 20%, #e0a54a47 0%, #161b27 60%, #0d1017 100%);--die-body:#2a2f3f;--die-edge:#e0a54a;--die-emissive:#b87a22;--die-rim-a:#f0c174;--die-rim-b:#4f8fa0;--die-glow:#e0a54a73}:root[data-quest=academy][data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#19140f;--bg-image:radial-gradient(ellipse at 20% 0%, #2a2118 0%, transparent 60%), radial-gradient(ellipse at 90% 100%, #241c14 0%, transparent 55%);--panel:#241d16;--panel-2:#2d251c;--border:#4a3d2e;--border-strong:#b08a5c;--text:#f1e7d6;--text-dim:#c2b199;--accent:#e0915f;--accent-ink:#f2ae84;--on-accent:#1c1208;--focus:#8ab4ff;--good:#7fcf8f;--bad:#ff8a7a;--shadow:0 1px 0 #00000080, 0 12px 28px #0006;--input-bg:#17120d;--chip-bg:#3a3026;--k-attack:#ff8a6e;--k-spell:#f2a65a;--k-heal:#7ccf8f;--k-initiative:#e9c46a;--k-ward:#6fc7e0;--k-skill:#8fb4ff;--k-save:#e39be0;--k-inspire:#6fd6c8;--k-death:#c9c9c9;--c-fine:#7fcf8f;--c-hurt:#e9c46a;--c-badly:#ff8a6e;--c-down:#b9b9b9;--tray-bg:radial-gradient(ellipse at 50% 25%, #e0915f38 0%, #221b14 65%, #17120d 100%);--die-body:#2d251c;--die-edge:#e0915f;--die-emissive:#a85a2a;--die-rim-a:#f2ae84;--die-rim-b:#b08a5c;--die-glow:#e0915f66}:root[data-quest=blackglass][data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d151e;--bg-image:radial-gradient(ellipse at 15% -10%, #7cc0e629 0%, transparent 55%), radial-gradient(ellipse at 100% 110%, #d6e8f414 0%, transparent 60%), linear-gradient(180deg, #111b26 0%, #0b121a 100%);--panel:#15202b;--panel-2:#1c2936;--border:#2f4357;--border-strong:#8fb3cc;--text:#e8f0f5;--text-dim:#a7b9c6;--accent:#7cc0e6;--accent-ink:#a8d8f3;--on-accent:#0b1620;--focus:#ffb38a;--good:#7fd3a0;--bad:#ff8f86;--shadow:0 1px 0 #00000080, 0 14px 32px #00000073;--input-bg:#0e1720;--chip-bg:#22324a;--k-attack:#ff8a6e;--k-spell:#f2a65a;--k-heal:#7fd3a0;--k-initiative:#e9c46a;--k-ward:#6fc7e0;--k-skill:#8fb4ff;--k-save:#e39be0;--k-inspire:#6fd6c8;--k-death:#c9d2d9;--c-fine:#7fd3a0;--c-hurt:#e9c46a;--c-badly:#ff8a6e;--c-down:#b7c2cb;--tray-bg:radial-gradient(ellipse at 50% 20%, #7cc0e640 0%, #142030 60%, #0b121a 100%);--die-body:#1c2936;--die-edge:#7cc0e6;--die-emissive:#3f7fa6;--die-rim-a:#d6ecf8;--die-rim-b:#7cc0e6;--die-glow:#7cc0e673}:root[data-quest=reservoir-dragons][data-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#ece6dc;--bg-image:radial-gradient(ellipse at 12% -5%, #e0a54a2e 0%, transparent 45%), radial-gradient(ellipse at 95% 105%, #4f8fa029 0%, transparent 55%), linear-gradient(180deg, #f2ede5 0%, #e5ded2 100%);--panel:#fbf8f2;--panel-2:#f1ebe0;--border:#cfc3ae;--border-strong:#3d3a4a;--text:#1e1c26;--text-dim:#585465;--accent:#8a5a10;--accent-ink:#74490a;--on-accent:#fff;--focus:#1f6f8a;--good:#2e7040;--bad:#a8332a;--shadow:0 1px 0 #3d3a4a33, 0 12px 28px #1e1c261f;--input-bg:#fff;--chip-bg:#ebe3d5;--k-attack:#b3402f;--k-spell:#b5621a;--k-heal:#2f7d47;--k-initiative:#8f6f0c;--k-ward:#1d7391;--k-skill:#2f5d9a;--k-save:#8a3f7e;--k-inspire:#1a7f78;--k-death:#4a4a4a;--c-fine:#2e7040;--c-hurt:#8f6200;--c-badly:#b3402f;--c-down:#4a4a4a;--tray-bg:radial-gradient(ellipse at 50% 25%, #fffaf0 0%, #ece2cf 70%, #dccfb6 100%);--die-body:#fffaf0;--die-edge:#8a5a10;--die-emissive:#d39b45;--die-rim-a:#f0c174;--die-rim-b:#4f8fa0;--die-glow:#8a5a104d}:root{--font-engraved:"IM Fell English SC", "Alegreya SC", Georgia, serif;--gilt:#86621f;--gilt-soft:#9a733073;--on-gilt:#fff8ec;--seal:#8c2f1c;--seal-light:#c0583a;--seal-dark:#5e1c10;--on-seal:#fff3e4;--grain:.35;--vignette:#5a3c1e2e;--page-glow:#fffaebb3;--page-shadow:#4a341e29}:root[data-quest=academy][data-mode=dark]{--gilt:#d8b26a;--gilt-soft:#d8b26a59;--on-gilt:#1c1208;--seal:#a9472b;--seal-light:#d9774f;--seal-dark:#6a2412;--grain:.22;--vignette:#00000073;--page-glow:#d8b26a12;--page-shadow:#00000073}:root[data-quest=blackglass]{--gilt:#3f6f8f;--gilt-soft:#3f6f8f66;--seal:#1f5f86;--seal-light:#4f8fb8;--seal-dark:#123d58;--grain:.22;--vignette:#1f3d5624;--page-glow:#fffc;--page-shadow:#1f3d5624}:root[data-quest=blackglass][data-mode=dark]{--gilt:#9fcbe6;--gilt-soft:#9fcbe64d;--on-gilt:#0b1620;--seal:#2c6f99;--seal-light:#5aa0cc;--seal-dark:#173f5c;--grain:.18;--vignette:#00000073;--page-glow:#7cc0e60f;--page-shadow:#00000073}:root[data-quest=reservoir-dragons]{--gilt:#e0a54a;--gilt-soft:#e0a54a59;--on-gilt:#1b1408;--seal:#b87a22;--seal-light:#e8b25e;--seal-dark:#7a4e12;--on-seal:#1b1408;--grain:.18;--vignette:#00000080;--page-glow:#e0a54a0f;--page-shadow:#00000073}:root[data-quest=reservoir-dragons][data-mode=light]{--gilt:#8a5a10;--gilt-soft:#8a5a1066;--on-gilt:#fff;--seal:#8a5a10;--seal-light:#c08a3a;--seal-dark:#5a3a08;--on-seal:#fff;--grain:.25;--vignette:#3d3a4a24;--page-glow:#fffcf5cc;--page-shadow:#1e1c2624}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100dvh;font-family:var(--font-body);color:var(--text);background:var(--bg-image), var(--bg);background-attachment:fixed;margin:0;font-size:16px;line-height:1.5}a{color:var(--accent-ink)}img{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app{max-width:1180px;margin:0 auto;padding:12px 16px 32px}.app:has(.table){max-width:1600px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--text-dim)}.small{font-size:14px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin:0;font-size:13px}.loading{color:var(--text-dim);text-align:center;padding:24px}.credit{text-align:center;color:var(--text-dim);margin-top:24px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:4px 0 14px;display:flex}.brand{color:var(--text);grid-template-columns:auto auto auto;grid-template-areas:"crest small tag""crest big tag";align-items:center;column-gap:14px;min-width:0;text-decoration:none;display:grid}.brand-crest{grid-area:crest;margin-right:-4px;display:flex}.seal{object-fit:contain;filter:drop-shadow(0 2px 3px #00000040);display:block}.brand-small{font-family:var(--font-caps);letter-spacing:.18em;color:var(--text-dim);grid-area:small;font-size:12px;line-height:1}.brand-big{font-family:var(--font-display);grid-area:big;font-size:24px;font-weight:700;line-height:1.05}.brand-tag{border-left:var(--line) solid var(--border);font-family:var(--font-display);color:var(--accent-ink);overflow-wrap:anywhere;grid-area:tag;padding-left:14px;font-size:18px}.topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel{background:var(--panel);border:var(--line) solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:16px}.panel-title{font-family:var(--font-display);margin:0 0 10px;font-size:20px;font-weight:700;line-height:1.2}.sub-title{font-family:var(--font-caps);letter-spacing:.06em;color:var(--accent-ink);margin:12px 0 4px;font-size:15px}.btn,.ghost-btn{cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:8px 18px;font-weight:700;text-decoration:none;display:inline-flex}.btn{border:var(--line) solid var(--accent);background:var(--accent);color:var(--on-accent)}.btn:hover:not(:disabled){filter:brightness(1.08)}.ghost-btn{border:var(--line) solid var(--border-strong);color:var(--text);background:0 0}.ghost-btn:hover:not(:disabled){background:var(--panel-2)}.ghost-btn.danger{border-color:var(--bad);color:var(--bad)}.btn-small{min-height:36px;padding:5px 14px;font-size:14px}.btn:disabled,.ghost-btn:disabled{opacity:.5;cursor:not-allowed}.text-btn{color:var(--accent-ink);cursor:pointer;background:0 0;border:0;padding:4px;text-decoration:underline}.icon-btn{border:var(--line) solid var(--border-strong);cursor:pointer;background:0 0;border-radius:50%;place-items:center;width:36px;height:36px;padding:6px;display:inline-grid}.button-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.form-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.grow{flex:200px}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field.inline{flex-direction:row;align-items:center;gap:8px}.field.narrow{width:84px}.field.narrow-ish{width:130px}.field-label{color:var(--text-dim);font-size:14px;font-weight:700}.field input,.field select,.field textarea,.seat-link,.chat-form textarea,.hp-field input{border-radius:var(--radius-sm);border:var(--line) solid var(--border-strong);background:var(--input-bg);width:100%;min-height:44px;padding:8px 12px;font-size:16px}.field input::placeholder,.hp-field input::placeholder,.chat-form textarea::placeholder{color:var(--text-dim);opacity:.75}.check{align-items:center;gap:6px;font-size:14px;display:inline-flex}.code-input{letter-spacing:.35em;text-align:center;font-family:var(--font-display)!important;min-height:64px!important;font-size:32px!important}.form-error,.form-ok{border-radius:var(--radius-sm);background:var(--panel);margin:10px 0 0;padding:10px 14px;font-weight:700}.form-error{border:2px solid var(--bad);color:var(--bad)}.form-ok{border:2px solid var(--good);color:var(--good)}.centre{flex-direction:column;align-items:center;padding-top:4vh;display:flex}.login{flex-direction:column;gap:12px;width:min(100%,500px);display:flex}.login-heading{font-family:var(--font-display);margin:0;font-size:clamp(26px,5vw,34px);font-weight:700;line-height:1.1}.login-intro{margin:0}.login-links{flex-wrap:wrap;justify-content:space-between;gap:8px 18px;display:flex}.dev-mailbox{border-radius:var(--radius-sm);border:2px dashed var(--accent);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 12px;font-size:14px;display:flex}.dev-tag{text-transform:uppercase;letter-spacing:.1em;color:var(--accent-ink);font-weight:700}.dev-code{font-family:var(--font-display);letter-spacing:.15em}.console{flex-direction:column;gap:16px;display:flex}.back-link{font-weight:700}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.section-head .panel-title{margin:0}.card-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.card{border:var(--line) solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.card p{margin:2px 0 0}.card-title{font-family:var(--font-display);color:var(--text);font-size:19px;font-weight:700;text-decoration:none}.archived{margin-top:12px}.archived summary{cursor:pointer;font-weight:700}.seat-list{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.seat-row{border:var(--line) solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);grid-template-columns:minmax(150px,220px) minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.seat-row.out{opacity:.6;grid-template-columns:1fr}.seat-who{flex-direction:column;display:flex}.seat-link{min-height:36px;font-family:ui-monospace,monospace;font-size:13px}.seat-actions{gap:6px;display:flex}.settings-wrap{position:relative}.settings{z-index:30;border-radius:var(--radius-sm);border:var(--line) solid var(--border-strong);background:var(--panel);width:max-content;max-width:calc(100vw - 32px);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:12px;display:none;position:absolute;top:calc(100% + 6px);right:0}.settings.open{display:flex}.seg{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.seg-label{color:var(--text-dim);margin-right:6px;font-size:13px;font-weight:700}.seg-opt{position:relative}.seg-opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg-opt span{border:var(--line) solid var(--border);border-radius:999px;padding:5px 12px;font-size:14px;font-weight:700;display:inline-block}.seg-opt input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.seg-opt input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}.sound{align-items:center;gap:8px;display:flex}.sound input[type=range]{accent-color:var(--accent)}.tag,.chip{background:var(--chip-bg);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:13px;font-weight:700;display:inline-flex}.tag.good{color:var(--good);border-color:var(--good)}.tag.bad{color:var(--bad);border-color:var(--bad)}.toast{z-index:60;border-radius:var(--radius-sm);border:2px solid var(--bad);background:var(--panel);max-width:min(92vw,520px);color:var(--text);box-shadow:var(--shadow);margin:0;padding:10px 16px;font-weight:700;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.conn-banner{border-radius:var(--radius-sm);background:var(--chip-bg);border:1px solid var(--border-strong);text-align:center;margin:0 0 10px;padding:8px 12px;font-weight:700}.modal-backdrop{z-index:70;background:#0a0c1299;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{flex-direction:column;gap:10px;width:min(100%,520px);display:flex}@media (width<=640px){.brand-big{font-size:20px}.brand-tag{font-size:16px}.seat-row{grid-template-columns:1fr}}.table{grid-template-columns:minmax(280px,340px) minmax(0,1fr) minmax(280px,360px);align-items:start;gap:14px;display:grid}.col{flex-direction:column;gap:14px;min-width:0;display:flex}.col-left,.col-right{scrollbar-width:thin;max-height:calc(100dvh - 24px);position:sticky;top:12px;overflow-y:auto}.tabbar{display:none}.party-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.party-card{border:var(--line) solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);text-align:left;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:6px 8px;display:grid}button.party-card{cursor:pointer}button.party-card[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.party-token{object-fit:cover;border-radius:50%;width:36px;height:36px}.party-names{flex-direction:column;min-width:0;line-height:1.2;display:flex}.party-names b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.party-state{align-items:center;gap:6px;display:flex}.hp-mini{font-variant-numeric:tabular-nums;font-weight:700}.presence{border:1.5px solid var(--text-dim);border-radius:50%;width:9px;height:9px}.presence.on{background:var(--good);border-color:var(--good)}.condition{white-space:nowrap;border:1.5px solid;border-radius:999px;padding:1px 8px;font-size:13px;font-weight:700}.c-fine{color:var(--c-fine)}.c-hurt{color:var(--c-hurt)}.c-badly-hurt{color:var(--c-badly)}.c-down{color:var(--c-down)}.char-head{align-items:center;gap:12px;display:flex}.char-head p{margin:0}.char-token{object-fit:cover;border:2px solid var(--border-strong);border-radius:50%;flex-shrink:0;width:64px;height:64px}.char-name{font-family:var(--font-display);margin:0;font-size:26px;line-height:1.1}.stat-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0;display:grid}.stat{border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--border);flex-direction:column;align-items:center;padding:6px 4px;display:flex}.stat span{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px}.stat b{font-size:20px;line-height:1.2}.hp-block{border-radius:var(--radius-sm);border:var(--line) solid var(--border-strong);background:var(--panel-2);flex-direction:column;gap:8px;margin:0;padding:10px;display:flex}.hp-now{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.hp-label{color:var(--text-dim);font-weight:700}.hp-numbers{font-variant-numeric:tabular-nums;font-size:18px}.hp-numbers b{font-size:28px}.temp{color:var(--accent-ink);font-size:14px}.hp-field{gap:6px;display:flex}.hp-field input{flex:auto;width:9ch;min-height:40px}.hp-field.compact input{width:8ch;min-height:34px;padding:4px 8px;font-size:15px}.hp-field.compact .btn{min-height:34px;padding:4px 10px}.more-hp summary{cursor:pointer;color:var(--text-dim);font-size:14px}.more-hp .inline-form{margin-top:6px}.death-saves{margin:0;font-weight:700}.ds{letter-spacing:2px}.ds.ok{color:var(--good)}.ds.bad{color:var(--bad)}.uses ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.uses li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.pips{gap:4px;display:inline-flex}.pip{appearance:none;border:2px solid var(--border-strong);background:var(--input-bg);cursor:pointer;border-radius:50%;width:22px;height:22px;margin:0}.pip:checked{background:var(--accent);border-color:var(--accent)}.pip:disabled{cursor:default}.story{border-radius:var(--radius-sm);border:2px dashed var(--accent);margin-top:14px;padding:12px}.story-note{color:var(--accent-ink);margin:0;font-size:13px;font-weight:700}.story-part p{margin:0 0 6px}.sheet{margin-top:14px}.sheet>summary{cursor:pointer;font-family:var(--font-display);font-size:18px;font-weight:700}.tagline{margin:8px 0;font-style:italic}.abilities{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:8px 0;display:grid}.abilities div{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:center;padding:4px 2px;display:flex}.abilities span{text-transform:uppercase;color:var(--text-dim);font-size:11px}.abilities b{font-size:17px}.abilities em{color:var(--text-dim);font-size:12px;font-style:normal}.sheet-list{margin:0;padding-left:18px}.sheet-list li{margin-bottom:4px}.sheet p{margin:6px 0}.board-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.board-head .panel-title{margin:0}.board-tools{flex-wrap:wrap;gap:6px;display:flex}.board-empty{text-align:center;padding:30px 10px}.board-scroll{border-radius:var(--radius-sm);overflow:auto}.board-inner{touch-action:none;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);background:var(--panel-2);width:100%;position:relative;overflow:hidden}.board-map{object-fit:cover;pointer-events:auto;width:100%;height:100%;display:block}.board.expanded{z-index:40;border-radius:0;flex-direction:column;padding:10px 12px;display:flex;position:fixed;inset:0}.board.expanded .board-scroll{flex:1;place-items:center;display:grid}.board.expanded .board-inner{width:min(100%, calc((100dvh - 90px) * var(--ratio)))}.token{--size:clamp(34px, 6.5%, 74px);width:var(--size);aspect-ratio:1;cursor:pointer;z-index:2;background:#fff;border:3px solid #fff;border-radius:50%;padding:0;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0000008c}.token.movable{cursor:grab}.token.movable:active{cursor:grabbing}.token img{object-fit:cover;pointer-events:none;border-radius:50%;width:100%;height:100%;display:block}.token.mine{border-color:var(--accent)}.token.selected{box-shadow:0 0 0 3px var(--focus), 0 2px 8px #0009;z-index:4}.token.hidden{opacity:.45;border-style:dashed}.token.down img,.token.down .disc{filter:grayscale()brightness(.7)}.token.down:after{content:"";background:linear-gradient(45deg,#0000 46%,#a3271f 46% 54%,#0000 54%);border-radius:50%;position:absolute;inset:0}.disc{background:var(--disc,#9b2c2c);color:#fff;pointer-events:none;border-radius:50%;place-items:center;width:100%;height:100%;font-size:clamp(12px,1.6vw,20px);font-weight:700;display:grid}.token-name{color:#fff;white-space:nowrap;pointer-events:none;background:#0f121ac7;border-radius:6px;padding:0 6px;font-size:12px;font-weight:700;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%)}.token-bar{z-index:6;border-radius:var(--radius-sm);border:var(--line) solid var(--border-strong);background:var(--panel);width:max-content;max-width:min(340px,92%);color:var(--text);box-shadow:var(--shadow);flex-direction:column;gap:6px;padding:8px 10px;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 46px))}.token-bar.below{transform:translate(-50%,46px)}.bar-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.bar-name{flex:1}.bar-close{font-size:20px;line-height:1;text-decoration:none}.bar-note{margin:0}.chip.hp b{font-size:15px}.monster-form{border-radius:var(--radius-sm);border:var(--line) dashed var(--border-strong);flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:10px;padding:10px;display:flex}.monster-form p{flex-basis:100%;margin:0}.token-bar .monster-form{margin:0}.swatches{border:0;align-items:center;gap:6px;margin:0;padding:0;display:flex}.swatches legend{margin-bottom:4px}.swatch{background:var(--disc);border:2px solid var(--border);border-radius:50%;width:28px;height:28px;position:relative}.swatch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.swatch:has(input:checked){box-shadow:0 0 0 3px var(--focus)}.token.monster{border-color:var(--disc,#9b2c2c)}.picture-picker{border:0;flex-direction:column;flex-basis:100%;gap:6px;margin:0;padding:0;display:flex}.picture-picker>input{border-radius:var(--radius-sm);border:var(--line) solid var(--border-strong);background:var(--input-bg);min-height:38px;padding:6px 10px}.picture-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;max-height:190px;display:grid;overflow-y:auto}.picture-opt{aspect-ratio:1;border:2px solid var(--border);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:relative}.picture-opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.picture-opt img{object-fit:cover;border-radius:50%;width:100%;height:100%}.picture-opt.none span{text-align:center;padding:4px;font-size:11px;line-height:1.1}.picture-opt.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent)}.picture-opt:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.token-bar .picture-grid{max-height:130px}.rolls-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.rolls-head .panel-title{margin:0}.mode-switch .seg-opt span{padding:4px 10px;font-size:13px}.tray{border-radius:var(--radius-sm);background:var(--tray-bg);border:1px solid var(--border);height:128px;margin-bottom:10px;position:relative;overflow:hidden}.die-host{width:140px;position:absolute;top:0;bottom:0;left:0}.die-host canvas{width:100%;height:100%;filter:drop-shadow(0 0 12px var(--die-glow));display:block}.flat-die{place-items:center;width:100%;height:100%;display:grid}.flat-die .die-icon{width:72px;height:auto}.flat-die .die-icon polygon{fill:var(--die-body);stroke:var(--die-edge);stroke-width:4px}.flat-die .die-icon text{fill:var(--die-edge);font-weight:700}.flat-die.tumble .die-icon{animation:flat-tumble var(--dur,.9s) cubic-bezier(.2, .8, .3, 1) both}@keyframes flat-tumble{0%{opacity:0;transform:rotate(-540deg)scale(.4)}to{opacity:1;transform:none}}.tray-result{opacity:0;flex-direction:column;justify-content:center;gap:2px;transition:opacity .2s;display:flex;position:absolute;inset:0 10px 0 140px}.tray-result.show{opacity:1}.tray-name{font-family:var(--font-display);font-size:18px;font-weight:700}.tray-parts{flex-wrap:wrap;gap:4px 16px;display:flex}.tray-part{align-items:baseline;gap:6px;display:inline-flex}.tray-part b{font-variant-numeric:tabular-nums;font-size:34px;line-height:1}.tray-label{color:var(--text-dim);font-size:14px;font-weight:700}.tray-flag{color:var(--accent-ink);font-weight:700}.tray.crit{box-shadow:inset 0 0 0 3px var(--good)}.tray.fumble{box-shadow:inset 0 0 0 3px var(--bad)}.seg-tabs{border-bottom:var(--line) solid var(--border);gap:4px;margin-bottom:10px;display:flex}.sheet-tab{color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:8px 14px;font-weight:700}.sheet-tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.roll-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.roll-btn{--kind:var(--k-skill);border:var(--line) solid var(--border);border-left:6px solid var(--kind);border-radius:var(--radius-sm);background:var(--panel-2);min-height:56px;color:var(--text);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px 8px 12px;display:flex}.roll-btn:hover{border-color:var(--kind);background:color-mix(in srgb, var(--kind) 12%, var(--panel-2))}.roll-btn:active{transform:translateY(1px)}.roll-name{font-weight:700;line-height:1.2}.roll-sum{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:13px}.kind-attack{--kind:var(--k-attack)}.kind-spell{--kind:var(--k-spell)}.kind-heal{--kind:var(--k-heal)}.kind-initiative{--kind:var(--k-initiative)}.kind-ward{--kind:var(--k-ward)}.kind-skill{--kind:var(--k-skill)}.kind-save{--kind:var(--k-save)}.kind-inspire{--kind:var(--k-inspire)}.kind-death{--kind:var(--k-death)}.kind-free{--kind:var(--text-dim)}.death-row{border:2px solid var(--bad);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:10px;display:flex}.death-row p{flex:240px;margin:0}.free-roll{margin-top:12px}.free-roll summary{cursor:pointer;color:var(--text-dim);font-weight:700}.free-form{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:8px;display:flex}.log{flex-direction:column;max-height:calc(100dvh - 24px);display:flex}.col-right .log{min-height:420px}.log-list{flex-direction:column;flex:1;gap:8px;min-height:200px;margin:0;padding:0 4px 0 0;list-style:none;display:flex;overflow-y:auto}.log-empty{color:var(--text-dim)}.entry,.msg{border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--border);padding:8px 10px}.entry.roll{border-left:5px solid var(--kind,var(--k-skill))}.entry.roll.crit{border-color:var(--good);border-left-color:var(--good)}.entry.roll.fumble{border-left-color:var(--bad)}.entry.secret{border-style:dashed}.entry.rolling{color:var(--text-dim);font-style:italic}.entry-head{justify-content:space-between;gap:8px;font-size:14px;display:flex}.entry-time{color:var(--text-dim);flex-shrink:0;font-size:12px}.parts{flex-wrap:wrap;gap:4px 16px;margin-top:2px;display:flex}.part{flex-wrap:wrap;align-items:baseline;gap:6px;display:inline-flex}.part-label{color:var(--text-dim);font-size:14px;font-weight:700}.part-total{font-variant-numeric:tabular-nums;font-size:24px;line-height:1.1}.part-dice{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px}.part-dice .dropped{opacity:.6;text-decoration:line-through}.part-dice .nat-20{color:var(--good);font-weight:700}.part-dice .nat-1{color:var(--bad);font-weight:700}.flags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.msg.mine{border-color:var(--accent)}.msg-who{font-weight:700}.msg-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}.notice{color:var(--text-dim);padding:2px 4px;font-size:14px;font-style:italic}.chat-form{align-items:flex-end;gap:6px;margin-top:10px;display:flex}.chat-form textarea{resize:vertical;min-height:44px}.look-choice{border:0;justify-content:center;gap:14px;margin:4px 0;padding:0;display:flex}.look-choice legend{margin-bottom:8px;font-weight:700}.look-opt{cursor:pointer;border-radius:50%;position:relative}.look-opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.look-opt img,.look-choice.single img{aspect-ratio:1;object-fit:cover;border:4px solid var(--border);border-radius:50%;width:min(34vw,140px);display:block}.look-opt.on img{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent)}.look-opt:has(input:focus-visible) img{outline:3px solid var(--focus);outline-offset:3px}.viewer{z-index:50;background:#05060ad6;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.viewer-figure{flex-direction:column;gap:10px;max-width:100%;max-height:100%;margin:0;display:flex}.viewer-figure img{border-radius:var(--radius-sm);object-fit:contain;max-width:min(96vw,1600px);max-height:calc(100dvh - 120px);margin:0 auto;display:block}.viewer-bar{border-radius:var(--radius-sm);background:var(--panel);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.viewer-name{flex-direction:column;font-size:18px;font-weight:700;display:flex}.viewer-actions{align-items:center;gap:8px;display:flex}.shown-card{border-radius:var(--radius-sm);background:var(--panel);border:2px solid var(--accent);justify-content:space-between;align-items:center;gap:10px;padding:8px;display:flex}.shown-open{min-width:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.shown-open img{object-fit:cover;border-radius:8px;flex-shrink:0;width:72px;height:48px}.shown-open>span{flex-direction:column;min-width:0;display:flex}.shown-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.feed-thumb{cursor:zoom-in;background:0 0;border:0;margin-top:6px;padding:0;display:block}.feed-thumb img{border-radius:10px;max-width:100%;max-height:160px;display:block}.roll-controls{background:var(--panel);border:var(--line) solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;padding:16px;display:flex}.gm-images{gap:12px}.gm-images-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.gm-images-head p{flex:220px;margin:0}.upload-btn{cursor:pointer;position:relative}.upload-btn.disabled{opacity:.7;cursor:progress}.upload-btn:focus-within{outline:3px solid var(--focus);outline-offset:3px}.image-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.image-tile{border-radius:var(--radius-sm);background:var(--panel-2);border:2px solid var(--border);flex-direction:column;gap:6px;padding:8px;display:flex;position:relative}.image-tile.showing{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.image-tile img{aspect-ratio:3/2;object-fit:cover;border-radius:8px;width:100%}.image-caption{background:0 0;border:1.5px solid #0000;border-radius:8px;min-width:0;padding:4px 6px;font-size:14px;font-weight:700}.image-caption:hover,.image-caption:focus{border-color:var(--border-strong);background:var(--input-bg)}.image-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.image-secret{position:absolute;top:14px;left:14px}@media (width<=1180px){.table{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.col-right{grid-column:1/-1;max-height:none;position:static}.col-right .log{max-height:520px}}@media (width<=860px){.app:has(.table){padding-bottom:90px}.table{display:block}.col{max-height:none;position:static;overflow:visible}.col-left,.col-right{margin-top:0}.table>.col>*{display:none}.table.tab-map .col-centre>.board,.table.tab-map .col-centre>.shown-card,.table.tab-rolls .col-centre>.rolls,.table.tab-rolls .col-centre>.gm-images,.table.tab-sheet .col-left>*,.table.tab-log .col-right>*{flex-direction:column;display:flex}.table.tab-sheet .col-left>.character{display:block}.table.role-gm.tab-map .col-centre>.gm-images{display:none}.log{max-height:calc(100dvh - 190px)}.tabbar{z-index:30;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--panel);border-top:var(--line) solid var(--border-strong);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar-btn{border-radius:var(--radius-sm);min-height:48px;color:var(--text-dim);background:0 0;border:0;font-weight:700;position:relative}.tabbar-btn[aria-pressed=true]{color:var(--on-accent);background:var(--accent)}.badge{background:var(--bad);color:#fff;border-radius:999px;min-width:20px;padding:0 6px;font-size:12px;position:absolute;top:4px;right:14%}.abilities{grid-template-columns:repeat(3,minmax(0,1fr))}.token-name{display:none}.token.selected .token-name{display:block}}.tracks{grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;display:grid}.track-name{color:var(--text-dim);font-size:14px;font-weight:700}.boxes{flex-wrap:wrap;gap:4px;display:inline-flex}.box{appearance:none;border:2px solid var(--border-strong);background:var(--input-bg);cursor:pointer;border-radius:4px;width:22px;height:22px;margin:0}.box:checked{background:var(--accent);border-color:var(--accent)}.boxes.shape-diamond .box{border-radius:3px;transform:rotate(45deg)scale(.82)}.boxes.shape-diamond .box:checked{background:var(--good);border-color:var(--good)}.fear{border:2px solid var(--bad);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;display:inline-flex}.fear-label{color:var(--bad);font-weight:700}.fear-count{text-align:center;font-variant-numeric:tabular-nums;min-width:1.4ch;font-size:20px}.fear .icon-btn{width:30px;height:30px;padding:0;font-weight:700}.dh-options{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:10px;display:flex}.check.exp,.check.reaction{border:1.5px solid var(--border);border-radius:999px;padding:4px 10px}.check.exp.on,.check.reaction.on{border-color:var(--accent);background:var(--chip-bg)}.check.reaction{margin-bottom:8px}.hope-die{color:var(--good)}.fear-die{color:var(--bad)}.shapes{margin-top:14px}.shape-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.shape-card{border-radius:var(--radius-sm);border:var(--line) solid var(--border);background:var(--panel-2);text-align:left;cursor:pointer;grid-template-columns:44px minmax(0,1fr);grid-template-areas:"pic name""pic meta""why why";align-items:center;gap:2px 8px;width:100%;padding:8px;display:grid}.shape-card:hover:not(:disabled){border-color:var(--accent)}.shape-card:disabled{opacity:.5;cursor:not-allowed}.shape-card img{object-fit:cover;border:2px solid var(--border-strong);border-radius:50%;grid-area:pic;width:44px;height:44px}.shape-card img.own{filter:sepia(.6)saturate(.7)}.shape-name{grid-area:name;font-weight:700;line-height:1.1}.shape-meta{color:var(--text-dim);grid-area:meta;font-size:12px}.shape-why{color:var(--text-dim);grid-area:why;margin-top:4px;font-size:12px}.shape-now{border-radius:var(--radius-sm);border:2px solid var(--accent);background:var(--panel-2);align-items:flex-start;gap:12px;padding:10px;display:flex}.shape-now img{object-fit:cover;border:2px solid var(--accent);border-radius:50%;flex-shrink:0;width:64px;height:64px}.shape-now-name{margin:0 0 4px;font-weight:700}.shape-details p{margin:0 0 4px}.form-tag{border:1.5px solid var(--accent);color:var(--accent-ink);font-family:var(--font-body);vertical-align:middle;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:700}.stat.changed{border-color:var(--accent)}.stat.changed b{color:var(--accent-ink)}.rings{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ring{fill:color-mix(in srgb, var(--focus) calc(10% - var(--i,0) * 2%), transparent);stroke:var(--focus);stroke-width:3px;stroke-opacity:.9;vector-effect:non-scaling-stroke}.ring.dashed{fill:none;stroke-dasharray:10 8}.ring-label{fill:#fff;font-family:var(--font-body);paint-order:stroke;stroke:#0f121ad9;stroke-width:4px;font-weight:700}.ring-label.beyond{opacity:.85;font-style:italic}.measure-bar{flex-wrap:wrap;align-items:center;gap:6px;margin:-2px 0 10px;display:flex}.measure-bar .field-label{margin-right:2px}.measure-btn{border:var(--line) solid var(--border-strong);min-height:36px;color:var(--text);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:14px;font-weight:700;display:inline-flex}.measure-btn:hover{background:var(--panel-2)}.measure-btn.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.measure-icon{fill:currentColor;fill-opacity:.25;stroke:currentColor;stroke-width:1.6px;stroke-linejoin:round;width:16px;height:16px}.measure-hint{z-index:3;color:#fff;text-align:center;pointer-events:none;background:#0f121ad1;border-radius:999px;max-width:calc(100% - 16px);margin:0;padding:4px 12px;font-size:13px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.board-inner.measuring,.board-inner.measuring .token{cursor:crosshair}.measures{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.measure{--tint:#4cc9f0}.measure.gm{--tint:#ff5d73}.measure.mine{--tint:#ffd166}.measure-shape{fill:color-mix(in srgb, var(--tint) 22%, transparent);stroke:var(--tint);stroke-width:3px;stroke-linejoin:round;vector-effect:non-scaling-stroke}line.measure-shape{stroke-width:4px;stroke-linecap:round}.measure-radius{stroke:var(--tint);stroke-width:2px;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}.measure-origin{fill:var(--tint);stroke:#0f121ad9;stroke-width:2px;vector-effect:non-scaling-stroke}.measure-label{z-index:3;border:2px solid var(--tint);color:#fff;white-space:nowrap;pointer-events:none;background:#0f121ad1;border-radius:999px;gap:6px;padding:2px 9px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.measure-label b{color:var(--tint)}.ledger{isolation:isolate;position:relative}.ledger:before,.ledger:after{content:"";pointer-events:none;z-index:-1;position:fixed;inset:0}.ledger:before{opacity:var(--grain,.35);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.25 0 0 0 0 0.15 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.ledger:after{background:radial-gradient(ellipse at 50% 40%, transparent 55%, var(--vignette,#5a3c1e2e) 100%)}.ledger .topbar{border-bottom:1px solid var(--gilt);box-shadow:0 3px 0 -2px var(--gilt);margin-bottom:18px;padding-bottom:18px}.ledger .brand-big{font-family:var(--font-engraved);letter-spacing:.01em;font-size:30px;font-weight:400}.ledger .brand-small{letter-spacing:.32em}.ledger .brand-tag{font-family:var(--font-engraved);color:var(--gilt);border-left-color:var(--gilt);font-size:20px}.ledger .console{gap:26px;max-width:1040px;margin:0 auto}.page{background:radial-gradient(ellipse at 0% 0%, var(--page-glow,#fffaebb3), transparent 60%), var(--panel);border:1px solid var(--border);box-shadow:inset 0 0 0 7px var(--panel), inset 0 0 0 8px var(--gilt-soft), 0 1px 0 #0000000f, 0 18px 40px var(--page-shadow,#4a341e29);border-radius:6px;padding:30px clamp(18px,4vw,40px) 32px;position:relative}.page-head{text-align:center;margin-bottom:22px}.kicker{font-family:var(--font-caps);letter-spacing:.28em;text-transform:lowercase;color:var(--gilt);margin:0 0 4px;font-size:13px}.page-title{font-family:var(--font-engraved);color:var(--text);margin:0;font-size:clamp(28px,4vw,38px);font-weight:400;line-height:1.1}.fleuron{max-width:280px;color:var(--gilt);align-items:center;gap:14px;margin:10px auto 0;font-size:18px;line-height:1;display:flex}.fleuron:before,.fleuron:after{content:"";background:linear-gradient(90deg, transparent, var(--gilt));flex:1;height:1px}.fleuron:after{background:linear-gradient(90deg, var(--gilt), transparent)}.ledger .field-label{font-family:var(--font-caps);letter-spacing:.08em;text-transform:lowercase;color:var(--gilt);font-size:14px;font-weight:700}.ledger-form{flex-direction:column;gap:18px;display:flex}.ledger-row{flex-wrap:wrap;align-items:flex-end;gap:18px 26px;display:flex}.ledger fieldset{border:0;min-width:0;margin:0;padding:0}.ledger legend{margin-bottom:6px;padding:0}.quest-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.quest-cards legend{grid-column:1/-1}.quest-card{cursor:pointer;color:#fff8ec;background:var(--art) center / cover no-repeat, var(--panel-2);border:1px solid var(--border-strong);border-radius:6px;flex-direction:column;justify-content:flex-end;gap:2px;min-height:150px;padding:16px 18px;transition:transform .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 16px #0000002e}.quest-card:before{content:"";background:linear-gradient(#120c060d 0%,#120c0659 45%,#120c06db 100%);position:absolute;inset:0}.quest-card>*{position:relative}.quest-card input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.quest-name{font-family:var(--font-engraved);text-shadow:0 2px 8px #0009;font-size:26px;line-height:1.1}.quest-meta{opacity:.9;font-size:13px}.quest-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0000003d}.quest-card.on{box-shadow:0 0 0 3px var(--gilt), 0 10px 24px #0000003d}.quest-card.on:after{content:"✓ Chosen";background:var(--gilt);color:var(--on-gilt);letter-spacing:.04em;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;position:absolute;top:12px;right:12px}.quest-card:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}.pills{flex-wrap:wrap;gap:6px;display:flex}.pills legend{width:100%}.pill{border:1.5px solid var(--border-strong);background:var(--input-bg);cursor:pointer;border-radius:999px;align-items:center;gap:8px;min-height:42px;padding:6px 16px;font-weight:700;transition:background .14s;display:inline-flex;position:relative}.pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pill.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pill.disabled{opacity:.45;cursor:not-allowed}.pill:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.pill-number{min-width:44px;font-family:var(--font-display);font-variant-numeric:lining-nums;justify-content:center;padding:4px 12px;font-size:18px}.pill-mark{opacity:.85;border:1px solid;border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:11px}.cast-preview{flex-wrap:wrap;gap:14px;margin:0;padding:0;list-style:none;display:flex}.cast-face{flex-direction:column;align-items:center;gap:4px;width:64px;transition:opacity .2s,filter .2s;display:flex}.cast-face img{object-fit:cover;border:2px solid var(--gilt);border-radius:50%;width:58px;height:58px;box-shadow:0 3px 8px #0003}.cast-face span{font-size:13px;font-weight:700}.cast-face.out{opacity:.38;filter:grayscale()}.cast-face.out span{text-decoration:line-through}.seal-row{justify-content:center;padding-top:6px;display:flex}.seal-btn{cursor:pointer;min-height:54px;font-family:var(--font-engraved);letter-spacing:.02em;color:var(--on-seal);background:radial-gradient(circle at 30% 25%, var(--seal-light) 0%, var(--seal) 55%, var(--seal-dark) 100%);box-shadow:inset 0 2px 0 #ffffff40, inset 0 -3px 0 #00000047, 0 0 0 3px var(--panel), 0 0 0 4px var(--seal-dark), 0 8px 18px #00000040;text-shadow:0 1px #0000004d;border:0;border-radius:999px;justify-content:center;align-items:center;padding:12px 34px;font-size:21px;transition:transform .14s,filter .14s;display:inline-flex}.seal-btn:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.seal-btn:active:not(:disabled){transform:translateY(1px)}.seal-btn:disabled{opacity:.6;cursor:progress}.game-cards{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.game-card{border:1px solid var(--border);background:var(--panel-2);color:var(--text);isolation:isolate;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:14px 18px 14px 14px;text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid;position:relative;overflow:hidden}.game-card:before{content:"";z-index:-1;background:var(--art) center / cover no-repeat;position:absolute;inset:0 0 0 40%;-webkit-mask-image:linear-gradient(270deg,#0000008c,#0000);mask-image:linear-gradient(270deg,#0000008c,#0000)}.game-card:hover{border-color:var(--gilt);box-shadow:0 10px 22px var(--page-shadow,#4a341e29);transform:translateY(-2px)}.game-card:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.game-card.status-ended{opacity:.75}.game-card.status-ended:before{filter:grayscale()}.date-badge{background:var(--input-bg);border:1px solid var(--border-strong);text-align:center;border-radius:6px;flex-direction:column;align-items:center;width:70px;display:flex;overflow:hidden;box-shadow:0 3px 8px #0000001f}.date-month{background:var(--seal);width:100%;color:var(--on-seal);letter-spacing:.14em;text-transform:uppercase;padding:2px 0;font-size:12px;font-weight:700}.date-day{font-family:var(--font-display);font-variant-numeric:lining-nums;font-size:30px;font-weight:700;line-height:1.15}.date-time{color:var(--text-dim);padding-bottom:4px;font-size:12px}.game-body{flex-direction:column;gap:3px;min-width:0;display:flex}.game-title{font-family:var(--font-engraved);overflow-wrap:anywhere;font-size:24px;line-height:1.15}.game-meta{color:var(--text-dim);font-size:14px}.faces{align-items:center;margin-top:4px;padding-left:8px;display:flex}.faces img{object-fit:cover;border:2px solid var(--panel-2);border-radius:50%;width:30px;height:30px;margin-left:-8px;box-shadow:0 2px 4px #0003}.seats-taken{color:var(--text-dim);margin-left:10px;font-size:13px}.ribbon{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:var(--panel);border:1.5px solid;border-radius:999px;align-self:start;padding:4px 12px;font-size:12px;font-weight:700}.ribbon-running{color:var(--good);box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 22%, transparent)}.ribbon-tonight{color:var(--seal)}.ribbon-upcoming{color:var(--gilt)}.ribbon-ended{color:var(--text-dim)}.empty-ledger{text-align:center;font-style:italic}.ledger .archived{margin-top:18px}.ledger .archived>summary{font-family:var(--font-caps);letter-spacing:.06em;color:var(--gilt)}.ledger .archived .game-cards{margin-top:12px}.back-link{font-family:var(--font-caps);letter-spacing:.06em;color:var(--gilt);text-decoration:none}.back-link:hover{text-decoration:underline}.hero{color:#fff8ec;background:var(--art) center / cover no-repeat, var(--panel-2);border:1px solid var(--border-strong);min-height:240px;box-shadow:0 0 0 1px var(--gilt), 0 22px 44px var(--page-shadow,#4a341e33);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;padding:28px clamp(18px,4vw,40px);display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:linear-gradient(#0e0a061f 0%,#0e0a0680 50%,#0e0a06e6 100%);position:absolute;inset:0}.hero>*{position:relative}.hero.status-ended{filter:saturate(.4)}.hero-inner{flex-direction:column;flex:380px;gap:6px;min-width:0;display:flex}.hero .kicker{color:#f0d595}.hero-meta{flex-wrap:wrap;align-items:center;gap:8px 16px;margin:4px 0 0;font-size:15px;display:flex}.hero .ribbon{background:#0e0a0699}.hero .ribbon-ended{color:#d8cfc0}.hero .ribbon-upcoming{color:#f0d595}.hero .ribbon-tonight{color:#ffb08a}.hero .ribbon-running{color:#8fe0a6}.hero .seal-btn{box-shadow:inset 0 2px #ffffff40,inset 0 -3px #00000047,0 0 0 3px #0e0a0699,0 0 0 4px #f0d595,0 8px 18px #00000059}.title-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.title-input{color:#fff8ec;min-width:0;font-family:var(--font-engraved);text-shadow:0 2px 10px #0009;background:0 0;border:0;border-bottom:1.5px dashed #0000;flex:320px;padding:2px 4px;font-size:clamp(30px,5vw,46px);line-height:1.1}.title-input:hover{border-bottom-color:#fff8ec80}.title-input:focus{border-bottom-color:#f0d595;outline:none}.seats-intro{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.seats-intro p{flex:360px;margin:0}.tickets{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.ticket{background:radial-gradient(circle at 90px 0, transparent 9px, var(--panel-2) 10px) top / 100% 51% no-repeat, radial-gradient(circle at 90px 100%, transparent 9px, var(--panel-2) 10px) bottom / 100% 51% no-repeat;filter:drop-shadow(0 4px 8px var(--page-shadow,#4a341e24));border-radius:8px;grid-template-columns:76px minmax(0,1fr);gap:14px;padding:14px 16px 14px 14px;display:grid;position:relative}.ticket:before{content:"";border-left:2px dotted var(--gilt-soft);position:absolute;top:14px;bottom:14px;left:89px}.ticket-face{object-fit:cover;border:2px solid var(--gilt);border-radius:50%;align-self:center;width:64px;height:64px}.ticket-body{flex-direction:column;gap:4px;min-width:0;padding-left:10px;display:flex}.ticket-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;display:flex}.ticket-name{font-family:var(--font-engraved);font-size:24px;font-weight:400;line-height:1.1}.ticket-class{color:var(--text-dim);font-size:13px}.seat-state{color:var(--text-dim);font-size:12px;font-weight:700}.seat-state.on{color:var(--good)}.ticket-link{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.ticket-link input{border:1px solid var(--border);background:var(--input-bg);min-width:0;min-height:34px;color:var(--text-dim);border-radius:6px;flex:100%;padding:4px 8px;font-family:ui-monospace,monospace;font-size:12px}.ticket.out{opacity:.5}.ticket.out .ticket-face{filter:grayscale()}.deeds{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.deed{border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);text-align:left;cursor:pointer;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;text-decoration:none;transition:transform .14s,border-color .14s;display:flex}.deed b{font-family:var(--font-engraved);font-size:21px;font-weight:400}.deed span{color:var(--text-dim);font-size:13px}.deed:hover{border-color:var(--gilt);transform:translateY(-1px)}.deed.danger{border-color:color-mix(in srgb, var(--bad) 60%, transparent)}.deed.danger b{color:var(--bad)}.gate{gap:18px;padding-top:2vh}.gate-crest{filter:drop-shadow(0 8px 18px var(--page-shadow,#4a341e40))}.ledger .login{box-shadow:inset 0 0 0 7px var(--panel), inset 0 0 0 8px var(--gilt-soft), 0 18px 40px var(--page-shadow,#4a341e29);border-radius:6px;padding:26px 28px}.ledger .login-heading{font-family:var(--font-engraved);text-align:center;font-weight:400}.ledger .login-intro{text-align:center}@media (width<=640px){.game-card{grid-template-columns:auto minmax(0,1fr)}.game-card .ribbon{order:-1;grid-column:1/-1;justify-self:start}.ticket{grid-template-columns:60px minmax(0,1fr)}.ticket:before{left:73px}.ticket{background:var(--panel-2)}.ticket-face{width:52px;height:52px}.ledger .brand-big{font-size:24px}.ledger .brand-tag{padding-left:10px;font-size:15px}.ledger .brand-crest .seal{width:38px;height:38px}}@media (prefers-reduced-motion:reduce){.quest-card,.game-card,.deed,.seal-btn,.cast-face{transition:none}}.ledger-row+.cast-preview{margin-top:20px}.hero-inner{text-shadow:0 1px 6px #000000bf}.cast-preview.with-players{gap:16px}.cast-preview.with-players .cast-face{width:104px}.player-name{border:0;border-bottom:1.5px dashed var(--gilt-soft);text-align:center;width:100%;font-family:var(--font-caps);color:var(--text);background:0 0;margin-top:2px;padding:3px 6px;font-size:15px}.player-name::placeholder{color:var(--text-dim);opacity:.7}.player-name:focus{border-bottom-color:var(--gilt);background:var(--input-bg);outline:none}.ticket-player{color:var(--text-dim);align-items:baseline;gap:6px;font-size:13px;display:flex}.ticket-player input{border:0;border-bottom:1.5px dashed var(--gilt-soft);min-width:0;font-family:var(--font-caps);color:var(--text);background:0 0;flex:1;padding:2px 4px;font-size:16px}.ticket-player input:focus{border-bottom-color:var(--gilt);background:var(--input-bg);outline:none}
